Changes for bug 2085440



Raymond Toy <raymond.toy at stericsson.com> wrote:

   However, there will be a slight cost in speed and consing for functions
   that have a fixed number of arguments.  So that maxima can do the
   checking, the compiled function now takes a &rest arg which we can check
   for the number of arguments.  Previously, the compiled function had
   exactly the desired number of arguments.
   
   I think for consistency, it's nice that the compiled function works the
   same as the interpreted.  But we do pay a little in speed and consing. 

I think this is unfortunate.  The ANS for CL defines argument checking
for "safe" code, and every implementation that purports to confurm to
the ANS should support it.  The implementation can perform argument
checking more efficiently than application code.

Once again, if there is some implementation that doesn't conform, it
would be better if even remotely possible to bring the CL implementation
intio conformance.  The ANS was created precisely to remove hese burdens
from applications.  The relevant ANS sections can be found here:

 http://www.franz.com/support/documentation/8.0/ansicl/subsecti/argumen0.htm
 http://www.franz.com/support/documentation/8.0/ansicl/subsubse/safeandu.htm
 http://www.franz.com/support/documentation/8.0/ansicl/subsubsu/errordet.htm
 http://www.franz.com/support/documentation/8.0/ansicl/subsubse/toofewar.htm

Which implementations fail?