나동희님의 노력으로 프리-스레딩이 이제 실험태그를 벗어나 공식 지원 됩니다.
Python Steering Council(SC)은 PEP 779를 승인하여 Python 3.14의 프리-스레딩(free-threaded) 빌드에서 “experimental” 태그를 제거하기로 했습니다. 이 결정은 Phase II 동안 다음 과제를 충족해야 한다는 조건과 함께 내려졌습니다.
-
C API/ABI 호환성 및 Stable C API 마련
- 기존 API/ABI 호환을 깨는 변경은 반드시 C API 워킹그룹과 사전 합의해야 함
- Python 3.15까지 프리-스레딩 전용 Stable C API 정의·제공
-
새 실험적 프로젝트 기준
- CPython 내부의 신규 실험 프로젝트는 프리-스레딩 빌드와 호환되고 이를 기반으로 개발
- GIL·프리-스레딩 병행 유지에 따른 복잡성 최소화
-
성능·메모리 가드레일
- 목표: GIL 빌드 대비 성능 저하 10 % 이내
- 최대 15 % 저하 / 15 % 메모리 증가까지는 SC 사전 합의 필요(메모리 상한 20 %)
-
문서화 요구 사항
- Python 사용자: 표준 라이브러리 API 보장 및 변화 명확화
- Python·C API 개발자: 시그널·스레드 안전성 등 동시성 보장 문서화
- CPython 개발자: 구현 시 고려 사항 문서화
- 모든 자료를 모은 공식 ‘프리-스레딩 랜딩 페이지’ 제공
-
고수준 동시성 프리미티브 준비
-
concurrent 패키지를 중심으로, 사용자가 내부 구현을 몰라도 활용 가능한 고수준 동시성 도구 제안·검토
-
벤치마크 요건
- 성능·메모리·정확성 주장을 pyperformance 기반 반복 가능한 테스트로 검증
- 실제 워크로드를 반영한 추가 벤치마크 기여 장려
SC는 프로젝트의 진척 상황에 확신을 표하며, Python 커뮤니티가 프리-스레딩 빌드를 정식 지원 옵션으로 적극 홍보하기를 권장합니다. 3.14 beta 3에서 “experimental” 태그가 공식적으로 제거될 예정이며, Phase III(프리-스레딩을 기본 또는 유일한 빌드로 전환) 여부는 추후 논의됩니다.