Feature or enhancement
See discussion: https://discuss.python.org/t/module-slot-for-checking-abi-compatibility/96443/
The checks we can do using C API are limited, but would still be useful, e.g. for the case of mixing up GIL-ful and free-threaded extensions/builds.
I propose adding:
PyABIInfo struct with:
abiinfo_major_version
abiinfo_minor_version
flags which can be set to:
PyABIInfo_DEFAULT_FLAGS
PyABIInfo_STABLE
PyABIInfo_INTERNAL
PyABIInfo_FREETHREADED
PyABIInfo_GIL
build_version
abi_version
int PyABIInfo_Check(PyABIInfo *info, const char *module_name)
PyABIInfo_VAR(NAME) macro that defines a suitable PyABIInfo variable
Py_mod_abi, a module slot that causes a PyABIInfo_Check call
C API WG vote pending: capi-workgroup/decisions#72
Linked PRs
Feature or enhancement
See discussion: https://discuss.python.org/t/module-slot-for-checking-abi-compatibility/96443/
The checks we can do using C API are limited, but would still be useful, e.g. for the case of mixing up GIL-ful and free-threaded extensions/builds.
I propose adding:
PyABIInfostruct with:abiinfo_major_versionabiinfo_minor_versionflagswhich can be set to:PyABIInfo_DEFAULT_FLAGSPyABIInfo_STABLEPyABIInfo_INTERNALPyABIInfo_FREETHREADEDPyABIInfo_GILbuild_versionabi_versionint PyABIInfo_Check(PyABIInfo *info, const char *module_name)PyABIInfo_VAR(NAME)macro that defines a suitablePyABIInfovariablePy_mod_abi, a module slot that causes aPyABIInfo_CheckcallC API WG vote pending: capi-workgroup/decisions#72
Linked PRs