I'm interested in knowing what &allow-other-keys
is supposed to do. I'm getting shockingly few references to it and no real definitions when I consult all documentation I can get my hands on. Best I can figure out is that it's effectively an error handling bit of code that you can put after &key to suppress the checking of key arguments when the macro is being called. For reference, this is where I found it:
(defmacro macro-name ((passed-variable
&rest open-args
&key &allow-other-keys)
&body body)
...)
&allow-other-keys
is well documented: it suppresses Keyword Argument Checking.
In your example, it makes (macro-name (foo :bar 1) ...)
an acceptable invocation of macro-name
.