Python 3.15 Enters Alpha: What’s New in the Sixth Preview Release
Python 3.15.0 alpha 6 brings major features like a statistical profiler (PEP 799), unpacking in comprehensions (PEP 798), UTF-8 default encoding (PEP 686), and JIT performance improvements of 3–8%.
Introduction
The Python development team has released Python 3.15.0 alpha 6, the sixth of eight planned alpha previews for the upcoming 3.15 series. This early developer snapshot is designed to give the community a chance to test new features and bug fixes before the beta phase begins. It is not intended for production use—the code is still evolving and may change significantly before the final release.
Release Status and Timeline
Python 3.15 is currently in the alpha stage, which means new features can still be added. The alpha window closes on , when the beta phase starts. From that point, only bug fixes and documentation improvements will be accepted. The first release candidate is scheduled for , after which only critical fixes will be allowed. The final stable release is expected later in 2026.
Alpha 6 follows the pattern set by earlier previews: it provides a testing ground for both new functionality and the release process itself. Developers are encouraged to install this build, report any issues, and give feedback on the current feature set.
Major New Features in Python 3.15 (So Far)
Several PEPs (Python Enhancement Proposals) have already been accepted for 3.15. Here’s a look at the most notable additions.
PEP 799 – Statistical Sampling Profiler
A new high-frequency, low-overhead profiler is coming to Python. PEP 799 introduces a statistical sampling profiler that runs alongside your code, collecting performance data with minimal impact on execution speed. This built‑in profiler will help developers identify bottlenecks without the overhead of traditional tracing profilers. A dedicated profiling package will also accompany this feature for deeper analysis.
PEP 798 – Unpacking in Comprehensions
Comprehensions are getting more flexible. With PEP 798, you can now use the * (star) and ** (double‑star) unpacking operators directly inside list, dict, and set comprehensions. This change makes it easier to flatten nested structures or merge mappings within a single comprehension expression.
PEP 686 – UTF-8 as the Default Encoding
Python has moved to UTF-8 by default. PEP 686 finalises the transition that began in earlier versions: all text I/O now assumes UTF-8 encoding unless explicitly overridden. This simplifies cross‑platform development and eliminates many encoding‑related surprises.
PEP 782 – PyBytesWriter C API
For extension module authors, PEP 782 introduces a new PyBytesWriter C API that provides an efficient way to create Python bytes objects. Developers can now write bytes incrementally without the overhead of repeated memory allocations.
PEP 728 – TypedDict with Typed Extra Items
PEP 728 extends the popular TypedDict feature of the typing module. It allows specifying the type of additional keys that are not explicitly defined in the TypedDict. This gives type checkers more precision when working with dictionaries that have a known base shape but accept extra, typed entries.
JIT Compiler Upgrades and Performance Gains
The Just‑In‑Time (JIT) compiler in CPython has received significant enhancements. Early benchmarks show a 3–4% geometric mean performance improvement on x86‑64 Linux compared to the standard interpreter. On AArch64 macOS, the gains are even more pronounced: 7–8% speedup over the previous tail‑calling interpreter. These improvements come from better optimisation passes and more efficient code generation.
Improved Error Messages
Python continues its tradition of refining error messages. The 3.15 alpha releases include clearer and more actionable error texts, making debugging easier for both beginners and experienced developers. No specific examples are listed yet, but the changes span multiple areas of the language.
Next Steps and How to Get Involved
The next preview release, Python 3.15.0 alpha 7, is tentatively scheduled for . You can download alpha 6 from the official downloads page.
To stay up to date:
- Read the online documentation
- Follow PEP 790 – the 3.15 release schedule
- Report bugs at the CPython issue tracker
If you find a feature missing from this list that you consider important, the core developers welcome your feedback.
Support the Python Community
Python is made possible by volunteers and organisational contributions. You can help by:
- Donating directly to the Python Software Foundation
- Using GitHub Sponsors to fund Python development
- Volunteering your time to contribute to CPython or related projects
As is tradition, each release note ends with a literary excerpt. This time, we quote from Moby‑Dick: “By reason of these things, then, the whaling voyage was welcome; the great flood‑gates of the wonder‑world swung open…” Enjoy the new release!
Your release team: Hugo van Kemenade, Ned Deily, Steve Dower, Łukasz Langa (from Helsinki, where the snow falls softly).