]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
gh-106320: Remove private _PyInterpreterID C API (#107053)
authorVictor Stinner <vstinner@python.org>
Sat, 22 Jul 2023 19:31:55 +0000 (21:31 +0200)
committerGitHub <noreply@github.com>
Sat, 22 Jul 2023 19:31:55 +0000 (19:31 +0000)
Move the private _PyInterpreterID C API to the internal C API: add a
new pycore_interp_id.h header file.

Remove Include/interpreteridobject.h and
Include/cpython/interpreteridobject.h header files.

12 files changed:
Include/cpython/interpreteridobject.h [deleted file]
Include/internal/pycore_interp_id.h [new file with mode: 0644]
Include/interpreteridobject.h [deleted file]
Makefile.pre.in
Modules/_testinternalcapi.c
Modules/_xxinterpchannelsmodule.c
Modules/_xxsubinterpretersmodule.c
Objects/interpreteridobject.c
Objects/object.c
PCbuild/pythoncore.vcxproj
PCbuild/pythoncore.vcxproj.filters
Tools/c-analyzer/cpython/_parser.py

diff --git a/Include/cpython/interpreteridobject.h b/Include/cpython/interpreteridobject.h
deleted file mode 100644 (file)
index 5076584..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-#ifndef Py_CPYTHON_INTERPRETERIDOBJECT_H
-#  error "this header file must not be included directly"
-#endif
-
-/* Interpreter ID Object */
-
-PyAPI_DATA(PyTypeObject) _PyInterpreterID_Type;
-
-PyAPI_FUNC(PyObject *) _PyInterpreterID_New(int64_t);
-PyAPI_FUNC(PyObject *) _PyInterpreterState_GetIDObject(PyInterpreterState *);
-PyAPI_FUNC(PyInterpreterState *) _PyInterpreterID_LookUp(PyObject *);
diff --git a/Include/internal/pycore_interp_id.h b/Include/internal/pycore_interp_id.h
new file mode 100644 (file)
index 0000000..34c96df
--- /dev/null
@@ -0,0 +1,28 @@
+/* Interpreter ID Object */
+
+#ifndef Py_INTERNAL_INTERPRETERIDOBJECT_H
+#define Py_INTERNAL_INTERPRETERIDOBJECT_H
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifndef Py_BUILD_CORE
+#  error "this header requires Py_BUILD_CORE define"
+#endif
+
+// Export for the _xxsubinterpreters shared extension
+PyAPI_DATA(PyTypeObject) _PyInterpreterID_Type;
+
+// Export for the _xxsubinterpreters shared extension
+PyAPI_FUNC(PyObject*) _PyInterpreterID_New(int64_t);
+
+// Export for the _xxinterpchannels shared extension
+PyAPI_FUNC(PyObject*) _PyInterpreterState_GetIDObject(PyInterpreterState *);
+
+// Export for the _testinternalcapi shared extension
+PyAPI_FUNC(PyInterpreterState*) _PyInterpreterID_LookUp(PyObject *);
+
+#ifdef __cplusplus
+}
+#endif
+#endif  // !Py_INTERNAL_INTERPRETERIDOBJECT_H
diff --git a/Include/interpreteridobject.h b/Include/interpreteridobject.h
deleted file mode 100644 (file)
index 8432632..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-#ifndef Py_INTERPRETERIDOBJECT_H
-#define Py_INTERPRETERIDOBJECT_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifndef Py_LIMITED_API
-#  define Py_CPYTHON_INTERPRETERIDOBJECT_H
-#  include "cpython/interpreteridobject.h"
-#  undef Py_CPYTHON_INTERPRETERIDOBJECT_H
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* !Py_INTERPRETERIDOBJECT_H */
index 3725feaca66ce3cf891cbf5b018335c3e3bed34d..5f1988b0d172135cc728f568e9bcba7f28390a0c 100644 (file)
@@ -1631,7 +1631,6 @@ PYTHON_HEADERS= \
                $(srcdir)/Include/floatobject.h \
                $(srcdir)/Include/frameobject.h \
                $(srcdir)/Include/import.h \
-               $(srcdir)/Include/interpreteridobject.h \
                $(srcdir)/Include/intrcheck.h \
                $(srcdir)/Include/iterobject.h \
                $(srcdir)/Include/listobject.h \
@@ -1701,7 +1700,6 @@ PYTHON_HEADERS= \
                $(srcdir)/Include/cpython/genobject.h \
                $(srcdir)/Include/cpython/import.h \
                $(srcdir)/Include/cpython/initconfig.h \
-               $(srcdir)/Include/cpython/interpreteridobject.h \
                $(srcdir)/Include/cpython/listobject.h \
                $(srcdir)/Include/cpython/longintrepr.h \
                $(srcdir)/Include/cpython/longobject.h \
