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