Skip to content

gh-146636: Add Free-threaded Stable ABI migration guide#150580

Open
encukou wants to merge 27 commits into
python:mainfrom
encukou:abi3t-migration-sq
Open

gh-146636: Add Free-threaded Stable ABI migration guide#150580
encukou wants to merge 27 commits into
python:mainfrom
encukou:abi3t-migration-sq

Conversation

@encukou
Copy link
Copy Markdown
Member

@encukou encukou commented May 29, 2026

clin1234 and others added 20 commits May 17, 2026 05:33
This document provides detailed instructions on how to use the Free Threading Stable ABI in CPython, including guidelines for module initialization, API usage, and thread safety considerations.
Clarified access restrictions on PyObject members and recommended functions for type and reference count manipulation.
Clarified that direct access to PyObject members is prohibited.
Co-authored-by: da-woods <dw-git@d-woods.co.uk>
Updated documentation to clarify the identification of free-threaded limited API builds in C, including changes to macros and initialization methods.
Updated the documentation to clarify the use of the stable ABI and GIL management in Python extensions, including changes to member access and initialization methods.
Removed sections on API guidelines, critical sections, and thread safety from the documentation.
@read-the-docs-community
Copy link
Copy Markdown

read-the-docs-community Bot commented May 29, 2026

Comment thread Doc/howto/abi3t-migration.rst Outdated
@ngoldbaum
Copy link
Copy Markdown
Contributor

Thanks, this looks great! I'll probably use the tables in my EuroPython talk.

I'm hopeful that we'll be able to ship abi3t support in the next releases of PyO3 and Maturin (see PyO3/pyo3#5807 and PyO3/maturin#3113).

I am also planning to add a section to the free-threaded guide about building abi3t extensions, including practicalities like dealing with bindings generators and the NumPy C API. When that is ready, maybe we can just link there for all the ecosystem-wide details that don't belong in the CPython docs?

Comment thread Doc/howto/abi3t-migration.rst Outdated
Comment thread Doc/howto/abi3t-migration.rst Outdated
Comment thread Doc/howto/abi3t-migration.rst Outdated
Comment thread Doc/howto/abi3t-migration.rst Outdated
Comment thread Doc/howto/abi3t-migration.rst Outdated
Comment thread Doc/howto/abi3t-migration.rst Outdated
Comment thread Doc/howto/abi3t-migration.rst Outdated
Comment thread Doc/howto/abi3t-migration.rst Outdated
Comment thread Doc/howto/abi3t-migration.rst Outdated
encukou and others added 3 commits June 1, 2026 14:15
Co-authored-by: da-woods <dw-git@d-woods.co.uk>
Co-authored-by: Stan Ulbrych <stan@python.org>
@encukou
Copy link
Copy Markdown
Member Author

encukou commented Jun 1, 2026

Thanks for the reviews and suggestions!

I am also planning to add a section to the free-threaded guide about building abi3t extensions, including practicalities like dealing with bindings generators and the NumPy C API. When that is ready, maybe we can just link there for all the ecosystem-wide details that don't belong in the CPython docs?

That sounds great!

Comment thread Doc/howto/abi3t-migration.rst
Comment thread Doc/howto/abi3t-migration.rst Outdated
Comment thread Doc/howto/abi3t-migration.rst Outdated
Comment thread Doc/howto/abi3t-migration.rst Outdated
Comment thread Doc/howto/abi3t-migration.rst Outdated
Comment thread Doc/howto/abi3t-migration.rst Outdated
Comment thread Doc/howto/abi3t-migration.rst Outdated
Comment thread Doc/howto/abi3t-migration.rst Outdated
Comment thread Doc/howto/abi3t-migration.rst Outdated
encukou and others added 2 commits June 2, 2026 13:41
Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com>
Co-authored-by: Petr Viktorin <encukou@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants