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


    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>
	(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
    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