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

Reply via email to