# PEP 803: Stable ABI for Free-Threaded Builds

**URL:** <https://discuss.python.org/t/pep-803-stable-abi-for-free-threaded-builds/103628>\
**Category:** PEPs\
**Created:** [September 8, 2025, 1:32pm UTC](https://discuss.python.org/t/pep-803-stable-abi-for-free-threaded-builds/103628 "2025-09-08T13:32:22Z")\
**Posts on this page:** 1\
**Showing post:** 11

<div class="post-metadata">

**Author:** ![steve.dower](https://sea2.discourse-cdn.com/flex002/user_avatar/discuss.python.org/steve.dower/32/56_2.png) [@steve.dower](https://discuss.python.org/u/steve.dower)\
**Post date:** [September 8, 2025, 8:20pm UTC](https://discuss.python.org/t/pep-803-stable-abi-for-free-threaded-builds/103628/11 "2025-09-08T20:20:29Z")

</div>

Sure, but this question and PEP goes directly to the open issue in [PEP 779 – Criteria for supported status for free-threaded Python | peps.python.org](https://peps.python.org/pep-0779/), which was [directed by the SC](https://discuss.python.org/t/pep-779-criteria-for-supported-status-for-free-threaded-python/84319/123) to be discussed for 3.15, but no specific design was mandated. That’s what we’re doing here (and Petr and I have largely been doing spread over a number of locations since before PEP 779 was accepted).

My primary concern with any of the proposals so far\[1\] is dividing the community for an unspecified length of time.\[2\] The choices largely come down to one of:

- `abi3` is broken at an arbitrarily time
- `abi3t` exists until free-threading becomes default and then `abi3` no longer exists
- `abi3` and `abi4` exist in parallel, the latter supported by both builds, and `abi3` no longer exists once free-threading becomes the default
- free-threading has no stable ABI until it becomes the default (status quo, but already rejected by the SC)

I don’t particularly have specific desires about the _contents_ of the new ABI\[3\] - virtually everything I’ve seen proposed has been pretty uncontroversial IMHO - it’s just that some of it is _necessarily_ breaking the ABI and I think option 3 above manages that better than options 1 or 2.

* * *

1. I haven’t had time to work up more than a sketch of a proposal, but my core criteria follows. 

2. I originally wrote “permanently” knowing that’s not true, but it definitely flows better to use a touch of hyperbole and say that my primary concern is permanently dividing the community. 

3. I have some ideas about future longevity, so we aren’t changing it every release like we have been with `abi3`, but those are totally separate from the free-threading issue, e.g. they could also be added to `abi3` safely.

---

_[View the full topic](https://discuss.python.org/t/pep-803-stable-abi-for-free-threaded-builds/103628)._
