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

[RCP@MCC.COM: &allow-other-keys for initialize methods in pcl]



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)