CPython JIT 개발 중단, Standards Track PEP 대기 중

CPython JIT 개발, 공식 PEP 대기 중 중단

Python Steering Council은 CPython 메인 브랜치에서 실험적인 Just-In-Time (JIT) 컴파일러를 위한 새로운 기능, 최적화 및 성능 작업을 반영하는 것을 공식적으로 중단할 것을 요청했습니다. 이 동결은 JIT를 실험적 상태에서 언어 런타임의 지원되는 비실험적 부분으로 전환하기 위한 Standards Track Python Enhancement Proposal (PEP)이 작성되고, 논의되고, Council에 의해 공식적으로 수락될 때까지 유지됩니다.

새로운 기능 추가는 중단되었지만, Steering Council은 JIT에 대한 버그 수정 및 보안 수정은 정상적으로 계속될 수 있다고 명시했습니다.

Standards Track PEP의 필요성

현재의 JIT 구현은 PEP 744에 따라 실험으로서 메인 브랜치에 병합되었습니다. PEP 744는 표준 트랙(standards-track) 제안이 아닌 "Informational"로 지정되었습니다. Steering Council은 JIT 컴파일러의 복잡성과 범위로 인해 Informational PEP로는 제공할 수 없는 수준의 커뮤니티 합의와 공식적인 약속이 필요하다고 언급했습니다.

앞으로 나아가기 위해, Council은 다음과 같은 핵심 영역을 다루는 새로운 PEP를 요구합니다:

장기적 유지보수 및 지속 가능성

JIT 서브시스템의 크기와 복잡성 때문에, PEP는 장기적 지속 가능성을 위한 명확한 계획을을야 합니다. 여기에는 JIT가 어떻게 유지보수될 것인지와 그 유지보수가 JIT를 직접 다루지 않는 핵심 기여자자에게 미칠 구체적인 구체적인 영향을 포함합니다.

도구 및 기능 호환성

제안서는 JIT가 기존 CPython 기능 및 도구와 어떻게 상호작용하고 호환성을 보장할 것인지 정의해야 합니다. 구체적인 우려 사항은 다음과 같습니다:

  • Free-threading
  • Profilers
  • Debuggers

성공 지표 및 일정

Council은 프로젝트를 위한 명확하고 측정 가능한 목표를를야 합니다. 여기에는 구체적인 성능 목표, 플랫폼 커버리지 요구 사항, 메모리 오버헤드 제한과 함께 이러한 마일스톤을 달성하기 위한 일정이 포함됩니다.

생태계 통합

PEP는 Numba, PyTorch, CinderX와 같은 제3자 JIT 구현체와의 JIT 관계를 명확히 해야 합니다. Council은 단일한 구체적인 구현체 대신, PEP가 여러 구현 전략을을야 합니다.

일정 및 미준수 시의 결과

Steering Council은 PEP가 제출되고 해결될 수 있는 6개월의 기간을 설정했습니다. 이 기간 내에 Standards Track PEP가 수락되지 않으면, JIT 코드는 CPython 메인 브랜치에서 제거되어야 하며, 모든 추가 개발은 메인 Python 프로젝트 외부의 별도 저장소에서 이루어져야 합니다.

커뮤니티 반응 및 기술적 논쟁

이 발표는 엔지니어링의 엄격함과 개발 모멘텀 사이의 균형에 관한 개발자들 사이의 상당한 논쟁을 불러일으켰습니다.

동결에 찬성하는 의견

일부 기여자자들은 이 조치를 조치치를 명약한 유지보수 계획 없이 CPython 코드베이스를 과도하게 복잡하게 만드는 것을 방지하기 위한 엔지니어링 표준의 필수적인 적용으로 보고 있습니다. 한 댓글 작성자는

Sources