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

Redefinition of system functions

If there are functions whose redefinition would destroy a particular
Lisp system, I wouldn't mind getting a warning and perhaps even a
correctable error from DEFUN if I am about to lose.  The set of
protected functions might include all of the built-in Common Lisp
functions, or it might be a small subset, depending on the details of
the implementation.

There must be a way to turn this protection off, however -- some people
know what they are doing and don't want Lisp to save them.  Advising is
one such case, patching over bugs in the built-in functions is another,
and turning a built-in function into a CLOS generic function so that new
behaviors can be added for new types is yet another (once we decide how
much of this will be allowed).

In any case, I think that such protection probably should be considered
an programming-environment issue that is left up to each implementor.
Is there any real need for a standard solution here?  I suppose we do
need to make clear that randomly modifying the built-in functions is not
something that is allowed in strictly legal Common Lisp programs.

-- Scott