◐ Shell
clean mode source ↗

bpo-38113: Update the Python-ast.c generator to PEP384 by DinoV · Pull Request #15957 · python/cpython

Summary: This fully migrates Python-ast.c to PEP384 and removes all statics from the whole file. This modifies the generator itself that generates the Python-ast.c

@blurb-it

ericsnowcurrently

Summary:

Test Plan:

Reviewers:

Subscribers:

Tasks:

Tags:

@DinoV

eduardo-elizondo

ambv pushed a commit that referenced this pull request

Sep 15, 2020
Partially revert commit ac46eb4:
"bpo-38113: Update the Python-ast.c generator to PEP384 (gh-15957)".

Using a module state per module instance is causing subtle practical
problems.

For example, the Mercurial project replaces the __import__() function
to implement lazy import, whereas Python expected that "import _ast"
always return a fully initialized _ast module.

Add _PyAST_Fini() to clear the state at exit.

The _ast module has no state (set _astmodule.m_size to 0). Remove
astmodule_traverse(), astmodule_clear() and astmodule_free()
functions.

pablogsal pushed a commit to pablogsal/cpython that referenced this pull request

Sep 15, 2020
Partially revert commit ac46eb4:
"bpo-38113: Update the Python-ast.c generator to PEP384 (pythongh-15957)".

Using a module state per module instance is causing subtle practical
problems.

For example, the Mercurial project replaces the __import__() function
to implement lazy import, whereas Python expected that "import _ast"
always return a fully initialized _ast module.

Add _PyAST_Fini() to clear the state at exit.

The _ast module has no state (set _astmodule.m_size to 0). Remove
astmodule_traverse(), astmodule_clear() and astmodule_free()
functions..
(cherry picked from commit e5fbe0c)

Co-authored-by: Victor Stinner <vstinner@python.org>

ambv pushed a commit that referenced this pull request

Sep 15, 2020
…-22258)

Partially revert commit ac46eb4:
"bpo-38113: Update the Python-ast.c generator to PEP384 (gh-15957)".

Using a module state per module instance is causing subtle practical
problems.

For example, the Mercurial project replaces the __import__() function
to implement lazy import, whereas Python expected that "import _ast"
always return a fully initialized _ast module.

Add _PyAST_Fini() to clear the state at exit.

The _ast module has no state (set _astmodule.m_size to 0). Remove
astmodule_traverse(), astmodule_clear() and astmodule_free()
functions..
(cherry picked from commit e5fbe0c)

Co-authored-by: Victor Stinner <vstinner@python.org>

xzy3 pushed a commit to xzy3/cpython that referenced this pull request

Oct 18, 2020
Partially revert commit ac46eb4:
"bpo-38113: Update the Python-ast.c generator to PEP384 (pythongh-15957)".

Using a module state per module instance is causing subtle practical
problems.

For example, the Mercurial project replaces the __import__() function
to implement lazy import, whereas Python expected that "import _ast"
always return a fully initialized _ast module.

Add _PyAST_Fini() to clear the state at exit.

The _ast module has no state (set _astmodule.m_size to 0). Remove
astmodule_traverse(), astmodule_clear() and astmodule_free()
functions.