* 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.
This commit is contained in:
parent
f43cb64908
commit
3c3ddb9833
5 changed files with 15 additions and 10 deletions
|
@ -479,10 +479,7 @@ This list lives partly on the stack.")
|
|||
(cons 'progn body)
|
||||
byte-compile-initial-macro-environment))))))
|
||||
(eval-and-compile . (lambda (&rest body)
|
||||
(byte-compile-eval-before-compile
|
||||
(macroexpand-all
|
||||
(cons 'progn body)
|
||||
byte-compile-initial-macro-environment))
|
||||
(byte-compile-eval-before-compile (cons 'progn body))
|
||||
(cons 'progn body))))
|
||||
"The default macro-environment passed to macroexpand by the compiler.
|
||||
Placing a macro here will cause a macro to have different semantics when
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue