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

What about advising special forms?



    Are we saying in CL we can't ever advise (trace etc.)
    a special operator because we can't be sure that
    (SETF (FUNCTION-CELL 'FUNNY-NAME)
          (FUNCTION-CELL 'ORIGINAL-SPECIAL-OPERATOR))
    will work at all in the interpretor?

We are saying that the ability to advise (trace etc) special forms is
not something that you can do in a strictly portable way, depending on
the above sort of replacement.  Implementations that want to provide
this facility are free to do this if it happens to be feasible.  One
cannot just call the normal TRACE function on a special form in any
event, since the handling of arguments is different and since the trace
is liable to get into an infinite loop if you don't take some care to
prevent this.  So I see no great loss in saying that this case will not
work in general.

-- Scott