As I just committed another dump of code to the repository, I figured 
it was time to update everyone on where the GC stands.

What's working
==============
The copying collector for Buffers (and strings)
Strings and Buffers referenced only from S registers are marked as live
Strings and Buffers referenced from plain PMCs are marked as live
Unused string headers are recycled on the header free list
PMCs are traced from the root set and marked as live (plain PMCs only)

What's not. (Yet)
=================
Non-string Buffer headers aren't recycled
PMC headers aren't recycled
Non-string Buffers aren't allocated from arenas
Unused Buffer memory's not reclaimed
Custom DESTROY methods for PMCs aren't called
Custom GC and DOD routines for PMCs aren't called
PMC classes haven't been audited to make sure they're setting flags correctly.

Reclaiming unused PMC headers is next, along with custom DESTROY 
method calling. Custom GC & DOD routines for PMCs follow, then 
allocation of Buffers from arenas. Then PMC auditing, and then the GC 
& DOD bits should be done.

After that comes keys... :)
-- 
                                         Dan

--------------------------------------"it's like this"-------------------
Dan Sugalski                          even samurai
[EMAIL PROTECTED]                         have teddy bears and even
                                       teddy bears get drunk

Reply via email to