From: Adam Warner
Subject: FYI: CLISP call-arguments-limit now 4096
Date: 
Message-ID: <pan.2003.07.12.01.38.06.598166@consulting.net.nz>
Hi all,

I noticed this morning that the CVS implementation and notes for CLISP now
state the call-arguments-limit is 4096 (it used to be 2^32 on 32-bit
systems--but realistically less without encountering default stack
limitations). I prefer a call-arguments-limit to be like a reliable stack:
only limited by available memory taking into account realistic hardware
constraints. In others words a limit one can usually just ignore.

In 2002 I wrote:
<http://groups.google.co.nz/groups?selm=aiv5ec%24181a16%241%40ID-105510.news.dfncis.de>

"I don't mind that I might break some very old Lisp implementations by
supplying a large number of arguments to a function. I just tested apply
on a list with 100,000 elements without a problem"

Today similar code blows CLISP's stack in its default configuration:
$ clisp -norc -q
[1]> (length (apply #'concatenate 'string
                    (loop for x from 1 to 100000 collect "1")))

*** - Lisp stack overflow. RESET

But smaller numbers lead to a more descriptive error message:
[2]> (length (apply #'concatenate 'string
                    (loop for x from 1 to 4096 collect "1")))

*** - APPLY: too many arguments given to CONCATENATE

(Starting CLISP with -m 10MB is enough to avert the stack overflow and
obtain the the same error message).

Regards,
Adam