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

Reply via email to