[armedbear-devel] Bug in handling of keyword arguments

Erik Huelsmann ehuels at gmail.com
Sat Sep 17 21:00:12 UTC 2011


Hi Eric,

On Sat, Sep 17, 2011 at 11:19 AM, Eric Marsden <eric.marsden at free.fr> wrote:

> Hi,
>
> ,----
> | Armed Bear Common Lisp 0.27.0-dev-svn-13545M
> | Java 1.6.0_23 Sun Microsystems Inc.
> | OpenJDK 64-Bit Server VM
> | Low-level initialization completed in 1.02 seconds.
> | Startup completed in 1.96 seconds.
> | CL-USER(10): (defun foo (a b)
> |               (find a '(1 2 3) b 1))
> | FOO
> | CL-USER(11): (compile 'foo)
> | #<THREAD "interpreter" {12BC8F01}>: Debugger invoked on condition of type
> PROGRAM-ERROR
> |   Unrecognized keyword argument B
> | Restarts:
> |   0: TOP-LEVEL Return to top level.
> `----
>
> I should be able to invoke FOO with :start or :end values for B.


Absolutely. Thanks for the report!

Turns out this is a problem with the assumptions behind compiler macros and
source transforms: when the source doesn't contain the keyword argument
keywords, you'd expect the expansion to mismatch the arguments list, not
apply the transform and go on. However, due to a thinko instead of going on,
ABCL throws an argument-list mismatch error.

Committed a fix just a minute ago; compilation of FOO now works. Please
verify that your issue has been solved and confirm!

Bye,


Erik.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.common-lisp.net/pipermail/armedbear-devel/attachments/20110917/f9ff1e3f/attachment.html>


More information about the armedbear-devel mailing list