Leopold Toetsch wrote:
> Peter Gibbs wrote:

> Did you look at indexed access, shift, unshift, splice ;-)
I have simply modified classes/array.pmc, which does not yet
implement shift or unshift; grey aims to provide alternative
implementations, rather than add new functionality. However,
since Dan has suggested adding this to CVS as an alternative
array implementation, I will add the extra functionality shortly.

> > In addition, the mark_used function in dod has been
> > changed to not add PMCs to the next_for_GC list if
> > they do not need further processing (i.e. none of the
> > is_PMC_ptr, is_buffer_ptr or custom_mark flags
> > is set) 
> 
> 
> This would give a good patch for CVS too.
This code has no dependencies on anything else in grey,
so I will submit a separate patch for it.

> > Finally, the number of used PMCs within each arena
> > is counted during the marking phase, and arenas
> > with used = allocated are skipped during the free
> > phase; 
> 
> 
> This would make sense for many small arenas. With current 256 objects 
> per arena, I makes only sense for objects, which allocate 512 or more in 
> one go - but yes why not.
My code for this requires that mark_used be able to identify the
arena containing the PMC; currently, CVS parrot cannot do this,
as far as I can see.

-- 
Peter Gibbs
EmKel Systems


Reply via email to