ASPN ActiveState Programmer Network
ActiveState
/ Home / Perl / PHP / Python / Tcl / XSLT /
/ Safari / My ASPN /
Cookbooks | Documentation | Mailing Lists | Modules | News Feeds | Products | User Groups


Recent Messages
List Archives
About the List
List Leaders
Subscription Options

View Subscriptions
Help

View by Topic
ActiveState
.NET Framework
Open Source
Perl
PHP
Python
Tcl
Web Services
XML & XSLT

View by Category
Database
General
SOAP
System Administration
Tools
User Interfaces
Web Programming
XML Programming


MyASPN >> Mail Archive >> perl6-internals
perl6-internals
Re: GMC for dummies
by Bob Rogers other posts by this author
Jul 18 2005 8:54PM messages near this date
Re: GMC for dummies | Re: GMC for dummies
From: Leopold Toetsch <lt@[...].at> 
   Date: Mon, 18 Jul 2005 17:08:53 +0200

   Circular or not isn't really the problem. With generational GC you'll 
   always have the chance of tenured garbage . . .

   Now due to some other pointer store the object C becomes dead. But as 
   long as we don't scan up to generation j, we don't realize this and 
   object A stays alive.

That's true, but not my point.  I don't understand how the IGP mechanism
permits cycles to be collected at all.

   . . .

       gen n           |       gen j
       [ A ] ->  [ B ] -|-----> [ C ]
	 ^                      |
	 +----------------------+

   A circular data structure doesn't really change the picture, except, 
   when again scanning up to generation j, and we find object C being 
   alive, we'd have to restart scanning at object A, by following the 
   backreference.
   If non of A, B, or C is referenced from elsewhere, we would still delete 
   the whole reference loop.

So that means you do not use the IGP pointer to A when collecting any
generation <= j, correct?  Otherwise, I imagine you'd always decide that
A is alive, and hence B and C.

   But what if A, B, and C are all in the same generation?  You'd still
need an IGP entry, even though it's not inter-generational, in order to
handle the backpointer, but how would you then decide that it's invalid?

   >  ...  Is one-pass mark-sweep really a suitable GC algorithm for Parrot?

   I still think it's suitable yes. It's only in the above case that we 
   can't immediately cleanup A, because of the invalidation of the IGP entry.

   leo

I am willing to believe that there could be an IGP mechanism that would
perform as described, but I haven't yet heard enough to understand it
myself.  Perhaps you should save your (metaphorical) breath, and I'll
wait for a more detailed design.

					-- Bob Rogers
Thread:
Nattfodd
Nattfodd
Leopold Toetsch
Bob Rogers
Leopold Toetsch
Bob Rogers
Leopold Toetsch
Bob Rogers
Leopold Toetsch
Nattfodd
Bob Rogers
Alexandre Buisse
Bob Rogers
Nicholas Clark
Bob Rogers
Nattfodd
Bob Rogers
Nattfodd
Leopold Toetsch
Nattfodd
Leopold Toetsch
Nattfodd

Privacy Policy | Email Opt-out | Feedback | Syndication
© 2004 ActiveState, a division of Sophos All rights reserved