[Python-checkins] bpo-35134: Move non-limited C API files to Include/cpython/ (GH-24561)

vstinner webhook-mailer at python.org
Fri Feb 19 09:55:54 EST 2021


https://github.com/python/cpython/commit/4a6bf276ed3e6687394afe26b0d9a061ac06fc6b
commit: 4a6bf276ed3e6687394afe26b0d9a061ac06fc6b
branch: master
author: Nicholas Sim <nsim at posteo.net>
committer: vstinner <vstinner at python.org>
date: 2021-02-19T15:55:46+01:00
summary:

bpo-35134: Move non-limited C API files to Include/cpython/ (GH-24561)

Include/{odictobject.h,parser_interface.h,picklebufobject.h,pydebug.h,pyfpe.h}
into Include/cpython/.

Parser: peg_api: include Python.h instead of parser_interface.h.

files:
A Include/cpython/odictobject.h
A Include/cpython/parser_interface.h
A Include/cpython/picklebufobject.h
A Include/cpython/pydebug.h
A Include/cpython/pyfpe.h
A Misc/NEWS.d/next/C API/2021-02-18-18-46-42.bpo-35134.dFpEDT.rst
D Include/odictobject.h
D Include/parser_interface.h
D Include/picklebufobject.h
D Include/pydebug.h
D Include/pyfpe.h
M Doc/whatsnew/3.10.rst
M Include/Python.h
M Makefile.pre.in
M PCbuild/pythoncore.vcxproj
M PCbuild/pythoncore.vcxproj.filters
M Parser/peg_api.c
M Python/pythonrun.c
M Tools/scripts/stable_abi.py

diff --git a/Doc/whatsnew/3.10.rst b/Doc/whatsnew/3.10.rst
index b903b3e0b81d9..c4a79b6a1e98f 100644
--- a/Doc/whatsnew/3.10.rst
+++ b/Doc/whatsnew/3.10.rst
@@ -934,6 +934,14 @@ Porting to Python 3.10
   bugs like ``if (PyList_SET_ITEM (a, b, c) < 0) ...`` test.
   (Contributed by Zackery Spytz and Victor Stinner in :issue:`30459`.)
 
+* The non-limited API files ``odictobject.h``, ``parser_interface.h``,
+  ``picklebufobject.h``, ``pyarena.h``, ``pyctype.h``, ``pydebug.h``,
+  ``pyfpe.h``, and ``pytime.h`` have been moved to the ``Include/cpython``
+  directory. These files must not be included directly, as they are already
+  included in ``Python.h``: :ref:`Include Files <api-includes>`. If they have
+  been included directly, consider including ``Python.h`` instead.
+  (Contributed by Nicholas Sim in :issue:`35134`)
+
 Deprecated
 ----------
 
diff --git a/Include/Python.h b/Include/Python.h
index c71a71f875e3e..86dbbcf6bd85d 100644
--- a/Include/Python.h
+++ b/Include/Python.h
@@ -89,7 +89,7 @@
 #include "typeslots.h"
 #include "pyhash.h"
 
-#include "pydebug.h"
+#include "cpython/pydebug.h"
 
 #include "bytearrayobject.h"
 #include "bytesobject.h"
@@ -104,7 +104,7 @@
 #include "tupleobject.h"
 #include "listobject.h"
 #include "dictobject.h"
-#include "odictobject.h"
+#include "cpython/odictobject.h"
 #include "enumobject.h"
 #include "setobject.h"
 #include "methodobject.h"
@@ -126,7 +126,7 @@
 #include "weakrefobject.h"
 #include "structseq.h"
 #include "namespaceobject.h"
-#include "picklebufobject.h"
+#include "cpython/picklebufobject.h"
 #include "cpython/pytime.h"
 
 #include "codecs.h"
@@ -141,7 +141,7 @@
 #include "modsupport.h"
 #include "compile.h"
 #include "pythonrun.h"
-#include "parser_interface.h"
+#include "cpython/parser_interface.h"
 #include "pylifecycle.h"
 #include "ceval.h"
 #include "sysmodule.h"
