[Python-checkins] bpo-45434: Remove Include/eval.h header file (GH-28973)

vstinner webhook-mailer at python.org
Fri Oct 15 07:06:10 EDT 2021


https://github.com/python/cpython/commit/105582e74c1817bc6a9d99bcb6540b34a3367292
commit: 105582e74c1817bc6a9d99bcb6540b34a3367292
branch: main
author: Victor Stinner <vstinner at python.org>
committer: vstinner <vstinner at python.org>
date: 2021-10-15T13:06:05+02:00
summary:

bpo-45434: Remove Include/eval.h header file (GH-28973)

Move Include/eval.h content into Include/ceval.h and
Include/cpython/ceval.h, and remove Include/eval.h.

files:
D Include/eval.h
M Doc/faq/extending.rst
M Doc/faq/windows.rst
M Doc/whatsnew/3.11.rst
M Include/Python.h
M Include/ceval.h
M Include/cpython/ceval.h
M Makefile.pre.in
M Misc/NEWS.d/next/C API/2021-10-15-00-11-51.bpo-35134.eX4zqy.rst
M PCbuild/pythoncore.vcxproj
M PCbuild/pythoncore.vcxproj.filters

diff --git a/Doc/faq/extending.rst b/Doc/faq/extending.rst
index 3379e41d9de07..fd32b097335e5 100644
--- a/Doc/faq/extending.rst
+++ b/Doc/faq/extending.rst
@@ -290,9 +290,6 @@ complete example using the GNU readline library (you may want to ignore
 
    #define PY_SSIZE_T_CLEAN
    #include <Python.h>
-   #include <object.h>
-   #include <compile.h>
-   #include <eval.h>
 
    int main (int argc, char* argv[])
    {
diff --git a/Doc/faq/windows.rst b/Doc/faq/windows.rst
index 0153a4f316ee8..6b95819c8ee85 100644
--- a/Doc/faq/windows.rst
+++ b/Doc/faq/windows.rst
@@ -212,7 +212,7 @@ Embedding the Python interpreter in a Windows app can be summarized as follows:
 
    .. code-block:: c
 
-      #include "python.h"
+      #include <Python.h>
       ...
       Py_Initialize();  // Initialize Python.
       initmyAppc();  // Initialize (import) the helper class.
diff --git a/Doc/whatsnew/3.11.rst b/Doc/whatsnew/3.11.rst
index 2e95228186579..994fb843fd377 100644
--- a/Doc/whatsnew/3.11.rst
+++ b/Doc/whatsnew/3.11.rst
@@ -573,11 +573,11 @@ Porting to Python 3.11
   (Contributed by Victor Stinner in :issue:`45434`.)
 
 * The non-limited API files ``cellobject.h``, ``classobject.h``, ``context.h``,
-  ``funcobject.h``, ``genobject.h`` and ``longintrepr.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.
+  ``funcobject.h``, ``genobject.h`` and ``longintrepr.h`` have been moved to
+  the ``Include/cpython`` directory. Moreover, the ``eval.h`` header file was
+  removed. 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 Victor Stinner in :issue:`35134`.)
 
 Deprecated
diff --git a/Include/Python.h b/Include/Python.h
index bc8d4f9b54889..a2de514702f2f 100644
--- a/Include/Python.h
+++ b/Include/Python.h
@@ -96,7 +96,6 @@
 #include "import.h"
 #include "abstract.h"
 #include "bltinmodule.h"
-#include "eval.h"
 #include "cpython/pyctype.h"
 #include "pystrtod.h"
 #include "pystrcmp.h"
diff --git a/Include/ceval.h b/Include/ceval.h
index cf8c5b17be589..1b57f6ea20f6f 100644
--- a/Include/ceval.h
+++ b/Include/ceval.h
@@ -1,3 +1,5 @@
+/* Interface to random parts in ceval.c */
+
 #ifndef Py_CEVAL_H
 #define Py_CEVAL_H
 #ifdef __cplusplus
@@ -5,7 +7,15 @@ extern "C" {
 #endif
 
 
-/* Interface to random parts in ceval.c */
+PyAPI_FUNC(PyObject *) PyEval_EvalCode(PyObject *, PyObject *, PyObject *);
+
+PyAPI_FUNC(PyObject *) PyEval_EvalCodeEx(PyObject *co,
+                                         PyObject *globals,
+                                         PyObject *locals,
+                                         PyObject *const *args, int argc,
+                                         PyObject *const *kwds, int kwdc,
+                                         PyObject *const *defs, int defc,
+                                         PyObject *kwdefs, PyObject *closure);
 
 /* PyEval_CallObjectWithKeywords(), PyEval_CallObject(), PyEval_CallFunction
  * and PyEval_CallMethod are deprecated. Since they are officially part of the
diff --git a/Include/cpython/ceval.h b/Include/cpython/ceval.h
index 44b78f6d22312..caf64401307c0 100644
--- a/Include/cpython/ceval.h
+++ b/Include/cpython/ceval.h
@@ -2,6 +2,8 @@
 #  error "this header file must not be included directly"
 #endif
 
+PyAPI_FUNC(PyObject *) _PyEval_CallTracing(PyObject *func, PyObject *args);
+
 PyAPI_FUNC(void) PyEval_SetProfile(Py_tracefunc, PyObject *);
 PyAPI_DATA(int) _PyEval_SetProfile(PyThreadState *tstate, Py_tracefunc func, PyObject *arg);
 PyAPI_FUNC(void) PyEval_SetTrace(Py_tracefunc, PyObject *);
diff --git a/Include/eval.h b/Include/eval.h
deleted file mode 100644
index eda28df8f6528..0000000000000
--- a/Include/eval.h
+++ /dev/null
@@ -1,27 +0,0 @@
-
-/* Interface to execute compiled code */
-
-#ifndef Py_EVAL_H
-#define Py_EVAL_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-PyAPI_FUNC(PyObject *) PyEval_EvalCode(PyObject *, PyObject *, PyObject *);
-
-PyAPI_FUNC(PyObject *) PyEval_EvalCodeEx(PyObject *co,
-                                         PyObject *globals,
-                                         PyObject *locals,
-                                         PyObject *const *args, int argc,
-                                         PyObject *const *kwds, int kwdc,
-                                         PyObject *const *defs, int defc,
-                                         PyObject *kwdefs, PyObject *closure);
-
-#ifndef Py_LIMITED_API
-PyAPI_FUNC(PyObject *) _PyEval_CallTracing(PyObject *func, PyObject *args);
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* !Py_EVAL_H */
diff --git a/Makefile.pre.in b/Makefile.pre.in
index ccce52b36c42e..b79b71f59b145 100644
--- a/Makefile.pre.in
+++ b/Makefile.pre.in
@@ -1137,7 +1137,6 @@ PYTHON_HEADERS= \
 		$(srcdir)/Include/dynamic_annotations.h \
 		$(srcdir)/Include/enumobject.h \
 		$(srcdir)/Include/errcode.h \
-		$(srcdir)/Include/eval.h \
 		$(srcdir)/Include/fileobject.h \
 		$(srcdir)/Include/fileutils.h \
 		$(srcdir)/Include/floatobject.h \
diff --git a/Misc/NEWS.d/next/C API/2021-10-15-00-11-51.bpo-35134.eX4zqy.rst b/Misc/NEWS.d/next/C API/2021-10-15-00-11-51.bpo-35134.eX4zqy.rst
index 4ab10884a5492..d0d3ce6b34f6f 100644
--- a/Misc/NEWS.d/next/C API/2021-10-15-00-11-51.bpo-35134.eX4zqy.rst	
+++ b/Misc/NEWS.d/next/C API/2021-10-15-00-11-51.bpo-35134.eX4zqy.rst	
@@ -1,4 +1,7 @@
-Move ``cellobject.h``, ``classobject.h``, ``context.h``, ``funcobject.h``,
-``genobject.h`` and ``longintrepr.h`` header files from ``Include/`` to
-``Include/cpython/``. C extensions should only include the main ``<Python.h>``
-header. Patch by Victor Stinner.
+The non-limited API files ``cellobject.h``, ``classobject.h``, ``context.h``,
+``funcobject.h``, ``genobject.h`` and ``longintrepr.h`` have been moved to
+the ``Include/cpython`` directory. Moreover, the ``eval.h`` header file was
+removed. 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.
+Patch by Victor Stinner.
diff --git a/PCbuild/pythoncore.vcxproj b/PCbuild/pythoncore.vcxproj
index 32511d2a66511..357d0a7071031 100644
--- a/PCbuild/pythoncore.vcxproj
+++ b/PCbuild/pythoncore.vcxproj
@@ -166,7 +166,6 @@
     <ClInclude Include="..\Include\dynamic_annotations.h" />
     <ClInclude Include="..\Include\enumobject.h" />
     <ClInclude Include="..\Include\errcode.h" />
-    <ClInclude Include="..\Include\eval.h" />
     <ClInclude Include="..\Include\fileobject.h" />
     <ClInclude Include="..\Include\fileutils.h" />
     <ClInclude Include="..\Include\floatobject.h" />
diff --git a/PCbuild/pythoncore.vcxproj.filters b/PCbuild/pythoncore.vcxproj.filters
index 4cc1092b33a49..1a3ad884d4ac3 100644
--- a/PCbuild/pythoncore.vcxproj.filters
+++ b/PCbuild/pythoncore.vcxproj.filters
@@ -84,9 +84,6 @@
     <ClInclude Include="..\Include\errcode.h">
       <Filter>Include</Filter>
     </ClInclude>
-    <ClInclude Include="..\Include\eval.h">
-      <Filter>Include</Filter>
-    </ClInclude>
     <ClInclude Include="..\Include\fileobject.h">
       <Filter>Include</Filter>
     </ClInclude>



More information about the Python-checkins mailing list