From: Leopold Toetsch <[EMAIL PROTECTED]>
   Date: Sun, 17 Jul 2005 12:08:34 +0200

   > What happens when a store creates a cycle?  And how would this be
   > detected?

   To keep the invariant we can't move the container nor the contained 
   object, *if* both are aggregates. Therefore the pointer store will be 
   recorded on the IGP list. Thus there is no need to detect cycles.

But when are objects taken off the IGP list?  This is not contemplated
in [1], which explicitly mentions as a drawback that circular structures
cannot be recovered [2], and it is not (yet) addressed in the GMC design
[3].  Is one-pass mark-sweep really a suitable GC algorithm for Parrot?

                                        -- Bob

[1]  Armstrong & Virding, "One Pass Real-Time Generational Mark-Sweep
     Garbage Collection" (1995),
     http://citeseer.csail.mit.edu/armstrong95one.html

[2]  ibid, p8.

[3]  http://perso.ens-lyon.fr/alexandre.buisse/divers/gmc_design.pod

Reply via email to