The disassembler compiles but doesn't work.
matt@mendelssohn:~/parrot$ make disassemble
src/disassemble.c
echo ast/ast.y -d -o ast/astparser.c -p AST
ast/ast.y -d -o ast/astparser.c -p AST
/usr/bin/perl -e 'open(A,qq{>>$_}) or die foreach @ARGV' ast/ast.y.flag
ast/astparser.c ast/astparser.h
c++ -o disassemble src/disassemble.o -L/usr/local/lib -Wl,-E -g
blib/lib/libparrot.a blib/lib/libicuuc.a blib/lib/libicudata.a -ldl -lm
-lpthread -lcrypt -lrt
matt@mendelssohn:~/parrot$ ./disassemble forth/forth.pir
PackFile_unpack: Invalid wordsize 46
Parrot VM: Can't unpack packfile forth/forth.pir.
--
matt diephouse
http://matt.diephouse.com
Erm... .pir isn't bytecode. What happens when you run the
disassembler on the bytecode you get if you compile forth.pir?
--
Dan
--------------------------------------it's like this-------------------
Dan Sugalski even samurai
d...@sidhe.org have teddy bears and even
teddy bears get drunk
d'oh! <insert obligatory comment about mondays>.
Anyway, it still doesn't work:
matt@mendelssohn:~/parrot$ ./disassemble forth/forth.pbc
PackFile_unpack: Bytecode not valid for this interpreter: fingerprint mismatch
Parrot VM: Can't unpack packfile forth/forth.pbc.
--
matt
> matt@mendelssohn:~/parrot$ ./disassemble forth/forth.pbc
> PackFile_unpack: Bytecode not valid for this interpreter: fingerprint mismatch
You got an old forth.pbc, probably. Fingerprinting is disabled for the
release, so it might be, that you can run forth.pbc with the released
Parrot but not with a current one.
$ make world
...
$ ./parrot -o mops.pbc mops.pasm
$ ./disassemble mops.pbc
null_i I2
set_i_ic I3,1
set_i_ic I4,100000000
...
leo
Odd, because it was newly made bytecode, but I ran it again and it
worked. Pardon the noise.
--
matt