
PyPy 개발팀은 19일 공식 블로그와 릴리스 문서를 통해 PyPy 8.0.0을 공개했다. 이번 버전은 Python 3.12를 처음 지원하는 베타 인터프리터를 포함한다. 리눅스 배포 바이너리의 최소 요구조건도 glibc 2.28로 올라가 기존 서버 환경에서는 업그레이드 전 호환성 점검이 필요하다.
PyPy는 실행 중 코드를 최적화하는 JIT 컴파일러를 갖춘 Python 인터프리터다. 이번 릴리스에는 Python 2.7, 3.11, 3.12용 인터프리터가 함께 들어간다. 개발팀은 3.12 지원에 아직 버그가 있을 수 있어 베타로 분류했으며, 보안 문제를 제외하면 이번이 Python 3.11을 지원하는 마지막 릴리스라고 밝혔다.
리눅스 빌드 환경은 AlmaLinux 8 기반 manylinux_2_28 이미지로 바뀌었다. 컴파일러도 GCC 5에서 GCC 14로 교체됐다. 개발팀은 배포 바이너리의 요구조건 변경에 따른 혼선을 줄이기 위해 주 버전을 8로 올렸다고 설명했다. 기존 glibc가 2.28보다 낮은 환경에서는 새 바이너리를 그대로 사용할 수 없다.
C 확장 모듈 호환성을 높이기 위한 내부 구조 변경도 이뤄졌다. PyPy 3.12는 C 계층의 객체 구조에서 PyPy 전용 필드를 외부에 노출하지 않는 방식으로 바꾸고, 제한 API에 속한 함수의 내보내기 이름을 CPython과 맞췄다. 목표는 CPython 3.12 이상을 위해 제작된 cp312-abi3 휠 패키지를 PyPy에서도 사용하는 것이다.
다만 해당 패키지를 바로 설치해 쓸 수 있다는 뜻은 아니다. 공식 문서는 abi3.so 공유 객체를 인식하는 모듈 가져오기 처리와 pip·uv의 패키지 선택 지원이 아직 남아 있다고 명시했다. 개발팀은 Cython·PyO3와 호환 작업을 진행 중이라고 밝혔다.
인터프리터를 구성하는 RPython 코드 생성에는 computed goto와 인라인 처리 확대가 적용됐다. 개발팀은 소스가 더 간결해졌지만 성능 향상은 기대만큼 크지 않았다고 설명했다. 이번 변경을 일괄적인 실행 속도 급상승으로 해석하기보다는 언어 지원과 배포 환경, 확장 모듈 호환성 변화에 초점을 맞출 필요가 있다.
출처: PyPy 공식 블로그 https://pypy.org/posts/2026/09/pypy-v800-release.html
PyPy 공식 릴리스 문서 https://doc.pypy.org/release-v8.0.0.html