Skip to content

Commit

Permalink
bpo-43244: Remove ast.h, asdl.h, Python-ast.h headers (pythonGH-24933)
Browse files Browse the repository at this point in the history
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.
  • Loading branch information
vstinner authored Mar 23, 2021
1 parent cd27af7 commit 94faa07
Show file tree
Hide file tree
Showing 29 changed files with 931 additions and 933 deletions.
2 changes: 1 addition & 1 deletion .gitattributes
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ PC/clinic/*.h linguist-generated=true
Python/clinic/*.h linguist-generated=true
Python/importlib.h linguist-generated=true
Python/importlib_external.h linguist-generated=true
Include/Python-ast.h linguist-generated=true
Include/internal/pycore_ast.h linguist-generated=true
Python/Python-ast.c linguist-generated=true
Include/opcode.h linguist-generated=true
Python/opcode_targets.h linguist-generated=true
Expand Down
10 changes: 9 additions & 1 deletion Doc/whatsnew/3.10.rst
Original file line number Diff line number Diff line change
Expand Up @@ -1384,5 +1384,13 @@ Removed
it could not be used, because the ``symtable.h`` header file was excluded
from the limited C API.
The Python :mod:`symtable` module remains available and is unchanged.
Use Python :mod:`symtable` module instead.
(Contributed by Victor Stinner in :issue:`43244`.)
* Remove ``ast.h``, ``asdl.h``, and ``Python-ast.h`` header files.
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 :mod:`ast` module instead.
(Contributed by Victor Stinner in :issue:`43244`.)
Loading

0 comments on commit 94faa07

Please sign in to comment.