Hasty Briefsbeta

Bilingual

PEP 836: JIT Go Brrr: The Path to a Supported JIT Compiler for CPython

12 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.