[svn:ponie] rev 307 - trunk

[email protected] 1 Jul 2005 15:34:12 -0000
Newsgroups perl.ponie.changes
Message-ID <[email protected]>
Author: nicholas
Date: Fri Jul  1 08:34:12 2005
New Revision: 307

Modified:
   trunk/   (props changed)
   trunk/Roadmap
Log:
 r25980@ship-in-a-bottle:  nick | 2005-07-01 16:30:45 +0100
 Update the Roadmap with the new task (finding hidden cross references)


Modified: trunk/Roadmap
==============================================================================
--- trunk/Roadmap	(original)
+++ trunk/Roadmap	Fri Jul  1 08:34:12 2005
@@ -333,38 +333,73 @@ This involves
 
 =item 1
 
+Chase down all the places in the perl core that hold pointers to referenced
+counted objects but don't hold a reference. We need to know where these are so
+that they can either become part of the GC marking code, or so that they can
+hold an "external" reference which the GC is aware of.
+
+So far I'm aware of
+
+=over 4
+
+=item *
+
+C<CvSTASH>, C<CvGV>
+
+=item *
+
+C<GvEGV>
+
+=item *
+
+GV pointers in the optree.
+
+=item *
+
+There's a comment in F<sv.c> about fake dirp (rsfps).
+
+=back
+
+The comments in C<sv_dup> and the associated ithreads cloning routines in
+F<sv.c> are the best clues as to what needs to be done.
+
+10 days. (Partially done - chased down the reference loop between symbol tables
+and typeglobs)
+
+=item 2
+
 Making Parrot's GC walk the Perl 5 C stack.
 
 1 day
 
-=item 2
+=item 3
 
 Registering PMCs held in Perl globals.
 
 2 days
 
-=item 3
+=item 4
 
 Amending the reference, array and hash code to properly mark the contained
 PMCs as "in use".
 
 2 days
 
-=item 4
+=item 5
 
 Replacing C<SvREFCNT_inc()> and C<SvREFCNT_dec()> macros with null
 operations inside the core. (Unaware XS code would still use them)
 
 5 minutes
 
-=item 5
+=item 6
 
 Experimenting to find out how much of the special case code for the Perl stack
 and C<@_> can be removed.
 
 3 days
 
-=item 6
+=item 7
 
 Calling a high priority DOD run at every freetmps point. (Roughly every
 semicolon)
@@ -427,7 +462,7 @@ To be useful this task depends on the re
 
 =back
 
-65 days, plus 3 if Pads need migrating.
+75 days, plus 3 if Pads need migrating.
 
 =head3 Migrating complexity from Ops to PMCs
 
@@ -686,9 +721,9 @@ If this process averages out at 2 hours 
 
 =head2 Release!
 
-The estimate is that this takes 261 days. This is a lot.
+The estimate is now that this takes 271 days. This is a lot.
 
-About 50 days of the first 60 can't be parallelised easily. Later work is
+About 50 days of the first 70 can't be parallelised easily. Later work is
 more parallelisable, less dependent, shorter, and far more suitable for
 others to work on.