[Parrot] #549: Kill UnionVal

kjstol parrotcode at gmail.com
Wed Jul 29 19:12:38 UTC 2009

On Wed, Jul 29, 2009 at 6:14 PM, Andrew Dougherty<doughera at lafayette.edu> wrote:
> On Wed, 29 Jul 2009, Parrot wrote:
>> #549: Kill UnionVal
>> Comment(by jessevdam):
>>  I managed to kill the Unionval form the pobj.h.
>>  I replaced the union with the _bufstart and _buflen because there are used
>>  by the gc system. As far I know the gc system can't do without them, but I
>>  am not sure.
> Thank you for the contribution.  However, it's not clear to me if that
> was what this ticket intended.  This patch does remove the "union",
> but it doesn't really "kill" the UnionVal.  For the most part, it just
> unwraps it and renames the individual pieces.
> For most common architectures (i386, amd64, sparc64) this doesn't make
> PMCs any smaller or faster.  It would, however, make it harder to use
> that space for one of the uses documented in pdd17:
>    "u" holds data associated with the PMC. This can be in the form
>    of an integer value, a floating-point value, a string value, or a
>    pointer to other data.  "u" may be empty, since the PMC structure
>    also provides a more general data pointer, but is useful for PMCs
>    which hold only a single piece of data (e.g.  "PerlInts").
> Could someone remind me *why* we should "Kill UnionVal" ?  I've reviewed
> the #parrot link referenced in TT #549, pdd17, and the old RT #48014, but
> I still don't understand what "problem" this ticket is trying to solve.

I seem to remember the problem had to do with inheritance of attributes.
Then again, it's been a while for me. I'm sure any need for correction
will come soon :-)


More information about the parrot-dev mailing list