@@ -158,7 +158,7 @@
 #include "pystrtod.h"
 #include "pystrcmp.h"
 #include "fileutils.h"
-#include "pyfpe.h"
+#include "cpython/pyfpe.h"
 #include "tracemalloc.h"
 
 #endif /* !Py_PYTHON_H */
diff --git a/Include/odictobject.h b/Include/cpython/odictobject.h
similarity index 100%
rename from Include/odictobject.h
rename to Include/cpython/odictobject.h
diff --git a/Include/parser_interface.h b/Include/cpython/parser_interface.h
similarity index 100%
rename from Include/parser_interface.h
rename to Include/cpython/parser_interface.h
diff --git a/Include/picklebufobject.h b/Include/cpython/picklebufobject.h
similarity index 100%
rename from Include/picklebufobject.h
rename to Include/cpython/picklebufobject.h
diff --git a/Include/pydebug.h b/Include/cpython/pydebug.h
similarity index 100%
rename from Include/pydebug.h
rename to Include/cpython/pydebug.h
diff --git a/Include/pyfpe.h b/Include/cpython/pyfpe.h
similarity index 100%
rename from Include/pyfpe.h
rename to Include/cpython/pyfpe.h
diff --git a/Makefile.pre.in b/Makefile.pre.in
index e4ac248d1f02e..0f59700952989 100644
--- a/Makefile.pre.in
+++ b/Makefile.pre.in
@@ -316,7 +316,7 @@ PEGEN_OBJS=		\
 
 
 PEGEN_HEADERS= \
-		$(srcdir)/Include/parser_interface.h \
+		$(srcdir)/Include/cpython/parser_interface.h \
 		$(srcdir)/Parser/pegen.h \
 		$(srcdir)/Parser/string_parser.h
 
@@ -1056,17 +1056,13 @@ PYTHON_HEADERS= \
 		$(srcdir)/Include/namespaceobject.h \
 		$(srcdir)/Include/object.h \
 		$(srcdir)/Include/objimpl.h \
-		$(srcdir)/Include/odictobject.h \
 		$(srcdir)/Include/opcode.h \
 		$(srcdir)/Include/osdefs.h \
 		$(srcdir)/Include/osmodule.h \
 		$(srcdir)/Include/patchlevel.h \
-		$(srcdir)/Include/picklebufobject.h \
 		$(srcdir)/Include/pycapsule.h \
-		$(srcdir)/Include/pydebug.h \
 		$(srcdir)/Include/pydtrace.h \
 		$(srcdir)/Include/pyerrors.h \
-		$(srcdir)/Include/pyfpe.h \
 		$(srcdir)/Include/pyframe.h \
 		$(srcdir)/Include/pyhash.h \
 		$(srcdir)/Include/pylifecycle.h \
@@ -1116,9 +1112,13 @@ PYTHON_HEADERS= \
 		$(srcdir)/Include/cpython/methodobject.h \
 		$(srcdir)/Include/cpython/object.h \
 		$(srcdir)/Include/cpython/objimpl.h \
+		$(srcdir)/Include/cpython/odictobject.h \
+		$(srcdir)/Include/cpython/picklebufobject.h \
 		$(srcdir)/Include/cpython/pyarena.h \
 		$(srcdir)/Include/cpython/pyctype.h \
+		$(srcdir)/Include/cpython/pydebug.h \
 		$(srcdir)/Include/cpython/pyerrors.h \
+		$(srcdir)/Include/cpython/pyfpe.h \
 		$(srcdir)/Include/cpython/pylifecycle.h \
 		$(srcdir)/Include/cpython/pymem.h \
 		$(srcdir)/Include/cpython/pystate.h \
