Re: PMC changes?

[email protected] (Leopold Toetsch) Thu, 14 Jul 2005 18:01:53 +0200
Newsgroups perl.perl6.internals,perl.ponie.dev
Message-ID <[email protected]>
Nicholas Clark wrote:
> Is the PMC layout likely to remain stable? There's been talk of minimal
> PMC heads (data, vtable) in relation to the generational garbage collector
> proposals. Is this likely to happen? Related to this there has been talk of
> variable sized bodies.

I'd like to have a small head and variable sized bodies. Now we have a 
rigid structure (or rather two: PMC, PMC_EXT), and the variable part 
e.g. object attributes hangs off another structure in 
pmc->pmc_ext->data. This is not only suboptimal from data locality or 
access time POV, it's more a serious restriction, how you lay out your 
PMC data.

WRT generational GC: yes such a PMC layout is very likely needed to be 
able to partition your existing PMCs into generations. src/gc_gms.c 
tries a different approach and needs 4 extra pointers per PMC.

> If there are changes, how much of the existing API will still work? Will
> code using the macros in parrot/pobj.h need much changing?

I don't expect much changes, because these macros exist and and used. 
PMCs can be switched one by one (mostly) to use a new data layout, but 
that again schould be transparent, if you use VTABLE_foo.

> Nicholas Clark

leo