It is an experimental portable cooperative garbage collector for CPython 1.5.2.
At the moment it is a developers only version.
Platforms that use the GNU configure script in their build process are
supported, for other platforms an update is needed to their build process.
Although the code should be fairly stable I do expect some bugs.
Integrated into the build process (configure).
Can be called from Python code as sys.gc().
Can be used as a debugging tool to track down unreachable cycles.
In this case garbage objects are collected into the list sys.garbage
where they can be examined.
Can be used to [automatically] delete unreachable objects.
Selected types can keep the original reference counted behaviour although
deallocation of the objects might be delayed (usually only a little).
_tkinter is supported.
According to pybench-0.6 the modified interpreter is only about 30% slower
than the original one built from py152.tgz.
After some optimization it can be (slightly?) faster.
THINGS TO DO
Polish my English.
Write GOOD documentation that makes it possible to understand its internals.
Fix _tkinter: I expect some memory leaks there (have not tested thoroughly).
Add threading support (it should work, but it is not tested).
Update more modules.
Bring it up to date with the developer version in the CVS.
HOW TO GET IT
The patch can be downloaded from the following URL:
The size of the file is approximately 50k.
If you have ANY comments about the patch do not hesitate to write to the
Bug reports are especially welcome.
the following people for their [mostly in]direct hints and ideas in
Aahz Maruch (aa...@netcom.com),
Graham Matthews (gra...@sloth.math.uga.edu),
Greg Gritton (ggri...@ichips.intel.com),
Guido van Rossum (gu...@python.org),
Samual M. Rushing (rus...@nightmare.com),
Skip Montanaro (sk...@calendar.com),
Tim Peters (tim...@email.msn.com),
Vladimir Marangozov (Vladimir....@inrialpes.fr),
and many more.