[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[RCP@MCC.COM: &allow-other-keys for initialize methods in pcl]
- To: CommonLoops.pa@Xerox.COM
- Subject: [RCP@MCC.COM: &allow-other-keys for initialize methods in pcl]
- From: Rob Pettengill <rcp@MCC.COM>
- Date: Thu, 30 Apr 87 18:38:39 CDT
Character-Type-Mappings: (1 0 (NIL 0) (NIL :BOLD NIL) "CPTFONTCB")
(2 0 (NIL 0) (NIL :ITALIC NIL) "CPTFONTI")
Fonts: CPTFONT, CPTFONTCB, CPTFONTI
In Symbolics 3650 Zwei in Genera 7.0G1, IP-TCP 52.0,
MCC Genera 7.0 Patches 4.11, MCC-Base 2.2, Experimental Rcp 18,
Experimental STP Deli CLOS Shell 5, Experimental Portable Common Loops
5,
Experimental X-Window-System 2.0, microcode 3650-MIC 394, FEP 206,
Fep0:>g206-lisp.flod(6), Fep0:>g206-loaders.flod(6),
Fep0:>g206-info.flod(6), Fep0:>G206-debug.flod(1),
Machine serial number 30301,
TCP-FTP Binary Loader Fix (from RCP:SYS;TCP-BINARY-LOADER-FIX.LISP.4),
on Sabielocks:
For the trivial example:
(defclass foo ()
(alpha
beta)
(:accessor-prefix ||))
(defmethod INITIALIZE ((SELF foo) INIT-PLIST)
(call-next-method)
(let ((a (getf init-plist :a)))
(when a
(setf (alpha self) a))))
(setq f (make-instance 'foo :a 7))
generates this error. It would be very useful to be able to define
additional
initialization keywords for an init method.
1Error: :A is not a valid keyword in the init-plist.
0While in the function (PCL::METHOD PCL::INITIALIZE-FROM-INIT-PLIST
(PCL::OBJECT)) (:INTERNAL (:INTERNAL #:G19506 0) 0) (PCL::METHOD
INITIALIZE (PCL::OBJECT))
The condition signalled was ZL:FERROR
1(PCL::METHOD PCL::INITIALIZE-FROM-INIT-PLIST (PCL::OBJECT))0: (P.C.
= 71)
Arg 0 (PCL::SELF): #S(FOO ALPHA NIL BETA NIL)
Arg 1 (PCL::INIT-PLIST): (:A 7)
Local 2: #<DTP-LOCATIVE 52701107>
Local 3: #<DTP-COMPILED-FUNCTION (:INTERNAL (:INTERNAL #:G7023 0) 0
PCL::FIND-SLOTD) 244147221>
Local 4: #<DTP-LOCATIVE 52701107>
Local 5: #<DTP-COMPILED-FUNCTION (:INTERNAL (:INTERNAL #:G7023 0) 1
PCL::ALLOW-OTHER-KEYWORDS-P) 244147253>
Local 6 (PCL::CLASS): #<Class FOO 47006701>
Local 7 (PCL::INSTANCE-SLOTS): (#<Standard-Slotd ALPHA 47007237>
#<Standard-Slotd BETA 47007222>)
Local 8 (PCL::NON-INSTANCE-SLOTS): NIL
Local 9 (PCL::.FIND-SLOTD-FUNCTION-CELL.): #<LEXICAL-CLOSURE
(:INTERNAL # 0 PCL::FIND-SLOTD) 52701111>
Local 10 (PCL::KEYWORD-LOC): (:A 7)
Local 11 (PCL::VALUE-LOC): (7)
Local 12 (PCL::SLOTD): NIL
Local 13 (PCL::ALLOW-OTHER-KEYS-P): 0
Local 14 (PCL::.ALLOW-OTHER-KEYWORDS-P-FUNCTION-CELL.):
#<LEXICAL-CLOSURE (:INTERNAL # 1 PCL::ALLOW-OTHER-KEYWORDS-P) 52701113>
1(:INTERNAL (:INTERNAL #:G19506 0) 0)0: (P.C. = 131)
Arg 0 (COMPILER:.LEXICAL-ENVIRONMENT-POINTER.):
(#<Standard-Generic-Function NIL (:DAEMON) 124617716>
#<DTP-COMPILED-FUNCTION (PCL::METHOD PCL::INITIALIZE-FROM-INIT-PLIST
(PCL::OBJECT)) 244147146> NIL #<Class PCL::OBJECT 131310502> NIL NIL NIL
NIL NIL
NIL ...)
Arg 1 (PCL::|Discriminating Function Arg 0|): #S(FOO ALPHA NIL BETA
NIL)
Arg 2 (PCL::|Discriminating Function Arg 1|): (:A 7)
1(PCL::METHOD INITIALIZE (PCL::OBJECT))0: (P.C. = 6)
Arg 0 (PCL::OBJECT): #S(FOO ALPHA NIL BETA NIL)
Arg 1 (PCL::INIT-PLIST): (:A 7)
1PCL::CALL-NEXT-METHOD-INTERNAL0: (P.C. = 357) 2(from
PCL:SOURCE;FIXUP)
0 Arg 0 (PCL::CURRENT-METHOD): #<Method NIL (FOO) 47012371>
Rest arg (PCL::ARGS): (#S(FOO ALPHA NIL BETA NIL) (:A 7))
1(PCL::METHOD INITIALIZE (FOO))0: (P.C. = 5)
Arg 0 (SELF): #S(FOO ALPHA NIL BETA NIL)
Arg 1 (INIT-PLIST): (:A 7)
1(:INTERNAL (:INTERNAL #:G16031 0) 0)0: (P.C. = 160)
Arg 0 (COMPILER:.LEXICAL-ENVIRONMENT-POINTER.):
(#<Standard-Generic-Function NIL (:DAEMON) 124617722> #<ART-Q-32
131755132> NIL NIL NIL NIL NIL NIL NIL NIL ...)
Arg 1: #S(FOO ALPHA NIL BETA NIL)
Arg 2: (:A 7)
1MAKE-INSTANCE0: (P.C. = 15) 2(from PCL:SOURCE;SLOTS)
0 Arg 0 (PCL::CLASS): FOO
Local 0 (PCL::CLASS): #<Class FOO 47006701>
Rest arg (PCL::INIT-PLIST): (:A 7)
1SI:*EVAL0: (P.C. = 455) 2(from SYS:PATCH;SYSTEM-349-17)
0 Arg 0 (SYS:FORM): (MAKE-INSTANCE (QUOTE FOO) :A 7)
Local 0 (SYS:FORM): NIL
Arg 1 (SI:ENV): NIL
2 --Defaulted args:--
0 Arg 2 (SI:HOOK): NIL
2Rest of stack:
1EVAL0: (P.C. = 7)
1SETQ0: (P.C. = 24)
1SI:*EVAL0: (P.C. = 172)2 (from SYS:PATCH;SYSTEM-349-17)
1EVAL0: (P.C. = 7)
1(:INTERNAL (:INTERNAL SI:BREAK-INTERNAL 1
SI:WITH-PROCESS-INTERACTIVE-PRIORITY-BODY) 1)0: (P.C. = 7)
1(:INTERNAL (:INTERNAL (:INTERNAL SI:LISP-COMMAND-LOOP-INTERNAL 0
SI:WITH-PROCESS-INTERACTIVE-PRIORITY-BODY) 0) 0
SI:WITH-PROCESS-NON-INTERACTIVE-PRIORITY-BODY)0: (P.C. = 11)
1(FLAVOR:METHOD SI:WITH-PROCESS-NON-INTERACTIVE-PRIORITY-INTERNAL
SI:PROCESS)0: (P.C. = 43)
1(:INTERNAL (:INTERNAL SI:LISP-COMMAND-LOOP-INTERNAL 0
SI:WITH-PROCESS-INTERACTIVE-PRIORITY-BODY) 0)0: (P.C. = 331)
1TV:WITH-NOTIFICATION-MODE-INTERNAL0: (P.C. = 15)
1(:INTERNAL SI:LISP-COMMAND-LOOP-INTERNAL 0
SI:WITH-PROCESS-INTERACTIVE-PRIORITY-BODY)0: (P.C. = 52)
1(FLAVOR:METHOD SI:WITH-PROCESS-INTERACTIVE-PRIORITY-INTERNAL
SI:PROCESS)0: (P.C. = 22)
1SI:LISP-COMMAND-LOOP-INTERNAL0: (P.C. = 27)
1(:INTERNAL SI:BREAK-INTERNAL 1
SI:WITH-PROCESS-INTERACTIVE-PRIORITY-BODY)0: (P.C. = 213)
1(FLAVOR:METHOD SI:WITH-PROCESS-INTERACTIVE-PRIORITY-INTERNAL
SI:PROCESS)0: (P.C. = 40)
1SI:BREAK-INTERNAL0: (P.C. = 37)
1ZWEI:COM-BREAK0: (P.C. = 10)
1(:INTERNAL ZWEI:COMMAND-EXECUTE 0
SI:WITH-PROCESS-NON-INTERACTIVE-PRIORITY-BODY)0: (P.C. = 17)
1(FLAVOR:METHOD SI:WITH-PROCESS-NON-INTERACTIVE-PRIORITY-INTERNAL
SI:PROCESS)0: (P.C. = 43)
1ZWEI:COMMAND-EXECUTE0: (P.C. = 57)
1ZWEI:PROCESS-COMMAND-CHAR0: (P.C. = 14)
1(FLAVOR:METHOD :EDIT ZWEI:EDITOR)0: (P.C. = 316)
1(:INTERNAL (FLAVOR:COMBINED :EDIT ZWEI:ZMACS-TOP-LEVEL-EDITOR) 1)0:
(P.C. = 20)
1(:INTERNAL (FLAVOR:WHOPPER :EDIT ZWEI:EDITOR) 0
SI:WITH-PROCESS-INTERACTIVE-PRIORITY-BODY)0: (P.C. = 7)
1(FLAVOR:METHOD SI:WITH-PROCESS-INTERACTIVE-PRIORITY-INTERNAL
SI:PROCESS)0: (P.C. = 40)
1(FLAVOR:WHOPPER :EDIT ZWEI:EDITOR)0: (P.C. = 20)
1(FLAVOR:COMBINED :EDIT ZWEI:ZMACS-TOP-LEVEL-EDITOR)0: (P.C. = 317)
1ZWEI:ZMACS-WINDOW-TOP-LEVEL0: (P.C. = 55)2 (from
SYS:PATCH;SYSTEM-349-88)
1SI:PROCESS-TOP-LEVEL0: (P.C. = 45)