diff --git a/Misc/NEWS.d/next/C API/2021-02-18-18-46-42.bpo-35134.dFpEDT.rst b/Misc/NEWS.d/next/C API/2021-02-18-18-46-42.bpo-35134.dFpEDT.rst
new file mode 100644
index 0000000000000..5384cb8288f33
--- /dev/null
+++ b/Misc/NEWS.d/next/C API/2021-02-18-18-46-42.bpo-35134.dFpEDT.rst	
@@ -0,0 +1,3 @@
+Move odictobject.h, parser_interface.h, picklebufobject.h, pydebug.h, and
+pyfpe.h into the cpython/ directory. They must not be included directly, as
+they are already included by Python.h: :ref:`Include Files <api-includes>`.
diff --git a/PCbuild/pythoncore.vcxproj b/PCbuild/pythoncore.vcxproj
index 89b6218a2739a..92355a886d91a 100644
--- a/PCbuild/pythoncore.vcxproj
+++ b/PCbuild/pythoncore.vcxproj
@@ -142,9 +142,14 @@
     <ClInclude Include="..\Include\cpython\methodobject.h" />
     <ClInclude Include="..\Include\cpython\object.h" />
     <ClInclude Include="..\Include\cpython\objimpl.h" />
+    <ClInclude Include="..\Include\cpython\odictobject.h" />
+    <ClInclude Include="..\Include\cpython\parser_interface.h" />
+    <ClInclude Include="..\Include\cpython\picklebufobject.h" />
     <ClInclude Include="..\Include\cpython\pyarena.h" />
     <ClInclude Include="..\Include\cpython\pyctype.h" />
+    <ClInclude Include="..\Include\cpython\pydebug.h" />
     <ClInclude Include="..\Include\cpython\pyerrors.h" />
+    <ClInclude Include="..\Include\cpython\pyfpe.h" />
     <ClInclude Include="..\Include\cpython\pylifecycle.h" />
     <ClInclude Include="..\Include\cpython\pymem.h" />
     <ClInclude Include="..\Include\cpython\pystate.h" />
@@ -220,19 +225,14 @@
     <ClInclude Include="..\Include\namespaceobject.h" />
     <ClInclude Include="..\Include\object.h" />
     <ClInclude Include="..\Include\objimpl.h" />
-    <ClInclude Include="..\Include\odictobject.h" />
     <ClInclude Include="..\Include\opcode.h" />
     <ClInclude Include="..\Include\osdefs.h" />
     <ClInclude Include="..\Include\osmodule.h" />
     <ClInclude Include="..\Include\patchlevel.h" />
-    <ClInclude Include="..\Include\parser_interface.h" />
-    <ClInclude Include="..\Include\picklebufobject.h" />
     <ClInclude Include="..\Include\py_curses.h" />
     <ClInclude Include="..\Include\pycapsule.h" />
-    <ClInclude Include="..\Include\pydebug.h" />
     <ClInclude Include="..\Include\pyerrors.h" />
     <ClInclude Include="..\Include\pyexpat.h" />
-    <ClInclude Include="..\Include\pyfpe.h" />
     <ClInclude Include="..\Include\pyframe.h" />
     <ClInclude Include="..\Include\pyhash.h" />
     <ClInclude Include="..\Include\pylifecycle.h" />
diff --git a/PCbuild/pythoncore.vcxproj.filters b/PCbuild/pythoncore.vcxproj.filters
index bd8fd3433bce0..d0b69dbc5b64f 100644
--- a/PCbuild/pythoncore.vcxproj.filters
+++ b/PCbuild/pythoncore.vcxproj.filters
@@ -171,27 +171,18 @@
     <ClInclude Include="..\Include\patchlevel.h">
       <Filter>Include</Filter>
     </ClInclude>
-    <ClInclude Include="..\Include\picklebufobject.h">
-      <Filter>Include</Filter>
-    </ClInclude>
     <ClInclude Include="..\Include\py_curses.h">
       <Filter>Include</Filter>
     </ClInclude>
     <ClInclude Include="..\Include\pycapsule.h">
       <Filter>Include</Filter>
     </ClInclude>
-    <ClInclude Include="..\Include\pydebug.h">
-      <Filter>Include</Filter>
-    </ClInclude>
     <ClInclude Include="..\Include\pyerrors.h">
       <Filter>Include</Filter>
     </ClInclude>
     <ClInclude Include="..\Include\pyexpat.h">
       <Filter>Include</Filter>
     </ClInclude>
