Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions Modules/_testlimitedcapi.c
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,15 @@
* standard Python regression test, via Lib/test/test_capi.py.
*/

#include "pyconfig.h" // Py_GIL_DISABLED

#ifdef Py_GIL_DISABLED
// FIXME: use the Py_TARGET_ABI3T
#else
// Use the oldest limited C API version
# define Py_LIMITED_API 0x03020000
#endif

#include "_testlimitedcapi/parts.h"

static PyMethodDef TestMethods[] = {
Expand Down
3 changes: 3 additions & 0 deletions Modules/_testlimitedcapi/capsule.c
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
#include "parts.h"

#include <stdlib.h> // free()


static void
capsule_destructor(PyObject *op)
{
Expand Down
7 changes: 4 additions & 3 deletions Modules/_testlimitedcapi/codec.c
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
#include "pyconfig.h" // Py_GIL_DISABLED

// Need limited C API version 3.5 for PyCodec_NameReplaceErrors()
#if !defined(Py_GIL_DISABLED) && !defined(Py_LIMITED_API)
#ifdef Py_GIL_DISABLED
# define Py_TARGET_ABI3T 0x030f0000
#else
// Need limited C API version 3.5 for PyCodec_NameReplaceErrors()
# define Py_LIMITED_API 0x03050000
#endif

Expand Down
4 changes: 3 additions & 1 deletion Modules/_testlimitedcapi/file.c
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
#include "pyconfig.h" // Py_GIL_DISABLED
#ifndef Py_GIL_DISABLED
#ifdef Py_GIL_DISABLED
# define Py_TARGET_ABI3T 0x030f0000
#else
// Need limited C API 3.13 for PyLong_AsInt()
# define Py_LIMITED_API 0x030d0000
#endif
Expand Down
6 changes: 4 additions & 2 deletions Modules/_testlimitedcapi/heaptype_relative.c
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
// Need limited C API version 3.15 for _DuringGC functions
#include "pyconfig.h" // Py_GIL_DISABLED
#if !defined(Py_GIL_DISABLED) && !defined(Py_LIMITED_API)
#ifdef Py_GIL_DISABLED
// FIXME: use the Py_TARGET_ABI3T
#else
// Need limited C API version 3.15 for _DuringGC functions
# define Py_LIMITED_API 0x030f0000
#endif

Expand Down
6 changes: 4 additions & 2 deletions Modules/_testlimitedcapi/import.c
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
// Need limited C API version 3.13 for PyImport_AddModuleRef()
#include "pyconfig.h" // Py_GIL_DISABLED
#if !defined(Py_GIL_DISABLED) && !defined(Py_LIMITED_API)
#ifdef Py_GIL_DISABLED
# define Py_TARGET_ABI3T 0x030f0000
#else
// Need limited C API version 3.13 for PyImport_AddModuleRef()
# define Py_LIMITED_API 0x030d0000
#endif

Expand Down
6 changes: 4 additions & 2 deletions Modules/_testlimitedcapi/list.c
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
// Need limited C API version 3.13 for PyList_GetItemRef()
#include "pyconfig.h" // Py_GIL_DISABLED
#if !defined(Py_GIL_DISABLED) && !defined(Py_LIMITED_API)
#ifdef Py_GIL_DISABLED
# define Py_TARGET_ABI3T 0x030f0000
#else
// Need limited C API version 3.13 for PyList_GetItemRef()
# define Py_LIMITED_API 0x030d0000
#endif

Expand Down
4 changes: 3 additions & 1 deletion Modules/_testlimitedcapi/long.c
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
#include "pyconfig.h" // Py_GIL_DISABLED
#ifndef Py_GIL_DISABLED
#ifdef Py_GIL_DISABLED
# define Py_TARGET_ABI3T 0x030f0000
#else
// Need limited C API 3.14 to test PyLong_AsInt64()
# define Py_LIMITED_API 0x030e0000
#endif
Expand Down
6 changes: 4 additions & 2 deletions Modules/_testlimitedcapi/object.c
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
// Need limited C API version 3.13 for Py_GetConstant()
#include "pyconfig.h" // Py_GIL_DISABLED
#if !defined(Py_GIL_DISABLED) && !defined(Py_LIMITED_API)
#ifdef Py_GIL_DISABLED
# define Py_TARGET_ABI3T 0x030f0000
#else
// Need limited C API version 3.13 for Py_GetConstant()
# define Py_LIMITED_API 0x030d0000
#endif

Expand Down
6 changes: 4 additions & 2 deletions Modules/_testlimitedcapi/parts.h
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,10 @@
#include "pyconfig.h" // Py_GIL_DISABLED

// Use the limited C API
#if !defined(Py_GIL_DISABLED) && !defined(Py_LIMITED_API)
// need limited C API version 3.5 for PyModule_AddFunctions()
#ifdef Py_GIL_DISABLED
// FIXME: use the Py_TARGET_ABI3T
Comment thread
ngoldbaum marked this conversation as resolved.
#elif !defined(Py_LIMITED_API)
// Need limited C API version 3.5 for PyModule_AddFunctions()
# define Py_LIMITED_API 0x03050000
#endif

Expand Down
8 changes: 7 additions & 1 deletion Modules/_testlimitedcapi/slots.c
Original file line number Diff line number Diff line change
@@ -1,4 +1,10 @@
#define Py_LIMITED_API 0x030f0000
#include "pyconfig.h" // Py_GIL_DISABLED
#ifdef Py_GIL_DISABLED
# define Py_TARGET_ABI3T 0x030f0000
#else
// Need limited C API version 3.15 for PyType_FromSlots()
# define Py_LIMITED_API 0x030f0000
#endif

#include "parts.h"

Expand Down
6 changes: 4 additions & 2 deletions Modules/_testlimitedcapi/sys.c
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
#include "pyconfig.h" // Py_GIL_DISABLED
// Need limited C API version 3.15 for PySys_GetAttr() etc
#if !defined(Py_GIL_DISABLED) && !defined(Py_LIMITED_API)
#ifdef Py_GIL_DISABLED
# define Py_TARGET_ABI3T 0x030f0000
#else
// Need limited C API version 3.15 for PySys_GetAttr() etc
# define Py_LIMITED_API 0x030f0000
#endif
#include "parts.h"
Expand Down
4 changes: 3 additions & 1 deletion Modules/_testlimitedcapi/unicode.c
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
#include "pyconfig.h" // Py_GIL_DISABLED
#ifndef Py_GIL_DISABLED
#ifdef Py_GIL_DISABLED
# define Py_TARGET_ABI3T 0x030f0000
#else
// Need limited C API 3.14 to test PyUnicode_Equal()
# define Py_LIMITED_API 0x030e0000
#endif
Expand Down
6 changes: 4 additions & 2 deletions Modules/_testlimitedcapi/vectorcall_limited.c
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
/* Test Vectorcall in the limited API */

// Need limited C API version 3.12 for PyObject_Vectorcall()
#include "pyconfig.h" // Py_GIL_DISABLED
#if !defined(Py_GIL_DISABLED) && !defined(Py_LIMITED_API)
#ifdef Py_GIL_DISABLED
// FIXME: use the Py_TARGET_ABI3T
#else
// Need limited C API version 3.12 for PyObject_Vectorcall()
# define Py_LIMITED_API 0x030c0000
#endif

Expand Down
7 changes: 5 additions & 2 deletions Modules/_testlimitedcapi/version.c
Original file line number Diff line number Diff line change
@@ -1,8 +1,11 @@
/* Test version macros in the limited API */

#include "pyconfig.h" // Py_GIL_DISABLED
#ifndef Py_GIL_DISABLED
# define Py_LIMITED_API 0x030e0000 // Added in 3.14
#ifdef Py_GIL_DISABLED
# define Py_TARGET_ABI3T 0x030f0000
#else
// Need limited C API version 3.14 for Py_PACK_VERSION()
# define Py_LIMITED_API 0x030e0000
#endif

#include "parts.h"
Expand Down
4 changes: 3 additions & 1 deletion Modules/_testlimitedcapi/weakref.c
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
#include "pyconfig.h" // Py_GIL_DISABLED
#ifndef Py_GIL_DISABLED
#ifdef Py_GIL_DISABLED
# define Py_TARGET_ABI3T 0x030f0000
#else
// Need limited C API 3.5 for PyModule_AddFunctions()
# define Py_LIMITED_API 0x03050000
#endif
Expand Down
Loading