aboutsummaryrefslogtreecommitdiffstats
path: root/doc
diff options
context:
space:
mode:
authorEli Zaretskii2016-09-14 17:20:24 +0300
committerEli Zaretskii2016-09-14 17:20:24 +0300
commit0ad74106faefa656a03b51fd58a8413857eb483e (patch)
tree7e3c46a26b12ff00a77fe5cebc112bee284d70a4 /doc
parentea0f750e5c1baa21c3ae1b22364662915c2b038f (diff)
downloademacs-0ad74106faefa656a03b51fd58a8413857eb483e.tar.gz
emacs-0ad74106faefa656a03b51fd58a8413857eb483e.zip
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.
Diffstat (limited to 'doc')
-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 @@
6@c This node must have no pointers. 6@c This node must have no pointers.
7 7
8@node Antinews 8@node Antinews
9@appendix Emacs 23 Antinews 9@appendix Emacs 24 Antinews
10@c Update the elisp.texi Antinews menu entry with the above version number. 10@c Update the elisp.texi Antinews menu entry with the above version number.
11 11
12For those users who live backwards in time, here is information about 12For those users who live backwards in time, here is information about
13downgrading to Emacs version 23.4. We hope you will enjoy the greater 13downgrading to Emacs version 24.5. We hope you will enjoy the greater
14simplicity that results from the absence of many Emacs @value{EMACSVER} 14simplicity that results from the absence of many Emacs @value{EMACSVER}
15features. 15features.
16 16
17@section Old Lisp Features in Emacs 23 17@section Old Lisp Features in Emacs 24
18 18
19@itemize @bullet 19@itemize @bullet
20@item 20@item
21Support for lexical scoping has been removed; all variables are 21The requirement that @code{setq} and @code{setf} must be called with
22dynamically scoped. The @code{lexical-binding} variable has been 22an even number of arguments has been removed. You can now call them
23removed, and so has the @var{lexical} argument to @code{eval}. The 23with an odd number of arguments, and Emacs will helpfully supply a
24@code{defvar} and @code{defconst} forms no longer mark variables as 24@code{nil} for the missing one. Simplicity rules!
25dynamic, since all variables are dynamic.
26
27Having only dynamic binding follows the spirit of Emacs extensibility,
28for it allows any Emacs code to access any defined variable with a
29minimum of fuss. But @xref{Dynamic Binding Tips}, for tips to avoid
30making your programs hard to understand.
31 25
32@item 26@item
33Calling a minor mode function from Lisp with a @code{nil} or omitted argument 27@kbd{M-x shell} and @kbd{M-x compile} set the @env{EMACS} environment
34does not enable the minor mode unconditionally; instead, it toggles 28variable, as they should, to indicate that the subprocess is run by
35the minor mode---which is the straightforward thing to do, since that 29Emacs. This is so packages that took years to learn how to work
36is the behavior when invoked interactively. One downside is that it 30around that setting could continue using their code to that effect.
37is more troublesome to enable minor modes from hooks; you have to do
38something like
39
40@example
41(add-hook 'foo-hook (lambda () (bar-mode 1)))
42@end example
43
44@noindent
45or define @code{turn-on-bar-mode} and call that from the hook.
46 31
47@item 32@item
48The @code{prog-mode} dummy major mode has been removed. Instead of 33The @code{save-excursion} form saves and restores the mark, as
49using it as a crutch to meet programming mode conventions, you should 34expected. No more need for the new @code{save-mark-and-excursion},
50explicitly ensure that your mode follows those conventions. 35which has been deleted.
51@xref{Major Mode Conventions}.
52 36
53@item 37@item
54Emacs no longer supports bidirectional display and editing. Since 38We have removed the @code{text-quoting-style} variable and the
55there is no need to worry about the insertion of right-to-left text 39associated functionality that translates quote characters in messages
56messing up how lines and paragraphs are displayed, the function 40displayed to the user and in help buffers. Emacs now shows exactly
57@code{bidi-string-mark-left-to-right} has been removed; so have many 41the same quote characters as you wrote in your code! Likewise,
58other functions and variables related to bidirectional display. 42@code{substitute-command-keys} leaves the quote characters alone. As
59Unicode directionality characters like @code{U+200E} LEFT-TO-RIGHT 43you move back in time, Unicode support becomes less and less
60MARK have no special effect on display. 44important, so no need to display those fancy new quotes the Unicode
45Standard invented.
61 46
62@item 47@item
63Emacs windows now have most of their internal state hidden from Lisp. 48Regular expressions have been simplified by removing support for
64Internal windows are no longer visible to Lisp; functions such as 49Unicode character properties in regexp classes. As result,
65@code{window-parent}, window parameters related to window arrangement, 50@code{[:alpha:]} and @code{[:alnum:]} will match any character with a
66and window-local buffer lists have all been removed. Functions for 51word syntax, and @code{[:graph:]} and @code{[:print:]} will match any
67resizing windows can delete windows if they become too small. 52multibyte character, including surrogates and unassigned codepoints.
68 53Once again, this is in line with diminishing importance of Unicode as
69The action-function feature for controlling buffer display has 54you move back in time.
70been removed, including @code{display-buffer-overriding-action} and
71related variables, as well as the @var{action} argument to
72@code{display-buffer} and other functions. The way to
73programmatically control how Emacs chooses a window to display a
74buffer is to bind the right combination of @code{pop-up-frames} and
75other variables.
76 55
77@item 56@item
78The standard completion interface has been simplified, eliminating the 57Evaluating @samp{(/ @var{n})} will now yield @var{n}. We have
79@code{completion-extra-properties} variable, the @code{metadata} 58realized that interpreting that as in Common Lisp was a bad mistake
80action flag for completion functions, and the concept of 59that needed to be corrected.
81completion categories. Lisp programmers may now find the choice
82of methods for tuning completion less bewildering, but if a package
83finds the streamlined interface insufficient for its needs, it must
84implement its own specialized completion feature.
85 60
86@item 61@item
87@code{copy-directory} now behaves the same whether or not the 62The @code{pcase} form was significantly simplified by removing the
88destination is an existing directory: if the destination exists, the 63UPatterns @code{quote} and @code{app}. To further simplify this
89@emph{contents} of the first directory are copied into it (with 64facility, we've removed @code{pcase-defmacro}, since we found no need
90subdirectories handled recursively), rather than copying the first 65for letting Lisp programs define new UPatterns.
91directory into a subdirectory.
92 66
93@item 67@item
94The @var{trash} arguments for @code{delete-file} and 68We've removed the text properties @code{cursor-intangible} and
95@code{delete-directory} have been removed. The variable 69@code{cursor-sensor-functions}, replacing them by the much simpler
96@code{delete-by-moving-to-trash} must now be used with care; whenever 70@code{intangible}, @code{point-entered}, and @code{point-left}
97it is non-@code{nil}, all calls to @code{delete-file} or 71properties. The latter are implemented on a much lower level, and
98@code{delete-directory} use the trash. 72therefore are better integrated with user expectations. For similar
73reasons, @code{cursor-intangible-mode} and @code{cursor-sensor-mode}
74were removed; use the hook variable @code{inhibit-point-motion-hooks}
75which is no longer obsolete.
99 76
100@item 77@item
101Because Emacs no longer supports SELinux file contexts, the 78Process creation and management functions were significantly improved
102@var{preserve-selinux-context} argument to @code{copy-file} has been 79and simplified by removing @code{make-process} and the @code{pipe}
103removed. The return value of @code{backup-buffer} no longer has an 80connection type. Redirecting @code{stderr} of a subprocess should be
104entry for the SELinux file context. 81done with shell facilities, not by Emacs.
105 82
106@item 83@item
107For mouse click input events in the text area, the Y pixel coordinate 84We decided that shutting up informative messages is bad for user
108in the @var{position} list (@pxref{Click Events}) now counts from the 85interaction, so we've removed the @code{inhibit-message} variable
109top of the header line, if there is one, rather than the top of the 86which could be used to that effect.
110text area.
111 87
112@item 88@item
113Bindings in menu keymaps (@pxref{Format of Keymaps}) now sometimes get 89Support for generators and for finalizers has been removed, as we
114an additional @var{cache} entry in their definitions, like this: 90found no real need for these facilities.
115 91
116@example 92@item
117(@var{type} @var{item-name} @var{cache} . @var{binding}) 93Due to excessive complexity and the diminishing need for Unicode
118@end example 94support, the functions @code{string-collate-lessp} and
119 95@code{string-collate-equalp} were removed. Their locale-independent
120@noindent 96counterparts @code{string-lessp} and @code{string-equal} are so much
121The @var{cache} entry is used internally by Emacs to record equivalent 97more simple and yield predictable results that we don't see any
122keyboard key sequences for invoking the same command; Lisp programs 98situation where the locale-dependent collation could be useful in
123should never use it. 99Emacs. As result, the @file{ls-lisp.el} package sorts files in a
124@c Not really NEWS-worthy then... 100locale-independent manner.
125 101
126@item 102@item
127The @code{gnutls} library has been removed, and the function 103In preparation for removal in some past version of Emacs of the
128@code{open-network-stream} correspondingly simplified. 104bidirectional editing support, we started by deleting two functions
129Lisp programs that want an encrypted network connection must now call 105@code{bidi-find-overridden-directionality} and
130external utilities such as @command{starttls} or @command{gnutls-cli}. 106@code{buffer-substring-with-bidi-context}.
131 107
132@item 108@item
133Tool bars can no longer display separators, which frees up several 109Time conversion functions, such as @code{current-time-string}, no
134pixels of space on each graphical frame. 110longer accept an optional @var{zone} argument. If you need to change
111the current time zone (why?), do that explicitly with
112@code{set-time-zone-rule}.
135 113
136@item 114@item
137As part of the ongoing quest for simplicity, many other functions and 115As 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
228 228
229Appendices 229Appendices
230 230
231* Antinews:: Info for users downgrading to Emacs 23. 231* Antinews:: Info for users downgrading to Emacs 24.
232* GNU Free Documentation License:: The license for this documentation. 232* GNU Free Documentation License:: The license for this documentation.
233* GPL:: Conditions for copying and changing GNU Emacs. 233* GPL:: Conditions for copying and changing GNU Emacs.
234* Tips:: Advice and coding conventions for Emacs Lisp. 234* Tips:: Advice and coding conventions for Emacs Lisp.