If you are running put if RAM+swap on the machine, a default Linux installation will not return NULL from malloc(). Instead, it will simply kill the process when it tries to access the memory (actually, when it attempts to map in a memory page, and the mapping operation fails). This is likely what happens here.
You can configure Linux to act sanely, but if you do so, you also need to make sure you have plenty of swap, or you will not be able to actually use all your RAM. Regards, Elias On 17 Jun 2016 14:50, "Juergen Sauermann" <juergen.sauerm...@t-online.de> wrote: > Hi Blake, > > if I start *apl* directly then it seems like GNU APL behaves properly (I > tried your > examples and always got a WS FULL). > > I could imagine, though, that your shell (resp. script) is killing APL > when APL > tries to allocate too much memory (and APL can then do little about it). > > It would be interesting by which signal APL is killed (try *ulimit -c > unlimited *(e.g using bash) > to get a core file and then look at the core with *gdb*). I could then > install a signal handler (if > the signal is catch'able) to fix this. > > The question right now is if apl is killing itself (e.g. by an uncaught > exception) or is being > killed from its environment. > > I would also be good to check (*ulimit -a *inside the script) if there > are any active limits related > the memory size. > > /// Jürgen > > > > On 06/16/2016 08:59 PM, Blake McBride wrote: > > Sometimes, when you have, essentially, a WS full situation, GNU APL just > dies instead of giving a WS FULL error. > > x←⍳100000000 > x[10000]←445 > y←x > /home/blake/bin/apl: line 3: 7341 Done akt > 7342 Killed | /usr/local/bin/apl "$@" > blake@blake-vmlinux ~ $ apl > x←⍳100000000 > /home/blake/bin/apl: line 3: 7964 Done akt > 7965 Killed | /usr/local/bin/apl "$@" > blake@blake-vmlinux ~ $ apl > x←⍳10000000 > ⍴x > 10000000 > y←x > x←⍳10000000 > x←⍳100000000 > WS FULL > x←⍳100000000 > ^ ^ > )off > > blake@blake-vmlinux ~ $ apl > x←⍳100000000 > /home/blake/bin/apl: line 3: 7992 Done akt > 7993 Killed | /usr/local/bin/apl "$@" > > >