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.

Breakpoint 2, cant_do_method (interp=0x804f048, pmc=0x829d204,
    methname=0x403cda8d "push_pmc") at default.pmc:63
63          real_exception(interp, NULL, ILL_INHERIT,
(gdb) bt
#0  cant_do_method (interp=0x804f048, pmc=0x829d204,
    methname=0x403cda8d "push_pmc") at default.pmc:63
#1  0x402a732e in Parrot_default_push_pmc (interp=0x804f048,
    pmc=0x829d204, value=0x82fcbac) at default.c:1632
#2  0x4016130a in store_sub_in_multi (interp=0x804f048,
    sub=0x82fcbac, ns=0x8092ec4) at src/global.c:739
#3  0x40161410 in Parrot_store_sub_in_namespace (interp=0x804f048,
    sub=0x82fcbac) at src/global.c:777
#4  0x401934de in PackFile_Constant_unpack_pmc (interp=0x804f048,
    constt=0x83271d0, self=0x81167e0, cursor=0x40aa94f4)
    at src/packfile.c:3584
#5  0x401933d8 in PackFile_Constant_unpack (interp=0x804f048,
    constt=0x83271d0, self=0x81167e0, cursor=0x40aa9428)
    at src/packfile.c:3526
#6  0x401930dc in PackFile_ConstTable_unpack (interp=0x804f048,
    seg=0x83271d0, cursor=0x40aa9424) at src/packfile.c:3322
#7  0x401907ea in PackFile_Segment_unpack (interp=0x804f048,
    self=0x83271d0, cursor=0x40a9ff50) at src/packfile.c:1601
#8  0x40190cfd in directory_unpack (interp=0x804f048, segp=0x8327028,
    cursor=0x40a9ff40) at src/packfile.c:1795
#9  0x401907ea in PackFile_Segment_unpack (interp=0x804f048,
    self=0x8327028, cursor=0x40a24040) at src/packfile.c:1601
#10 0x4018f8b1 in PackFile_unpack (interp=0x804f048, self=0x8327028,
    packed=0x40a24000, packed_size=1254976) at src/packfile.c:867
#11 0x40153b10 in Parrot_readbc (interp=0x804f048,
    fullname=0x8326fb8
"/home/jeff/build/parrot/./languages/perl6/perl6.pbc") at src/embed.c:503
#12 0x401937d4 in PackFile_append_pbc (interp=0x804f048,
    filename=0x8326fb8
"/home/jeff/build/parrot/./languages/perl6/perl6.pbc") at
src/packfile.c:3701
#13 0x401939b2 in Parrot_load_bytecode (interp=0x804f048,
    file_str=0x81fba50) at src/packfile.c:3758
#14 0x400f5c4c in Parrot_load_bytecode_sc (cur_opcode=0x8248918,
    interp=0x804f048) at core.ops:151
#15 0x40199984 in runops_slow_core (interp=0x804f048, pc=0x8248918)
    at src/runops_cores.c:219
#16 0x4016ac26 in runops_int (interp=0x804f048, offset=0)
    at src/interpreter.c:916
#17 0x4016b525 in runops (interp=0x804f048, offs=0)
    at src/inter_run.c:104
#18 0x4016b7aa in runops_args (interp=0x804f048, sub=0x822ac6c,
    obj=0x8096098, meth_unused=0x0, sig=0x403c3727 "vP",
    ap=0xbffffbbc "P\"\b\220") at src/inter_run.c:230
#19 0x4016b8ec in Parrot_runops_fromc_args (interp=0x804f048,
    sub=0x822ac6c, sig=0x403c3727 "vP") at src/inter_run.c:299
#20 0x401545a7 in Parrot_runcode (interp=0x804f048, argc=1,
    argv=0xbffffd18) at src/embed.c:941
#21 0x4039f044 in imcc_run_pbc (interp=0x804f048, obj_file=0,
    output_file=0x0, argc=1, argv=0xbffffd18)
    at compilers/imcc/main.c:781
#22 0x4039faf2 in imcc_run (interp=0x804f048,
    sourcefile=0xbffffe33 "foo.pir", argc=1, argv=0xbffffd18)
    at compilers/imcc/main.c:1069
#23 0x080488d8 in main (argc=1, argv=0xbffffd18) at src/main.c:61

Reply via email to