[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#13813: 24.3.50; eval-and-compile in macro inhibits let-binding of va
From: |
David Engster |
Subject: |
bug#13813: 24.3.50; eval-and-compile in macro inhibits let-binding of variable |
Date: |
Mon, 25 Feb 2013 17:58:41 +0100 |
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. :-)
- bug#13813: 24.3.50; eval-and-compile in macro inhibits let-binding of variable,
David Engster <=