Python 3.13 beta 1 is out, and I've been working on the openSUSE Tumbleweed package to get it ready for the release.
Installing python 3.13 beta 1 in Tumbleweed
If you are adventurous enough to want to test the python 3.13 and you are using openSUSE Tumbleweed, you can give it a try and install the current devel package:
# zypper addrepo -p 1000 https://download.opensuse.org/repositories/devel:languages:python:Factory/openSUSE_Tumbleweed/devel:languages:python:Factory.repo
# zypper refresh
# zypper install python313
What's new in Python 3.13
Python interpreter is pretty stable nowadays and it doesn't change too much to keep code compatible between versions, so if you are writing modern Python, your code should continue working whit this new version. But it's actively developed and new versions have cool new functionalities.
- New and improved interactive interpreter, colorized prompts,
multiline editing with history preservation, interactive help with
F1
, history browsing withF2
, paste mode withF3
. - A set of performance improvements.
- Removal of many deprecated modules: aifc, audioop, chunk, cgi, cgitb, crypt, imghdr, mailcap, msilib, nis, nntplib, ossaudiodev, pipes, sndhdr, spwd, sunau, telnetlib, uu, xdrlib, lib2to3.
Enabling Experimental JIT Compiler
The python 3.13 version will arrive with an experimental functionality
to improve performance. We're building with the
--enable-experimental-jit=yes-off
so it's disabled by default but it
can be enabled with a virtualenv before launching:
$ PYTHON_JIT=1 python3.13
Free-threaded CPython
The python 3.13 has another build option to disable the Global
Interpreter Lock (--disable-gil
), but we're not enabling it because
in this case it's not possible to keep the same behavior. Building
with disabled-gil
will break compatibility.
In any case, maybe it's interesting to be able to provide another version of the interpreter with the GIL disabled, for specific cases where the performance is something critical, but that's something to evaluate.
We can think about having a python313-nogil
package, but it's not
something trivial to be able to have python313
and python313-nogil
at the same time in the same system installation, so I'm not planning
to work on that for now.
Comments !