Subject: bug#8712: 24.0.50; getting the "Forgot to expand macro XXXX" error - problem? solution?

From: Stefan Monnier <[email-masked]>
Date: Sun, 22 May 2011 22:36:34 -0300

> I do have a question about the follownig warning, however (which I have not
> seen/noticed before):

>  (lambda (opt) ...) quoted with ' rather than with #'

> That presumably comes from a defmacro that has, in effect, this:

>  ` ... (let* (... (something (lambda (opt)...))))

This is because you pass (lambda (opt) ...) as `function' argument
to a macro that then splices it with

  `(.... ',function ....)

so the expanded code contains '(lambda (opt) ...).
Splice it with #', instead.

> That is, an unquoted lambda inside a backquote.  The backquote expands
> to (quote (lambda...)) no doubt.

No, backquote does not know you're building code, so it can't freely
decide to add `quote' symbols as it sees fit.

        Stefan