[LWN Logo]

From: "Neil Schemenauer" <nascheme@enme.ucalgary.ca>
Date: Fri, 7 Apr 2000 22:17:50 -0600
To: python-list@python.org
Subject: [ANNOUNCE] Garbage collection for Python

Garbage collection for Python:

    http://www.enme.ucalgary.ca/~nascheme/python/gc.html

I think I have all of the wrinkles ironed out of this patch.
Reference cycles involving lists, tuples, instances, classes,
dictionaries, and functions are found.  Instances with __del__
methods are handled in a sane way.  It is easy to add GC support
to new types.  GC enabled Python is binary compatible with
regular Python.  

Generational collection works (currently three generations).  The
overhead measured by pybench is less than 1 percent and is not
measurable with pystone (on my machine).  Virually all extension
modules should work unchanged (I had to modify new and cPickle in
the standard distribution).  A new module called gc is available
for tuning the collector and setting debugging options.

The collector should be portable across all platforms but I have
only tested on my Linux machine.  The patched version of Python
passes all regression tests and runs Grail, Idle and Sketch
without problems.

The patch is against the current CVS version of Python.  If
enough people ask for a patch against the stable version of
Python I will make one.  Please send comments and bug reports.


    Neil

-- 
"Simplicity does not precede complexity, but follows it." -- Alan Perlis