Perhaps this is a known issue... Most parrot programs seem to crash on x86 when the latest CVS parrot is compiled with "-O2" or "-g -O2" and when JIT is enabled. The programs appear to run to completion and only crash prior to exitting. Repeatable on both Cygwin and Linux x86. When JIT is not used, everything is fine.
Cygwin: gcc version 2.95.3-5 (cygwin special) Linux: gcc 2.96 $ perl ./assemble.pl examples/assembly/mops.pasm | ./parrot -j - Iterations: 100000000 Estimated ops: 200000000 Elapsed time: 1.133729 M op/s: 176.409004 Segmentation fault (core dumped) $ gdb ./parrot core GNU gdb 5.1.1 #0 runops_jit (interpreter=0x80f7a90, pc=0x810e668) at interpreter.c:239 239 Interp_flags_CLEAR(interpreter, PARROT_JIT_FLAG); (gdb) print interpreter $1 = (struct Parrot_Interp *) 0x1 (gdb) where #0 runops_jit (interpreter=0x80f7a90, pc=0x810e668) at interpreter.c:239 #1 0x080499c4 in runops (interpreter=0x80f7a90, code=0x810e4f0, offset=0) at interpreter.c:371 #2 0x08070dbc in Parrot_runcode (interpreter=0x80f7a90, argc=1, argv=0xbffff9ac) at embed.c:311 #3 0x0809e67a in main (argc=1, argv=0xbffff9ac) at test_main.c:50 #4 0x400a9280 in __libc_start_main () from /lib/libc.so.6 `interpreter' seems to change in value from 0x80f7a90 to 0x1 when it drops out of the call to `(jit_code) (interpreter);' The stack (or stack pointer?) appears to be corrupted. parrot compile flags: -fno-strict-aliasing -I/usr/local/include -g -O2 -Wall -Wstrict-prototypes -Wmissing-prototypes -Winline -Wshadow -Wpointer-arith -Wcast-qual -Wcast-align -Wwrite-strings -Waggregate-return -Winline -W -Wno-unused -Wsign-compare -I./include -DHAS_JIT -DI386 -DHAVE_COMPUTED_GOTO __________________________________________________ Do you Yahoo!? Faith Hill - Exclusive Performances, Videos & More http://faith.yahoo.com