[perl #41825] [BUG] morph vtable override not working in PIR

Allison Randal allison at parrot.org
Sat Jan 17 07:34:05 UTC 2009


Andrew Whitworth via RT wrote:
> 
> Okay, I did some work on this last night, and here's the current status.
> 
> 1) Modified the behavior of the "morph" PIR override so that it takes a
> string in trunk. We previously weren't able to override this method at
> all, so nobody is used to the "old way" at the PIR level. This does mean
> that for the time-being the PIR implementation of "morph" is different
> from the C implementation of it. However, the benefit is that the
> PIR-level API doesn't need to change later when the C-level API does.
> 2) Created a branch "morph_pmc_type" to make the switch from "void
> morph(INTVAL type)" to "void morph(STRING *type)". Most of the
> conversion is already done. I have some more changes to make and some
> general cleanup before I call the work in the branch "done", however.
> 3) I've added a test for the behavior to t/oo/vtableoverride.t in trunk
> 
> If nobody has any complaints about this work, I'll add the old flavor of
> morph to DEPRECATED.pod, and then merge the branch in sometime after
> 0.9.0 or 0.9.1. 

Not a string, a PMC (like Coke said). String type names are almost as 
bad as type IDs. And check the performance on the branch, as I'm not 
sure how heavily PGE is using morph. We may need both integer and PMC 
versions of morph for the internals, but only allow the PMC one to be 
overridden from PIR.

Allison


More information about the parrot-dev mailing list