Python 3.13 Release Notes (Verified)
Introduction
Python 3.13 is a significant release that includes numerous improvements, optimizations, and new features. This document provides an overview of the changes and updates in Python 3.13.
New Features
dataclasses Features: The dataclasses module has been updated with new features, including support for frozen dataclasses and improved handling of default values.Changes and Updates
zoneinfo for working with time zones and graphlib for working with graphs.asyncio module.math and statistics Modules: The math and statistics modules have been updated with new functions and improvements.Backward Incompatible Changes
distutils module and the urllib2 module.warnings Module: The warnings module has been updated to handle warnings more consistently and provide more informative warning messages.str and bytes Methods: Some methods of the str and bytes types have been updated to behave more consistently.Conclusion
Python 3.13 is a significant release that includes many improvements, optimizations, and new features. This document provides an overview of the changes and updates in Python 3.13. For more information, see the Python 3.13 documentation.
Released on October 7, 2024, Python 3.13 introduces major performance-focused, experimental features including a Free-Threaded (No-GIL) mode and a preliminary JIT compiler. Key updates also include an improved, colorized interactive REPL, enhanced error messages, official mobile support for iOS/Android, and the removal of deprecated modules. For the full release notes, visit the official Python documentation Python documentation AI responses may include mistakes. Learn more What's New In Python 3.13 — Python 3.14.4 documentation python 313 release notes verified
Arguably the biggest headline feature is the experimental removal of the Global Interpreter Lock (GIL). For 30 years, the GIL prevented true parallel execution of Python threads on multiple CPU cores.
In Python 3.13, you can compile CPython with the --disable-gil flag to produce a free-threaded build. In this mode, multiple threads can execute Python code simultaneously on different cores.
Key details (verified):
-X gil=0 or PYTHON_GIL=0 environment variable to disable the GIL at runtime. By default, even in a free-threaded build, the GIL is enabled.object and type are safe.Verdict: Do not use this in production. But if you are a library maintainer, now is the time to test your C extensions for thread-safety. Python 3
Microbenchmarks show speedups of 5-25% for pure Python loops and arithmetic. Real-world code sees more modest gains. The JIT is opt-in and still under heavy development.
Verified Source: PEP 744 – JIT Compilation
For CPU-bound, multi-threaded workloads, this could remove the GIL bottleneck. However, the default build still uses the GIL. Expect performance improvements only in specific scenarios, and expect some single-threaded slowdowns (10-20% in early benchmarks).
Verified Source: PEP 703 – Making the Global Interpreter Lock Optional (Experimental) Improved Performance : Python 3
| Feature | Status in 3.13 | Verification |
|---------|----------------|---------------|
| No-GIL (free-threaded) build | ✅ Experimental (--disable-gil) | Official docs: "experimental feature; not recommended for production" |
| JIT Compiler | ✅ Experimental (copy-and-patch JIT) | Added; can be disabled via --disable-jit |
| PEP 702 – @warnings.deprecated | ✅ New decorator | Verified |
| PEP 703 – Making GIL optional | ✅ Step 1 (free-threaded build) | Verified |
| PEP 705 – ReadOnly typing | ✅ For TypedDict | Verified |
| PEP 701 – F-string improvements | ✅ Fully implemented (from 3.12 finalized) | Backported to 3.12; fully stable in 3.13 |
| PEP 697 – UNTRACED exceptions | ✅ New exception flag | Verified |
Compiler performance: Tier 2 optimizer improvements → 5–15% faster for some pure-Python loops.