Python releases version 3.14 – with cautious free-threaded support

JIT compiler included but experimental and can slow performance

The Python team has released version 3.14, with big new features including free threading support, the ability to use concurrent interpreters, improved debugger support, and an opt-in new interpreter which improves performance by 3 to 5 percent.

Open source banner

Greg Kroah-Hartman explains the Cyber Resilience Act for open source developers

READ MORE

Free threading in Python, which disables the global interpreter lock (GIL), is now a complete implementation of PEP (Python Enhancement Proposal) 703, a much anticipated feature which makes concurrent programming in Python natural. Free-threaded mode also enables a specialized adaptive interpreter, originally part of the Faster CPython project led by Mark Shannon at Microsoft (though the company axed its support in May).

Free threading support is not installed by default

Free threading support is not installed by default

That said, the approach to free-threaded Python remains cautious. The big problem is that existing code may break (particularly when using the C API since it is the application binary interface, or ABI, that is not compatible), and a second issue is that single-threaded code runs between 5 to 10 percent slower when using the free-threaded interpreter.

The consequence is that although free-threaded Python is now fully supported, the free-threaded interpreter is not installed by default. On the Mac, the installer requires it to be selected as a customized install, and on Windows, using a new preview Python install manager from the Windows Store, the user needs to add the free-threaded install using: py install 3.14t . Once installed, the free-threaded build must be specified with a command such as python3.14t, otherwise the single-threaded build will run.

The new preview install manager is in the Windows Store

The new preview install manager is in the Windows Store

Other goodies in Python 3.14 include:

  • Template string literals, a new mechanism for string interpolation which enables easier sanitization of user input.
  • Support for multiple interpreters in the same process, with performance and isolation benefits for some kinds of concurrent programming.
  • A new debugging interface which enables tools to attach to Python processes without stopping them.
  • A new opt-in interpreter which improves performance by between 3 and 5 percent.
  • Support for Zstandard compression, a fast and efficient format developed at Facebook, in the Python standard library.
  • A new command-line interface for inspecting running Python processes using asynchronous tasks.
  • An experimental JIT compiler for macOS and Windows.

While the JIT compiler sounds exciting, it is not recommended for production use and can actually slow down performance is some cases, as well as not working well with some debuggers. Free-threaded Python builds do not support the JIT compiler.

Full details of what is new in Python 3.14 are in the release notes

More about

TIP US OFF

Send us news


Other stories you might like