mirror of
https://github.com/python/cpython
synced 2026-09-28 16:18:17 +03: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 | ||
| atof.c | ||
| bltinmodule.c | ||
| ceval.c | ||
| codecs.c | ||
| compile.c | ||
| dup2.c | ||
| dynload_aix.c | ||
| dynload_atheos.c | ||
| dynload_beos.c | ||
| dynload_dl.c | ||
| dynload_hpux.c | ||
| dynload_mac.c | ||
| dynload_next.c | ||
| dynload_os2.c | ||
| dynload_shlib.c | ||
| dynload_stub.c | ||
| dynload_win.c | ||
| errors.c | ||
| exceptions.c | ||
| fmod.c | ||
| frozen.c | ||
| frozenmain.c | ||
| future.c | ||
| getargs.c | ||
| getcompiler.c | ||
| getcopyright.c | ||
| getcwd.c | ||
| getmtime.c | ||
| getopt.c | ||
| getplatform.c | ||
| getversion.c | ||
| graminit.c | ||
| hypot.c | ||
| import.c | ||
| importdl.c | ||
| importdl.h | ||
| mactoolboxglue.c | ||
| marshal.c | ||
| memmove.c | ||
| modsupport.c | ||
| mysnprintf.c | ||
| mystrtoul.c | ||
| pyfpe.c | ||
| pystate.c | ||
| pythonrun.c | ||
| sigcheck.c | ||
| strdup.c | ||
| strerror.c | ||
| strtod.c | ||
| structmember.c | ||
| symtable.c | ||
| sysmodule.c | ||
| thread.c | ||
| thread_atheos.h | ||
| thread_beos.h | ||
| thread_cthread.h | ||
| thread_foobar.h | ||
| thread_lwp.h | ||
| thread_nt.h | ||
| thread_os2.h | ||
| thread_pth.h | ||
| thread_pthread.h | ||
| thread_sgi.h | ||
| thread_solaris.h | ||
| thread_wince.h | ||
| traceback.c | ||