[Sorry for possible duplicates]
I just realized that compiler macros might be too restrictive in some implementations. Take for instance
(define-compiler-macro foo (a &key key-arg) ...)
This is assuming that FOO is only going to be invoked with _constant_ keyword arguments. I know, I know, most uses will have always one argument or :KEY-ARG, but suppose you want to call (FOO some-value a-non-constant-expression some-other-value)... What is the compiler to do?
I _now_ think that the compiler macro processor should simply recognize the failure to parse the form and return the original form, unprocessed, but the implementations I have at hand do not do that. ECL to begin with, but also CCL and SBCL.
Any opinions on this?
Juanjo