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

Re: problem with 7-7 version: setfs inside with-slots



    Date: Thu, 14 Jul 88 10:43:51 EDT
    From: steinmetz!eraserhead!duff@uunet.UU.NET (David A Duff)

    I came across the following bug in testing the new (7-7) version of pcl in
    lucid common lisp 3.0:

    When using the with slots macro, setf's don't seem to get handled
    right. 

This is the most interesting PCL bug I have worked on in a long time.
Read "interesting" as a euphemism for I am still confused about this.

Here is a temporary patch which should fix the problem.  It doesn't fix
it the way I would really like.  I hope to release a better fix later
today.  But this is pretty interesting after all so it may take longer.

;from boot.lisp

(defun expand-with-slots (whole specs body env gensym instance translate-fn)
  (walk-form
    `(let ((,gensym ,instance))
       ,@(and (symbolp instance)
	      `((declare (variable-rebinding ,gensym ,instance))))
       ,@body)
    env
    #'(lambda (f c e)
	(declare (ignore e))
	(expand-with-slots-internal specs
				    f
				    c
				    translate-fn))))
-------