-    <ClInclude Include="..\Include\pyfpe.h">
-      <Filter>Include</Filter>
-    </ClInclude>
     <ClInclude Include="..\Include\pylifecycle.h">
       <Filter>Include</Filter>
     </ClInclude>
@@ -378,9 +369,6 @@
     <ClInclude Include="..\Modules\hashtable.h">
       <Filter>Modules</Filter>
     </ClInclude>
-    <ClInclude Include="..\Include\odictobject.h">
-      <Filter>Include</Filter>
-    </ClInclude>
     <ClInclude Include="..\Parser\pegen.h">
       <Filter>Parser</Filter>
     </ClInclude>
@@ -420,6 +408,9 @@
     <ClInclude Include="..\Include\cpython\listobject.h">
       <Filter>Include\cpython</Filter>
     </ClInclude>
+    <ClInclude Include="..\Include\cpython\odictobject.h">
+      <Filter>Include</Filter>
+    </ClInclude>
     <ClInclude Include="..\Include\cpython\unicodeobject.h">
       <Filter>Include\cpython</Filter>
     </ClInclude>
@@ -432,15 +423,27 @@
     <ClInclude Include="..\Include\cpython\object.h">
       <Filter>Include\cpython</Filter>
     </ClInclude>
+    <ClInclude Include="..\Include\cpython\parser_interface.h">
+      <Filter>Include</Filter>
+    </ClInclude>
+    <ClInclude Include="..\Include\cpython\picklebufobject.h">
+      <Filter>Include</Filter>
+    </ClInclude>
     <ClInclude Include="..\Include\cpython\pyarena.h">
       <Filter>Include</Filter>
     </ClInclude>
     <ClInclude Include="..\Include\cpython\pyctype.h">
       <Filter>Include</Filter>
     </ClInclude>
+    <ClInclude Include="..\Include\cpython\pydebug.h">
+      <Filter>Include</Filter>
+    </ClInclude>
     <ClInclude Include="..\Include\cpython\pyerrors.h">
       <Filter>Include\cpython</Filter>
     </ClInclude>
+    <ClInclude Include="..\Include\cpython\pyfpe.h">
+      <Filter>Include</Filter>
+    </ClInclude>
     <ClInclude Include="..\Include\cpython\pymem.h">
       <Filter>Include\cpython</Filter>
     </ClInclude>
@@ -474,9 +477,6 @@
     <ClInclude Include="..\Include\cpython\initconfig.h">
       <Filter>Include\cpython</Filter>
     </ClInclude>
-    <ClInclude Include="..\Include\parser_interface.h">
-      <Filter>Include</Filter>
-    </ClInclude>
     <ClInclude Include="..\Include\internal\pycore_warnings.h">
       <Filter>Include\internal</Filter>
     </ClInclude>
diff --git a/Parser/peg_api.c b/Parser/peg_api.c
index 8381d5e86b0db..1555dea51c2d9 100644
--- a/Parser/peg_api.c
+++ b/Parser/peg_api.c
@@ -1,4 +1,4 @@
-#include "parser_interface.h"
+#include "Python.h"
 
 #include "tokenizer.h"
 #include "pegen.h"
diff --git a/Python/pythonrun.c b/Python/pythonrun.c
index dacf1a647106f..338a1b96d39e1 100644
--- a/Python/pythonrun.c
+++ b/Python/pythonrun.c
@@ -26,8 +26,6 @@
 #include "symtable.h"             // PySymtable_BuildObject()
 #include "marshal.h"              // PyMarshal_ReadLongFromFile()
 
-#include "parser_interface.h"      // PyParser_ASTFrom*
-
 #ifdef MS_WINDOWS
 #  include "malloc.h"             // alloca()
 #endif
diff --git a/Tools/scripts/stable_abi.py b/Tools/scripts/stable_abi.py
index 44f426e096adc..cc1009da1bde2 100755
--- a/Tools/scripts/stable_abi.py
+++ b/Tools/scripts/stable_abi.py
@@ -23,7 +23,6 @@
     "longintrepr.h",
     "parsetok.h",
     "pyatomic.h",
-    "pydebug.h",
     "pytime.h",
     "symtable.h",
     "token.h",



More information about the Python-checkins mailing list