mod_parrot is running into a bit of trouble calling subs written in PIR
with the new calling conventions.  some initial observations:

* using Parrot_call_sub_* seems to require a get_params opcode (or a
  .param), else it dies with "no get_params in sub".  this is true
  even when called with a void signature.  isn't PIR supposed to take care
  of that for us?  it works fine in a non-embedded environment.

* subs can't return anything through the API.  a simple ".return (0)"
  causes Parrot_call_sub_reti to bomb out with an assertion failure:

  src/sub.c:444: parrot_pass_args: Assertion
  `(((src_signature)->obj.flags) & PObj_is_PMC_FLAG)' failed.

this may all be premature, as leo's branch is still brand-spanking new,
and i'm probably missing something.

that said, leo, we discussed some API enhancements on #parrot the other
day -- if you were planning on implementing something that will fix this,
just say the word and i'll keep quiet.  :)

-jeff

Reply via email to