@@ -1773,6 +1771,7 @@ PYTHON_HEADERS= \
                $(srcdir)/Include/internal/pycore_import.h \
                $(srcdir)/Include/internal/pycore_initconfig.h \
                $(srcdir)/Include/internal/pycore_interp.h \
+               $(srcdir)/Include/internal/pycore_interp_id.h \
                $(srcdir)/Include/internal/pycore_intrinsics.h \
                $(srcdir)/Include/internal/pycore_list.h \
                $(srcdir)/Include/internal/pycore_long.h \
index 74c932fa921cd0867c7e46cf4f2909ba31c6a82c..ecc2721a4988f9d86aa2a17040a02572c56d74f7 100644 (file)
 
 #include "Python.h"
 #include "frameobject.h"
-#include "interpreteridobject.h"  // _PyInterpreterID_LookUp()
 #include "pycore_atomic_funcs.h" // _Py_atomic_int_get()
 #include "pycore_bitutils.h"     // _Py_bswap32()
 #include "pycore_bytesobject.h"  // _PyBytes_Find()
-#include "pycore_compile.h"      // _PyCompile_CodeGen, _PyCompile_OptimizeCfg, _PyCompile_Assemble, _PyCompile_CleanDoc
 #include "pycore_ceval.h"        // _PyEval_AddPendingCall
+#include "pycore_compile.h"      // _PyCompile_CodeGen, _PyCompile_OptimizeCfg, _PyCompile_Assemble, _PyCompile_CleanDoc
 #include "pycore_fileutils.h"    // _Py_normpath
 #include "pycore_frame.h"        // _PyInterpreterFrame
 #include "pycore_gc.h"           // PyGC_Head
 #include "pycore_hashtable.h"    // _Py_hashtable_new()
 #include "pycore_initconfig.h"   // _Py_GetConfigsAsDict()
 #include "pycore_interp.h"       // _PyInterpreterState_GetConfigCopy()
+#include "pycore_interp_id.h"    // _PyInterpreterID_LookUp()
 #include "pycore_pathconfig.h"   // _PyPathConfig_ClearGlobal()
 #include "pycore_pyerrors.h"     // _Py_UTF8_Edit_Cost()
 #include "pycore_pystate.h"      // _PyThreadState_GET()
index 82472555ec7d621d5f785e16058d5ae8d8c9ddc2..bdffdba52aa02ee65c25c3c67cf183abc32451c4 100644 (file)
@@ -6,8 +6,8 @@
 #endif
 
 #include "Python.h"
-#include "interpreteridobject.h"
 #include "pycore_atexit.h"        // _Py_AtExit()
