3.15 버전 계획
-
LLVM 21 프로파일링 지원: JIT 프레임 스택 언와인딩을 통해 디버거 및 프로파일러 지원을 강화합니다.
-
트레이스 기록 JIT: ‘듀얼 디스패치’ 기반의 새로운 JIT 프론트엔드로, 1.5% 성능 향상 및 제너레이터, 사용자 정의 던더를 지원합니다.
-
기계어 코드 생성 개선: AArch64 최적화 및 분기 반전 기법으로 ‘fall-through’를 증대시켜 1% 속도 향상을 목표합니다.
-
레지스터 할당/Top-of-Stack 캐싱: CPython 스택 머신의 한계를 극복하기 위한 레지스터 캐싱 구현과 참조 카운트 문제 해결이 과제입니다.
-
참조 카운트 제거: 데이터 흐름 분석을 통해 참조 카운팅 없는 명령어로 변환하여 레지스터 할당 효율성을 높입니다.
-
상수 전파 강화: PyPy
hint아이디어를 활용, 상수 풀을 통해 JIT의 상수 전파 최적화를 확대합니다. -
기본 자유 스레딩 지원: Ruby ZJIT 및 Ractor 개념을 도입,
_CHECK_VALIDITY로 스레드 안전성을 확보하고 새 스레드 생성 시 JIT 코드를 무효화합니다.