-
scoder authored
* Split the current "CYTHON_COMPILING_IN_LIMITED_API" macro guard into separate feature guards: 1) using a global module state struct ("CYTHON_USE_MODULE_STATE") 2) using PyType_FromSpec() for extension types ("CYTHON_USE_TYPE_SPECS") 3) actual limited-API special casing ("CYTHON_COMPILING_IN_LIMITED_API") * Start using PyType_FromModuleAndSpec() for creating extension types since that adds the module reference with PEP-573. * Do not pass the module reference into *shared* extension types since we do not want to keep the module alive just because other modules still refer to the type. * Mark the Limited-API and module state struct features as experimental. * Add CI setups for using PyType_FromSpec() for creating extension types. * Avoid overly complicated code in __Pyx_FetchCommonTypeFromSpec() when we are not compiling against the Limited-API. * Correctly set up the bases tuple for PyType_FromSpecWithBases() an...