+#include "pycore_interp_id.h"     // _PyInterpreterState_GetIDObject()
 
 
 /*
index d2e0593872c5f0befd29dc2667a6de8d06c4c3b1..bf01aaf6ed040959525684e71fc51603067d4b58 100644 (file)
@@ -7,7 +7,7 @@
 
 #include "Python.h"
 #include "pycore_interp.h"        // _PyInterpreterState_GetMainModule()
-#include "interpreteridobject.h"
+#include "pycore_interp_id.h"     // _PyInterpreterState_GetIDObject()
 
 
 #define MODULE_NAME "_xxsubinterpreters"
index 46239100dcb7b77415ad4bcecd66c42729d5b4b4..7a3e245ce3357eddf8ba3d98c1bf36ecaf426017 100644 (file)
@@ -3,7 +3,7 @@
 #include "Python.h"
 #include "pycore_abstract.h"   // _PyIndex_Check()
 #include "pycore_interp.h"     // _PyInterpreterState_LookUpID()
-#include "interpreteridobject.h"
+#include "pycore_interp_id.h"  // _PyInterpreterID_Type
 
 
 typedef struct interpid {
index 3b8839b87726141acfe3551ecc8640fe1ff5e783..93396bf5491d351310b83cc68e98531b9d5223cf 100644 (file)
@@ -8,16 +8,16 @@
 #include "pycore_dict.h"          // _PyObject_MakeDictFromInstanceAttributes()
 #include "pycore_floatobject.h"   // _PyFloat_DebugMallocStats()
 #include "pycore_initconfig.h"    // _PyStatus_EXCEPTION()
+#include "pycore_interp_id.h"     // _PyInterpreterID_Type
 #include "pycore_namespace.h"     // _PyNamespace_Type
 #include "pycore_object.h"        // PyAPI_DATA() _Py_SwappedOp definition
 #include "pycore_pyerrors.h"      // _PyErr_Occurred()
 #include "pycore_pymem.h"         // _PyMem_IsPtrFreed()
 #include "pycore_pystate.h"       // _PyThreadState_GET()
 #include "pycore_symtable.h"      // PySTEntry_Type
-#include "pycore_typevarobject.h" // _PyTypeAlias_Type, _Py_initialize_generic
 #include "pycore_typeobject.h"    // _PyBufferWrapper_Type
+#include "pycore_typevarobject.h" // _PyTypeAlias_Type, _Py_initialize_generic
 #include "pycore_unionobject.h"   // _PyUnion_Type
-#include "interpreteridobject.h"  // _PyInterpreterID_Type
 
 #ifdef Py_LIMITED_API
    // Prevent recursive call _Py_IncRef() <=> Py_INCREF()
index bfe59acf12a69d7728d80af068a616eb60f5af33..5ccc8958330650ed6b9ad1a6f19e7df254d65a2a 100644 (file)
     <ClInclude Include="..\Include\cpython\genobject.h" />
     <ClInclude Include="..\Include\cpython\import.h" />
     <ClInclude Include="..\Include\cpython\initconfig.h" />
-    <ClInclude Include="..\Include\cpython\interpreteridobject.h" />
     <ClInclude Include="..\Include\cpython\listobject.h" />
     <ClInclude Include="..\Include\cpython\longintrepr.h" />
     <ClInclude Include="..\Include\cpython\longobject.h" />
     <ClInclude Include="..\Include\internal\pycore_import.h" />
     <ClInclude Include="..\Include\internal\pycore_initconfig.h" />
     <ClInclude Include="..\Include\internal\pycore_interp.h" />
+    <ClInclude Include="..\Include\internal\pycore_interp_id.h" />
     <ClInclude Include="..\Include\internal\pycore_intrinsics.h" />
     <ClInclude Include="..\Include\internal\pycore_list.h" />
     <ClInclude Include="..\Include\internal\pycore_long.h" />
     <ClInclude Include="..\Include\internal\pycore_unicodeobject_generated.h" />
     <ClInclude Include="..\Include\internal\pycore_warnings.h" />
     <ClInclude Include="..\Include\internal\pycore_weakref.h" />
-    <ClInclude Include="..\Include\interpreteridobject.h" />
     <ClInclude Include="..\Include\intrcheck.h" />
     <ClInclude Include="..\Include\iterobject.h" />
     <ClInclude Include="..\Include\listobject.h" />
index 0a8b0c3faf51e1e6019d03adcb0feb660299a19e..54a77f81a9a1ab2494d115d1baa5d0902954566d 100644 (file)
     <ClInclude Include="..\Include\pyhash.h">
       <Filter>Include</Filter>
     </ClInclude>
-    <ClInclude Include="..\Include\interpreteridobject.h">
-      <Filter>Include</Filter>
-    </ClInclude>
     <ClInclude Include="..\Modules\hashtable.h">
       <Filter>Modules</Filter>
     </ClInclude>
     <ClInclude Include="..\Include\cpython\genobject.h">
       <Filter>Include</Filter>
     </ClInclude>
-    <ClInclude Include="..\Include\cpython\interpreteridobject.h">
-      <Filter>Include\cpython</Filter>
-    </ClInclude>
     <ClInclude Include="..\Include\cpython\pythonrun.h">
       <Filter>Include\cpython</Filter>
     </ClInclude>
     <ClInclude Include="..\Include\internal\pycore_interp.h">
       <Filter>Include\internal</Filter>
     </ClInclude>
+    <ClInclude Include="..\Include\internal\pycore_interp_id.h">
+      <Filter>Include\internal</Filter>
+    </ClInclude>
     <ClInclude Include="..\Include\internal\pycore_intrinsics.h">
       <Filter>Include\cpython</Filter>
     </ClInclude>
index 9bc7285e18b2fb0871eaf04826b67de634394106..64ce4cda7d6ed765585e7dbc617273963a31b59d 100644 (file)
@@ -227,7 +227,6 @@ Include/cpython/fileobject.h        Py_CPYTHON_FILEOBJECT_H 1
 Include/cpython/fileutils.h    Py_CPYTHON_FILEUTILS_H  1
 Include/cpython/frameobject.h  Py_CPYTHON_FRAMEOBJECT_H        1
 Include/cpython/import.h       Py_CPYTHON_IMPORT_H     1
-Include/cpython/interpreteridobject.h  Py_CPYTHON_INTERPRETERIDOBJECT_H        1
 Include/cpython/listobject.h   Py_CPYTHON_LISTOBJECT_H 1
 Include/cpython/methodobject.h Py_CPYTHON_METHODOBJECT_H       1
 Include/cpython/object.h       Py_CPYTHON_OBJECT_H     1