Python 3.15 brings significant improvements across performance, core features, and developer tools. The startup time is now much faster thanks to explicit lazy imports, and the experimental JIT compiler provides a 7 to 12 percent speed boost depending on your operating system. The update introduces new built-in types like frozendict and sentinel, and officially makes UTF-8 the default text encoding.
For developers, the standard library now includes better error messages, more console colors, and a new high-frequency profiling tool called Tachyon to help measure and optimize code performance. The type hinting system is more flexible, and there are major updates to the C API. Most notably, it includes a stable ABI for free-threaded builds, which is a massive step forward for running efficient multi-threaded Python code without the Global Interpreter Lock.
Additionally, official macOS installers now include free-threading support by default, Windows 64-bit binaries use a more optimized tail-calling interpreter, and frame pointers are enabled by default for easier system-level debugging. This specific Release Candidate 3 is a surprise extra release added to fix a few last-minute bugs related to the new lazy imports before the final version is launched.
- PEP 810: Explicit lazy imports for faster startup times
- PEP 814: Add frozendict built-in type
- PEP 661: Add sentinel built-in type
- PEP 798: Unpacking in comprehensions
- PEP 686: Python now uses UTF-8 as the default encoding
- PEP 829: Package startup configuration files
- PEP 799: Tachyon: High frequency statistical sampling profiler / A dedicated profiling package
- PEP 728: TypedDict with typed extra items
- PEP 747: Annotating type forms with TypeForm
- PEP 800: Disjoint bases in the type system
- PEP 803, 820, 793: Stable ABI for free-threaded builds and related C API
- PEP 782: A new PyBytesWriter C API to create a Python bytes object
- PEP 788: Protection against finalization in the C API
- PEP 831: Frame pointers are enabled by default for improved system-level observability
- PEP 790: 3.15 release schedule