On Sat, Sep 17, 2011 at 11:19 AM, Eric Marsden
<eric.marsden@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.