You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Lib/symbol.py is out of sync with Grammar/Grammar #68485
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=<Date2015-05-28.18:06:48.316>created_at=<Date2015-05-27.12:51:14.636>labels= ['library', 'release-blocker']
title='Lib/symbol.py is out of sync with Grammar/Grammar'updated_at=<Date2015-09-02.12:35:11.274>user='https://github.com/mgedmin'
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?
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.
Activity
mgedmin commentedon 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?
bitdancer commentedon May 27, 2015
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 commentedon 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 commentedon 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.
python-dev commentedon 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 commentedon May 28, 2015
Marius, thanks for reporting the bug and review!
python-dev commentedon 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