Update Antinews in ELisp manual

* doc/lispref/anti.texi (Antinews): Update for Emacs 25.1.
* doc/lispref/elisp.texi (Top): Update the main menu entry for
Antinews.
This commit is contained in:
Eli Zaretskii 2016-09-14 17:20:24 +03:00
parent ea0f750e5c
commit 0ad74106fa
2 changed files with 72 additions and 94 deletions

View file

@ -6,132 +6,110 @@
@c This node must have no pointers. @c This node must have no pointers.
@node Antinews @node Antinews
@appendix Emacs 23 Antinews @appendix Emacs 24 Antinews
@c Update the elisp.texi Antinews menu entry with the above version number. @c Update the elisp.texi Antinews menu entry with the above version number.
For those users who live backwards in time, here is information about For those users who live backwards in time, here is information about
downgrading to Emacs version 23.4. We hope you will enjoy the greater downgrading to Emacs version 24.5. We hope you will enjoy the greater
simplicity that results from the absence of many Emacs @value{EMACSVER} simplicity that results from the absence of many Emacs @value{EMACSVER}
features. features.
@section Old Lisp Features in Emacs 23 @section Old Lisp Features in Emacs 24
@itemize @bullet @itemize @bullet
@item @item
Support for lexical scoping has been removed; all variables are The requirement that @code{setq} and @code{setf} must be called with
dynamically scoped. The @code{lexical-binding} variable has been an even number of arguments has been removed. You can now call them
removed, and so has the @var{lexical} argument to @code{eval}. The with an odd number of arguments, and Emacs will helpfully supply a
@code{defvar} and @code{defconst} forms no longer mark variables as @code{nil} for the missing one. Simplicity rules!
dynamic, since all variables are dynamic.
Having only dynamic binding follows the spirit of Emacs extensibility,
for it allows any Emacs code to access any defined variable with a
minimum of fuss. But @xref{Dynamic Binding Tips}, for tips to avoid
making your programs hard to understand.
@item @item
Calling a minor mode function from Lisp with a @code{nil} or omitted argument @kbd{M-x shell} and @kbd{M-x compile} set the @env{EMACS} environment
does not enable the minor mode unconditionally; instead, it toggles variable, as they should, to indicate that the subprocess is run by
the minor mode---which is the straightforward thing to do, since that Emacs. This is so packages that took years to learn how to work
is the behavior when invoked interactively. One downside is that it around that setting could continue using their code to that effect.
is more troublesome to enable minor modes from hooks; you have to do
something like
@example
(add-hook 'foo-hook (lambda () (bar-mode 1)))
@end example
@noindent
or define @code{turn-on-bar-mode} and call that from the hook.
@item @item
The @code{prog-mode} dummy major mode has been removed. Instead of The @code{save-excursion} form saves and restores the mark, as
using it as a crutch to meet programming mode conventions, you should expected. No more need for the new @code{save-mark-and-excursion},
explicitly ensure that your mode follows those conventions. which has been deleted.
@xref{Major Mode Conventions}.
@item @item
Emacs no longer supports bidirectional display and editing. Since We have removed the @code{text-quoting-style} variable and the
there is no need to worry about the insertion of right-to-left text associated functionality that translates quote characters in messages
messing up how lines and paragraphs are displayed, the function displayed to the user and in help buffers. Emacs now shows exactly
@code{bidi-string-mark-left-to-right} has been removed; so have many the same quote characters as you wrote in your code! Likewise,
other functions and variables related to bidirectional display. @code{substitute-command-keys} leaves the quote characters alone. As
Unicode directionality characters like @code{U+200E} LEFT-TO-RIGHT you move back in time, Unicode support becomes less and less
MARK have no special effect on display. important, so no need to display those fancy new quotes the Unicode
Standard invented.
@item @item
Emacs windows now have most of their internal state hidden from Lisp. Regular expressions have been simplified by removing support for
Internal windows are no longer visible to Lisp; functions such as Unicode character properties in regexp classes. As result,
@code{window-parent}, window parameters related to window arrangement, @code{[:alpha:]} and @code{[:alnum:]} will match any character with a
and window-local buffer lists have all been removed. Functions for word syntax, and @code{[:graph:]} and @code{[:print:]} will match any
resizing windows can delete windows if they become too small. multibyte character, including surrogates and unassigned codepoints.
Once again, this is in line with diminishing importance of Unicode as
The action-function feature for controlling buffer display has you move back in time.
been removed, including @code{display-buffer-overriding-action} and
related variables, as well as the @var{action} argument to
@code{display-buffer} and other functions. The way to
programmatically control how Emacs chooses a window to display a
buffer is to bind the right combination of @code{pop-up-frames} and
other variables.
@item @item
The standard completion interface has been simplified, eliminating the Evaluating @samp{(/ @var{n})} will now yield @var{n}. We have
@code{completion-extra-properties} variable, the @code{metadata} realized that interpreting that as in Common Lisp was a bad mistake
action flag for completion functions, and the concept of that needed to be corrected.
completion categories. Lisp programmers may now find the choice
of methods for tuning completion less bewildering, but if a package
finds the streamlined interface insufficient for its needs, it must
implement its own specialized completion feature.
@item @item
@code{copy-directory} now behaves the same whether or not the The @code{pcase} form was significantly simplified by removing the
destination is an existing directory: if the destination exists, the UPatterns @code{quote} and @code{app}. To further simplify this
@emph{contents} of the first directory are copied into it (with facility, we've removed @code{pcase-defmacro}, since we found no need
subdirectories handled recursively), rather than copying the first for letting Lisp programs define new UPatterns.
directory into a subdirectory.
@item @item
The @var{trash} arguments for @code{delete-file} and We've removed the text properties @code{cursor-intangible} and
@code{delete-directory} have been removed. The variable @code{cursor-sensor-functions}, replacing them by the much simpler
@code{delete-by-moving-to-trash} must now be used with care; whenever @code{intangible}, @code{point-entered}, and @code{point-left}
it is non-@code{nil}, all calls to @code{delete-file} or properties. The latter are implemented on a much lower level, and
@code{delete-directory} use the trash. therefore are better integrated with user expectations. For similar
reasons, @code{cursor-intangible-mode} and @code{cursor-sensor-mode}
were removed; use the hook variable @code{inhibit-point-motion-hooks}
which is no longer obsolete.
@item @item
Because Emacs no longer supports SELinux file contexts, the Process creation and management functions were significantly improved
@var{preserve-selinux-context} argument to @code{copy-file} has been and simplified by removing @code{make-process} and the @code{pipe}
removed. The return value of @code{backup-buffer} no longer has an connection type. Redirecting @code{stderr} of a subprocess should be
entry for the SELinux file context. done with shell facilities, not by Emacs.
@item @item
For mouse click input events in the text area, the Y pixel coordinate We decided that shutting up informative messages is bad for user
in the @var{position} list (@pxref{Click Events}) now counts from the interaction, so we've removed the @code{inhibit-message} variable
top of the header line, if there is one, rather than the top of the which could be used to that effect.
text area.
@item @item
Bindings in menu keymaps (@pxref{Format of Keymaps}) now sometimes get Support for generators and for finalizers has been removed, as we
an additional @var{cache} entry in their definitions, like this: found no real need for these facilities.
@example
(@var{type} @var{item-name} @var{cache} . @var{binding})
@end example
@noindent
The @var{cache} entry is used internally by Emacs to record equivalent
keyboard key sequences for invoking the same command; Lisp programs
should never use it.
@c Not really NEWS-worthy then...
@item @item
The @code{gnutls} library has been removed, and the function Due to excessive complexity and the diminishing need for Unicode
@code{open-network-stream} correspondingly simplified. support, the functions @code{string-collate-lessp} and
Lisp programs that want an encrypted network connection must now call @code{string-collate-equalp} were removed. Their locale-independent
external utilities such as @command{starttls} or @command{gnutls-cli}. counterparts @code{string-lessp} and @code{string-equal} are so much
more simple and yield predictable results that we don't see any
situation where the locale-dependent collation could be useful in
Emacs. As result, the @file{ls-lisp.el} package sorts files in a
locale-independent manner.
@item @item
Tool bars can no longer display separators, which frees up several In preparation for removal in some past version of Emacs of the
pixels of space on each graphical frame. bidirectional editing support, we started by deleting two functions
@code{bidi-find-overridden-directionality} and
@code{buffer-substring-with-bidi-context}.
@item
Time conversion functions, such as @code{current-time-string}, no
longer accept an optional @var{zone} argument. If you need to change
the current time zone (why?), do that explicitly with
@code{set-time-zone-rule}.
@item @item
As part of the ongoing quest for simplicity, many other functions and As part of the ongoing quest for simplicity, many other functions and

View file

@ -228,7 +228,7 @@ To view this manual in other formats, click
Appendices Appendices
* Antinews:: Info for users downgrading to Emacs 23. * Antinews:: Info for users downgrading to Emacs 24.
* GNU Free Documentation License:: The license for this documentation. * GNU Free Documentation License:: The license for this documentation.
* GPL:: Conditions for copying and changing GNU Emacs. * GPL:: Conditions for copying and changing GNU Emacs.
* Tips:: Advice and coding conventions for Emacs Lisp. * Tips:: Advice and coding conventions for Emacs Lisp.