Python Weekly — July 27, 2026: The JIT Answers Its Six-Month Clock
A process-heavy week after EuroPython: PEP 836 "JIT Go Brrr" answers the Steering Council's six-month deadline, Guido and Jeremy Hylton file PEP 840 on class-namespace name resolution, Python 3.15.0rc1 is due August 4, and Django ships security fixes in 6.0.7 and 5.2.16.
The core team has cleared out of Kraków after EuroPython, and the week that followed was defined by process rather than pixels: a fresh PEP to save the JIT, a new name-resolution proposal from Guido, and the countdown to the first 3.15 release candidate. Here's what mattered in the Python world over the past week.
PEP 836 makes the case for a supported JIT
After June's Steering Council ultimatum — produce an accepted standards-track PEP within roughly six months or have the code removed from CPython's main branch — Savannah Ostrowski, Brandt Bucher and Ken Jin answered with PEP 836, "JIT Go Brrr," which lays out a roadmap to an officially supported JIT compiler. It sets measurable targets for performance, tooling, platform support and maintenance, including a 20% geometric-mean speedup for Python 3.17 with the JIT plus free threading, measured against the free-threading interpreter alone. source
The JIT still doesn't play nicely with threads
Real Python's July roundup underscored the central technical hurdle behind PEP 836: the JIT still disables itself the moment you start threads, so it doesn't yet cooperate with free-threaded Python. Making the two flagship projects work together is exactly the guarantee the new PEP will need to nail down. The same roundup flagged a candid look at Python Software Foundation finances, Django's hunt for its first Executive Director, and a guided tour of free threading's internals. source
Guido and Jeremy Hylton propose PEP 840
Filed on July 15, PEP 840, "Name Resolution in Class Namespaces," from Jeremy Hylton and Guido van Rossum revisits the long-standing quirks of how names resolve inside class bodies. It targets Python 3.16 and is firmly at the "help us decide" stage, so expect discussion rather than a quick verdict — but it's a notable proposal from two of Python's most senior voices. source
Next stop: Python 3.15.0rc1 on August 4
With beta 4 signed off "from the sunny EuroPython sprints in Kraków" on July 18 — the final planned beta of the cycle, carrying roughly 298 bugfixes on top of features like explicit lazy imports (PEP 810), a built-in frozendict (PEP 814) and UTF-8 as the default encoding (PEP 686) — the release train now points at the first release candidate, scheduled for August 4. That marks the shift from feature work to final stabilization. source
Django ships security fixes in 6.0.7 and 5.2.16
On the ecosystem side, the Django team's early-July security releases remain worth a look if you haven't upgraded: Django 6.0.7 and 5.2.16 address three low-severity issues, including a cache-middleware flaw where responses that set a cookie could be stored in a shared cache when the incoming request already carried an unrelated cookie, plus a buffer over-read in GDALRaster. Three CVEs were assigned. If you run GeoDjango or cache full pages, patch. source
That's the week — quieter on releases, busier on governance. See you next Monday.