> With the following example (and the other patches to > Parrot_ex_throw_from_op_args added by NotFound++), I'm able > to run the following version and get to 250,000 without any > difficulty. > > $ cat x.pir > .sub 'main' > .local pmc i > i = new 'Integer' > do_loop: > say i > push_eh do_inc > $P0 = find_method i, "succ" > i.$P0() > do_inc: > pop_eh > inc i > goto do_loop > .end > $ ./parrot x.pir > 0 > 1 > 2 > 3 > 4 > ... > 249997 > 249998 > 249999 > 250000 > 250001 > 250002 > ^C > > (The top(1) command on my machine seems to indicate a small memory leak > in the above, but it does run a significant ways, and I didn't > investigate further.)
I've noticed an anomaly: if you add .get_results($P0) after pop_eh nothing bag happens, but if you put it before, it starts leaking a lot of memory. -- Salu2