Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.debian.maint.python > #17188
| From | Matthias Klose <doko@debian.org> |
|---|---|
| Newsgroups | linux.debian.bugs.dist, linux.debian.maint.python |
| Subject | Bug#1117718: Introducing Free-Threaded Python to Debian |
| Date | 2025-11-22 13:00 +0100 |
| Message-ID | <LTUrv-eT9U-1@gated-at.bofh.it> (permalink) |
| References | <LEg30-45La-5@gated-at.bofh.it> <LRMHL-dqif-5@gated-at.bofh.it> <LEg30-45La-5@gated-at.bofh.it> <LRMHL-dqif-5@gated-at.bofh.it> |
| Organization | linux.* mail to news gateway |
Cross-posted to 2 groups.
I am not keen introducing this before 3.14 is the default. This way, we can concentrate on the 3.14 transition first. Then we can look at the free-threaded build, and also have a chance to look for regressions. Matthias On 11/16/25 16:16, ben0i0d wrote: > Hello everyone, > In my previous email (https://lists.debian.org/debian-python/2025/11/ > msg00002.html), I introduced my work on bringing free-threaded Python to > Debian. I'm now pleased to announce that the integration of nogil with > the GIL version has been successfully completed and has passed necessary > testing. > Benefits of Introducing Free-Threaded Python: > 1.Significant improvement in multi-threaded parallel performance > 2.No need to migrate to multiprocessing or alternative languages - > currently multiprocessing is required to utilize multi-core performance, > but it comes with substantial overhead > 3.Reduced maintenance burden for C/C++ extensions - currently complex > GIL management or custom thread pools are needed to work around the GIL > 4.Alignment with future direction - PEP 703 has been accepted, and > upstream has confirmed that No-GIL will be the default in the future > Current Progress: > A merge request has been opened on salsa: https://salsa.debian.org/ > cpython-team/python3/-/merge_requests/41 > An immediately testable package repository is available at: https:// > salsa.debian.org/ben0i0d/python3t-repo > The related Debian Bug report (#1117718) is also relevant to this work. > Design Decisions: > Based on discussions with Stefano, the current approach: > -Maintains isolated standard libraries > -Does NOT isolate dist-packages > -Is not a separate new package, but rather a variant of python3 > My guiding principle remains: introducing free-threaded Python should > not create new problems, break existing functionality, or hinder > anyone's work. > Technical Implementation Details: > Key changes in python3.14: > 1.Introduced ABI variant control: 'ABI_VARIANTS := gil nogil', with '-- > disable-gil --with-suffix=t' enabled for nogil > (Note: '--enable-experimental-jit' cannot be used with '--disable-gil') > 2.Build system optimization: Implemented duplication of nogil tasks via > '$(foreach abi,$(ABI_VARIANTS),$(eval $(call BUILD_STATIC,$(abi))))' to > avoid code redundancy > 3.Test adjustments: Added 'TEST_EXCLUDES += test_tools' since 'Tools/ > freeze/test/Makefile' uses hardcoded 'python' > 4.venv fix: Added 'add-abiflags-sitepackages.diff' to fix venv > sitepackages recognition after nogil build (this issue has been fixed > upstream and the patch will be removed after 3.14.1 release) > 5.Minimal installation: The nogil version excludes documentation, idle, > tk, desktop, binfmt, etc., ensuring it's an extension rather than a > rewrite of the original python3 > 6.Code readability: Made harmless text adjustments to rules file, such > as consolidating scattered 'TEST_EXCLUDES +=' statements > Build Process: > git clone git@salsa.debian.org:ben0i0d/python3t.git > cd python3t > git checkout python3 > uscan --download-current-version --verbose > dpkg-source -b . > sudo env DEB_BUILD_OPTIONS="nocheck nobench" pbuilder build ../ > python3.14_3.14.0-5.dsc 2>&1 | tee ../log.txt > Test Environment: > -OS: Debian GNU/Linux forky/sid (forky) x86_64 > -CPU: AMD Ryzen 5 9600X (12) @ 5.68 GHz > -Memory: 30.47 GiB > -Kernel: 6.16.12+deb14+1-amd64 > Test Results: > 1.Basic Performance Test > # GIL version, single-threaded > python3.14 benchmark.py --n 512 --threads 1 > Elapsed: 1.836 s > # GIL version, 8 threads > python3.14 benchmark.py --n 512 --threads 8 > Elapsed: 2.026 s > # nogil version, single-threaded > python3.14t benchmark.py --n 512 --threads 1 > Elapsed: 2.408 s > # nogil version, 8 threads > python3.14t benchmark.py --n 512 --threads 8 > Elapsed: 0.674 s > 2.NumPy Compatibility Test > Both versions successfully create virtual environments and install numpy: > GIL environment: > python3.14 -m venv gil > source gil/bin/activate > pip install numpy > # Runs normally, Elapsed: 0.003 s > nogil environment: > python3.14t -m venv nogil > source nogil/bin/activate > pip install numpy > # Runs normally, Elapsed: 0.009 s > Important Notes: > -The GIL version build results are identical to the current master branch > -Building only the GIL version is supported, but building only nogil is > not (ensuring nogil doesn't become default) > -No backport to python3.13 is planned since nogil support there is still > experimental > Regarding dist-packages: > I understand some colleagues have concerns about not isolating dist- > packages. Currently, I recommend users employ the nogil version within > venv environments. I will fully support subsequent migration efforts to > help more people transition smoothly. > The current implementation requires more testing and refinement. I'm not > a CPython expert, so I genuinely welcome valuable suggestions from the > community and commit to actively participating in improvement efforts. > Please refer to the attachments for detailed build logs and test scripts. > I look forward to your feedback! > Best regards, > *Xu Chen (ben0i0d)*
Back to linux.debian.maint.python | Previous | Next — Next in thread | Find similar
Bug#1117718: Introducing Free-Threaded Python to Debian Matthias Klose <doko@debian.org> - 2025-11-22 13:00 +0100
Re: Bug#1117718: Introducing Free-Threaded Python to Debian Jerome Kieffer <Jerome.Kieffer@esrf.fr> - 2025-11-24 13:30 +0100
Re: Bug#1117718: Introducing Free-Threaded Python to Debian Matthias Klose <doko@debian.org> - 2025-11-24 14:30 +0100
csiph-web