Merge branch 'master' into comment-cache
[emacs.git] / doc / emacs / anti.texi
blob87cbe439e05a0b819587a3e71f361cd613b12251
1 @c -*- coding: utf-8 -*-
2 @c This is part of the Emacs manual.
3 @c Copyright (C) 2005-2017 Free Software Foundation, Inc.
4 @c See file emacs.texi for copying conditions.
6 @node Antinews
7 @appendix Emacs 24 Antinews
8 @c Update the emacs.texi Antinews menu entry with the above version number.
10   For those users who live backwards in time, here is information
11 about downgrading to Emacs version 24.5.  We hope you will enjoy the
12 greater simplicity that results from the absence of many Emacs
13 @value{EMACSVER} features.
15 @itemize @bullet
16 @item
17 Support for Cairo drawing has been removed.  On GNU and Unix systems,
18 you now have only one drawing engine---the venerable X Window system.
19 No need to procrastinate on the dilemma whether you do or don't want
20 the new shiny Cairo thing.  Hail, simplicity!
22 @item
23 Emacs still works on SGI IRIX systems.  If you live backwards in time,
24 this is actually a bonus, as IRIX systems will become more and more
25 popular as you move farther back in time.
27 @item
28 Support for dynamically loaded modules has been removed.  You get to
29 use only the trusted Emacs codebase, with no additions.  Those
30 external modules written by some J.R. Hacker cannot be trusted anyway.
31 Good riddance!
33 @item
34 We have greatly simplified the Emacs features which access the network
35 by removing the Network Security Manager.  No more annoying prompts
36 about trusting this or that site or page---you asked for it, you get
37 it, no questions asked!  You, the user, are now in charge of any
38 security issues related to sites whose certificates expired or didn't
39 exist in the first place.  Giving the user the utmost freedom was and
40 always will be the most important goal of Emacs development.  We keep
41 that goal even as we develop Emacs back in time.
43 @item
44 We made the output of @kbd{C-h l} much simpler and easier to grasp by
45 removing the names of commands run by the recorded keystrokes.  True
46 Emacs lovers know their bindings by heart anyway, so why waste
47 precious screen estate on that which is well known?
49 @item
50 Selection- and clipboard-related commands and variables got their
51 historical names back.  It's now the definitive
52 @code{x-select-enable-clipboard} again instead of the vague
53 @code{select-enable-clipboard}, and all those @code{gui-select-text},
54 @code{gui-get-primary-selection}, etc.@: got their @code{x-*} names
55 back.  (What's a ``GUI'', anyway?)  The only true window system with
56 selections is the X Window system, so we stopped pretending that other
57 platforms have anything similar to that.  You now know when you invoke
58 a command that accesses X.
60 @item
61 Passwords are no longer hidden when typed in @code{-batch} mode.  It
62 was a misfeature to have it not shown in the first place: who can type
63 without seeing what they type?  We couldn't convince the users of GUI
64 sessions to give up hiding the password, so we at least made it
65 visible in batch mode, which is something every veteran Emacs user
66 uses all the time.  Stay tuned for un-hiding the password in GUI
67 sessions as well as we downgrade progressively to previous Emacs
68 versions.
70 @item
71 The nuisance with Unicode characters popping up all over the place has
72 been amply dealt with.  We've removed @kbd{C-x 8} shorthands for
73 characters such as ‘, ’, “, ”, €, ≤, and many others; as a nice
74 benefit, this removes many useless entries at the beginning of the
75 @kbd{C-h b} output.  The @code{electric-quote-mode} has been deleted,
76 so there's only the one true quoting method now---using the
77 plain-@acronym{ASCII} quote characters.  And if that's not enough, the
78 doc strings and other messages show text quoted @t{`like this'}
79 as they were written, instead of arbitrarily replacing them
80 with Unicode ``curved quote'' characters @t{‘like this’}.  The
81 @code{text-quoting-style} variable becomes therefore unneeded and was
82 removed.  As result, text produced by Emacs can be sent to those
83 venerable teletypes again, yeah!
85 For the same reasons, the character classes @code{[:alpha:]} and
86 @code{[:alnum:]} again match any word-constituent character, and
87 @code{[:graph:]} and @code{[:print:]} match every multibyte character.
88 Confusing use of Unicode character properties is gone.
90 @item
91 I-search and query-replace no longer try to confuse you by using the
92 ``character-folding'' magic.  They will no longer find any characters
93 you didn't actually type, like find @kbd{ⓐ} when you actually typed
94 @kbd{a}.  Users who want to find some fancy character will have to
95 type it explicitly.
97 @item
98 The @file{desktop.el} package no longer records window and frame
99 configuration, and doesn't attempt to restore them.  You now have back
100 your freedom of re-arranging your windows and frames anew each time
101 you restore a session.  This made the new backward-incompatible format
102 of the @file{.emacs.desktop} file unnecessary, so the format was
103 reverted back to what it was before Emacs 25.  You can now again use
104 the desktop file with all the previous versions of Emacs.
106 @item
107 We have reworked the Prettify Symbols mode to support only the default
108 @code{prettify-symbols-compose-predicate}.  No need to consider
109 whether your major or minor mode needs its own prettifications; just
110 use what came with Emacs.  We also removed the
111 @code{prettify-symbols-unprettify-at-point} option: once prettified,
112 always prettified!  These changes make the Prettify Symbols mode quite
113 a lot simpler and easier to use.
115 @item
116 Support for nifty new features of xterm, such as access to the X
117 selection and the clipboard, the ``bracketed paste mode'', and other
118 advanced capabilities has been removed.  When you kill text in an
119 xterm Emacs session, that text is only saved in the Emacs kill ring,
120 without letting other applications have any way of accessing it.  An
121 xterm is just a text terminal, nothing more, nothing less.  There
122 should be no feature we support on xterm that isn't supported on bare
123 console terminals.  For the same reasons, support for mouse-tracking
124 on xterm was removed.  We will continue this line of simplifications
125 as we downgrade to previous versions of Emacs; stay tuned.
127 @item
128 Various features in @file{package.el} have been simplified.  The
129 ``external'' package status is no longer available.  A package present
130 on multiple archives will now be listed as many times as it is found:
131 we don't believe in concealing any information from the users.  This
132 and other similar simplifications made
133 @code{package-menu-toggle-hiding} unnecessary, since there's nothing
134 to unhide now.
136 @item
137 The @kbd{@key{UP}} and @kbd{@key{DOWN}} keys in the minibuffer have
138 been simplified to move by history items.  No need to wonder whether
139 you have moved to the next/previous item or to another line within the
140 same item.  Well-written commands shouldn't allow too long history
141 entries anyway; be sure to report any that do as bugs, so that we
142 could fix them in past versions of Emacs.
144 @item
145 The VC mode was simplified by removing the support for ``push''
146 commands.  Moving back in time means you will have less and less need
147 to use modern version control systems such as Git, Bazaar, and
148 Mercurial, so the necessity of using ``push'' commands will gradually
149 disappear.  We removed it from Emacs in advance, so that you won't
150 need to un-learn it when this command disappears, as it should.
152 @item
153 The support for full C/C++ expressions in macros has been removed from
154 Hide-Ifdef mode.  It now supports only the basic literal macros.  As
155 result, the user interface was simplified, and a number of useless
156 commands have been removed from Hide-Ifdef mode.  Further
157 simplifications were made possible by removing support for some fancy
158 new preprocessor directives, such as @code{#if defined}, @code{#elif},
159 etc.
161 @item
162 We have reverted to Etags for looking up definitions of functions,
163 variables, etc.  Commands such as @kbd{M-.} use tags tables, as they
164 always have.  This allowed the removal of the entire @file{xref.el}
165 package and its many metastases in the other Emacs packages and
166 commands, significantly simplifying those.  No more complexities with
167 the various ``backends'' that provide incoherent behavior that is hard
168 to explain and remember; either the symbol is in TAGS or it isn't.  No
169 more new user interfaces we never before saw in Emacs, either; if you
170 want the next definition for the symbol you typed, just invoke
171 @kbd{C-u M-.}---what could be simpler?  As a nice side effect, you get
172 to use your beloved @code{tags-loop-continue} and @code{pop-tag-mark}
173 commands and their memorable bindings.  The @file{package.el} package
174 has been removed for similar reasons.
176 @item
177 @code{(/ @var{n})} once again yields just @var{n}.  Emacs Lisp is not
178 Common Lisp, so compatibility with CL just complicates Emacs here.
180 @item
181 The functions @code{filepos-to-bufferpos} and
182 @code{bufferpos-to-filepos} have been removed.  Code that needs to
183 find a file position by a buffer position or vice versa should adapt
184 by reading the file with no conversions and counting bytes while
185 comparing text.  How hard can that be?
187 @item
188 We saw no need for the @code{make-process} primitive, so we removed
189 it.  The @code{start-process} primitive provides all the functionality
190 one needs, so adding more APIs just confuses users.
192 @item
193 The functions @code{bidi-find-overridden-directionality} and
194 @code{buffer-substring-with-bidi-context} were removed, in preparation
195 for removing the whole bidi support when downgrading to Emacs 23.
197 @item
198 Horizontal scroll bars are no longer supported.  Enlarge your windows
199 and frames instead, or use @code{truncate-lines} and the automatic
200 horizontal scrolling of text that Emacs had since time immemorial.
202 @item
203 Emacs is again counting the height of a frame's menu and its tool bar
204 in the frame's text height calculations.  This makes Emacs invocation
205 on different platforms and with different toolkits less predictable
206 when frame geometry parameters are given on the Emacs command line,
207 thus making Emacs more adventurous and less boring to use.
209 @item
210 The @command{etags} program no longer supports Ruby and Go languages.
211 You won't need that as you progressively travel back in time towards
212 the time before these languages were invented.  We removed support for
213 them in anticipation for that time.
215 @item
216 To keep up with decreasing computer memory capacity and disk space, many
217 other functions and files have been eliminated in Emacs 24.5.
218 @end itemize