Python 3.13: Disabling the GIL and Exploring the JIT Foundation
The New Interactive Interpreter and REPL Experience
maxsplit as MaxSplit, the

Furthermore, the REPL now supports direct commands. You no longer need to call exit(), quit(), or help() as functions with parentheses. Simply typing the word executes the command. For those pasting large code blocks, the new "paste mode" (toggled with F3) prevents the interpreter from misinterpreting indentation during the transfer, a common headache in previous versions.
Refined Typing and Module Enhancements
Static typing continues to evolve with the inclusion of ReadOnly qualifier for TypedDict. This allows developers to explicitly mark dictionary items as immutable for type checkers, though Python still ignores these at runtime.
from typing import TypedDict, ReadOnly
class Point2D(TypedDict):
x: float
y: float
label: ReadOnly[str]
p = Point2D(x=1.1, y=2.2, label="Origin")
# Type checkers will flag the next line:
p["label"] = "New Label"
The standard library also saw the removal of 19 "dead batteries"—deprecated modules like crypt, telnetlib, and chunk. Meanwhile, the math module gained a fused multiply-add (FMA) operation. math.fma(x, y, z) computes (x * y) + z with a single rounding step, preserving precision that is usually lost in intermediate calculations.
Incremental Garbage Collection and Performance Foundations
This version also introduces an experimental Just-In-Time (JIT) compiler. When enabled via the --enable-experimental-jit build flag, it converts some bytecode into machine code. While current benchmarks show negligible speedups—and even some regressions in I/O heavy tasks—this JIT serves as the structural foundation for massive performance leaps in future releases like Python 3.14.
The Free-Threaded Interpreter and GIL Removal
A separate executable now offers a "free-threaded" mode, allowing you to disable the
However, this comes with a trade-off. Single-threaded code currently runs slightly slower in the free-threaded version due to the overhead of new thread-safety mechanisms. Developers must decide if the parallel throughput justifies the single-core performance hit. It remains an experimental feature, requiring specific installation (e.g., 3.13.0t via