-
-
Notifications
You must be signed in to change notification settings - Fork 32.5k
Open
Labels
interpreter-core(Objects, Python, Grammar, and Parser dirs)(Objects, Python, Grammar, and Parser dirs)topic-C-APItype-featureA feature request or enhancementA feature request or enhancement
Description
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 suitablePyABIInfo
variablePy_mod_abi
, a module slot that causes aPyABIInfo_Check
call
C API WG vote pending: capi-workgroup/decisions#72
Linked PRs
Metadata
Metadata
Assignees
Labels
interpreter-core(Objects, Python, Grammar, and Parser dirs)(Objects, Python, Grammar, and Parser dirs)topic-C-APItype-featureA feature request or enhancementA feature request or enhancement