bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#8712: 24.0.50; getting the "Forgot to expand macro XXXX" error - pro


From: Stefan Monnier
Subject: bug#8712: 24.0.50; getting the "Forgot to expand macro XXXX" error - problem? solution?
Date: Sun, 22 May 2011 22:36:34 -0300
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.0.50 (gnu/linux)

> 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





reply via email to

[Prev in Thread] Current Thread [Next in Thread]