Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Lib/symbol.py is out of sync with Grammar/Grammar #68485

Closed
mgedmin mannequin opened this issue May 27, 2015 · 7 comments
Closed

Lib/symbol.py is out of sync with Grammar/Grammar #68485

mgedmin mannequin opened this issue May 27, 2015 · 7 comments
Assignees
Labels
release-blocker stdlib Python modules in the Lib dir

Comments

@mgedmin
Copy link
Mannequin

mgedmin mannequin commented May 27, 2015

BPO 24297
Nosy @mgedmin, @benjaminp, @bitdancer, @1st1
Files
  • test_symbol.patch
  • Note: these values reflect the state of the issue at the time it was migrated and might not reflect the current state.

    Show more details

    GitHub fields:

    assignee = 'https://github.com/1st1'
    closed_at = <Date 2015-05-28.18:06:48.316>
    created_at = <Date 2015-05-27.12:51:14.636>
    labels = ['library', 'release-blocker']
    title = 'Lib/symbol.py is out of sync with Grammar/Grammar'
    updated_at = <Date 2015-09-02.12:35:11.274>
    user = 'https://github.com/mgedmin'

    bugs.python.org fields:

    activity = <Date 2015-09-02.12:35:11.274>
    actor = 'python-dev'
    assignee = 'yselivanov'
    closed = True
    closed_date = <Date 2015-05-28.18:06:48.316>
    closer = 'yselivanov'
    components = ['Library (Lib)']
    creation = <Date 2015-05-27.12:51:14.636>
    creator = 'mgedmin'
    dependencies = []
    files = ['39519']
    hgrepos = []
    issue_num = 24297
    keywords = ['patch']
    message_count = 7.0
    messages = ['244160', '244168', '244174', '244177', '244334', '244335', '249540']
    nosy_count = 5.0
    nosy_names = ['mgedmin', 'benjamin.peterson', 'r.david.murray', 'python-dev', 'yselivanov']
    pr_nums = []
    priority = 'release blocker'
    resolution = 'fixed'
    stage = 'resolved'
    status = 'closed'
    superseder = None
    type = None
    url = 'https://bugs.python.org/issue24297'
    versions = ['Python 3.5', 'Python 3.6']

    @mgedmin
    Copy link
    Mannequin Author

    mgedmin mannequin commented May 27, 2015

    While investigating https://bitbucket.org/pypa/setuptools/issue/388/install-from-sdist-fails-on-python-350b1 I noticed that Grammar/Grammar changed in 3.5, but Lib/symbol.py wasn't updated.

    I'm not familiar with the CPython parser, but I suspect that adding/removing/splitting grammar rules causes the nonterminal symbol IDs to shift, which ought to require an update in symbol.py.

    Huh. Now I see a comment in the file says it is automatically generated, but in that case why wasn't that done when I did 'hg pull -u && make && make install'? Why is it checked into source control?

    @mgedmin mgedmin mannequin added the stdlib Python modules in the Lib dir label May 27, 2015
    @bitdancer
    Copy link
    Member

    It is "automatically generated" in that it isn't hand-written. On the other hand, it isn't "automatically generated" in the sense of being part of the make process, ./python symbol.py is supposed to be run by hand when it is appropriate.

    A bit ago someone wrote tests for keyword.py that among other things made sure we didn't forget to update it when needed. Someone needs to write a similar test for symbol, it looks like.

    Whether or not one or both of these could be/should be incorporated into make (now that we have 'make touch' to deal with the consequences) is a separate question. As to why it is checked in, we check in almost all the build artifacts previous to the compile stage, so that there is no need to have an already-built python to build python from source.

    @python-dev
    Copy link
    Mannequin

    python-dev mannequin commented May 27, 2015

    New changeset 843fe7e831a8 by Yury Selivanov in branch '3.5':
    bpo-24297: Update symbol.py. See also bpo-24017.
    https://hg.python.org/cpython/rev/843fe7e831a8

    New changeset 87509d71653b by Yury Selivanov in branch 'default':
    bpo-24297: Update symbol.py. See also bpo-24017.
    https://hg.python.org/cpython/rev/87509d71653b

    @1st1
    Copy link
    Member

    1st1 commented May 27, 2015

    Attached is a new unittest to make sure that symbol.py is always updated. Essentially it's the same test that we have for keywords.py. Please review.

    @1st1 1st1 self-assigned this May 27, 2015
    @python-dev
    Copy link
    Mannequin

    python-dev mannequin commented May 28, 2015

    New changeset a95d0dd3c2b1 by Yury Selivanov in branch 'default':
    bpo-24297: Add a unittest that Lib/symbol.py is in sync with Grammar
    https://hg.python.org/cpython/rev/a95d0dd3c2b1

    @1st1
    Copy link
    Member

    1st1 commented May 28, 2015

    Marius, thanks for reporting the bug and review!

    @1st1 1st1 closed this as completed May 28, 2015
    @python-dev
    Copy link
    Mannequin

    python-dev mannequin commented Sep 2, 2015

    New changeset bf7ef3bd9a09 by Victor Stinner in branch 'default':
    bpo-24297: Fix test_symbol on Windows
    https://hg.python.org/cpython/rev/bf7ef3bd9a09

    @ezio-melotti ezio-melotti transferred this issue from another repository Apr 10, 2022
    Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
    Labels
    release-blocker stdlib Python modules in the Lib dir
    Projects
    None yet
    Development

    No branches or pull requests

    3 participants