GNU bug report logs -
#13813
24.3.50; eval-and-compile in macro inhibits let-binding of variable
Previous Next
Reported by: David Engster <deng <at> randomsample.de>
Date: Mon, 25 Feb 2013 17:01:02 UTC
Severity: normal
Tags: notabug
Found in version 24.3.50
Done: Stefan Monnier <monnier <at> iro.umontreal.ca>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
Recipe:
* Create a file test.el with the following contents:
(defvar myflag nil)
(defmacro mytestmacro ()
"An eval-and-compile test."
`(eval-and-compile (mytestfun)))
(defun mytestfun ()
(when myflag
(message "foo")))
(let ((myflag t))
;; Should display "foo"
(mytestmacro))
* Now call with Emacs from trunk:
emacs --batch -l test.el
* "foo" should be displayed, but isn't. The Emacs 24.2.93 pretest
however works as expected.
* Note the following:
- It works if you just 'setq' the 'myflag' variable
- If you load the file interactively and call `eval-buffer', it will
also output nothing. However, if you manually evaluate the last
expression through C-x C-e, it will work.
- The same problem occurs with `eval-when-compile', but everything
works with `progn'.
Best,
David "who will never grasp eval-and-compile"
And yes, Stefan, this bug turned up in the EIEIO test suite. :-)
This bug report was last modified 12 years and 77 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.