• Andrew MacIntyre's avatar
    SF patch #578297: · 80d4e2ac
    Andrew MacIntyre yazdı
    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.
    80d4e2ac
acceler.c 3.08 KB