Macro-expand interpreted code during load.
commit972debf2e7381b4fd2c70f9c1fd585d8bd137917
authorStefan Monnier <monnier@iro.umontreal.ca>
Tue, 4 Sep 2012 17:40:25 +0000 (4 13:40 -0400)
committerStefan Monnier <monnier@iro.umontreal.ca>
Tue, 4 Sep 2012 17:40:25 +0000 (4 13:40 -0400)
tree6e9da9768df8fc4e29ce881a6b64e91806a7a564
parent1088b9226e7dac7314dab52ef0696a5f540900cd
Macro-expand interpreted code during load.
* src/lread.c (readevalloop): Call internal-macroexpand-for-load to perform
eager (load-time) macro-expansion.
* src/lisp.mk (lisp): Add macroexp.
* lisp/loadup.el: Load macroexp.  Remove hack.
* lisp/emacs-lisp/macroexp.el (macroexp--eval-if-compile): New function.
(macroexp--expand-all): Use it to get better warnings.
(macroexp--backtrace, macroexp--trim-backtrace-frame)
(internal-macroexpand-for-load): New functions.
(macroexp--pending-eager-loads): New var.
(emacs-startup-hook): New hack to replace one in loadup.el.
* lisp/emacs-lisp/cl-macs.el (cl--compiler-macro-list*)
(cl--compiler-macro-cXXr): Move to top, before they can be used.
(cl-psetf): Simplify.
(cl-defstruct): Add indent rule.
etc/NEWS
lisp/ChangeLog
lisp/emacs-lisp/cl-loaddefs.el
lisp/emacs-lisp/cl-macs.el
lisp/emacs-lisp/macroexp.el
lisp/emacs-lisp/pcase.el
lisp/loadup.el
src/ChangeLog
src/lisp.mk
src/lread.c