I took the liberty of looking into adding support for the 3.13 free-threaded build of CPython. This aims to be a tracking issue for all work necessary to support it, for which I'm going to open a PR shortly.
[x] Set up CI for free-threading
[x] Move away from APIs that use borrowed references (PyList_GetItem, PyDict_GetItem and friends) under the free-threaded build
[x] Audit the C extension module for thread-safety issues
[x] There currently only seem to be issues with pair_list_global_version. If there's something else that I might've missed, please let me know.
[x] Mark the C extension module as thread-safe with PyUnstable_Module_SetGIL
[x] Build wheels for the free-threaded build.
Hope this all sounds good! Let me know in case there's something that doesn't seem right.
Long story short
Hey all! 👋
I took the liberty of looking into adding support for the 3.13 free-threaded build of CPython. This aims to be a tracking issue for all work necessary to support it, for which I'm going to open a PR shortly.
PyList_GetItem
,PyDict_GetItem
and friends) under the free-threaded buildThere currently only seem to be issues withpair_list_global_version
. If there's something else that I might've missed, please let me know.PyUnstable_Module_SetGIL
Hope this all sounds good! Let me know in case there's something that doesn't seem right.