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

What about advising special forms?



A common debugging technique is to advise a function by splicing some
I/O code or case-checking code between the function name and the code
in its function cell. The most common example is tracing a function.
One common implementation is to make up a funny name and copy the code
pointer into that new function cell, and then make the original function
cell point to a piece of code that does the advising and calls the
new-name function. 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?
-------