[Python-Dev] Python 1.6 timing (fwd)

Christian Tismer tismer@tismer.com
Thu, 20 Jan 2000 20:11:13 +0100


[garbage collection]

gvwilson@nevex.com wrote:

> I agree on all counts except garbage collection --- I'm half-way through
> the second day of the Python class I teach at Los Alamos (the people who
> are funding the Python tool design competition), and it's come up a couple
> of times.  People want to be able to prototype meshes, throw callbacks
> around without worrying about circularity, and some other things that I
> don't really understand yet.  There's also a couple of smart guys in the
> class who are wondering about CPython vs. JPython ("So this'll be safe in
> one version of the language, but not in the other?"), and about marketing
> ("Help me win a feature comparison against Java in my group...").

Guido once posted some proposal of a hybrid system *with* refcounts
and some additional garbage collection scheme to match circular
things. I believe this is a much better approach than what Java
and therefor also JPython does at the moment.

Although people might argue differently, I'm pretty sure that
reference counting is the stronger concept. By reference counting,
the idea of object ownership can be made explicit. This plays a
central role in the Corba specification for instance, and I made
the same observation when implementing continuations for Stackless
Python. Refcounts are no burden but a virtue.
Even better: Refcounting can lead to many new optimizations if
we pay the cost to make INCREF/DECREF into methods. It has its cost
(about 10 percent less pystones), but massive long-term benefits.

I'm currently in charge to develop a custom version of Python's
builtin types where this concept is used. Everything is refcounted,
but without storing the refcounts in the objects. This is possible
(proven) and will be shown in my next paper.

Conclusion: I vote for a kind of GC that does just what refcounts
cannot do, but please keep with the refcounts.

cheers - chris

-- 
Christian Tismer             :^)   <mailto:tismer@appliedbiometrics.com>
Virtual Photonics GmbH       :     Have a break! Take a ride on Python's
Carnotstr. 6                 :    *Starship* http://starship.python.net
10587 Berlin                 :     PGP key -> http://wwwkeys.pgp.net
PGP Fingerprint       E182 71C7 1A9D 66E9 9D15  D3CC D4D7 93E2 1FAE F6DF
     we're tired of banana software - shipped green, ripens at home