defgeneric problem

james anderson <[email protected]> Mon, 20 Jan 2003 22:43:49 +0100
Newsgroups gmane.lisp.openmcl.bugs,gmane.spam.detected
Message-ID <[email protected]>
hello again;

thank you for your previous note. once i supplanted the aliases with 
symbolic links openmcl does better. one thing which confused me is that 
an alias on the desktop appears to be negotiable...

i have another question. would one expect a problem with the following 
form?

(defGeneric initialize-clone (node clone)
   (:documentation
    "copy slot values from one node to another.
     slots with bound values are left unchanged in order to permit 
previous initarg based
     initialization (see clone-instance), which can then avoid unwanted 
deep cloning.")
   (:method-combination progn :most-specific-first)
   (:method progn ((from standard-object) (to standard-object))))

it yields an unforgiving stack overflow. the stack trace below shows 
the state where the problem occurred loading a file, but the same thing 
happens if the form is evaluated in a new lisp. to wit:

...
(BFFFF900) : 65466 NIL NIL
(BFFFF910) : 65467 NIL NIL
(BFFFF920) : 65468 NIL NIL
(BFFFF930) : 65469 NIL NIL
(BFFFF940) : 65470 NIL NIL
(BFFFF950) : 65471 NIL NIL
(BFFFF960) : 65472 "CCL::ENSURE-GENERIC-FUNCTION-INTERNAL" 1264
(BFFFF970) : 65473 "Anonymous Function #x52B4DF6" 60
(BFFFF980) : 65474 "CCL::LOAD-FROM-STREAM" 240
(BFFFF990) : 65475 "CCL::%LOAD" 1320
(BFFFF9B0) : 65476 NIL NIL
(BFFFF9C0) : 65477 "LOAD" 620
(BFFFF9E0) : 65478 "Anonymous Function #x52A291E" 284
(BFFFF9F0) : 65479 "MAP" 460
(BFFFFA00) : 65480 "COMMON-LISP-USER::EXECUTE-SYSTEM-OPERATIONS" 280
(BFFFFA10) : 65481 NIL NIL
(BFFFFA20) : 65482 "CCL::CALL-CHECK-REGS" 80
(BFFFFA30) : 65483 NIL NIL
(BFFFFA40) : 65484 "CCL::TOPLEVEL-EVAL" 176
(BFFFFA50) : 65485 "CCL::READ-LOOP" 964
(BFFFFAA0) : 65486 "TOPLEVEL-LOOP" 52
1 > :?
  (:V N FRAME-NUMBER)  Return value <n> in frame <frame-number>
  (:F N)  Show backtrace frame <n>
  (:C N)  Choose restart <n>
  (:B &OPTIONAL SHOW-FRAME-CONTENTS)  backtrace
  :R     list restarts
  :Q     return to toplevel
  :GO    continue
  :POP   exit current break loop
  :?     help
  (:PROC &OPTIONAL P)  Show information about specified process <p>/all 
processes
  (:KILL P)  Kill process whose name or ID matches <p>
  (:Y P)  Yield control of terminal-input to process whose name or ID is 
<p>
1 > (:f 65472)
(BFFFF960) : 65472 "CCL::ENSURE-GENERIC-FUNCTION-INTERNAL" 1264
   0 : INITIALIZE-CLONE ("required")
   1 CCL::GLOBAL-P: T ("required")
   2 : (NODE CLONE) ("required")
   3 CCL::ARGUMENT-PRECEDENCE-ORDER: NIL ("required")
   4 DECLARE: NIL ("required")
     initialization (see clone-instance), which can then avoid unwanted 
deep cloning." ("required")
   6 : #<FUNCALLABLE-STANDARD-CLASS STANDARD-GENERIC-FUNCTION> 
("required")
   7 CCL::METHOD-CLASS: #<STANDARD-CLASS STANDARD-METHOD> ("required")
   8 CCL::ENVIRONMENT: NIL ("required")
     initialization (see clone-instance), which can then avoid unwanted 
deep cloning.") (:METHOD-COMBINATION PROGN :MOST-SPECIFIC-FIRST) 
(:METHOD PROGN ((FROM STANDARD-OBJECT) (TO STANDARD-OBJECT)))) ("saved 
SAVE0")
   10 : T ("saved SAVE1")
   11 : #<FILE-CHARACTER-INPUT-STREAM 
("/Development/Source/Library/LISP/de/setf/utility/clos.lisp" [4]) 
#x52B441E> ("saved SAVE2")
   12 : T ("saved SAVE3")
   13 : NIL ("saved SAVE4")
   14 : 5 ("saved SAVE5")
   15 : NIL ("saved SAVE6")
   16 : NIL ("saved SAVE7")
   17 CCL::BITS: 512
   18 CCL::KEYS: #()
   19 CCL::METHODS: NIL
   20 CCL::GBITS: NIL

1 > :pop
 > Error: Stack overflow on value stack.
 > While executing: CCL::%ERR-DISP
 > Type :POP to abort.
Type :? for other options.
1 > :q
 > Error: Stack overflow on value stack.
 > While executing: CCL::%ERR-DISP
 > Type :POP to abort.
Type :? for other options.
1 > :q
 > Error: Stack overflow on value stack.
 > While executing: CCL::%ERR-DISP
 > Type :POP to abort.
Type :? for other options.
1 > Killed