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

number of arguments limitations



All NIL function calls are done as VAX procedure calls, so currently
may receive no more than 252 arguments (255 minus 3 hidden args),
because for some reason DEC has reserved 24 of the 32 bits in the
longword where this count is stored.  The number of argument checking,
&optional defaulting, and &rest-vector formation is essentially inline
coded (with the help of some subroutines in the more complex cases).

It appears to be possible to change this restriction to (about) 250
requireds + optionals, with little or no penalty when less than that
number of arguments (total) is passed.  I believe there would be an
efficiency penalty to removing the restriction on number of optionals,
and probably a severe one for eliminating use of the VAX procedure
call mechanism entirely to eliminate all restrictions.