#101: lambda list checking optimizes away dispatch macros which return nil -----------------------------------------+---------------------------------- Reporter: mevenson | Owner: somebody Type: defect | Status: new Priority: major | Milestone: Component: other | Version: Keywords: lambda list, dispatch macro | -----------------------------------------+---------------------------------- After [r12693][1], dispatch macros which return nil are stripped from processing in lambda lists.
For example
{{{ CL-USER> (defun foo (&key (this :that)) this)
CL-USER> (foo :this (#+:nil :other)) Odd number of keyword arguments. [Condition of type PROGRAM-ERROR] }}}
Among other things, this causes [usocket][2] to fail to load, erroring with the slightly mysterious "Unrecognized keyword argument :NAME" as reported by Kevin Raison.
[1]: http://trac.common-lisp.net/armedbear/changeset/12693
[2]: http://common-lisp.net/project/usocket/