33.. _abi3t-migration-howto :
44
55******************************************************
6- Migrating to Stable ABI for Free Threading (``abi3t ``)
6+ Migrating to Stable ABI for free threading (``abi3t ``)
77******************************************************
88
99Starting with the 3.15 release, CPython supports a variant of the Stable ABI
@@ -36,7 +36,7 @@ library/wheel:
3636+-----------------+-----------------------+------------------------+
3737| 3.16 | ``cpython-316 `` | ``cpython-316t `` |
3838+-----------------+-----------------------+------------------------+
39- | Later versions | :samp: `cpython-3{ YY } ` | :samp: `cpython-3{ YY } t ` |
39+ | Later versions | :samp: `cpython-3{ XX } ` | :samp: `cpython-3{ XX } t ` |
4040+-----------------+-----------------------+------------------------+
4141
4242That's a lot of builds, especially when multiplied by the number
@@ -58,7 +58,7 @@ With the Stable ABI (``abi3``, introduced in CPython 3.2), a single extension
5858+-----------------+ +------------------------+
5959| 3.16 | | ``cpython-316t `` |
6060+-----------------+ +------------------------+
61- | Later versions | | :samp: `cpython-3{ YY } t ` |
61+ | Later versions | | :samp: `cpython-3{ XX } t ` |
6262+-----------------+-------------------+------------------------+
6363
6464The Stable ABI for free-threaded builds (``abi3t ``), introduced in
@@ -99,7 +99,7 @@ Second, not all of the C API is available.
9999Extensions need to be ported to build for Stable ABI, which may be difficult
100100or, in rare cases, impossible.
101101
102- Specifically, ``abi3t `` requires on API added in CPython 3.15.
102+ Specifically, ``abi3t `` requires APIs added in CPython 3.15.
103103If you want to build your extension for older versions of CPython from the
104104same source, you have two main options:
105105
@@ -149,10 +149,10 @@ See :ref:`freethreading-extensions-howto` for instructions.
149149.. seealso ::
150150
151151 `Porting Extension Modules to Support Free-Threading
152- <https://py-free-threading.github.io/porting/> `_ :
152+ <https://py-free-threading.github.io/porting/> `__ :
153153 A community-maintained porting guide for extension authors.
154154
155- Isolating Extension Modules
155+ Isolating extension modules
156156---------------------------
157157
158158Your module should use :ref: `multi-phase initialization <multi-phase-initialization >`,
@@ -284,7 +284,7 @@ and replace them with the following:
284284 return my_slot_array;
285285 }
286286
287- Leave out any fields that were missing (excexpt the new :c:macro: `Py_mod_abi `),
287+ Leave out any fields that were missing (except the new :c:macro: `Py_mod_abi `),
288288and substitute your own values.
289289
290290See the :c:type: `PySlot ` and :c:ref: `export hook <extension-export-hook >`
@@ -582,7 +582,7 @@ Extensions built with ``abi3t`` should have the following extension:
582582
583583If you distribute the extension as a *wheel *, use the following tags:
584584
585- * Python tag: :samp: `cp3{ YY } `, where *YY * is the minimum Python version
585+ * Python tag: :samp: `cp3{ XX } `, where *XX * is the minimum Python version
586586 the extension is built for.
587587 (For example, ``cp315 `` if you set ``Py_TARGET_ABI3T `` to ``0x30f0000 ``.
588588 See :ref: `abi3-compiling ` for more values.)
0 commit comments