[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
- To: (BUG LISP) at MIT-MC
- From: CWH at MIT-MC (Carl W. Hoffman)
- Date: Mon, 23 Feb 81 05:51:00 GMT
- Original-date: 23 FEB 1981 0051-EST
From LISP RECENT:
Saturday Feb 07,1981 NM+3D.15H.34M.49S. LISP 2071 / COMPLR 1094 -- JonL --
3) Default value for DEFUN&-CHECK-ARGS is now (), and whenever &OPTIONAL or
&REST args are specified, the "args property" of the symbol will be set.
[more exposition below]
DEFUN&-CHECK-ARGS is the variable which says whether or not there should
be code in the function itself to do number-of-args checking.
The interpreter, and "UUO" handler, when in *RSET mode, will check the
number of arguments passed to a LSUBR/SUBR against the "args property",
which is retrieved and set by the ARGS function.
I haven't been reading my mail lately, so I'm not aware of any discussion
which may have preceded this change. But I want to voice my objection to
it. My feeling is that the default setting for global switches such as this
one should be that best for naive users, i.e. those not likely to have init
files and least capable of finding information from online documentation.
Hackers and system implementors can easily create their own environments.
But for the naive user, receiving the error message
; ((1 . 2) (X)) Wrong number of arguments
is going to be more confusing than
; ((FIRST &OPTIONAL SECOND) (X)) Wrong number of arguments