aboutsummaryrefslogtreecommitdiffstats
path: root/doc
diff options
context:
space:
mode:
Diffstat (limited to 'doc')
-rw-r--r--doc/lispref/ChangeLog5
-rw-r--r--doc/lispref/loading.texi19
-rw-r--r--doc/lispref/macros.texi4
3 files changed, 28 insertions, 0 deletions
diff --git a/doc/lispref/ChangeLog b/doc/lispref/ChangeLog
index da82ece39c1..43ca9ac4aa5 100644
--- a/doc/lispref/ChangeLog
+++ b/doc/lispref/ChangeLog
@@ -1,3 +1,8 @@
12012-11-18 Glenn Morris <rgm@gnu.org>
2
3 * loading.texi (How Programs Do Loading): Add eager macro expansion.
4 * macros.texi (Expansion): Mention eager macro expansion.
5
12012-11-17 Glenn Morris <rgm@gnu.org> 62012-11-17 Glenn Morris <rgm@gnu.org>
2 7
3 * minibuf.texi (Basic Completion): Mention misc completion-table funcs. 8 * minibuf.texi (Basic Completion): Mention misc completion-table funcs.
diff --git a/doc/lispref/loading.texi b/doc/lispref/loading.texi
index 3a511d34829..54acd0b4d4c 100644
--- a/doc/lispref/loading.texi
+++ b/doc/lispref/loading.texi
@@ -113,6 +113,25 @@ When loading a source file (not compiled), @code{load} performs
113character set translation just as Emacs would do when visiting the file. 113character set translation just as Emacs would do when visiting the file.
114@xref{Coding Systems}. 114@xref{Coding Systems}.
115 115
116@c This is referred to from the Macros chapter.
117@c Not sure if it should be the other way round.
118@cindex eager macro expansion
119When loading an uncompiled file, Emacs tries to expand any macros
120that the file contains (@pxref{Macros}). We refer to this as
121@dfn{eager macro expansion}. Doing this (rather than deferring
122the expansion until the relevant code runs) can significantly speed
123up the execution of uncompiled code. Sometimes, this macro expansion
124cannot be done, owing to a cyclic dependency. In the simplest
125example of this, the file you are loading refers to a macro defined
126in another file, and that file in turn requires the file you are
127loading. This is generally harmless. Emacs prints a warning
128(@samp{Eager macro-expansion skipped due to cycle@dots{}})
129giving details of the problem, but it still loads the file, just
130leaving the macro unexpanded for now. You may wish to restructure
131your code so that this does not happen. Loading a compiled file does
132not cause macroexpansion, because this should already have happened
133during compilation. @xref{Compiling Macros}.
134
116Messages like @samp{Loading foo...} and @samp{Loading foo...done} appear 135Messages like @samp{Loading foo...} and @samp{Loading foo...done} appear
117in the echo area during loading unless @var{nomessage} is 136in the echo area during loading unless @var{nomessage} is
118non-@code{nil}. 137non-@code{nil}.
diff --git a/doc/lispref/macros.texi b/doc/lispref/macros.texi
index 8be6a3fbcde..b0dee1bf215 100644
--- a/doc/lispref/macros.texi
+++ b/doc/lispref/macros.texi
@@ -86,6 +86,10 @@ macro.
86calls to other macros. It may even be a call to the same macro, though 86calls to other macros. It may even be a call to the same macro, though
87this is unusual. 87this is unusual.
88 88
89 Note that Emacs tries to expand macros when loading an uncompiled
90Lisp file. This is not always possible, but if it is, it speeds up
91subsequent execution. @xref{How Programs Do Loading}.
92
89 You can see the expansion of a given macro call by calling 93 You can see the expansion of a given macro call by calling
90@code{macroexpand}. 94@code{macroexpand}.
91 95