On Thu, 30 Jul 2009, Andrew Whitworth wrote:
> It's only effectively reusing the space for "bufstart" because
> bufstart is still part of the structure. Once we remove bufstart from
> the PMC, the pointer will be overlayed on a different field in the
> structure and there will be memory savings. The buflen thing similarly
> could be overlayed (or maybe be removed entirely) for additional
> savings. There is no fundamental reason why PMCs need to be as large
> as they are now, considering that the things using that space (inside
> and outside the GC) are orthogonal to one another and non-overlapping.
Ah. I see. That orthogonality was the piece I was missing.
> In the long term, I suspect PMCs will look like this:
>
> struct PMC {
> Parrot_UInt flags;
> VTABLE *vtable;
> DPOINTER *data;
> struct PMC_EXT *pmc_ext;
> };
Ok. Thank you. That's much clearer than the original ticket.
I'll update the ticket with a summary.
--
Andy Dougherty [email protected]
_______________________________________________
http://lists.parrot.org/mailman/listinfo/parrot-dev