Opcode arg count mismatch in PL/Parrot

0 views
Skip to first unread message

Jonathan Leto

unread,
May 28, 2010, 10:03:12 PM5/28/10
to parrot-dev
Howdy,

In the last few days, PL/Parrot [0] stopped working and I get this
error in my test suite:

psql -AX -f t/sql/test.sql
1..32
ok 1 - we can .include PIR libraries included with Parrot
ok 2 - we can load_bytecode PBC libraries included with Parrot
ok 3 - open opcode is mocked
ok 4 - FileHandle.open is mocked
psql:t/sql/test.sql:204: ERROR: Error compiling PIR function: arg
count mismatch: op #1119 'open' needs 17820 given 3
make: *** [test] Error 3

Does anybody know what is going on? Any help would be appreciated.
Just verified this with an installed version of r47098.

The PIR fragment that generates this is:

push_eh got_error
$P0 = open "somejunkthatdoesntexist", 'r'
pop_eh
.return(42)
got_error:
.return(-1)

which gets wrapped in an anonymous PIR subroutine.

Duke

[0] - http://pl.parrot.org


--
Jonathan "Duke" Leto
jona...@leto.net
http://leto.net
_______________________________________________
http://lists.parrot.org/mailman/listinfo/parrot-dev

NotFound

unread,
May 29, 2010, 7:47:58 AM5/29/10
to Jonathan Leto, parrot-dev
> Does anybody know what is going on? Any help would be appreciated.
> Just verified this with an installed version of r47098.

I think the problem lies in the dynamic opcode loading, Since we've
made dynamic a lot of opcodes, the problem manifest now much more
frequently, When load_bytecode a pbc that uses some dynops from other
pbc that uses some others, the opcode numbers get confused.

--
Salu2
_______________________________________________
http://lists.parrot.org/mailman/listinfo/parrot-dev

Reply all
Reply to author
Forward
0 new messages