Proposed change to ForeignPtr

Alastair Reid alastair at
Wed Sep 11 06:06:02 EDT 2002

> BTW, having two languages with separated heaps interact is a big
> mess as soon as you can have cycles, which you usually cannot
> exclude.  Alastair already pointed that out and Martin Odersky also
> has nice stories to tell about this.

Hmmm, way back in '94, my thought was that the only thing to do in the
presence of these cycles was to run the two GCs at once with a rather
intimate communication between them where one says 'I can reach X' the
other says 'ok, now I can reach Y', and eventually they both run out
of objects to trace and they can discard unreached objects.

The problem with this is that it runs into the same problems Malcolm
and I are so keen to avoid: the other language has to be able to
trigger GCs at more or less arbitrary times.

Since then, I've read a lot about non-stop concurrent GC which doesn't
need the two GCs to run simultaneously.  Just thinking aloud, I wonder
if it would be any easier to implement?  The communication would be
much the same ('I'm starting', 'I can reach X' and 'I'm done') but 
there'd be no need to synchronize the GCs.

Alastair Reid                 alastair at  
Reid Consulting (UK) Limited

More information about the FFI mailing list