``PyModuleDef`` has non-``NULL`` ``m_traverse``, ``m_clear``,
``m_free``; non-zero ``m_size``; or slots other than ``Py_mod_create``.
+ .. versionadded:: 3.5
+
.. c:macro:: Py_mod_exec
Specifies a function that is called to *execute* the module.
If multiple ``Py_mod_exec`` slots are specified, they are processed in the
order they appear in the *m_slots* array.
+ .. versionadded:: 3.5
+
.. c:macro:: Py_mod_multiple_interpreters
Specifies one of the following values:
type,PyModuleDef,3.2,,full-abi
type,PyModuleDef_Base,3.2,,full-abi
func,PyModuleDef_Init,3.5,,
+type,PyModuleDef_Slot,3.5,,full-abi
data,PyModuleDef_Type,3.5,,
func,PyModule_Add,3.13,,
func,PyModule_AddFunctions,3.7,,
macro,Py_bf_releasebuffer,3.11,,
type,Py_buffer,3.11,,full-abi
type,Py_intptr_t,3.2,,
+macro,Py_mod_create,3.5,,
+macro,Py_mod_exec,3.5,,
+macro,Py_mod_gil,3.13,,
+macro,Py_mod_multiple_interpreters,3.12,,
macro,Py_mp_ass_subscript,3.2,,
macro,Py_mp_length,3.2,,
macro,Py_mp_subscript,3.2,,
# - struct_abi_kind: for `struct`, defines how much of the struct is exposed:
# - 'full-abi': All of the struct is part of the ABI, including the size
# (users may define arrays of these structs).
-# Typically used for initalization, rather than at runtime.
+# Typically used for initialization, rather than at runtime.
# - 'opaque': No members are part of the ABI, nor is the size. The Limited
# API only handles these via pointers. The C definition should be
# incomplete (opaque).
added = '3.5'
[data.PyModuleDef_Type]
added = '3.5'
+[const.Py_mod_create]
+ added = '3.5'
+[const.Py_mod_exec]
+ added = '3.5'
+[struct.PyModuleDef_Slot]
+ added = '3.5'
+ struct_abi_kind = 'full-abi'
# New slots in 3.5:
# d51374ed78a3e3145911a16cdf3b9b84b3ba7d15 - Matrix multiplication (PEP 465)
added = '3.12'
[const.Py_TPFLAGS_ITEMS_AT_END]
added = '3.12'
+[const.Py_mod_multiple_interpreters]
+ added = '3.12'
+
[function.PyImport_AddModuleRef]
added = '3.13'
[function.PyWeakref_GetRef]
added = '3.13'
[function.PyEval_GetFrameLocals]
added = '3.13'
+[const.Py_mod_gil]
+ added = '3.13'
+