diff options
| author | Stefan Monnier | 2012-09-04 13:40:25 -0400 |
|---|---|---|
| committer | Stefan Monnier | 2012-09-04 13:40:25 -0400 |
| commit | 972debf2e7381b4fd2c70f9c1fd585d8bd137917 (patch) | |
| tree | 6e9da9768df8fc4e29ce881a6b64e91806a7a564 /etc | |
| parent | 1088b9226e7dac7314dab52ef0696a5f540900cd (diff) | |
| download | emacs-972debf2e7381b4fd2c70f9c1fd585d8bd137917.tar.gz emacs-972debf2e7381b4fd2c70f9c1fd585d8bd137917.zip | |
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.
Diffstat (limited to 'etc')
| -rw-r--r-- | etc/NEWS | 7 |
1 files changed, 7 insertions, 0 deletions
| @@ -601,6 +601,13 @@ are deprecated and will be removed eventually. | |||
| 601 | 601 | ||
| 602 | * Lisp changes in Emacs 24.3 | 602 | * Lisp changes in Emacs 24.3 |
| 603 | 603 | ||
| 604 | ** Interpreted files get eagerly macro-expanded during load. | ||
| 605 | This can significantly speed up execution of non-byte-compiled code, but can | ||
| 606 | also bump into harmless and previously unnoticed cyclic dependencies. | ||
| 607 | These should not be fatal: they will simply cause the macro-calls to be left | ||
| 608 | for later expansion (as before), but will also result in a warning describing | ||
| 609 | the cycle. | ||
| 610 | |||
| 604 | ** New minor mode `read-only-mode' to replace toggle-read-only (now obsolete). | 611 | ** New minor mode `read-only-mode' to replace toggle-read-only (now obsolete). |
| 605 | 612 | ||
| 606 | ** New functions `autoloadp' and `autoload-do-load'. | 613 | ** New functions `autoloadp' and `autoload-do-load'. |