Re: defgeneric problem
Gary Byers <[email protected]> Mon, 20 Jan 2003 15:11:11 -0700 (MST)
| Newsgroups | gmane.lisp.openmcl.bugs |
|---|---|
| Message-ID | <[email protected]> |
On Mon, 20 Jan 2003, james anderson wrote:
> 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?
>
It'd be very helpful to know what version of OpenMCL you're using.
I was unable to reproduce this in 0.13.3 (which was just released
about 5 hours ago), but that may not be entirely conclusive.
> (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:
>
> ...
I assume that the preceding 65466 frames weren't too informative. Or
was there some repeating pattern of function/method calls there ?
The "NIL NIL" frames (not very informative in themselves) usually
indicate the presence of a CATCH/UNWIND-PROTECT construct or of a
pending function call which expects to accept multiple values.
It's rare to see two such frames consecutively; it's not clear to
me what 6 (or 65472) of them in a row would indicate.
First things first: what version of OpenMCL are you using ?
> (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
>
>
> _______________________________________________
> bug-openmcl mailing list
> [email protected]
> http://clozure.com/cgi-bin/mailman/listinfo/bug-openmcl
>
>