> 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

Reply via email to