… But you're not going to like the steps to reproduce:
build tcl # this should set off warning bells already!
% ../../parrot tcl.pbc --pir t/cmd_expr.t > out.pir # generates a
9000 line sub.
% ../../parrot -o out.pbc out.pir # takes forever
% ../../parrot out.pbc # segfaults.
Running through gdb, I see we're recursing pretty deep:
0x0025586c in Parrot_Key_get_integer (interpreter=0x255888, pmc=0x0)
at src/pmc/key.pmc:120
120 INTVAL get_integer () {
(gdb) bt
#0 0x0025586c in Parrot_Key_get_integer (interpreter=0x255888,
pmc=0x0) at src/pmc/key.pmc:120
#1 0x00059260 in key_integer (interpreter=0xe003c0, key=0xfc3450) at
src/key.c:303
#2 0x00255888 in Parrot_Key_get_integer (interpreter=0xe003c0,
pmc=0xfc3450) at src/pmc/key.pmc:121
#3 0x00059260 in key_integer (interpreter=0xe003c0, key=0xfc3450) at
src/key.c:303
#4 0x00255888 in Parrot_Key_get_integer (interpreter=0xe003c0,
pmc=0xfc3450) at src/pmc/key.pmc:121
#5 0x00059260 in key_integer (interpreter=0xe003c0, key=0xfc3450) at
src/key.c:303
#6 0x00255888 in Parrot_Key_get_integer (interpreter=0xe003c0,
pmc=0xfc3450) at src/pmc/key.pmc:121
It got to #1635 before I hit ^C.d
No change running the last parrot invocation with -G
Regards.
--
Will "Coke" Coleda
wi...@coleda.com
Just tried to reproduce this (on Win32)...
% ../../parrot -o out.pbc out.pir # takes forever
This gives the following error:
error:imcc:syntax error, unexpected LOCAL
in file 'out.pir' line 1
If I stick a .sub main at the start and a .end at the end, I still get
errors...
error:imcc:syntax error, unexpected SREG, expecting '('
in file 'out.pir' line 16
error:imcc:syntax error, unexpected SREG, expecting '('
in file 'out.pir' line 28
Updated instructions on how to reproduce would be cool, anyway.
Thanks,
Jonathan