|
From: | Mike Duvos |
Subject: | Re: [Bug-apl] Deep Nesting |
Date: | Sat, 22 Aug 2015 20:11:48 -0700 |
Hi Mike,
your function NEST creates an extremely deep process call stack when
enclosing extremely deeply nested values (proportional to the nesting depth).
Your operating limits the size of your call stack in order to protect
other processes against programming faults (or extremely unreasonable
programs which are difficult to distinguish from programming faults).
If you really want (actually you dont - believe me) your function to succeed,
then you should lift the default limit of your GNU/Linux like this:
ulimit -s unlimited # no limit on the stack size
After that, GNU APL says:
≡10 NEST 0
1024
≡17 NEST 0
131072
In theory one could check or limit the nesting depth of a value in GNU APL,
but the run-time overhead would be significant.
/// Jürgen
On 08/19/2015 11:57 PM, Mike Duvos wrote:
∇NEST[⎕]∇
∇
[0] Z←N NEST X;I
[1] Z←X
[2] I←¯1
[3] L1:→((I←I+1)≥N)/0
[4] (∊Z)←⊂,Z
[5] →L1
∇
≡10 NEST 0
1024
≡15 NEST 0
32768
≡16 NEST 0
65536
≡17 NEST 0
Bus error (core dumped)
address@hidden:~$
[Prev in Thread] | Current Thread | [Next in Thread] |