Wow, this thread is looking bad -- I'm replying to my own reply to my own message. Sorry; I accidentally hit reply instead of reply to list, and from the resulting off-list discussion with Sean O'Rourke I have updated the patch. I won't resend it, because it may require more changes and it's gotten even bigger.
The patch now also: - Puts back all of the flawed but still necessary math ops in PerlArray (actually, I moved them from the original Array to the new PerlArray, because the new Array is very basic and doesn't do things like that.) - Removes the _unicode and _other string ops from all PMCs (the patched pmc2c.pl throws a fatal error if you try to implement vtable methods not in vtable.tbl.) - Uses the new DYNSELF.method(...) syntax all over the place. One point of discussion: Sean thinks that default.pmc should throw "operation not supported" exceptions for most operations, so that PMCs that do not define the operations don't do something mysterious and seg fault-prone when they're called. Which makes an awful lot of sense to me, but when I went to default.pmc to do that, I saw that they all have code that tries very hard to do something sensible in many cases. I'm loath to just rip out that much code (especially since I'm not sure how many things are successfully using it), so I left it in. I'm now thinking that we ought to have a default.pmc that throws "not supported" for everything, but move all of the current fallback implementations into a new class and reparent a bunch of the existing PMCs (probably all of the non-aggregates?). The hard part will be coming up with a name for it... Anyway, that would be a separate patch. Anyone have a problem with what my current patch does, before I commit it? [Just say no to Warnock's Dilemma!]