The patch is at the URL below, and I've split it into 4 for you. The classes-include-lib patch must be applied before any of the other 3. I've resolved the 3-4 conflicts that occurred since the patch was first abortively submitted on Monday, so the old patch (named 20040202-pmc-accessors.patch) should be discarded if it resurfaces.
http://www.ma.iclub.com/pub/parrot/
I realized that some of the accessor macros should've been named PObj_* instead of PMC_* (since they apply to STRINGs and Buffers, too). So they are as of this patch. I've also macro-ized access to UnionVal in general, since it was sometimes used outside of the context of a pobj. [*]
The old syntax continues to work, and so nobody's patches will break excl. those w conflicts. But the pobj->cache.foo_val and PMC_ptr1p/PMC_ptr2v macros ought to be treated as deprecated.
—
Gordon Henriksen [EMAIL PROTECTED]
[* - Somewhat inadvisedly, I think. UnionVal is 8 bytes on a 32-bit architecture, but bloats to 16 bytes on a 64-bit architecture. The generic containers which use UnionVal don't appear to use both ptrs simultaneously or make use of the void*/int pair, so could use an 8-byte structure as their bucket type.]