Welcome to the early developer preview of Python 3.15! This alpha release offers a first look at exciting changes coming to the language. Whether you're a contributor, library author, or just curious about what's next, this Q&A breaks down the key highlights, schedules, and technical improvements in the 3.15 series.
What is Python 3.15.0a4 and why is it notable?
Python 3.15.0a4 is the fourth of seven planned alpha releases in the 3.15 development cycle. It was accidentally built against an earlier codebase (from December 23, 2025) instead of the intended January 13, 2026 snapshot. This led to an extra release, 3.15.0a5, which will be correctly built. Alpha versions are previews meant to help developers test new features and bug fixes; they are not recommended for production environments. Features may be added or modified until the beta phase begins on May 5, 2026, and can be removed up until the release candidate phase on July 28, 2026.
What are the major new features introduced in Python 3.15 series so far?
Several significant additions are already part of the 3.15 development. Among them:
- PEP 799 – A new high-frequency, low-overhead statistical sampling profiler along with a dedicated profiling package.
- PEP 686 – Python now uses UTF-8 as the default encoding across the board.
- PEP 782 – A new PyBytesWriter C API that simplifies creating Python bytes objects from C code.
- JIT compiler upgrades – Significant performance gains: 3–4% geometric mean improvement on x86-64 Linux, and 7–8% speedup on AArch64 macOS.
- Enhanced error messages for better debugging.
More features are expected before the beta phase.
What is PEP 799 and how does it improve profiling?
PEP 799 introduces a statistical sampling profiler designed for high-frequency, low-overhead execution monitoring. Unlike traditional tracing profilers that instrument every function call or line, this sampler periodically inspects the call stack, providing a representative profile with minimal runtime impact. It comes bundled with a dedicated profiling package that makes it easy to collect and analyze performance data. This is particularly valuable for identifying hotspots in long-running or production-scale Python applications without significantly slowing them down.
What changes does PEP 686 bring regarding default encoding?
PEP 686 makes UTF-8 the default encoding for Python. Historically, Python used ASCII or locale-dependent encodings, which could cause subtle bugs when reading or writing files with non-ASCII text. Starting with Python 3.15, the default encoding for text files, standard input/output, and many other text operations becomes UTF-8. This change aligns Python with modern best practices and simplifies cross‑platform development, as UTF-8 is now universally supported. Developers who rely on a non-UTF-8 locale may need to explicitly specify an encoding to preserve backward compatibility.
What improvements have been made to the JIT compiler?
The JIT (Just-In-Time) compiler has received a major upgrade in Python 3.15. On x86-64 Linux, the new JIT delivers a geometric mean performance improvement of 3–4% over the standard interpreter. On AArch64 macOS, the speedup is even greater at 7–8% compared to the tail-calling interpreter. These gains come from better code generation, more aggressive inlining, and optimized handling of common bytecode patterns. While still tier-0 (no dynamic optimization), this iteration makes Python more competitive for compute‑intensive workloads without sacrificing compatibility.
What is the release schedule? When can we expect beta and final versions?
The Python 3.15 release schedule follows a predictable cadence. After the seventh alpha (3.15.0a7), the project moves to beta on May 5, 2026. Beta releases freeze feature additions, focusing on bug fixes and stabilization. The first release candidate is expected on July 28, 2026, after which only critical issues will be addressed. The final stable release of Python 3.15 is planned for October 2026. An extra alpha release (3.15.0a5) was created due to the build issue mentioned earlier, but does not change the overall schedule. For full details, consult PEP 790.