mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2024-11-22 07:09:54 +00:00
Compiler changes
This commit is contained in:
parent
ccdd5c6187
commit
f08830d27f
25
etc/NEWS
25
etc/NEWS
@ -1116,6 +1116,31 @@ with Custom.
|
|||||||
|
|
||||||
* Lisp Changes in Emacs 21.4
|
* 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'.
|
** New translation table `translation-table-for-input'.
|
||||||
|
|
||||||
+++
|
+++
|
||||||
|
Loading…
Reference in New Issue
Block a user