On Tue, 29 Apr 2008, Patrick R. Michaud wrote:
On Tue, Apr 29, 2008 at 12:34:47PM -0400, Jeff Horwitz wrote:
mod_parrot can load multiple HLL compilers in the same interpreter, and on
my server i'm using both perl6 and plumhead. this works fine if i load
perl6 before plumhead. however, if i load perl6 *after* plumhead, i get a
nasty error:
push_pmc() not implemented in class 'Sub'
...
My complete off-the-wall guess is that perl6.pbc has a :multi sub
that happens to have the same name as a non-multi sub in plumhead.
Or something like that.
So, when perl6 is loaded first, the :multi sub in perl6 gets
replaced by the non-multi sub in plumhead. When plumhead is
loaded first, Parrot tries to push the :multi sub in perl6 onto
the (non-:multi) sub in plumhead and throws the exception.
i think you're right -- i dove into the backtrace and found that the sub
in question was 'infix:+&', which is multi in perl6 and non-multi in
plumhead.
assuming this is the problem, it seems to me that the .HLL sandbox that
coke mentioned would solve this. correct?
-jeff