diff options
| author | Stefan Monnier | 2010-06-14 22:51:25 -0400 |
|---|---|---|
| committer | Stefan Monnier | 2010-06-14 22:51:25 -0400 |
| commit | 3c3ddb9833996729545bb4909bea359e5dbaa02e (patch) | |
| tree | e128f878a1ef7b7bd3217ff2c0fb664feb6dffbb /lisp | |
| parent | f43cb6490878cb8f1dcb7e45044bc635f54d5951 (diff) | |
| download | emacs-3c3ddb9833996729545bb4909bea359e5dbaa02e.tar.gz emacs-3c3ddb9833996729545bb4909bea359e5dbaa02e.zip | |
* lisp/emacs-lisp/bytecomp.el (byte-compile-initial-macro-environment):
Don't macroexpand before evaluating in eval-and-compile, in case
`body's macro expansion uses macros and functions defined in itself.
* src/bytecode.c (exec_byte_code):
* src/eval.c (Ffunctionp): Fix up int/Lisp_Object confusions.
Diffstat (limited to 'lisp')
| -rw-r--r-- | lisp/ChangeLog | 6 | ||||
| -rw-r--r-- | lisp/emacs-lisp/bytecomp.el | 5 |
2 files changed, 7 insertions, 4 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog index af456bd5d2e..856d4ea3898 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog | |||
| @@ -1,3 +1,9 @@ | |||
| 1 | 2010-06-15 Stefan Monnier <monnier@iro.umontreal.ca> | ||
| 2 | |||
| 3 | * emacs-lisp/bytecomp.el (byte-compile-initial-macro-environment): | ||
| 4 | Don't macroexpand before evaluating in eval-and-compile, in case | ||
| 5 | `body's macro expansion uses macros and functions defined in itself. | ||
| 6 | |||
| 1 | 2010-06-14 Stefan Monnier <monnier@iro.umontreal.ca> | 7 | 2010-06-14 Stefan Monnier <monnier@iro.umontreal.ca> |
| 2 | 8 | ||
| 3 | * emacs-lisp/bytecomp.el (byte-compile-check-variable): | 9 | * emacs-lisp/bytecomp.el (byte-compile-check-variable): |
diff --git a/lisp/emacs-lisp/bytecomp.el b/lisp/emacs-lisp/bytecomp.el index 490d928c5a0..df93528683c 100644 --- a/lisp/emacs-lisp/bytecomp.el +++ b/lisp/emacs-lisp/bytecomp.el | |||
| @@ -479,10 +479,7 @@ This list lives partly on the stack.") | |||
| 479 | (cons 'progn body) | 479 | (cons 'progn body) |
| 480 | byte-compile-initial-macro-environment)))))) | 480 | byte-compile-initial-macro-environment)))))) |
| 481 | (eval-and-compile . (lambda (&rest body) | 481 | (eval-and-compile . (lambda (&rest body) |
| 482 | (byte-compile-eval-before-compile | 482 | (byte-compile-eval-before-compile (cons 'progn body)) |
| 483 | (macroexpand-all | ||
| 484 | (cons 'progn body) | ||
| 485 | byte-compile-initial-macro-environment)) | ||
| 486 | (cons 'progn body)))) | 483 | (cons 'progn body)))) |
| 487 | "The default macro-environment passed to macroexpand by the compiler. | 484 | "The default macro-environment passed to macroexpand by the compiler. |
| 488 | Placing a macro here will cause a macro to have different semantics when | 485 | Placing a macro here will cause a macro to have different semantics when |