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'
i get the same error with this plain PIR:
.sub main :main
print "loading plumhead\n"
load_bytecode "languages/plumhead/plumhead.pbc"
print "loading perl6\n"
load_bytecode "languages/perl6/perl6.pbc"
print "done\n"
.end
[EMAIL PROTECTED]:~/build/parrot$ ./parrot foo.pir
loading plumhead
loading perl6
push_pmc() not implemented in class 'Sub'
current instr.: 'main' pc 6 (foo.pir:5)
any ideas? backtrace is below.
How about with a -t 1 ?
duh, should've given you that in the first place. the trace is HUGE, so
here's the last 50 lines. you should be able to reproduce the error using
the code above if you need more detail.
21 load_bytecode "compilers/tge/TGE/Tr"
0 newclass P0, "TGE::Tree" P0=PMCNULL
3 addattribute P0, "cell" P0=Class=PMC(0x845f814)
6 addattribute P0, "visit" P0=Class=PMC(0x845f814)
9 addattribute P0, "data" P0=Class=PMC(0x845f814)
12 addattribute P0, "grammar" P0=Class=PMC(0x845f814)
15 addattribute P0, "agid" P0=Class=PMC(0x845f814)
18 set_returns PC7
20 returncc
23 load_bytecode "compilers/tge/TGE/Pa"
0 push_eh 7
2 subclass P0, "PGE::Grammar", "TGE::Parser" P0=PMCNULL
6 pop_eh
7 set_returns PC3
9 returncc
25 load_bytecode "compilers/tge/TGE/Gr"
0 newclass P0, "TGE::Grammar" P0=PMCNULL
3 addattribute P0, "rules" P0=Class=PMC(0x8516ce4)
6 addattribute P0, "symbols" P0=Class=PMC(0x8516ce4)
9 set_returns PC5
11 returncc
27 load_bytecode "compilers/tge/TGE/Co"
0 load_bytecode "TGE.pbc"
2 get_class P0, "TGE::Grammar" P0=PMCNULL
5 subclass P1, P0, "TGE::Compiler" P1=PMCNULL P0=Class=PMC(0x8516ce4)
9 set_returns PC5
11 returncc
29 get_class P0, PC22 P0=Integer=PMC(0x846304c: 1)
PC22=Key=PMC(0x820f890)
32 get_hll_global P1, PC24, "die" P1=PMCNULL PC24=Key=PMC(0x820f874)
36 set_args PC2 (3), P0, "die", P1
PC2=FixedIntegerArray=PMC(0x8463394) P0=Class=PMC(0x8518d28)
P1=Sub=PMC(0x846836c pc:7)
41 get_results PC19
43 callmethodcc P0, "add_method" P0=Class=PMC(0x8518d28)
46 get_hll_global P1, PC24, "line_number" P1=Sub=PMC(0x846836c pc:7)
PC24=Key=PMC(0x820f874)
50 set_args PC2 (3), P0, "line_number", P1
PC2=FixedIntegerArray=PMC(0x8463394) P0=Class=PMC(0x8518d28)
P1=Sub=PMC(0x8467e80 pc:229)
55 get_results PC19
57 callmethodcc P0, "add_method" P0=Class=PMC(0x8518d28)
60 set_returns PC19
62 returncc
32824 push_eh 7
32826 subclass P0, "TGE::Grammar", "Plumhead::PAST::Gram" P0=PMCNULL
32830 pop_eh
32831 set_returns PC22
32833 returncc
loading perl6
4 print "loading perl6\n"
6 load_bytecode "languages/perl6/perl"
push_pmc() not implemented in class 'Sub'
current instr.: 'main' pc 6 (foo.pir:5)
ParrotIO objects (like stdout and stderr)are about to be closed, so
clearing trace flags.