Python 3.13 marks the beginning of the end for the GIL by introducing an experimental .
>>> unknown_var NameError: name 'unknown_var' is not defined. Did you mean: 'unknown_var_x'? # actually useful now
It is crucial to manage expectations here. The performance team has been transparent that this is the foundation for future improvements. The speedups in this initial release are modest—in the range of 2–5% in many benchmarks—and the JIT is currently . To enable it, you must compile CPython from source with specific flags. This is not yet a feature you can simply toggle on in a standard installer, but its inclusion is the first step towards a future where Python code can run significantly faster. python 313 release notes verified
Emscripten (the compilation target for WebAssembly) is no longer an officially supported platform, though Pyodide continues to provide Emscripten support independently.
introduces default values for type parameters. TypeVar , ParamSpec , and TypeVarTuple now accept a default argument, simplifying generic class definitions. This aligns the typing system with function parameters, where defaults have long been standard. Python 3
Continuing the trend from recent releases, Python 3.13 improves compiler diagnostics to save developer debugging time. Key Enhancements
import sys
The default interactive shell has received a massive overhaul, moving away from the basic prompt to a more productive environment.
: Syntax highlighting is natively enabled within the interactive terminal. # actually useful now It is crucial to
– The typing.override decorator now raises errors if the method does not actually override a parent method.