[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
free variable references in interpreter.
I think that it is OK for an implementation to take extra args and
keywords on the built-in functions. I can't think of any reasonable
ways in which this breaks correct Common Lisp programs, though it might
make trouble if the Common Lisp standard is later extended to allow
additional arguments that are not the same as the ones this
implementation has chosen.
I think that extra multiple values are another thing that ought to be
legal, but unfortunately there are ways in which these would break
certain legal but odd programs, as you point out. I think we blew the
language design here -- we just weren't thinking of this issue when we
nailed down the multiple-value stuff.
So, I suppose that in order to be 100% legal, an implementation should
not return extra values, unless perhaps they can be turned off with a
switch. As deviations go, however, this is a pretty harmless class of
them, breaking only rather odd code. So if there is a really good
reason to return extra values as an extension, it might be reasonable to
go ahead and do this, as long as this minor deviation from the standard
is carefully documented as such.