Maxima/Ecl on 32-bit machine cannot evaluate "apply(union, listify({{..}}))"



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