[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: EVAL-WHEN
Date: Thu 3 Apr 86 22:52:12-EST
From: "Rodney A. Brooks" <BROOKS%OZ.AI.MIT.EDU@XX.LCS.MIT.EDU>
To: Bobrow.pa@XEROX.COM
Subject: Re: EVAL-WHEN
In-Reply-To: <860403-181205-2031@Xerox>
Message-ID: <12196029728.56.BROOKS@OZ.AI.MIT.EDU>
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.
-------
--------------------
This should definitely be pointed out on page 90. Also, exactly what objects
may be the value in a setf of (symbol-function <<symbol>>) should be clarified.
-- Nick
- References:
- Re: EVAL-WHEN
- From: "Rodney A. Brooks" <BROOKS%OZ.AI.MIT.EDU@XX.LCS.MIT.EDU>