for mod_parrot i want to support both passing both PMCs and native types
to the apache API, depending on the HLL.  MMD was doing a great
job handling this for me until i ran into a problem.

given the following methods:

.sub bar method, @MULTI(Foo, string)
.sub bar method, @MULTI(Foo, pmc)
.sub bar method, @MULTI(Foo)

and assuming 'Foo' is an object PMC, here's what happens when i call
'bar' with various arguments:

$I0 = find_type 'Foo'
$P0 = new $I0
$P0.'bar'()           # calls the empty arg version of bar
$P0.'bar'("a string") # calls the string version of bar
$P1 = new PerlString
$P1 = "a perl string"
$P0.'bar'($P1)        # XXX calls the empty arg version of bar

the pmc version of bar() is never called, even when passing a PMC.  if i
change the prototype to @MULTI(Foo, PerlString), i can pass the PerlString
to that, but i'd prefer to be able to pass any arbitrary PMC without
explicitly specifying its type in the method.

-jeff

Reply via email to