Dan Sugalski <[EMAIL PROTECTED]> wrote:
> So, I'm doing these, because I need 'em, and we might as well get the
> things in now. For the record, these things will be called as
> functions (not methods), with three parameters, so the signature
> looks like:

A short question WRT implementation: shouldn't all MMD functions just
use one function slot? You now seem to duplicate the whole table.

When a C function is inserted, it could be a CSub[1] PMC. When a
bytecode function is registered it overrides the existing (or default) slot
and gets called instead.

Both functions could be called by C<invoke>. The invoke vtable of the
function does the right thing.

One further question: the C<mmddispatch> opcode is supposed to
explicitely run the function, isn't it? Is it needed? Why not just do:

  $P0 = $P1 + $P2 # call MMD func if registerd


[1] The current CSub PMC looks totally bogus and seems to be unused. S.
    classes/nci.pmc::invoke. The CSub should have the same invoke call.

leo

Reply via email to