Lisp HUG Maillist Archive

defgeneric form causing error


I'm running LWW personal 4.4.6

The following form seems to be causing trouble:

(defgeneric jfield-name (x)
  (:method ((field field))
     (munge-identifier (field-name field) :camelcase))
  (:method ((spec spec))
     (jfield-name (spec-field spec))))

I'm not sure how to provide more context short of attaching a bunch of
lisp source code to this email.  But in any case, I get the following
backtrace when loading the code after it's been compiled:


Error: No applicable methods for #<STANDARD-GENERIC-FUNCTION HARLEQUIN-COMMON-LISP:GENERIC-FUNCTION-NAME 203A605A> with args (NIL)
  1 (continue) Call #<STANDARD-GENERIC-FUNCTION HARLEQUIN-COMMON-LISP:GENERIC-FUNCTION-NAME 203A605A> again
  2 (abort) Abort job 30 :(BIND-STANDARD-STREAMS-AND-EXECUTE #<EDITOR::EDITOR-OUTPUT-STREAM #<EDITOR:BUFFER Background Output> 213716FC> (FUNCALL-BACKGROUND-JOB-AUX #<CAPI:EDITOR-PANE CAPI:EDITOR-PANE  21F5A67C> BACKGROUND-REGION-EVAL (#<EDITOR::WM-WINDOW "code-gen-java.lisp" 21F8B23C> #<EDITOR:BUFFER code-gen-java.lisp> #<EDITOR::POINT "code-gen-java.lisp" 5000 offset 1734 22749934> #<EDITOR::POINT "code-gen-java.lisp" 5000 offset 1905 22749954> T NIL NIL)))

Type :b for backtrace, :c <option number> to proceed,  or :? for other options

ORG.CL-USER.CODE-GEN-JAVA 1 : 1 > :b
Call to CERROR
Call to (METHOD NO-APPLICABLE-METHOD (T))
Call to CLOS::MAYBE-FLUSH-MAKE-INSTANCE-KEYWORD-CACHE
Call to (METHOD REMOVE-METHOD (STANDARD-GENERIC-FUNCTION METHOD))
Call to (METHOD SHARED-INITIALIZE :AFTER (STANDARD-GENERIC-FUNCTION T))
Call to CLOS::ENSURE-GENERIC-FUNCTION-INTERNAL
Call to ENSURE-GENERIC-FUNCTION
Call to SPECIAL::%EVAL-NOHOOK
Call to IV:PROCESS-TOP-LEVEL
Call to IV::PROCESS-COMPILER-LET
Call to IV:PROCESS-TOP-LEVEL
Call to IV::PROCESS-COMPILER-LET
Call to IV:PROCESS-TOP-LEVEL
Call to EDITOR::EDITOR-EVAL
Call to (HARLEQUIN-COMMON-LISP:SUBFUNCTION 3 (HARLEQUIN-COMMON-LISP:SUBFUNCTION 1 EDITOR::REGION-LISP-EVAL))
Call to (HARLEQUIN-COMMON-LISP:SUBFUNCTION 1 EDITOR::REGION-LISP-EVAL)
Call to EDITOR::WITH-COMPILATION-ENVIRONMENT-AT-POINT-FN
Call to EDITOR::REGION-LISP-EVAL
Call to EDITOR::BACKGROUND-REGION-EVAL
Call to CAPI::FUNCALL-BACKGROUND-JOB-AUX
Call to CAPI::BIND-STANDARD-STREAMS-AND-EXECUTE
Call to MP::BACKGROUND-EXECUTE-LOOP
Call to (HARLEQUIN-COMMON-LISP:SUBFUNCTION MP::PROCESS-SG-FUNCTION MP::INITIALIZE-PROCESS-STACK)

ORG.CL-USER.CODE-GEN-JAVA 2 : 1 >

Any ideas?  Probably something wrong with my code somehow, but I can't
see it...

-russ

______________________________________________________________________
This email has been scanned by the MessageLabs Email Security System.
For more information please visit http://www.messagelabs.com/email 
______________________________________________________________________


Re: defgeneric form causing error

Unable to parse email body. Email id is 5310

Re: defgeneric form causing error


Martin Simmons <martin@lispworks.com> writes:

>> Any ideas?  Probably something wrong with my code somehow, but I can't
>> see it...
>
> The error suggests that something has set the METHOD-GENERIC-FUNCTION of one
> of those initial methods to NIL unexpectedly.  Do you have these methods on
> JFIELD-NAME defined more than once?  I'm not sure how that would cause it
> though.

I think I narrowed the problem down.  Try compiling and loading the
following file twice:

(defpackage :minor-nit (:use :common-lisp))
(in-package :minor-nit)
(defclass spec () ((x)))
(defgeneric field-name (x)
  (:method ((spec spec)) "ouch 1")
  (:method ((spec spec)) "ouch 2"))


______________________________________________________________________
This email has been scanned by the MessageLabs Email Security System.
For more information please visit http://www.messagelabs.com/email 
______________________________________________________________________


Re: defgeneric form causing error

Unable to parse email body. Email id is 5338

Updated at: 2020-12-10 08:49 UTC