Python 3.15 Beta Marks the Start of the Feature Freeze
Python 3.15 has entered its beta phase, triggering the traditional feature freeze that locks in core changes ahead of the planned October 1 release. For developers, this milestone means the language’s major feature set for this cycle is now largely set, and focus shifts toward stabilizing, testing, and optimizing what is already in place. The development model intentionally blocks new features once the first beta is out, reducing the risk of late-breaking regressions. Teams that track CPython closely can now begin serious compatibility and performance testing against the beta with some confidence that APIs and semantics will not change dramatically. This feature freeze release cadence also offers extension authors a predictable runway to validate builds, adapt to new capabilities like free-threaded CPython, and identify any breaking changes before Python 3.15 reaches general availability later in the year.
JIT Compiler Improvements Deliver Notable Python Performance Gains
The headline change in the Python 3.15 beta is a significantly improved just-in-time (JIT) compiler, building on the experimental engine introduced in 3.14. While the earlier JIT was not recommended for production and could even slow some workloads, the new iteration shows more compelling results. On x86-64 Linux, the Python core team reports an 8–9 percent mean performance improvement over the standard CPython interpreter. On Apple silicon macOS, the gains are even higher at 12–13 percent. These figures are still subject to revision before the final release, and some workloads may run up to 15 percent slower, underscoring that JIT behavior remains workload-dependent. Nonetheless, this is a meaningful step for Python performance optimization, especially for long-running processes where JIT compilation has time to pay off, and it signals a growing maturity of Python’s JIT strategy inside CPython itself.
Free-Threaded CPython, Stable ABI and Lazy Imports Shape the Ecosystem
Beyond raw JIT compiler improvements, Python 3.15 beta introduces several structural enhancements aimed at making high-performance and concurrent Python more practical. The free-threaded CPython build, which first arrived in 3.14 by enabling removal of the global interpreter lock, now gains a stable application binary interface. This allows C extensions to be compiled once and reused across multiple minor free-threaded releases, albeit with access only to a subset of the full CPython API. Extension maintainers can still target the existing stable ABI or both paths as needed. Python 3.15 also adds explicit lazy imports, letting developers defer module loading until first use, which can notably improve startup times without resorting to awkward workarounds. Complementing these changes, UTF-8 becomes the default text encoding, and a new zero-overhead sampling profiler, Tachyon, offers high-frequency performance analysis that is suitable even for production workloads.
Incremental Garbage Collector Rolled Back, Future Still Open
While Python 3.15 beta advances several performance features, one notable absence is the incremental garbage collector that debuted in 3.14. That collector aimed to improve responsiveness by reclaiming memory less frequently, but reports of memory leaks led to its removal in Python 3.14.5. As a result, it does not appear in the 3.15 line, and developers should not expect incremental GC benefits in this release. The core team has indicated that any future attempt to reintroduce incremental garbage collection, potentially in 3.16, will go through the full PEP process and more extensive evaluation. For now, this rollback simplifies the runtime behavior profile for teams testing the Python 3.15 beta, as they can focus on the new JIT, lazy imports, and free-threaded capabilities without having to account for a changing garbage collection strategy in their performance and reliability assessments.
What Python 3.15 Beta Means for Developers Right Now
For developers, the Python 3.15 beta is a strong signal to begin hands-on experimentation with the next wave of runtime improvements. Applications that are CPU-bound or long-lived stand to benefit most from the enhanced JIT compiler, especially when combined with lazy imports and the new Tachyon profiler for diagnosing hotspots. Teams with native extensions should evaluate the new stable ABI for free-threaded builds and consider how removing the global interpreter lock may influence their concurrency models. At the same time, the absence of incremental garbage collection means memory behavior should be familiar to those coming from recent 3.14 patch releases. Because the language is now in feature freeze, early adopters can reasonably invest in testing against the beta with fewer surprises ahead, using this window to validate performance, compatibility, and deployment workflows before Python 3.15 reaches its planned general release.
