Skip to content

Proper free-threaded ABI support blockers #126

Open
@nitzmahone

Description

@nitzmahone

Tracking known blockers to actual support of Python's new t free-threaded ABI - add new ones as we discover them.

  • Extensions built with Py_LIMITED_API (default) under t ABI will always segfault. (fixed by Hard disable Py_LIMITED_API under free-threaded build #125)
  • Threaded embedding tests fail under free-threaded build. ([Python bug]
    (Crash in Py_Initialize in non-main thread in free-threading build python/cpython#123022), fixed in 3.13.0rc2)
  • Add non-artifact CI job for 3.13t.
  • Evaluate all type creation/caching code for obvious GIL-incidental locking or deadlock issues sans GIL.
  • Evaluate all manual refcounting, buffer manipulations, marshaling code, etc for obvious concurrency issues.
  • Build a lot more threaded stress tests for the above, measure coverage.
  • Update documentation to describe current state, concerns around GIL-free operation modes.
  • Once we have some confidence in true GIL-free operations, provide a high-level opt-in/out for CFFI-backed extensions to call PyUnstable_Module_SetGIL() during extension init to control the automatic legacy extension GIL re-enable.
  • Remove known dead code from active development branches (ala Remove pre-Python 3.8 C code #124).
  • Work with high-profile CFFI-consuming projects (e.g. cryptography, pynacl, pygame, ?) to ensure any future threaded stress tests are not broken by CFFI issues.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions