mirror of
https://github.com/python/cpython.git
synced 2025-11-02 11:08:57 +00:00
Change the parser and compiler to use PyMalloc. Only the files implementing processes that will request memory allocations small enough for PyMalloc to be a win have been changed, which are:- - Python/compile.c - Parser/acceler.c - Parser/node.c - Parser/parsetok.c This augments the aggressive overallocation strategy implemented by Tim Peters in PyNode_AddChild() [Parser/node.c], in reducing the impact of platform malloc()/realloc()/free() corner case behaviour. Such corner cases are known to be triggered by test_longexp and test_import. Jeremy Hylton, in accepting this patch, recommended this as a bugfix candidate for 2.2. While the changes to Python/compile.c and Parser/node.c backport easily (and could go in), the changes to Parser/acceler.c and Parser/parsetok.c require other not insignificant changes as a result of the differences in the memory APIs between 2.3 and 2.2, which I'm not in a position to work through at the moment. This is a pity, as the Parser/parsetok.c changes are the most important after the Parser/node.c changes, due to the size of the memory requests involved and their frequency. |
||
|---|---|---|
| .. | ||
| .cvsignore | ||
| acceler.c | ||
| 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 | ||
| pgen.h | ||
| pgenmain.c | ||
| printgrammar.c | ||
| tokenizer.c | ||
| tokenizer.h | ||