#define _Py_mod_LAST_SLOT 3
#endif
+#endif /* New in 3.5 */
+
/* for Py_mod_multiple_interpreters: */
+#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x030d0000
#define Py_MOD_MULTIPLE_INTERPRETERS_NOT_SUPPORTED ((void *)0)
#define Py_MOD_MULTIPLE_INTERPRETERS_SUPPORTED ((void *)1)
#define Py_MOD_PER_INTERPRETER_GIL_SUPPORTED ((void *)2)
-
-#endif /* New in 3.5 */
+#endif
struct PyModuleDef {
PyModuleDef_Base m_base;
-#define Py_LIMITED_API 0x03060000
+// Need limited C API version 3.13 for Py_MOD_PER_INTERPRETER_GIL_SUPPORTED
+#define Py_LIMITED_API 0x030d0000
#include <Python.h>
+#include <stdio.h> // printf()
#include <stdlib.h> // qsort()
+#include <string.h> // memset()
#ifdef MS_WIN32
# include <windows.h>
#endif
/* Errno module */
-// Need PyModuleDef_Slot added to limited C API version 3.5
-#define Py_LIMITED_API 0x03050000
+// Need limited C API version 3.13 for Py_MOD_PER_INTERPRETER_GIL_SUPPORTED
+#define Py_LIMITED_API 0x030d0000
#include "Python.h"
+#include <errno.h> // EPIPE
/* Windows socket errors (WSA*) */
#ifdef MS_WINDOWS
pass
*/
-#define Py_LIMITED_API 0x030b0000
+// Need limited C API version 3.13 for Py_MOD_PER_INTERPRETER_GIL_SUPPORTED
+#define Py_LIMITED_API 0x030d0000
#include "Python.h"
#include <string.h>
static PyModuleDef_Slot xx_slots[] = {
{Py_mod_exec, xx_modexec},
- {Py_mod_multiple_interpreters, Py_MOD_PER_INTERPRETER_GIL_SUPPORTED},
{0, NULL}
};