Re: defmethod vs &aux?

JP Massar <[email protected]>
Newsgroups gmane.lisp.corman
Message-ID <[email protected]>
At 08:53 PM 3/7/03 -0500, Kenny Tilton wrote:
>Whoa. This:
>
>(defmethod c-link-ex ((used c-user-notifying)
>         &aux (user (car *c-calculators*)))
>    ...etc....
>
>produces this in CormanLisp:
>
>;;; An error occurred in function COMPILE-FORM:
>;;; Error: &KEY following &AUX in lambda list: (USED &AUX (USER (CAR
>*C-CALCULATORS*)) &KEY &ALLOW-OTHER-KEYS)
>
>actually, some of my macros have the same bug (if this is a bug), not
>handling &aux. I'll rewrite to work around. fyi.

It is a bug.  &KEY and &ALLOW-OTHER-KEYS must come before
&AUX in a lambda list.

Something is constructing the lambda-list incorrectly.  I poked around
a bit but was unable to discover the offending code within DEFMETHOD
and its subsidiaries.

I don't really understand why it would be trying to put &KEY and
&ALLOW-OTHER-KEYS onto a lambda list derived from one
that had no mention of &KEY  parameters or &ALLOW-OTHER-KEYS.

Unfortunately, the backtrace from the point of error seems to stop in
the middle of the compiler, and is not showing what I think it should
be showing:

(defmethod foozball ((x integer) &aux (y 5))(+ x y))
;;; An error occurred in function COMPILE-FORM:
;;; Error: &KEY following &AUX in lambda list: (X &AUX (Y 5) &KEY 
&ALLOW-OTHER-KEYS)

:b
;;; ERROR                               (File sys/conditions.lisp, line 463)
;;; #< COMPILED-FUNCTION: #x1002CBE1 >
;;; #< COMPILED-FUNCTION: #x1002892E >
;;; #< COMPILED-FUNCTION: #x1002A51A >
;;; #< COMPILED-FUNCTION: #x1002D316 >
;;; EVAL                                (File 
C:/Lispcode/Corman/patches-2.01/eval-patch.lisp, line 22)
;;; COMMON-LISP::HAS-TAIL-RECURSIVE-CALLS (File sys/tail-calls.lisp, line 140)
;;; COMMON-LISP::REMOVE-TAIL-RECURSION  (File sys/tail-calls.lisp, line 187)
;;; #< COMPILED-FUNCTION: #x1002CBE1 >
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.