bug-apl
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Bug-apl] Deep Nesting


From: Juergen Sauermann
Subject: Re: [Bug-apl] Deep Nesting
Date: Sat, 22 Aug 2015 22:31:24 +0200
User-agent: Mozilla/5.0 (X11; Linux i686; rv:31.0) Gecko/20100101 Thunderbird/31.4.0

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:~$


reply via email to

[Prev in Thread] Current Thread [Next in Thread]