On Wednesday 06 January 2010 at 13:44, Vasily Chekalkin wrote: > Hello. > > After recent play with Boehm GC and Parrot's GC I have next "roadmap" > for properly encapsulate GC in Parrot. It will give us ability to > implement almost any kind of GC without reworking all things. > > 1. Extend GC_Subsystem struct with next functions: > a) allocate_pmc_header(flags) > b) allocate_string_header(flags?) > c) allocate_attributes(pmc_enum) > d) allocate_raw_buffer - to allocate buffer without pointers. Useful > for Strings, FixedIntegerArray, etc. > e) allocate_buffer - buffer which can contains pointers. > > 2. Change various Parrot_gc_foo functions to use it instead of > interp->mem_pools and remove interp->mem_pools. > > 3. Change current MS GC to allocate mem_pools in > GC_Subsystem->gc_private attribute. > > Any thought/ideas/objections? If no one will complain I'll try to > implement it over weekend so we can ship it with 2.0.
That all looks reasonable to me. I suspect that eventually we can merge some of these functions (why do we need separate functions for PMC and STRING pools?), but first things first. I know why we need them *now*, but in the future we might not. -- c _______________________________________________ http://lists.parrot.org/mailman/listinfo/parrot-dev
