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
>>>
>>>
>>>
>>>
>>
>>
>
>

Reply via email to