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

Re: EVAL-WHEN



    Doesn't 
    (setf (symbol-function 'foo) (COPY '(LAMBDA  ...)))
    guarantee to produce a function definition not compiled by compiling the
    file.  If (setf (symbol-function 'foo) ...) compiles, then all bets are
    off.

There is no requirement in CLtL that it be legal for a symbol function
cell to contain a lambda expression. In some implementations this
will cause an error when such a symbol is used in the function
position of an eval-ed expression. These implementations place a closure
in symbol function cells for interpreted functions, which all point
to the same compiled code sequence which takes a literal from the
closure (the literal is the lambda expression) and does the right
call into the middle of the interpreter. 
-------