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!]

Reply via email to