[armedbear-ticket] [armedbear] #199: CL:DEFMETHOD cannot parse &AUX arguments (was: RESTAS:START fails in MOP:INITIAL-DISCRIMINATING-FUNCTION)
armedbear
armedbear-devel at common-lisp.net
Wed Feb 29 09:46:23 UTC 2012
#199: CL:DEFMETHOD cannot parse &AUX arguments
------------------------------+---------------------------------------------
Reporter: mevenson | Owner: mevenson
Type: defect | Status: assigned
Priority: critical | Milestone: 1.1.0
Component: (A)MOP | Version: 1.1.0-dev
Keywords: quicklisp restas |
------------------------------+---------------------------------------------
Changes (by mevenson):
* milestone: 1.0.2 => 1.1.0
Old description:
> For the [https://github.com/archimag/restas RESTAS framework] loaded by
> the Feb 2012 Quicklisp the following MOP call fails when trying to run
> the 'examples/example-1.lisp' code:
>
> {{{
> (MOP::INITIAL-DISCRIMINATING-FUNCTION #<STANDARD-GENERIC-FUNCTION
> SUBMODULE-ROUTES {59FAC3A2}> (#<RESTAS::PKG-SUBMODULE{23452A3E}))
> }}}
>
> I would like to either fix this for abcl-1.0.2 or get [http://trac
> .common-lisp.net/armedbear/ticket/198 abcl-1.1.0-dev working with
> Hunchentoot again], as I'm pretty sure this should be fixed easily in
> Rudi's code.
>
> {{{
> Wrong number of arguments for #<FUNCTION (LAMBDA (ARGS NEXT-EMFUN))
> {4B658B53}>.
> [Condition of type PROGRAM-ERROR]
>
> Restarts:
> 0: [RETRY] Retry SLIME interactive evaluation request.
> 1: [*ABORT] Return to SLIME's top level.
> 2: [ABORT] Abort thread.
>
> Backtrace:
> 0: (#<FUNCTION {17144A84}> #<PROGRAM-ERROR {35282BF2}> #<FUNCTION
> {17144A84}>)
> 1: (APPLY #<FUNCTION {17144A84}> (#<PROGRAM-ERROR {35282BF2}>
> #<FUNCTION {17144A84}>))
> 2: (SYSTEM::RUN-HOOK SYSTEM::*INVOKE-DEBUGGER-HOOK* #<PROGRAM-ERROR
> {35282BF2}> #<FUNCTION {17144A84}>)
> 3: (INVOKE-DEBUGGER #<PROGRAM-ERROR {35282BF2}>)
> 4: org.armedbear.lisp.Lisp.error(Lisp.java:381)
> 5: org.armedbear.lisp.Function.execute(Function.java:312)
> 6: org.armedbear.lisp.Primitive.execute(Primitive.java:113)
> 7: (#<STANDARD-GENERIC-FUNCTION SUBMODULE-ROUTES {59FAC3A2}> #<RESTAS
> ::PKG-SUBMODULE {605D3821}>)
> 8: (APPLY #<STANDARD-GENERIC-FUNCTION SUBMODULE-ROUTES {59FAC3A2}>
> (#<RESTAS::PKG-SUBMODULE {605D3821}>))
> 9: (MOP::INITIAL-DISCRIMINATING-FUNCTION #<STANDARD-GENERIC-FUNCTION
> SUBMODULE-ROUTES {59FAC3A2}> (#<RESTAS::PKG-SUBMODULE {605D3821}>))
> 10: (RESTAS:SUBMODULE-ROUTES #<RESTAS::PKG-SUBMODULE {605D3821}>)
> 11: (RESTAS:CONNECT-SUBMODULE #<RESTAS::PKG-SUBMODULE {605D3821}>
> #<ROUTES:MAPPER {8102FF4}>)
> 12: (RESTAS::ADD-TOPLEVEL-SUBMODULE #<RESTAS::PKG-SUBMODULE {605D3821}>
> NIL 8080)
> 13: (RESTAS:START #:RESTAS.EXAMPLE-1 :PORT 8080)
> }}}
New description:
The code
[source:/trunk/abcl/src/org/armedbear/lisp/ArgumentProcessor.java] does
not handle &AUX arguments for CL:DEFMETHOD correctly.
After defining the APPLY-RULE generic function as such:
{{{
(defgeneric apply-rule (rule))
(defmethod apply-rule ((rule t) &aux (context (format nil "~A" rule)))
(format nil "Applying rule '~A' in context '~A'" rule context))
}}}
then
{{{
CL-USER> (apply-rule "1")
}}}
will fail with errors in
{{{
(defgeneric apply-rule (rule))
(defmethod apply-rule ((rule t) &aux (context (format nil "~A" rule)))
(format nil "Applying rule '~A' in context '~A'" rule context))
}}}
then
--
Comment:
For the [https://github.com/archimag/restas RESTAS framework] loaded by
the Feb 2012 Quicklisp the following MOP call fails when trying to run the
'examples/example-1.lisp' code:
{{{
(MOP::INITIAL-DISCRIMINATING-FUNCTION #<STANDARD-GENERIC-FUNCTION
SUBMODULE-ROUTES {59FAC3A2}> (#<RESTAS::PKG-SUBMODULE{23452A3E}))
}}}
I would like to either fix this for abcl-1.0.2 or get [http://trac.common-
lisp.net/armedbear/ticket/198 abcl-1.1.0-dev working with Hunchentoot
again], as I'm pretty sure this should be fixed easily in Rudi's code.
{{{
Wrong number of arguments for #<FUNCTION (LAMBDA (ARGS NEXT-EMFUN))
{4B658B53}>.
[Condition of type PROGRAM-ERROR]
Restarts:
0: [RETRY] Retry SLIME interactive evaluation request.
1: [*ABORT] Return to SLIME's top level.
2: [ABORT] Abort thread.
Backtrace:
0: (#<FUNCTION {17144A84}> #<PROGRAM-ERROR {35282BF2}> #<FUNCTION
{17144A84}>)
1: (APPLY #<FUNCTION {17144A84}> (#<PROGRAM-ERROR {35282BF2}> #<FUNCTION
{17144A84}>))
2: (SYSTEM::RUN-HOOK SYSTEM::*INVOKE-DEBUGGER-HOOK* #<PROGRAM-ERROR
{35282BF2}> #<FUNCTION {17144A84}>)
3: (INVOKE-DEBUGGER #<PROGRAM-ERROR {35282BF2}>)
4: org.armedbear.lisp.Lisp.error(Lisp.java:381)
5: org.armedbear.lisp.Function.execute(Function.java:312)
6: org.armedbear.lisp.Primitive.execute(Primitive.java:113)
7: (#<STANDARD-GENERIC-FUNCTION SUBMODULE-ROUTES {59FAC3A2}> #<RESTAS
::PKG-SUBMODULE {605D3821}>)
8: (APPLY #<STANDARD-GENERIC-FUNCTION SUBMODULE-ROUTES {59FAC3A2}>
(#<RESTAS::PKG-SUBMODULE {605D3821}>))
9: (MOP::INITIAL-DISCRIMINATING-FUNCTION #<STANDARD-GENERIC-FUNCTION
SUBMODULE-ROUTES {59FAC3A2}> (#<RESTAS::PKG-SUBMODULE {605D3821}>))
10: (RESTAS:SUBMODULE-ROUTES #<RESTAS::PKG-SUBMODULE {605D3821}>)
11: (RESTAS:CONNECT-SUBMODULE #<RESTAS::PKG-SUBMODULE {605D3821}>
#<ROUTES:MAPPER {8102FF4}>)
12: (RESTAS::ADD-TOPLEVEL-SUBMODULE #<RESTAS::PKG-SUBMODULE {605D3821}>
NIL 8080)
13: (RESTAS:START #:RESTAS.EXAMPLE-1 :PORT 8080)
}}}
--
Ticket URL: <http://trac.common-lisp.net/armedbear/ticket/199#comment:5>
armedbear <http://common-lisp.net/project/armedbear>
armedbear
More information about the armedbear-ticket
mailing list