summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEli Zaretskii <eliz@gnu.org>2016-09-14 17:20:24 +0300
committerEli Zaretskii <eliz@gnu.org>2016-09-14 17:20:24 +0300
commit0ad74106faefa656a03b51fd58a8413857eb483e (patch)
tree7e3c46a26b12ff00a77fe5cebc112bee284d70a4
parentea0f750e5c1baa21c3ae1b22364662915c2b038f (diff)
downloademacs-0ad74106faefa656a03b51fd58a8413857eb483e.tar.gz
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.
-rw-r--r--doc/lispref/anti.texi162
-rw-r--r--doc/lispref/elisp.texi2
2 files changed, 71 insertions, 93 deletions
diff --git a/doc/lispref/anti.texi b/doc/lispref/anti.texi
index 4b084014994..17d765de142 100644
--- a/doc/lispref/anti.texi
+++ b/doc/lispref/anti.texi
@@ -6,132 +6,110 @@
@c This node must have no pointers.
@node Antinews
-@appendix Emacs 23 Antinews
+@appendix Emacs 24 Antinews
@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
-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}
features.
-@section Old Lisp Features in Emacs 23
+@section Old Lisp Features in Emacs 24
@itemize @bullet
@item
-Support for lexical scoping has been removed; all variables are
-dynamically scoped. The @code{lexical-binding} variable has been
-removed, and so has the @var{lexical} argument to @code{eval}. The
-@code{defvar} and @code{defconst} forms no longer mark variables as
-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.
+The requirement that @code{setq} and @code{setf} must be called with
+an even number of arguments has been removed. You can now call them
+with an odd number of arguments, and Emacs will helpfully supply a
+@code{nil} for the missing one. Simplicity rules!
@item
-Calling a minor mode function from Lisp with a @code{nil} or omitted argument
-does not enable the minor mode unconditionally; instead, it toggles
-the minor mode---which is the straightforward thing to do, since that
-is the behavior when invoked interactively. One downside is that it
-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.
+@kbd{M-x shell} and @kbd{M-x compile} set the @env{EMACS} environment
+variable, as they should, to indicate that the subprocess is run by
+Emacs. This is so packages that took years to learn how to work
+around that setting could continue using their code to that effect.
@item
-The @code{prog-mode} dummy major mode has been removed. Instead of
-using it as a crutch to meet programming mode conventions, you should
-explicitly ensure that your mode follows those conventions.
-@xref{Major Mode Conventions}.
+The @code{save-excursion} form saves and restores the mark, as
+expected. No more need for the new @code{save-mark-and-excursion},
+which has been deleted.
@item
-Emacs no longer supports bidirectional display and editing. Since
-there is no need to worry about the insertion of right-to-left text
-messing up how lines and paragraphs are displayed, the function
-@code{bidi-string-mark-left-to-right} has been removed; so have many
-other functions and variables related to bidirectional display.
-Unicode directionality characters like @code{U+200E} LEFT-TO-RIGHT
-MARK have no special effect on display.
+We have removed the @code{text-quoting-style} variable and the
+associated functionality that translates quote characters in messages
+displayed to the user and in help buffers. Emacs now shows exactly
+the same quote characters as you wrote in your code! Likewise,
+@code{substitute-command-keys} leaves the quote characters alone. As
+you move back in time, Unicode support becomes less and less
+important, so no need to display those fancy new quotes the Unicode
+Standard invented.
@item
-Emacs windows now have most of their internal state hidden from Lisp.
-Internal windows are no longer visible to Lisp; functions such as
-@code{window-parent}, window parameters related to window arrangement,
-and window-local buffer lists have all been removed. Functions for
-resizing windows can delete windows if they become too small.
-
-The action-function feature for controlling buffer display has
-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.
+Regular expressions have been simplified by removing support for
+Unicode character properties in regexp classes. As result,
+@code{[:alpha:]} and @code{[:alnum:]} will match any character with a
+word syntax, and @code{[:graph:]} and @code{[:print:]} will match any
+multibyte character, including surrogates and unassigned codepoints.
+Once again, this is in line with diminishing importance of Unicode as
+you move back in time.
@item
-The standard completion interface has been simplified, eliminating the
-@code{completion-extra-properties} variable, the @code{metadata}
-action flag for completion functions, and the concept of
-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.
+Evaluating @samp{(/ @var{n})} will now yield @var{n}. We have
+realized that interpreting that as in Common Lisp was a bad mistake
+that needed to be corrected.
@item
-@code{copy-directory} now behaves the same whether or not the
-destination is an existing directory: if the destination exists, the
-@emph{contents} of the first directory are copied into it (with
-subdirectories handled recursively), rather than copying the first
-directory into a subdirectory.
+The @code{pcase} form was significantly simplified by removing the
+UPatterns @code{quote} and @code{app}. To further simplify this
+facility, we've removed @code{pcase-defmacro}, since we found no need
+for letting Lisp programs define new UPatterns.
@item
-The @var{trash} arguments for @code{delete-file} and
-@code{delete-directory} have been removed. The variable
-@code{delete-by-moving-to-trash} must now be used with care; whenever
-it is non-@code{nil}, all calls to @code{delete-file} or
-@code{delete-directory} use the trash.
+We've removed the text properties @code{cursor-intangible} and
+@code{cursor-sensor-functions}, replacing them by the much simpler
+@code{intangible}, @code{point-entered}, and @code{point-left}
+properties. The latter are implemented on a much lower level, and
+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
-Because Emacs no longer supports SELinux file contexts, the
-@var{preserve-selinux-context} argument to @code{copy-file} has been
-removed. The return value of @code{backup-buffer} no longer has an
-entry for the SELinux file context.
+Process creation and management functions were significantly improved
+and simplified by removing @code{make-process} and the @code{pipe}
+connection type. Redirecting @code{stderr} of a subprocess should be
+done with shell facilities, not by Emacs.
@item
-For mouse click input events in the text area, the Y pixel coordinate
-in the @var{position} list (@pxref{Click Events}) now counts from the
-top of the header line, if there is one, rather than the top of the
-text area.
+We decided that shutting up informative messages is bad for user
+interaction, so we've removed the @code{inhibit-message} variable
+which could be used to that effect.
@item
-Bindings in menu keymaps (@pxref{Format of Keymaps}) now sometimes get
-an additional @var{cache} entry in their definitions, like this:
+Support for generators and for finalizers has been removed, as we
+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
+Due to excessive complexity and the diminishing need for Unicode
+support, the functions @code{string-collate-lessp} and
+@code{string-collate-equalp} were removed. Their locale-independent
+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
-The @code{gnutls} library has been removed, and the function
-@code{open-network-stream} correspondingly simplified.
-Lisp programs that want an encrypted network connection must now call
-external utilities such as @command{starttls} or @command{gnutls-cli}.
+In preparation for removal in some past version of Emacs of the
+bidirectional editing support, we started by deleting two functions
+@code{bidi-find-overridden-directionality} and
+@code{buffer-substring-with-bidi-context}.
@item
-Tool bars can no longer display separators, which frees up several
-pixels of space on each graphical frame.
+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
As part of the ongoing quest for simplicity, many other functions and
diff --git a/doc/lispref/elisp.texi b/doc/lispref/elisp.texi
index a3bff0b07ac..3297e5308ae 100644
--- a/doc/lispref/elisp.texi
+++ b/doc/lispref/elisp.texi
@@ -228,7 +228,7 @@ To view this manual in other formats, click
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.
* GPL:: Conditions for copying and changing GNU Emacs.
* Tips:: Advice and coding conventions for Emacs Lisp.