tree f1fedbe3ed002acf1271d09c15ea61a21efc94be
parent 218a429500971f5030eda1855c870637a62aabdb
author Henry Schreiner <HenrySchreinerIII@gmail.com> 1794455899 -0600
committer GitHub <noreply@github.com> 1794455899 -0500
gpgsig -----BEGIN PGP SIGNATURE-----
 
 wsFcBAABCAAQBQJq9TlbCRC1aQ7uu5UhlAAAJFoQABEARcFf2wTSRTErtOaZJZ3X
 5Tn7uxNZodpi2F4v0SRLmCTd/F+JPbcJUFE5D5Ho0xMk4J+rpSwvI7n6jUZwgwjH
 EcWPyvw609eFAa4j4o4NNZXFUeOjrKFKOuhCJzKnQHHeztJvVJ1HfKyR8QWXT2or
 pD3A9x9Kaci+zDEGV1bbAMX5UMW0TWXBpuohlCxsqLl3EOBifkjPgqNvW4efaawE
 pLL8jJO+oh25e8VPWueDWAcef8JsDtnPrNrZTFAb6nmFgO2YQLKXN44pUVOPhqKb
 BRXPk/l0lNp9pWJkjnnmouvtdQRTwvpb9cx37oG4rZC5ErAR95QWtMFWmv0fGneE
 mj2rrOGvo1yEmHXEeogQqpmeK4SKPbCP5+bKNebTI0ch1mKpUPvtVOpmPucA9GU0
 LoxYMOdIvjKxLQiRnJOnjXMzk0IxPyhQxD4e0+Nls+NdZ1RnmUPNcc29KFNl8bkH
 ZAxgJesyd99lO39bYOEoafA+vaSnH/9xcJ/D8KQ6MXUP5xPQMBaGBhUHFgqpXzkT
 EUH7I+lA9QeXeAEGiuyghBFT2Dx+sadt7u3ipfVJ5qRp6rcb06GUNhVZE97s7bW6
 dpJfrcjnrOBM+i93ZydmyqBcSp3N/AkvSeBBm3W/F54PXzs6RXqlLb2QIxRYL4NM
 zaox/5hwcrqF/8Q8dWP1
 =yzDM
 -----END PGP SIGNATURE-----
 

feat: support the Python stable ABI (abi3 and abi3t) (#6198)

Add support for the CPython stable ABI (Py_LIMITED_API >= 0x030C0000,
abi3) and the free-threaded stable ABI (abi3t, CPython 3.15+, PEP 803).
One wheel per platform then runs on all CPython versions from the
targeted version on.

Enable it with:
- CMake: pybind11_add_module(... STABLE_ABI ...) or
  -DPYBIND11_STABLE_ABI=ON (CMake 3.26+, FindPython mode).
  PYBIND11_STABLE_ABI_VERSION selects the target (default 3.12; 3.15
  on free-threaded Python).
- setuptools: Pybind11Extension(..., py_limited_api=True).
- Other builds: define Py_LIMITED_API and use the abi3 module suffix.

Changes:
- Create type objects from PyType_Spec with PyType_FromMetaclass().
  This is now the default on CPython 3.12+ for regular builds too.
  Set PYBIND11_TYPE_CREATION_VIA_SPEC=0 to use the old path.
- Read CPython struct fields through public API functions
  (PyType_GetSlot, PyObject_GetTypeData, checked tuple/list accessors,
  type_lookup through __mro__/__dict__).
- Bind methods through a vectorcall instancemethod descriptor, so that
  obj.method(...) does not create a bound method.
- chrono.h works under the stable ABI. numpy.h works under abi3t with
  NumPy 2.5+.
- Stable-ABI modules use a separate internals ID (_abi3 or _abi3t tag).
  pybind11_conduit_v1 connects them to regular modules.
- embed.h, subinterpreter.h, py::custom_type_setup, and the GIL-held
  assertions are not available under the stable ABI. py::metaclass()
  has restrictions. See docs/advanced/stable_abi.rst.
- Fix preservation of the primary exception when type names are not
  available, and pair NumPy base-scalar buffer acquire and release.

CI builds and runs the test suite for abi3 on 3.12-3.14 and for abi3t
on 3.15t. It also runs the 3.12 abi3 binaries on 3.13 and 3.14, and the
3.15t abi3t binaries on GIL-enabled 3.15.

Co-authored-by: Ralf W. Grosse-Kunstleve <rgrossekunst@nvidia.com>
Assisted-by: ClaudeCode:claude-fable-5-1
Assisted-by: ClaudeCode:claude-fable-5-2
Assisted-by: ClaudeCode:claude-opus-5-5
Assisted-by: Codex:gpt-6