bpo-43244: Remove ast.h, asdl.h, Python-ast.h headers (GH-24933)

These functions were undocumented and excluded from the limited C
API.

Most names defined by these header files were not prefixed by "Py"
and so could create names conflicts. For example, Python-ast.h
defined a "Yield" macro which was conflict with the "Yield" name used
by the Windows <winbase.h> header.

Use the Python ast module instead.

* Move Include/asdl.h to Include/internal/pycore_asdl.h.
* Move Include/Python-ast.h to Include/internal/pycore_ast.h.
* Remove ast.h header file.
* pycore_symtable.h no longer includes Python-ast.h.
This commit is contained in:
Victor Stinner 2021-03-23 20:47:40 +01:00 committed by GitHub
parent cd27af70d5
commit 94faa0724f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
29 changed files with 931 additions and 933 deletions

4
Python/Python-ast.c generated
View file

@ -24,9 +24,9 @@ get_ast_state(void)
return state;
}
// Include Python-ast.h after pycore_interp.h to avoid conflicts
// Include pycore_ast.h after pycore_interp.h to avoid conflicts
// with the Yield macro redefined by <winbase.h>
#include "Python-ast.h"
#include "pycore_ast.h"
#include "structmember.h"
void _PyAST_Fini(PyInterpreterState *interp)

View file

@ -1,5 +1,5 @@
#include "Python.h"
#include "asdl.h"
#include "pycore_asdl.h"
GENERATE_ASDL_SEQ_CONSTRUCTOR(generic, void*);
GENERATE_ASDL_SEQ_CONSTRUCTOR(identifier, PyObject*);

View file

@ -3,8 +3,7 @@
* of the given abstract syntax tree (potentially constructed manually).
*/
#include "Python.h"
#include "Python-ast.h"
#include "ast.h"
#include "pycore_ast.h" // asdl_stmt_seq
#include <assert.h>

View file

@ -1,7 +1,7 @@
#include <float.h> /* DBL_MAX_10_EXP */
#include <stdbool.h>
#include "Python.h"
#include "Python-ast.h"
#include "pycore_ast.h" // expr_ty
#include <float.h> // DBL_MAX_10_EXP
#include <stdbool.h>
static PyObject *_str_open_br;
static PyObject *_str_dbl_open_br;

View file

@ -2,9 +2,8 @@
#include "Python.h"
#include <ctype.h>
#include "ast.h"
#undef Yield /* undefine macro conflicting with <winbase.h> */
#include "pycore_ast.h" // _PyAST_Validate()
#undef Yield /* undefine macro conflicting with <winbase.h> */
#include "pycore_object.h" // _Py_AddToAllObjects()
#include "pycore_pyerrors.h" // _PyErr_NoMemory()
#include "pycore_pystate.h" // _PyThreadState_GET()

View file

@ -2,7 +2,6 @@
#include "Python.h"
#include "Python-ast.h"
#undef Yield /* undefine macro conflicting with <winbase.h> */
#include "pycore_import.h" // _PyImport_BootstrapImp()
#include "pycore_initconfig.h"

View file

@ -2,9 +2,6 @@
#include "Python.h"
#include "Python-ast.h"
#undef Yield /* undefine macro conflicting with <winbase.h> */
#include "pycore_ceval.h" // _PyEval_FiniGIL()
#include "pycore_context.h" // _PyContext_Init()
#include "pycore_fileutils.h" // _Py_ResetForceASCII()

View file

@ -10,7 +10,7 @@
#include "Python.h"
#include "Python-ast.h"
#include "pycore_ast.h" // PyAST_mod2obj
#undef Yield /* undefine macro conflicting with <winbase.h> */
#include "pycore_interp.h" // PyInterpreterState.importlib

View file

@ -1,4 +1,5 @@
#include "Python.h"
#include "pycore_ast.h" // identifier, stmt_ty
#include "pycore_pystate.h" // _PyThreadState_GET()
#include "pycore_symtable.h" // PySTEntryObject
#undef Yield /* undefine macro conflicting with <winbase.h> */