summaryrefslogtreecommitdiff
path: root/doc/emacs/anti.texi
blob: 49da473fa510b217e46e71d15940df5605699cfa (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
@c -*- coding: utf-8 -*-
@c This is part of the Emacs manual.
@c Copyright (C) 2005--2021 Free Software Foundation, Inc.
@c See file emacs.texi for copying conditions.

@node Antinews
@appendix Emacs 26 Antinews
@c Update the emacs.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 26.3.  We hope you will enjoy the
greater simplicity that results from the absence of many @w{Emacs
@value{EMACSVER}} features.

@itemize @bullet
@item
Emacs no longer uses @acronym{GMP}, the GNU Multiple Precision
library, and doesn't support Lisp integers greater than
@code{most-positive-fixnum} or smaller than
@code{most-negative-fixnum}.  We now have only one kind of a Lisp
integer.  This simplifies many Lisp programs that use integers, and
makes integer calculations always fast.  If you want larger values,
use Lisp floats, as Emacs has done since day one.

@item
Emacs no longer supports HarfBuzz as the engine for shaping complex
text.  As you move back in time, we will gradually shed off all traces
of support for complex text shaping, and this is one step in that
direction.

@item
We have removed support for building with the Jansson library, and
consequently the native support for JSON parsing is gone.  The
importance of JSON decreases as we go back in time, so for now using
the Lisp code for handling it should be good enough; in one of the
past Emacs versions, we intend to remove even that, as useless bloat.

The library for supporting JSONRPC applications was removed for the
same reason.

@item
The ``portable dumper'' feature is gone.  We are once again using the
field-proven ``unexec'' way of dumping Emacs.  With that, the hope for
being able to re-dump your customized Emacs session is also gone: why
would anyone want to record their random customization experiments on
disk, and restore them the next time they start Emacs?  And true
Emacsers don't restart their Emacs sessions anyway.

@item
We dropped the support for @acronym{XDG}-style configuration
directories and the @env{XDG_CONFIG_HOME} environment variable.
There's once again only one place where Emacs looks for its init
files: the @file{~/.emacs.d} directory, with the @file{~/.emacs} file
as fallback.  We think this will go a long way towards preventing
confusion among users who for some reason have @env{XDG_CONFIG_HOME}
set, thus risking to have their init files randomly spread between two
places.  In one of the past Emacs versions, we intend to further
simplify this, removing the @file{~/.emacs.d} place and leaving only
@file{~/.emacs}; stay tuned.

For similar reasons, we've removed the ``early init'' file.  You can
now again use all the tricks you want to initialize variables like
@code{package-user-dir} and @code{package-load-list} just in time for
the packages to load.

@command{emacsclient} no longer supports @acronym{XDG}-style directory
trees, either.

@item
TLS connections are back to their lenient security settings.  We
decided that too tight security settings are an annoyance for users,
and make little sense considering the world-wide tendency to have
fewer and fewer network security problems as we move back in time
(those issues will be completely gone when networks disappear in some
distant past).

@item
The @code{server-after-make-frame-hook} hook was deleted, in
preparation for removing the entire daemon business in some past Emacs
version.  You will be glad to learn that setting up the GUI
customizations of your sessions is now once again as easy as it ever
was, with just the @code{after-make-frame-functions} to use.

@item
The @code{flex} completion style was removed.  We feel that it
unnecessarily complicates the Emacs user experience, and therefore
will continue to remove other tricky completion styles, until in some
past Emacs version we get to a single original style Emacs pioneered
decades ago.  Long live simplicity; down with complications!

@item
The optional display of the fill-column indicator is no longer
supported.  With the display sizes becoming smaller and smaller as you
move back in time, we feel that the display itself will always show
you where to fill or wrap your text, and do this much more easily and
reliably than any such display indicator.

@item
We removed the features that made visiting large files easier.  Thus,
Emacs will no longer suggest visiting a large file literally, nor
offer the @code{so-long} mode to deal with overly-long lines.  We
decided that this simplification is worthwhile, given that the general
tendency of having very large files is becoming a rarity as we move
back in time.

@item
We have removed the feature that displayed echo-area messages without
hiding content of the active minibuffer.  This should prevent user
confusion from having two unrelated pieces of text staring at them,
with no clear separation between them.  Users with good memories (and
Emacs users are all expected to be of that kind) will have no trouble
keeping the minibuffer text in their minds, and typing the responses
without actually seeing the prompts.

@item
Horizontal scrolling using the mouse or touchpad has been removed.  In
the past, wide monitors will become less popular, so horizontal
scrolling will no longer be needed.  Removal of the mouse support for
horizontal scrolling is the first step towards its complete removal in
prior Emacs versions.

@item
The @code{main-thread} variable and @code{list-threads} were removed,
and @code{thread-join} no longer returns the result of the finished
thread.  We intend to remove the support for Lisp threads in some past
Emacs version, so we continue removing the associated complexities and
features as we go back in time.

@item
Tab bar and window tab-lines were removed.  This should make the Emacs
display simpler and less cluttered, and help those users who disable
menu bar and tool bar in their GUI sessions.  The fashion to provide
tabs in every GUI application out there is gaining less and less
popularity as we move back in time, and will completely disappear at
some past point; removing the tabs from Emacs is the step in that
direction.

@item
Displaying line numbers for a buffer is only possibly using add-on
features, such as @code{linum-mode}, which can only display the
numbers in the display margins.  Line-number display using these
features is also slow, as we firmly believe such a feature is
un-Emacsy and should not have been included in Emacs to begin with.
Consequently, @code{display-line-numbers-mode} was removed.

@item
On our permanent quest for simplifying Emacs, we've removed the
support for changing the font size by turning the mouse wheel.

@item
Several commands, deemed to be unnecessary complications, have been
removed.  Examples include @code{make-empty-file},
@code{font-lock-refontify}, @code{xref-find-definitions-at-mouse},
@code{make-frame-on-monitor}, and @code{diff-buffers}.

@item
To keep up with decreasing computer memory capacity and disk space, many
other functions and files have been eliminated in Emacs 26.3.
@end itemize