gcl-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Gcl-devel] call-arguments-limit


From: Henry Baker
Subject: Re: [Gcl-devel] call-arguments-limit
Date: Thu, 31 Oct 2013 21:29:54 -0700

Does GCL use some sort of bit mask for argument lists?

That's fine, but I'm having trouble understanding when a bit mask will be 
useful beyond -- e.g., 32 arguments.

After than, either the function accepts _any_ number of arguments, or it 
doesn't accept that many at all.

More precisely, we're (or at least I'm) only asking about APPLY, which clearly 
should be willing to accept any number of arguments up to several thousand 
arguments.  E.g., it should be possibly to use APPLY 
+,a_very_long_argument_list.

Yes, Common Lisp has a REDUCE sequence function, but there are many people who 
still use APPLY + instead of REDUCE +.

So I think GCL is being a little too pissy in this case.

At 12:33 PM 10/31/2013, Camm Maguire wrote:
>Greetings!
>
>gcl currently does not enforce the arguments limit under certain
>circumstances (i.e. when all arguments are pushed to the value stack),
>but does not guarantee a valid call in *every* circumstance unless the
>number of arguments is less than call-arguments-limit.  The Common Lisp
>standard specifies that there be some implementation defined constant
>limit, and that complying implementations will have this limit be at
>least 50.  So gcl meets spec here.  I think if maxima wants to write to
>the common lisp standard, it should not require more than 49 arguments
>per call.
>
>The internal reason for this limit in gcl stems ultimately from the
>number of free bits in a type word that can specify the number of
>arguments and their types.  We currently use all of 32 bits, so there is
>no more room for expansion.
>
>In any case, it is exceedingly simple to write any function with as
>little as one argument -- just pass a list.
>
>=============================================================================
>
>5.3.12 call-arguments-limit                                    [Constant 
>Variable]
>----------------------------------------------------------------------------------
>
>Constant Value::
>................
>
>An integer not smaller than 50 and at least as great as the value of
>lambda-parameters-limit, the exact magnitude of which is
>implementation-dependent.
>
>Description::
>.............
>
>The upper exclusive bound on the number of arguments that may be passed
>to a function.
>
>See Also::
>..........
>
>*note lambda-parameters-limit:: , *note multiple-values-limit::
>=============================================================================
>
>Take care,
>-- 
>Camm Maguire                                        address@hidden
>==========================================================================
>"The earth is but one country, and mankind its citizens."  --  Baha'u'llah




reply via email to

[Prev in Thread] Current Thread [Next in Thread]