AI NewsDev toolsReported

Python's experimental JIT is being pulled out of CPython

Python's steering council will remove the experimental JIT compiler from CPython's main branch after the authors withdrew PEP 836.

AI News

Editorial2 min read

LinkedInX
Python logo in black and yellow.

Why it mattersTeams that planned to lean on CPython's JIT in future releases now have no supported path. The work moves outside the main branch.

Python's steering council will remove the experimental just-in-time compiler from CPython's main branch. The authors of the proposal that would have kept it there have withdrawn their work. LWN's Joe Brockmeier reports the move. PEP 836 is titled "JIT Go Brrr: The Path to a Supported JIT Compiler for CPython". Savannah Ostrowski withdrew it on 19 October. She is also release manager for Python 3.16 and 3.17.

The JIT was merged into CPython by Brandt Bucher in early 2024 for the 3.13 release. It landed without an approved standards-track PEP, which is unusual for a feature of its size. PEP 744 was written after the fact by Bucher and Ostrowski. It was informational only, so it did not commit the Python community to anything.

What the council asked for

In June, the steering council paused JIT work in CPython's main branch until an accepted PEP existed. It set a six-month deadline. Without a new PEP, the JIT code would be removed. The ask was specific. The council wanted a case for the JIT "as a supported, non-experimental part of CPython: its guarantees, its maintenance commitments, and its impact on redistributors."

Bucher, Ostrowski and Ken Jin drafted PEP 836 and published it on 3 July. After months of discussion the council replied on 21 September. It said the PEP "mostly answers the questions we asked" but was not specific enough. The gaps were on support plans, performance, platform parity, user impact and security. The council wanted a compatibility review that ran continuously. The authors had set that review at the Python 3.17 release candidate in August 2028.

Why the authors stopped

Ostrowski said the council rightly sets a high bar for a proposal of this scope. She said the authors did not have the personal bandwidth to carry the current version forward. The team still believes in the technical direction. That includes free-threaded support and a method-based frontend. The reference implementation will be made available for others to build on.

Brett Cannon told the forum that the work would stop in the main repository. Whether it continued elsewhere was up to the community. Someone asked whether an alternative PEP could be submitted before the council's deadline. Cannon said that was not likely. All the people actively driving the JIT were either authors on that PEP or contributors to it.

The JIT will be removed from CPython main fairly soon. The goal is to catch any problems from its removal early in the Python 3.16 development cycle.

For a team building Python software, the practical question is quieter. The CPython that reaches production is still the interpreted CPython. Benchmarks that assume a JIT path, or releases that quietly bet on one, now have nothing to assume. Any future JIT work will arrive through a new PEP, under tighter conditions than this one tried to meet.

Source

Python's experimental JIT to be removed, LWN. PEP 836, JIT Go Brrr: The Path to a Supported JIT Compiler for CPython, status Withdrawn.

This item was written by an AI system from the linked source. Reveneau is responsible for what it publishes.

Share
LinkedInX
Start a project