From: chromatic <[EMAIL PROTECTED]>
   Date: Sun, 24 Feb 2008 01:55:20 -0800

   Some of our memory problems seem to be strange interactions between
   PObjs allocated out of constant pools, garbage collection, and
   freezing/thawing PBC (not to mention the interaction of HLLs).

Amen! -- particularly the "strange" part.  I suspect that Kea-CL has
been hard hit lately because it may do things differently.  Is there
something I should be looking out for?

   PObjs allocated out of constant pools persist in memory.  They get marked 
   (sometimes, but not always), but the garbage collector doesn't sweep the 
   constant pools to recollect them.

   This is not normally a problem for most constant PObjs.  It's mostly fine 
for 
   strings, and it's fine for PMCs that do not have a special mark() vtable 
   entry.

   PMCs that *do* need a special mark() are troublesome; they may contain 
   pointers to non-constant PObjs that *do* need live marking, lest they get 
   swept away during the second half of GC.  If these constant PObjs don't get 
   marked, there's a problem.

Why do constant PMCs ever need to point to non-constant ones?  In other
words, why are those pointed-to PObjs not also constant?  IIUC, this is
different from any GC system that I've ever heard of.  The whole point
of having "pure space" (or whatever you want to call the readonly
constant space) is to avoid having to follow pointers into pure space;
this ought to be unnecessary because pure objects can't keep dynamic
space objects live.  If you allow pointers from pure space into the rest
of the heap, then that invariant no longer applies, and you are forced
to trace pure objects just like any other.  Am I missing something here?

   . . .

   I welcome thoughts and especially explanations and help on this.  I've been 
   tracking down these issues off and on for weeks, and in plenty of detail for 
   most of the past week.  Help!

   -- c

I wish I understood even a tenth part of Parrot's memory management.
Given that handicap, I'd be happy to help, in whatever way I can, but
I'm afraid it will take a while to get me up to speed.

                                        -- Bob

Reply via email to