Appendix E Emacs 26 Antinews ¶
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 Emacs 27.1 features.
- Emacs no longer uses GMP, the GNU Multiple Precision
library, and doesn’t support Lisp integers greater than
most-positive-fixnum or smaller than
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.
- 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.
- 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.
- 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.
- We dropped the support for XDG-style configuration
directories and the
XDG_CONFIG_HOME environment variable.
There’s once again only one place where Emacs looks for its init
files: the ~/.emacs.d directory, with the ~/.emacs file
as fallback. We think this will go a long way towards preventing
confusion among users who for some reason have 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 ~/.emacs.d place and leaving only
~/.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
package-user-dir and package-load-list just in time for
the packages to load.
emacsclient no longer supports XDG-style directory
trees, either.
- 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).
- The
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 after-make-frame-functions to use.
- The
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!
- 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.
- We removed the features that made visiting large files easier. Thus,
Emacs will no longer suggest visiting a large file literally, nor
offer the
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.
- 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.
- 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.
- The
main-thread variable and list-threads were removed,
and 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.
- 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.
- Displaying line numbers for a buffer is only possibly using add-on
features, such as
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, display-line-numbers-mode was removed.
- On our permanent quest for simplifying Emacs, we’ve removed the
support for changing the font size by turning the mouse wheel.
- Several commands, deemed to be unnecessary complications, have been
removed. Examples include
make-empty-file,
font-lock-refontify, xref-find-definitions-at-mouse,
make-frame-on-monitor, and diff-buffers.
- To keep up with decreasing computer memory capacity and disk space, many
other functions and files have been eliminated in Emacs 26.3.