Actually the stack size is limited. It's the heap that is not. For C and C++ applications you can set the desired stack size during linking. There is a flag for it but since I'm on mobile right now it's a bit of a hassle to check right now.
Regards, Elias On 2 Jan 2016 11:01 p.m., "Juergen Sauermann" <[email protected]> wrote: > Hi Blake, > > as of now I suspect the problem is not a too small ⎕WA, but a too > large automatic variable on the stack. General problem in *nix-like OSes > is that they (in practice) never run out of space but begin swapping > instead. > > And we already have *⎕SYL* where you can limit the number of ravel > elements available to APL. > > You can also set space limits with the *ulimit* command (a bash built-in). > > But none of the above has worked for reproducing the fault. > > /// Jürgen > > > On 01/02/2016 03:36 PM, Blake McBride wrote: > > Hi Juergen, > > Just a thought, perhaps you can change a parameter in GNU APL (for local > testing purposes only) to force a small ⎕wa so that you can simulate the > problem and do so more quickly. > > Thanks. > > Blake > > > On Sat, Jan 2, 2016 at 7:55 AM, Juergen Sauermann < > [email protected]> wrote: > >> Hi, >> >> I am currently trying to reproduce the fault, but was not yet able to. >> Like in Blake's case, 1500x1500 worked on my machine. >> I am currently trying 4000x4000 but that hasn't finished yet (takes ages). >> >> The expression that I am using is: >> >> >> * ⌹?(Q,Q←4000)⍴10 * >> Rick, I suppose you can reproduce the fault more easily. Please try the >> following: >> >> 1. in the GNU APL *src* directory, start *gdb* with GNU APL: >> >> *gdb ./apl* >> *run* >> >> *⌹?(Q,Q←1500)⍴10 * >> 2. after the segfault has occurred, print the backtrace (still in *gdb*): >> >> *bt* >> >> Thanks a lot, >> Jürgen >> >> >> On 01/02/2016 02:39 PM, Blake McBride wrote: >> >> Just for reference, I tried your example with the head of the source code >> repository, and I got: >> >> $ apl >> a←1500 1500⍴?(1500×1500)⍴10 >> ⎕wa >> 732487680 >> b←⌹a >> )off >> >> However, since your ⎕wa was substantially less than mine, it may be that >> you ran out of RAM and I didn't. >> >> Also, what version of the GNU APL source code did you start with? (The >> repository head is highly recommended.) >> >> Hope this helps. >> >> Blake McBride >> >> >> On Fri, Jan 1, 2016 at 2:03 PM, Rick Mayforth <[email protected]> wrote: >> >>> The following sequence caused the fault. APL exits. The interpreter is >>> running under Debian 8 in a VMWare virtual machine with 2GB RAM & 880MB >>> swap space. One would expect a WS FULL or some other APL error in this >>> instance rather than a forced exit, no? >>> >>> >>> a←1500 1500 ⍴ ?(1500×1500)⍴10 >>> ⎕wa >>> 193433600 >>> b←⌹a >>> Segmentation fault >>> >>> >>> >>> >> >> > >
