2 @c This is part of the GNU Emacs Lisp Reference Manual.
3 @c Copyright (C) 1999, 2002-2017 Free Software Foundation, Inc.
4 @c See the file elisp.texi for copying conditions.
6 @c This node must have no pointers.
9 @appendix Emacs 24 Antinews
10 @c Update the elisp.texi Antinews menu entry with the above version number.
12 For those users who live backwards in time, here is information about
13 downgrading to Emacs version 24.5. We hope you will enjoy the greater
14 simplicity that results from the absence of many Emacs @value{EMACSVER}
17 @section Old Lisp Features in Emacs 24
21 The requirement that @code{setq} and @code{setf} must be called with
22 an even number of arguments has been removed. You can now call them
23 with an odd number of arguments, and Emacs will helpfully supply a
24 @code{nil} for the missing one. Simplicity rules!
27 @kbd{M-x shell} and @kbd{M-x compile} set the @env{EMACS} environment
28 variable, as they should, to indicate that the subprocess is run by
29 Emacs. This is so packages that took years to learn how to work
30 around that setting could continue using their code to that effect.
33 The @code{save-excursion} form saves and restores the mark, as
34 expected. No more need for the new @code{save-mark-and-excursion},
35 which has been deleted.
38 We have removed the @code{text-quoting-style} variable and the
39 associated functionality that translates quote characters in messages
40 displayed to the user and in help buffers. Emacs now shows exactly
41 the same quote characters as you wrote in your code! Likewise,
42 @code{substitute-command-keys} leaves the quote characters alone. As
43 you move back in time, Unicode support becomes less and less
44 important, so no need to display those fancy new quotes the Unicode
48 Regular expressions have been simplified by removing support for
49 Unicode character properties in regexp classes. As result,
50 @code{[:alpha:]} and @code{[:alnum:]} will match any character with a
51 word syntax, and @code{[:graph:]} and @code{[:print:]} will match any
52 multibyte character, including surrogates and unassigned codepoints.
53 Once again, this is in line with diminishing importance of Unicode as
54 you move back in time.
57 Evaluating @samp{(/ @var{n})} will now yield @var{n}. We have
58 realized that interpreting that as in Common Lisp was a bad mistake
59 that needed to be corrected.
62 The @code{pcase} form was significantly simplified by removing the
63 UPatterns @code{quote} and @code{app}. To further simplify this
64 facility, we've removed @code{pcase-defmacro}, since we found no need
65 for letting Lisp programs define new UPatterns.
68 We've removed the text properties @code{cursor-intangible} and
69 @code{cursor-sensor-functions}, replacing them by the much simpler
70 @code{intangible}, @code{point-entered}, and @code{point-left}
71 properties. The latter are implemented on a much lower level, and
72 therefore are better integrated with user expectations. For similar
73 reasons, @code{cursor-intangible-mode} and @code{cursor-sensor-mode}
74 were removed; use the hook variable @code{inhibit-point-motion-hooks}
75 which is no longer obsolete.
78 Process creation and management functions were significantly improved
79 and simplified by removing @code{make-process} and the @code{pipe}
80 connection type. Redirecting @code{stderr} of a subprocess should be
81 done with shell facilities, not by Emacs.
84 We decided that shutting up informative messages is bad for user
85 interaction, so we've removed the @code{inhibit-message} variable
86 which could be used to that effect.
89 Support for generators and for finalizers has been removed, as we
90 found no real need for these facilities.
93 Due to excessive complexity and the diminishing need for Unicode
94 support, the functions @code{string-collate-lessp} and
95 @code{string-collate-equalp} were removed. Their locale-independent
96 counterparts @code{string-lessp} and @code{string-equal} are so much
97 more simple and yield predictable results that we don't see any
98 situation where the locale-dependent collation could be useful in
99 Emacs. As result, the @file{ls-lisp.el} package sorts files in a
100 locale-independent manner.
103 In preparation for removal in some past version of Emacs of the
104 bidirectional editing support, we started by deleting two functions
105 @code{bidi-find-overridden-directionality} and
106 @code{buffer-substring-with-bidi-context}.
109 Time conversion functions, such as @code{current-time-string}, no
110 longer accept an optional @var{zone} argument. If you need to change
111 the current time zone (why?), do that explicitly with
112 @code{set-time-zone-rule}.
115 As part of the ongoing quest for simplicity, many other functions and
116 variables have been eliminated.