]> git.eshelyaron.com Git - emacs.git/commitdiff
Compiler changes
authorDave Love <fx@gnu.org>
Sun, 15 Dec 2002 16:52:37 +0000 (16:52 +0000)
committerDave Love <fx@gnu.org>
Sun, 15 Dec 2002 16:52:37 +0000 (16:52 +0000)
etc/NEWS

index c0f0bdd4efe8192cb61136eb9244e01bb246bc90..7c9905dfe77685612831e6bab58c9b71c5d52da4 100644 (file)
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -1116,6 +1116,31 @@ with Custom.
 \f
 * Lisp Changes in Emacs 21.4
 
+** Byte compiler changes:
+
+*** `(featurep 'xemacs)' is treated by the compiler as nil.  This
+helps to avoid noisy compiler warnings in code meant to run under both
+Emacs and XEmacs and may sometimes make the result significantly more
+efficient.  Since byte code from recent versions of XEmacs won't
+generally run in Emacs and vice versa, this optimization doesn't lose
+you anything.
+
+*** You can avoid warnings for possibly-undefined symbols with a
+simple convention that the compiler understands.  (This is mostly
+useful in code meant to be portable to different Emacs versions.)
+Write forms like the following, or code that macroexpands into such
+forms:
+
+  (if (fboundp 'foo) <then> <else>)
+  (if (boundp 'foo) <then> <else)
+
+In the first case, using `foo' as a function inside the <then> form
+won't produce a warning if it's not defined as a function, and in the
+second case, using `foo' as a variable won't produce a warning if it's
+unbound.  The test must be in exactly one of the above forms (after
+macro expansion), but such tests may be nested.  Note that `when' and
+`unless' expand to `if', but `cond' doesn't.
+  
 ** New translation table `translation-table-for-input'.
 
 +++