Maxima/Ecl on 32-bit machine cannot evaluate "apply(union, listify({{..}}))"
Subject: Maxima/Ecl on 32-bit machine cannot evaluate "apply(union, listify({{..}}))"
From: Raymond Toy
Date: Tue, 02 Sep 2008 16:15:12 -0400
Stavros Macrakis wrote:
> On Tue, Sep 2, 2008 at 2:03 PM, Oliver Kullmann
> <O.Kullmann at swansea.ac.uk <mailto:O.Kullmann at swansea.ac.uk>> wrote:
>
> 1) I did run
> for N step 10 thru 5000 do (print(N), apply(union,
> create_list({},i,1,N)));
> on all machines (32 / 64 bits), with ECL (5.16.3) and CLisp (5.15.0,
> 5.16.3),
> and none showed any problems.
>
>
> Interesting. Maxima 5.15.0/GCL fails at 71. Another interesting fact:
> it fails differently if you use the interpretive version of nset,
> presumably because it is using a different function call mechanism.
FWIW, here is the value for call-arguments-limit for various Lisps that
I have (all 32-bit versions):
gcl 64
ecl 65536
clisp 4096
cmucl most-positive-fixnum
ANSI CL says call-arguments-limit is at least 64, so for portable code,
you can't go above 64.
For cmucl, the limit isn't really most-positive-fixnum, but however much
memory you have available for the stack. I'm pretty sure sbcl has the
same limit.
Ray