mirror of https://github.com/python/cpython
5b222135f8
This affects the parser, various object implementations, and all places that put identifiers into C string literals. In testing, a number of crashes occurred as code would fail when the recursion limit was reached (such as the Unicode interning dictionary having key/value pairs where key is not value). To solve these, I added an overflowed flag, which allows for 50 more recursions after the limit was reached and the exception was raised, and a recursion_critical flag, which indicates that recursion absolutely must be allowed, i.e. that a certain call must not cause a stack overflow exception. There are still some places where both str and str8 are accepted as identifiers; these should eventually be removed. |
||
---|---|---|
.. | ||
Python.asdl | ||
acceler.c | ||
asdl.py | ||
asdl_c.py | ||
bitset.c | ||
firstsets.c | ||
grammar.c | ||
grammar.mak | ||
grammar1.c | ||
intrcheck.c | ||
listnode.c | ||
metagrammar.c | ||
myreadline.c | ||
node.c | ||
parser.c | ||
parser.h | ||
parsetok.c | ||
pgen.c | ||
pgenmain.c | ||
printgrammar.c | ||
spark.py | ||
tokenizer.c | ||
tokenizer.h | ||
tokenizer_pgen.c |