GC (was: kaffe-0.8.x garbage collection problem (at least on m68k))

Michal Cierniak cierniak at cs.rochester.edu
Thu Mar 13 08:05:37 PST 1997


On Wed, 12 Mar 1997, Tim Wilkinson wrote:
> On Wed, 12 Mar 1997 forsyth at plan9.cs.york.ac.uk wrote:
> 
> > indeed, Limbo/Inferno does use a hybrid scheme, with reference counting
> > reclaiming
> > non-circular structures immediately, and another mechanism to
> > reclaim circular structures.
> 
> Yes it does and it's quite nice.  However, Limbo (and Dis in particular) have
> some notable advantages here.  For one, the machines is memory to memory
> rather than stack bases.  This means you don't have to move references to
> and from the stack before using them (with the obvious ref++ and ref-- this
> involves).  Of course you could optimise this some but I just mention it as
> a complication.

Of course another advantage that Limbo has for reference counting is the
compiler support. By default, structures (called adt's in Limbo) can't be
circular (this condition is enforced conservatively at compile-time). This
allows for very efficient implementation of reference counting.

You are allowed to declare circular data structures in Limbo (by using the
"cyclic"  keyword) and then the run-time system will perform garbage
collection by other means.

Michal

P.S. I don't really know Limbo, feel free to read the Limbo manual at
http://inferno.bell-labs.com/inferno/limbo.html and correct me if
misinterpreted something.



More information about the kaffe mailing list