Mercurial > emacs
comparison etc/NEWS @ 48849:27e5569d6a32
Compiler changes
author | Dave Love <fx@gnu.org> |
---|---|
date | Sun, 15 Dec 2002 16:52:37 +0000 |
parents | 208d298f6d14 |
children | d5393fb79ea2 |
comparison
equal
deleted
inserted
replaced
48848:4eb835c1257d | 48849:27e5569d6a32 |
---|---|
1114 with Custom. | 1114 with Custom. |
1115 | 1115 |
1116 | 1116 |
1117 * Lisp Changes in Emacs 21.4 | 1117 * Lisp Changes in Emacs 21.4 |
1118 | 1118 |
1119 ** Byte compiler changes: | |
1120 | |
1121 *** `(featurep 'xemacs)' is treated by the compiler as nil. This | |
1122 helps to avoid noisy compiler warnings in code meant to run under both | |
1123 Emacs and XEmacs and may sometimes make the result significantly more | |
1124 efficient. Since byte code from recent versions of XEmacs won't | |
1125 generally run in Emacs and vice versa, this optimization doesn't lose | |
1126 you anything. | |
1127 | |
1128 *** You can avoid warnings for possibly-undefined symbols with a | |
1129 simple convention that the compiler understands. (This is mostly | |
1130 useful in code meant to be portable to different Emacs versions.) | |
1131 Write forms like the following, or code that macroexpands into such | |
1132 forms: | |
1133 | |
1134 (if (fboundp 'foo) <then> <else>) | |
1135 (if (boundp 'foo) <then> <else) | |
1136 | |
1137 In the first case, using `foo' as a function inside the <then> form | |
1138 won't produce a warning if it's not defined as a function, and in the | |
1139 second case, using `foo' as a variable won't produce a warning if it's | |
1140 unbound. The test must be in exactly one of the above forms (after | |
1141 macro expansion), but such tests may be nested. Note that `when' and | |
1142 `unless' expand to `if', but `cond' doesn't. | |
1143 | |
1119 ** New translation table `translation-table-for-input'. | 1144 ** New translation table `translation-table-for-input'. |
1120 | 1145 |
1121 +++ | 1146 +++ |
1122 ** `load-history' can now have elements of the form (t . FUNNAME), | 1147 ** `load-history' can now have elements of the form (t . FUNNAME), |
1123 which means FUNNAME was previously defined as an autoload (before the | 1148 which means FUNNAME was previously defined as an autoload (before the |