On Sat, 15 Sep 2007, Allison Randal wrote: > I just launched PDD 17 out of the drafts directory, which marks it as ready > for implementation. Jonathan Worthington and chromatic have volunteered to > work with me on implementing the refinements to the PMC design.
I had two questions: 1. Is the order of elements in struct PMC deliberate? struct PMC { Parrot_UInt flags; UnionVal cache; VTABLE *vtable; DPOINTER *data; struct PMC_EXT *pmc_ext; }; In particular, on 32-bit SPARC, sizeof(flag) will be 4, but cache will have to be aligned on an 8-byte boundary. Thus there will be 4 "wasted" bytes of padding. Swapping the order (putting cache first and flags second) will reduce the size of a pmc by 4 bytes. Not crucial, but nice. 2. Did you deliberately drop _int_val2 from UnionVal? Specifically, the former struct _i { INTVAL _int_val; INTVAL _int_val2; } _i; has been replaced by a single _int_val entry. However, since the UnionVal already contains 2 pointers, keeping the second _int_val2 only costs space on systems where sizeof(INTVAL) > sizeof(void *). Are such platforms a significant concern? Or were there other good reasons for dropping the entry? I do note that it's used heavily in the various array pmcs (including src/pmc/resizeablebooleanarry.pmc, which I know you've worked on relatively recently.) -- Andy Dougherty [EMAIL PROTECTED]