Mercurial > emacs
comparison lispref/compile.texi @ 90105:7e3f621f1dd4
Revision: miles@gnu.org--gnu-2005/emacs--unicode--0--patch-15
Merge from emacs--cvs-trunk--0
Patches applied:
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-95
Merge from gnus--rel--5.10
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-96
Move Gnus images into etc/images
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-97
- miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-105
Update from CVS
* miles@gnu.org--gnu-2005/gnus--rel--5.10--patch-14
Merge from emacs--cvs-trunk--0
* miles@gnu.org--gnu-2005/gnus--rel--5.10--patch-15
Update from CVS: lisp/imap.el (imap-log): Doc fix.
* miles@gnu.org--gnu-2005/gnus--rel--5.10--patch-16
Merge from emacs--cvs-trunk--0
author | Miles Bader <miles@gnu.org> |
---|---|
date | Fri, 18 Feb 2005 00:41:50 +0000 |
parents | 4c90ffeb71c5 fafa7c0e2b82 |
children | b7da78284d4c |
comparison
equal
deleted
inserted
replaced
90104:a01e7a9f1659 | 90105:7e3f621f1dd4 |
---|---|
25 unless the file specifies otherwise. This is so that compilation gives | 25 unless the file specifies otherwise. This is so that compilation gives |
26 results compatible with running the same file without compilation. | 26 results compatible with running the same file without compilation. |
27 @xref{Loading Non-ASCII}. | 27 @xref{Loading Non-ASCII}. |
28 | 28 |
29 In general, any version of Emacs can run byte-compiled code produced | 29 In general, any version of Emacs can run byte-compiled code produced |
30 by recent earlier versions of Emacs, but the reverse is not true. A | 30 by recent earlier versions of Emacs, but the reverse is not true. |
31 major incompatible change was introduced in Emacs version 19.29, and | |
32 files compiled with versions since that one will definitely not run | |
33 in earlier versions unless you specify a special option. | |
34 @iftex | |
35 @xref{Docs and Compilation}. | |
36 @end iftex | |
37 In addition, the modifier bits in keyboard characters were renumbered in | |
38 Emacs 19.29; as a result, files compiled in versions before 19.29 will | |
39 not work in subsequent versions if they contain character constants with | |
40 modifier bits. | |
41 | 31 |
42 @vindex no-byte-compile | 32 @vindex no-byte-compile |
43 If you do not want a Lisp file to be compiled, ever, put a file-local | 33 If you do not want a Lisp file to be compiled, ever, put a file-local |
44 variable binding for @code{no-byte-compile} into it, like this: | 34 variable binding for @code{no-byte-compile} into it, like this: |
45 | 35 |
120 byte-compile. Macro calls are expanded when they are compiled, so the | 110 byte-compile. Macro calls are expanded when they are compiled, so the |
121 macros must already be defined for proper compilation. For more | 111 macros must already be defined for proper compilation. For more |
122 details, see @ref{Compiling Macros}. If a program does not work the | 112 details, see @ref{Compiling Macros}. If a program does not work the |
123 same way when compiled as it does when interpreted, erroneous macro | 113 same way when compiled as it does when interpreted, erroneous macro |
124 definitions are one likely cause (@pxref{Problems with Macros}). | 114 definitions are one likely cause (@pxref{Problems with Macros}). |
115 Inline (@code{defsubst}) functions are less troublesome; if you | |
116 compile a call to such a function before its definition is known, the | |
117 call will still work right, it will just run slower. | |
125 | 118 |
126 Normally, compiling a file does not evaluate the file's contents or | 119 Normally, compiling a file does not evaluate the file's contents or |
127 load the file. But it does execute any @code{require} calls at top | 120 load the file. But it does execute any @code{require} calls at top |
128 level in the file. One way to ensure that necessary macro definitions | 121 level in the file. One way to ensure that necessary macro definitions |
129 are available during compilation is to require the file that defines | 122 are available during compilation is to require the file that defines |
311 However, if you have built Emacs yourself and use it from the | 304 However, if you have built Emacs yourself and use it from the |
312 directory where you built it, you will experience this problem | 305 directory where you built it, you will experience this problem |
313 occasionally if you edit and recompile Lisp files. When it happens, you | 306 occasionally if you edit and recompile Lisp files. When it happens, you |
314 can cure the problem by reloading the file after recompiling it. | 307 can cure the problem by reloading the file after recompiling it. |
315 | 308 |
316 Byte-compiled files made with recent versions of Emacs (since 19.29) | 309 You can turn off this feature at compile time by setting |
317 will not load into older versions because the older versions don't | 310 @code{byte-compile-dynamic-docstrings} to @code{nil}; this is useful |
318 support this feature. You can turn off this feature at compile time by | 311 mainly if you expect to change the file, and you want Emacs processes |
319 setting @code{byte-compile-dynamic-docstrings} to @code{nil}; then you | 312 that have already loaded it to keep working when the file changes. |
320 can compile files that will load into older Emacs versions. You can do | 313 You can do this globally, or for one source file by specifying a |
321 this globally, or for one source file by specifying a file-local binding | 314 file-local binding for the variable. One way to do that is by adding |
322 for the variable. One way to do that is by adding this string to the | 315 this string to the file's first line: |
323 file's first line: | |
324 | 316 |
325 @example | 317 @example |
326 -*-byte-compile-dynamic-docstrings: nil;-*- | 318 -*-byte-compile-dynamic-docstrings: nil;-*- |
327 @end example | 319 @end example |
328 | 320 |