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 set a six-month deadline for an accepted proposal and said the JIT code would otherwise have to leave CPython’s main development branch; the proposal’s withdrawal puts the project’s future there in doubt.

The maintainers of CPython’s experimental just-in-time compiler have withdrawn PEP 836, the proposal created in response to demands from Python’s steering council for a clearer plan for the project. The council had said the JIT must have an accepted proposal within six months or its code would have to be removed from CPython’s main development branch, leaving the experiment’s future there uncertain.

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 and published for community feedback on July 3. It followed the council’s request for a standards-track proposal addressing the JIT’s maintenance, compatibility and success measures. The maintainers have since withdrawn it after months of discussion.

In a statement posted September 21, the steering council said PEP 836 answered the questions in its request, “although perhaps some less convincingly than others.” The council said the proposal lacked enough detail on support plans and performance criteria, and was vague or overly optimistic in other areas. Its list of concerns included memory use, security and making the JIT practical to adopt on new platforms.

The council framed its decision as a question about whether the JIT should remain an experiment in CPython’s main branch, not simply whether it should eventually qualify as a supported feature. It said experimentation in that branch can create uncertainty for core developers, package maintainers and users as behavior and API surfaces change. The supplied report does not establish that the JIT has already been removed.

At a glance
updateWhen: PEP 836 was withdrawn after months of d…
The developmentCPython JIT maintainers withdrew the proposal intended to satisfy the steering council’s requirements for continuing the experiment in the main branch.

Why the JIT’s Main-Branch Status Matters

The immediate consequence is uncertainty for developers tracking a feature that has been part of CPython since 2024. The council’s requirement concerns the JIT’s place in the shared development branch: without an accepted proposal meeting its expectations, the code faces removal under the deadline the council set. That is different from a finding that JIT compilation has no future in Python or that all related work must stop.

The dispute also concerns how experimental work is managed in CPython. A compiler feature can affect runtime behavior, debugging, profiling, memory use and platform support. If those effects are not well specified, maintainers and people distributing Python builds may have difficulty planning around them. The council’s request sought concrete commitments and criteria before the experiment continued in the main branch.

For Python users, the near-term issue is not a confirmed change to an installed interpreter, but whether the project will remain in the development code and under what conditions. The withdrawal leaves no active PEP 836 plan before the council, according to the source material, and the eventual outcome depends on what the maintainers and council do next.

Products Worth Considering

Bose TV Speaker (2nd Gen) Compact Soundbar with Bluetooth and HDMI-ARC, Black

Bose TV Speaker (2nd Gen) Compact Soundbar with Bluetooth and HDMI-ARC, Black

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, and it appeared in Python 3.13. Work had proceeded under PEP 744, “JIT Compilation,” an informational document drafted by Bucher and Ostrowski. An informational PEP describes a topic but does not record formal approval to proceed with a feature.

In June, the steering council paused JIT work in CPython’s main branch pending an accepted standards-track PEP. Council member Thomas Wouters said there was no single event that triggered the request; he described it as a discussion that had been underway and cited the need to keep JIT work from interfering with other projects. He also pointed to efforts involving instrumentation, debugging and profiling, as well as external and JIT-adjacent systems.

The council waited until after the Python 3.15 beta release, Wouters said, to make clear it was comfortable with the status quo for that release. It then gave the JIT maintainers six months to submit and secure acceptance of a proposal explaining the case for a supported, non-experimental JIT, including its guarantees, maintenance commitments and impact on redistributors.

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

— Python steering council, in its September 21 statement

The JIT’s Future Remains Unsettled

The source material says the maintainers withdrew PEP 836, but it does not specify whether they plan to submit a revised proposal, split the material into multiple PEPs or take another approach. Nor does it provide a final council decision on removing the JIT code after the withdrawal. The council had set a six-month deadline, but the supplied material does not give the exact deadline date or say how the withdrawal affects its timing.

It is also not clear which of the council’s requested points the maintainers might be prepared to address in a future plan. The council’s concerns included support commitments, performance measures, memory, security and platform parity. Until there is a further statement or accepted proposal, neither continued development in the main branch nor removal should be described as a completed outcome.

A New Proposal or Code Removal

The next public milestone would be a statement from the JIT maintainers or the steering council clarifying whether a replacement or revised PEP is planned and how the original six-month deadline applies. If the council does not accept a proposal that answers its concerns within the required period, it said the JIT code would need to be removed from CPython’s main branch. No replacement proposal or removal date is confirmed in the supplied report.

Readers following the project should watch for updates to the PEP discussion and formal council decisions. Until then, the established facts are limited: the original proposal has been withdrawn, the council identified areas where it wanted stronger detail, and the JIT’s status in CPython’s development branch remains unresolved.

Key Questions

Has the experimental JIT already been removed from CPython?

No removal is confirmed in the supplied report. It says the maintainers withdrew PEP 836 and that the council had said the code would have to be removed if an accepted proposal was not delivered within six months.

What was PEP 836 meant to do?

PEP 836 was a standards-track proposal intended to address the steering council’s requests about the JIT’s maintenance, compatibility, success measures and possible status as a supported CPython feature.

Why did the steering council raise concerns?

The council said the proposal was not specific enough about support plans and performance criteria and was vague or too optimistic in some areas. Its stated concerns also included memory, security and adoption on new platforms.

Does withdrawing PEP 836 mean Python is ending all JIT work?

That is not established. The reported condition concerns the JIT code in CPython’s main branch. The source does not say that all JIT-related work or external JIT projects are ending.

Source: lwn.net

You May Also Like

Passkeys Are Not A Trap

Scott Helme disputes claims that passkeys expose users to hidden device checks, saying synced passkeys do not provide websites with attestation.

Can Ironclad Help Move Computer Use Forward?

OpenAI has a page titled “Advancing computer use with Ironclad,” but the available information does not establish what the project is or what it does.

Companies And Users: Here’s How To Face AI-Accelerated Cyberattacks

U.S. agencies and Microsoft report AI-assisted attacks on industrial systems and cloud tenants. Here’s what is confirmed and what defenders can do.

Breaking Up With Google Play: Why Conversations Is Now Free

Interest is rising around Conversations and Google Play, but the reason is unconfirmed. The supplied trend signal does not establish a change in the app’s price or availability.