This code:
set I0, 0 TOP: bsr FOO inc I0 lt I0, 974, TOP print "Done\n" end FOO: new P0, PerlString set P0, "foo" pushp ret end causes a segfault, while the same program with 974 changed to 973 (or smaller) runs fine. Running parrot under gdb shows that it's dying somewhere in mark_used - I've attached the stack trace at the bottom of this message. Simon ---------- Program received signal SIGSEGV, Segmentation fault. 0x08091f72 in mark_used () #0 0x08091f72 in mark_used () #1 0x080920c0 in trace_active_PMCs () #2 0x08092559 in Parrot_do_dod_run () #3 0x080925a5 in alloc_more_string_headers () #4 0x08092715 in new_string_header () #5 0x0808df93 in Parrot_string_make () #6 0x08099ae7 in Parrot_PerlString_init () #7 0x0808fae9 in pmc_new () #8 0x0805871b in Parrot_new_p_ic () #9 0x0808f443 in runops_fast_core () #10 0x0804928e in runops_generic () #11 0x08049b45 in runops () #12 0x080938e6 in Parrot_runcode () #13 0x080a01d2 in main () #14 0x40087627 in __libc_start_main (main=0x80a0140 <main>, argc=2, ubp_av=0xbfffe914, init=0x8048c48 <_init>, fini=0x80a0460 <_fini>, rtld_fini=0x4000dcc4 <_dl_fini>, stack_end=0xbfffe90c) at ../sysdeps/generic/libc-start.c:129