# HG changeset patch # User Richard M. Stallman # Date 1173030923 0 # Node ID 656132bca5c05009830a1a563944fc651adf324d # Parent 08cc2843c940b539e6cb99e0f97b8e19c6fa0f19 (Eval During Compile): Clarify putting macros in eval-when-compile. diff -r 08cc2843c940 -r 656132bca5c0 lispref/compile.texi --- a/lispref/compile.texi Sun Mar 04 17:53:41 2007 +0000 +++ b/lispref/compile.texi Sun Mar 04 17:55:23 2007 +0000 @@ -454,11 +454,10 @@ (require 'my-macro-package)) ;; only macros needed from this @end lisp -The same sort of thing goes for macros or @code{defalias}es defined -locally and only for use within the file. They can be defined while -compiling, but then not needed when executing. This is good for code -that's only a fallback for compatibility with other versions of Emacs. -For example. +The same sort of thing goes for macros and @code{defsubst} functions +defined locally and only for use within the file. They are needed for +compiling the file, but in most cases they are not needed for +execution of the compiled file. For example, @lisp (eval-when-compile @@ -467,6 +466,10 @@ (compatibility code)))) @end lisp +@noindent +This is often good for code that's only a fallback for compatibility +with other versions of Emacs. + @strong{Common Lisp Note:} At top level, @code{eval-when-compile} is analogous to the Common Lisp idiom @code{(eval-when (compile eval) @dots{})}. Elsewhere, the Common Lisp @samp{#.} reader macro (but not when interpreting) is closer