You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[Decided] Free-threaded CPython 3.15t is the only build; make every repo correct on it #158
Why the default stays GIL today: no free-threaded prebuilt for Android or iOS (checked 2026-08-12), so switching splits the threading, lifetime and thread-state design across platforms; free-threaded wheel coverage of C extensions is thin; our own code is not ready (PyType.getInstance cache race, GIL release after init not enabled (C-4), ROADMAP 9.1 open).
Recommendation:
Keep pythonFreeThreaded=false as the default.
Make every thisisthepy repo free-threaded-ready: no reliance on GIL atomicity; a required CI job on desktop 3.14t for python-multiplatform, TypedPython and pythonx-*; native extensions declare Py_MOD_GIL_NOT_USED only once proven thread-safe.
TypedPython free-threaded support as its own stage (see linked issue).
Binder issues: PyType cache race, GIL release after init, withGIL on JVM virtual threads.
Investigate building free-threaded CPython for Android and iOS ourselves.
Options: (a) the above; (b) switch desktop default to 3.14t now and accept the platform split; (c) do nothing until upstream mobile prebuilts exist.
Free-threaded is the default and the only build. The GIL build is not kept as an option.
Baseline is CPython 3.15t, not 3.14t. Reasons: PEP 803 (abi3t) is Final for 3.15, so one stable-ABI extension wheel serves the free-threaded build (pypackpack, the Cargo backend and TypedPython output); 3.15.0 final is scheduled for 2026-10-09 (PEP 790), before the 11-30 milestone; we are pre-1.0 with no users to keep on 3.14, and we build our own free-threaded CPython for Android and iOS anyway (Investigate: free-threaded CPython builds for Android and iOS built by us #163, now an implementation item).
Cost accepted: third-party cp315t / abi3t wheels lag the release for a while; pypackpack builds from sdist where they are missing; an extension without Py_mod_gil still runs and re-enables the GIL, and pypackpack warns at build time.
changed the title [-][Decision] Free-threaded readiness: keep GIL as default, make every repo correct on 3.14t[/-][+][Decided] Free-threaded CPython 3.15t is the only build; make every repo correct on it[/+]on Oct 3, 2026
Activity
b-re-w commentedon Oct 3, 2026
Decided by the maintainer, 2026-10-04:
Follow-up: AGENTS §12.8, SPEC T-1/T-2/C-4, threading-and-abi.md, gradle.properties default, CPython pins.
[-][Decision] Free-threaded readiness: keep GIL as default, make every repo correct on 3.14t[/-][+][Decided] Free-threaded CPython 3.15t is the only build; make every repo correct on it[/+]