Python's Experimental JIT To Be Removed
AIThis post was created with the assistance of artificial intelligence (AI).

TL;DR

Buying for a business?Offer from Amazon

Get business pricing on monitors, keyboards and dev gear

  • Business-only prices and quantity discounts
  • Tax-exempt purchasing
  • Multiple users, one account, clear invoices
As an affiliate, we earn on qualifying purchases.

The maintainers of CPython’s experimental just-in-time compiler have withdrawn PEP 836, the proposal intended to address concerns raised by Python’s steering council. The council had said the JIT must have clearer maintenance commitments, compatibility plans and success measures to remain in CPython’s main branch; the supplied report says removal is now expected, but does not establish a removal date or a final formal decision.

The maintainers of CPython’s experimental just-in-time compiler have withdrawn PEP 836, the proposal created to answer the Python steering council’s concerns about supporting the JIT. The council had set a six-month deadline for an accepted proposal, warning that the code would otherwise have to be removed from CPython’s main branch; with the proposal withdrawn, the JIT’s place in future development is in doubt.

PEP 836, titled “JIT Go Brrr: The Path to a Supported JIT Compiler for CPython,” was drafted by Brandt Bucher, Savannah Ostrowski and Ken Jin. The authors published it for community feedback on July 3. After months of discussion, the maintainers withdrew it rather than leave the proposal in the review process. The supplied account does not give a detailed explanation from the authors for the withdrawal.

The steering council had asked for a standards-track PEP setting out how the JIT could become a supported, non-experimental part of CPython. Its requested topics included guarantees, maintenance commitments and effects on redistributors. The council said the proposal addressed its questions, but some answers were less convincing than others, and it considered the proposal too vague on support plans and performance criteria.

The council’s June request set a six-month deadline for a PEP to be submitted and accepted. If that did not happen, it said the JIT code would have to leave the main branch. The report says development appears to have come to an end, but does not provide a removal commit, release schedule or final council announcement ordering removal.

At a glance
updateWhen: PEP 836 was withdrawn after discussion…
The developmentThe maintainers withdrew the proposal intended to secure a path for CPython’s experimental JIT, leaving its future in the main branch in doubt.

A JIT Without a Support Plan

The dispute concerns more than whether a compiler can make Python programs run faster. Keeping a JIT in CPython’s main branch creates ongoing work for core developers, package maintainers and users, including maintaining compatibility and accounting for changes to behavior and interfaces. The council’s concern was that continued experimentation without a clear design and support plan could leave those groups uncertain about what the JIT would require.

For Python users, the immediate issue is the JIT’s status in CPython, not a confirmed change to everyday Python code or a promised performance improvement. If the code is removed, that would end this experimental implementation in the main branch; the supplied report does not establish what other projects or external JIT efforts would do. More broadly, the episode shows that a major implementation effort can remain subject to a formal decision about long-term maintenance, even after it has been included in a CPython release.

Products Worth Considering

As an affiliate, we earn on qualifying purchases.

From Python 3.13 to PEP 836

Brandt Bucher added the experimental JIT to CPython in early 2024, ahead of its inclusion with Python 3.13. Work proceeded under PEP 744, “JIT Compilation,” an informational PEP. As the report explains, that document informed the community but did not amount to formal consensus to proceed with the feature as a supported part of CPython.

In June, the steering council paused work on the JIT in the main branch pending an accepted standards-track proposal. The council said it wanted the proposal to address maintenance, compatibility and measurable goals, and to set out a timeline. It waited until after the Python 3.15 beta release before making its request, saying it was comfortable with the status quo for that release.

Feedback on PEP 836 included questions about its scope and detail. Some commenters argued that it should be split into two proposals: one setting out acceptance goals and another covering implementation plans. The council’s later statement said the PEP answered the questions in its request, but did not give sufficiently specific answers on support and performance. The maintainers’ withdrawal followed that discussion.

“The PEP did answer all of the questions that were highlighted in our request, although perhaps some less convincingly than others.”

— Python steering council, in a statement summarized by LWN

Removal Timing Remains Unconfirmed

The supplied report does not state that a removal commit has landed, give a date for removing the code, or quote a final steering-council order after PEP 836’s withdrawal. It describes the JIT as being on its way out and says development appears to have ended, but those descriptions should not be treated as confirmation that removal has already happened.

It is also unclear whether the maintainers will submit a revised or replacement proposal, whether the council will extend or otherwise alter its deadline, or whether work could continue outside CPython’s main branch. No new performance targets, support commitments or timeline are provided in the source material.

Council Decision and Code Status

The next clear developments to watch are a formal statement from the steering council and any change to the JIT’s status in CPython’s main branch. The council had said removal would follow if it did not receive an accepted PEP within six months; the source does not specify how the withdrawal affects the deadline or whether the council plans another review.

Until maintainers or the council publish a further update, readers should distinguish the proposal’s withdrawal from a confirmed removal date. Any replacement plan would need to address the council’s stated concerns about support, maintenance, compatibility and performance criteria.

Key Questions

What happened to CPython’s experimental JIT proposal?

The maintainers withdrew PEP 836, which was intended to set out a path for making the JIT a supported part of CPython.

Has the JIT already been removed from CPython?

The supplied report does not confirm that the code has been removed. It says the JIT appears to be on its way out, but gives no removal commit or date.

Why did the steering council want another PEP?

The council wanted clearer commitments on maintenance, compatibility, support and performance criteria before deciding whether the JIT should continue as an experiment in CPython’s main branch.

Will Python users see an immediate change?

No immediate user-facing change is established in the source material. The confirmed development is the withdrawal of PEP 836; the JIT’s removal timing and future status remain unsettled.

Source: lwn.net

You May Also Like

The Work By Valve’s Timur Kristóf On Improving Old AMD GPUs On Linux

Timur Kristóf presented work improving AMDGPU support for decade-old GCN 1.0 and 1.1 graphics cards, including display and power management fixes.

The State Of The Tech Industry In 2026

A report from The Pragmatic Engineer describes faster AI adoption in software development, alongside concerns about code quality and reliability.

A Practical Look At Live Previews For Membership Sales

A proposed live preview feed would show selected community activity on creator sales pages; its effect on membership conversions remains untested.

Building Resilient Systems With Sam Newman

A Pragmatic Engineer podcast episode features Sam Newman discussing distributed-system failures, microservices, observability and AI-era software work.