Setting Recursion Limit?

1 view
Skip to first unread message

Will Coleda

unread,
Sep 27, 2008, 4:31:00 PM9/27/08
to parro...@lists.parrot.org
Is there a way to dynamically set the recursion limit? I have a spec
test for tcl that fails with the default limit of 1000, but works with
a higher limit of 10000. (I'm trying to find a lower # that works
now). I don't see anything externally visible in ParrotInterpreter.

If not, any objection to raising the limit (to whatever the smaller
number turns out to be) in include/parrot/sub.h ?

This is currently blocking (at least) 171 passing spec tests for tcl
from being counted.

--
Will "Coke" Coleda
_______________________________________________
http://lists.parrot.org/mailman/listinfo/parrot-dev

Will Coleda

unread,
Sep 27, 2008, 5:09:33 PM9/27/08
to parro...@lists.parrot.org
On Sat, Sep 27, 2008 at 4:31 PM, Will Coleda <wi...@coleda.com> wrote:
> Is there a way to dynamically set the recursion limit? I have a spec
> test for tcl that fails with the default limit of 1000, but works with
> a higher limit of 10000. (I'm trying to find a lower # that works
> now). I don't see anything externally visible in ParrotInterpreter.
>
> If not, any objection to raising the limit (to whatever the smaller
> number turns out to be) in include/parrot/sub.h ?

1242 is the minimum I need. Going with 1248 for now (moritz++) We can
back it down once I have way to just increase it for tcl.

> This is currently blocking (at least) 171 passing spec tests for tcl
> from being counted.

... Of course, now that I get past that test, I get a segfault. (it's
after test dict-21.15 in t_tcl/dict.test)

I'll get some PIR to duplicate that and open a ticket.

Regards.

Allison Randal

unread,
Sep 28, 2008, 10:25:32 AM9/28/08
to Will Coleda, parro...@lists.parrot.org
Will Coleda wrote:
> On Sat, Sep 27, 2008 at 4:31 PM, Will Coleda <wi...@coleda.com> wrote:
>> Is there a way to dynamically set the recursion limit? I have a spec
>> test for tcl that fails with the default limit of 1000, but works with
>> a higher limit of 10000. (I'm trying to find a lower # that works
>> now). I don't see anything externally visible in ParrotInterpreter.

$P0 = getinterp
$P0."recursion_limit"(10000)

(See t/op/gc.t for an example in context.)

>> If not, any objection to raising the limit (to whatever the smaller
>> number turns out to be) in include/parrot/sub.h ?
>
> 1242 is the minimum I need. Going with 1248 for now (moritz++) We can
> back it down once I have way to just increase it for tcl.

Makes sense. It's an arbitrary value.

Allison
_______________________________________________
http://lists.parrot.org/mailman/listinfo/parrot-dev

Allison Randal

unread,
Sep 28, 2008, 10:38:03 AM9/28/08
to Will Coleda, parro...@lists.parrot.org
Will Coleda wrote:
>
> Ah. I saw that in the parrotinterpreter PMC, but didn't even think to
> try it since it was declared outside of the pmclass definition, and
> didn't have a METHOD on it. Thanks.

Hrm, legacy code. It should probably be updated to a normal METHOD.

Allison
_______________________________________________
http://lists.parrot.org/mailman/listinfo/parrot-dev

Will Coleda

unread,
Sep 28, 2008, 10:32:57 AM9/28/08
to Allison Randal, parro...@lists.parrot.org
On Sun, Sep 28, 2008 at 10:25 AM, Allison Randal <all...@parrot.org> wrote:
> Will Coleda wrote:
>>
>> On Sat, Sep 27, 2008 at 4:31 PM, Will Coleda <wi...@coleda.com> wrote:
>>>
>>> Is there a way to dynamically set the recursion limit? I have a spec
>>> test for tcl that fails with the default limit of 1000, but works with
>>> a higher limit of 10000. (I'm trying to find a lower # that works
>>> now). I don't see anything externally visible in ParrotInterpreter.
>
> $P0 = getinterp
> $P0."recursion_limit"(10000)

Ah. I saw that in the parrotinterpreter PMC, but didn't even think to


try it since it was declared outside of the pmclass definition, and
didn't have a METHOD on it. Thanks.

> (See t/op/gc.t for an example in context.)


>
>>> If not, any objection to raising the limit (to whatever the smaller
>>> number turns out to be) in include/parrot/sub.h ?
>>
>> 1242 is the minimum I need. Going with 1248 for now (moritz++) We can
>> back it down once I have way to just increase it for tcl.
>
> Makes sense. It's an arbitrary value.
>
> Allison
>

--

Reply all
Reply to author
Forward
0 new messages