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