[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
with-slots bug (still)
- To: CommonLoops.pa@Xerox.COM
- Subject: with-slots bug (still)
- From: Michael Sokolov <sokolov@waterloo.media.mit.edu>
- Date: Tue, 5 Jul 88 12:41:28 EDT
- Redistributed: CommonLoops.pa
In the 8/1 PCL, running in Lucid, the following error occurs:
(defclass foo () (x y) (:accessor-prefix))
(defclass bar () (z w))
(defmethod foobar ((f foo) (b bar))
(with-slots (x y) f
(setf y (+ x (w b)))))
(setq f (make-instance 'foo :x 1 :y 1))
(setq b (make-instance 'bar :w 1 :z 1))
Now, (foobar f b) produces the following:
OOPS> >>Error: X has no global value
SYMBOL-VALUE:
Required arg 0 (S): X
:A Abort to Lisp Top Level
:C Try evaluating X again
Here is a Lucid backtrace and walk up the stack - I don't know how
helpful this is, but it can't hurt to include it! Please keep me
posted -
Mike Sokolov
-> :b
SYMBOL-VALUE <- PCL::STD-INSTANCE-ACCESS-PV <- (LAMBDA (#:G20212) (DECLARE
(PCL::VARIABLE-REBINDING #:G20212 F)) (PCL::STD-INSTANCE-ACCESS-PV #:G20212
(QUOTE 0) (+ X #))) <- LET <- BLOCK <- PROGN <- LET <- |(PCL::METHOD FOOBAR (FOO
BAR))| <- PCL::NOTICE-M
ETHODS-CHANGE-2 <- EVAL <- REPL <- EVAL <- EVAL <- unnamed function <- unnamed
function
-> :n
PCL::STD-INSTANCE-ACCESS-PV:
Original code: (PCL::STD-INSTANCE-ACCESS-PV #:G20212 (QUOTE 0) (+ X (W B)))
Local 0 (G20212): #<FOO 63413043>
-> :n
(LAMBDA (#:G20212) (DECLARE (PCL::VARIABLE-REBINDING #:G20212 F))
(PCL::STD-INSTANCE-ACCESS-PV #:G20212 (QUOTE 0) (+ X #))):
Original code: ((LAMBDA (#:G20212) (DECLARE #) (PCL::STD-INSTANCE-ACCESS-PV
#:G20212 # #)) F)
Local 0 (G20212): #<FOO 63413043>
-> :n
LET:
Original code: (LET ((#:G20212 F)) (DECLARE (PCL::VARIABLE-REBINDING #:G20212
F)) (PCL::STD-INSTANCE-ACCESS-PV #:G20212 (QUOTE 0) (+ X #)))
-> :n
BLOCK:
Original code: (BLOCK FOOBAR (LET (#) (DECLARE #) (PCL::STD-INSTANCE-ACCESS-PV
#:G20212 # #)))
-> :n
PROGN:
Original code: (PROGN (SETQ PCL::.PV. (LET* # #)) (PROGN F B) (BLOCK FOOBAR (LET
# # #)))
-> :n
LET:
Original code: (LET ((PCL::.ISL. #) (PCL::.PV. NIL)) (SETQ PCL::.PV. (LET* # #))
(PROGN F B) (BLOCK FOOBAR (LET # # #)))
Local 0 (.ISL.): (#<Simple-Vector T 16 CE13B3> (Y) NIL)
Local 1 (.PV.): #<Simple-Vector T 1 CDE0A3>
-> :n
|(PCL::METHOD FOOBAR (FOO BAR))|:
Original code: (NAMED-LAMBDA |(PCL::METHOD FOOBAR (FOO BAR))| (F B) (DECLARE
(PCL::CLASS B BAR) (PCL::CLASS F FOO)) (LET (# #) (SETQ PCL::.PV. #) (PROGN F B)
(BLOCK FOOBAR #)))
Local 0 (F): #<FOO 63413043>
Local 1 (B): #<BAR 63413343>
-> :n
PCL::NOTICE-METHODS-CHANGE-2:
Required arg 0 (GENERIC-FUNCTION): #<Compiled-Function FOOBAR CD0417>
Required arg 1 (ARGS): (#<FOO 63413043> #<BAR 63413343>)
-> :n
EVAL:
Required arg 0 (X): (FOOBAR F B)
->