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
>
>