From 0ad74106faefa656a03b51fd58a8413857eb483e Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Wed, 14 Sep 2016 17:20:24 +0300 Subject: [PATCH] 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. --- doc/lispref/anti.texi | 162 ++++++++++++++++++----------------------- doc/lispref/elisp.texi | 2 +- 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. -- 2.39.5