PEP 836: JIT Go Brrr: The Path to a Supported JIT Compiler for CPython
11 hours ago
- #Performance-Improvement
- #Development-Roadmap
- #CPython-JIT
- A PEP for a roadmap to an officially supported JIT in CPython has been drafted, responding to the Steering Council's pause on JIT development.
- The JIT must meet performance, compatibility, tooling, platform, distribution, security, and maintenance goals, with a 20% geometric mean performance improvement target on pyperformance for JIT + free-threaded builds by Python 3.17's first beta.
- Discussions include potential fallback to trace-recorder if method-frontend fails, options like attracting expertise or building in-house, and concerns over experimentation slowing development.
- Questions were raised about the C-API's role in JIT performance, type hints' limited utility, and learning from existing JIT projects like Numba.
- Memory consumption goals for the JIT are not clearly defined, though there is acknowledgment of the need for an upper limit.
- Debate exists over supporting 32-bit Windows, with arguments for deprioritizing it due to declining usage.
- The PEP suggests aligning the JIT's optimizer with Single Static Assignment (SSA) form properties, potentially influencing bytecode changes, though this is considered out of scope for the PEP's main goals.