Appendix E Emacs 28 Antinews
For those users who live backwards in time, here is information
about downgrading to Emacs version 28.2. We hope you will enjoy the
greater simplicity that results from the absence of many Emacs 29.1 features.
- Like its newer releases, Emacs 28 can still be built with support of
native compilation of Lisp programs. However, in preparation for
removal of this feature in some previous version, we’ve deleted the
capability of ahead-of-time native compilation of all the Lisp files
that come with Emacs. This makes the Emacs build process much faster.
- Emacs can no longer be built with the tree-sitter library, so you no
longer will need to look for and install the grammar libraries for
the languages in which you want to program. Similarly, all the modes
that are based on the tree-sitter library were deleted, leaving you
with just one major mode for every supported programming language: no
more need to decide whether to turn the tree-sitter supported modes on
and try using their parser-based fontification, indentation, and other
features. For some languages and file types, this means no major mode
at all, leaving you with the venerable Fundamental mode as the
natural, high-performance choice. For example, Go, Rust, and CMake
files no longer have any major modes for editing their files —
another milestone towards a simpler, leaner Emacs.
- Built-in support for accessing SQLite databases was removed. You can
now again edit SQLite files as simple binary files, which Emacs is
quite capable to support, as it always did.
- As a gesture to users of the Haiku operating system, we’ve dropped the
code which allowed Emacs to be built on that OS. We expect Haiku
users to enjoy the much simpler editors they have for editing their
- Support for XInput2 input events on X is gone. We think the
traditional X input events are more than enough, certainly so as you
move back in time, where XInput2 will eventually be removed from X as
well, once the maintainers of the X Windows system realize the utter
futility of supporting fancy input mechanisms.
- The “pure GTK” (a.k.a. PGTK) configuration of Emacs is
no longer supported. This is in anticipation of the complete removal
of the GTK toolkit support from Emacs, and in accordance with our
expectation that GTK will cease to exist as you move back in time. We
plan on removing support for all the other toolkits as well, leaving
only the pure X build with our own widgets as the single supported GUI
configuration on X.
- The --init-directory command-line option was removed, as
initializing Emacs with init files of another user is a preposterous
- In line with simplifying and eventually removing the
native-compilation option, we’ve deleted the
--with-native-compilation=aot configure-time option. This
greatly simplifies how native compilation works and makes your
configure-time decision regarding native compilation in Emacs
clear-cut: either Emacs compiles non-preloaded Lisp packages to native
code only before using it, or it never uses native compilation at all;
no more half measures and special exceptions. For similar reasons,
startup-redirect-eln-cache features are no longer part of
- We’ve deleted the special code and features which allowed Emacs to
present decent performance and responsiveness when editing files with
very long lines. Such files become more and more rare as time goes
back, and so having all this tricky code in Emacs for their benefit
was deemed an unnecessary complication.
- Emacs dropped support for Eglot and the LSP servers. We decided that
the built-in ways of analyzing source code are more than enough as you
move back in time.
- Commands to scale and rotate images are once again bound to single
keys like +, -, and r, which makes them much easier
to type. As for the risk of typing these by mistake, we don’t believe
Emacs users make typing mistakes, especially as they move back in
time and become younger and younger.
- To simplify typing popular commands, we’ve rebound the C-x 8 . .
back to C-x 8 . and C-x 8 = = back to C-x 8 =.
There’s no need for fancier, longer key sequences, as moving back in
time means we will have fewer and fewer commands to bind to them in
the first place.
- If you inadvertently kill the *scratch* buffer, Emacs will
recreate it in Fundamental mode, not in Lisp Interaction mode. You
get to turn on the mode you like yourself. Our long-term plans for
past Emacs releases is to remove the recreation of *scratch*
altogether, and this is the first step in that direction.
- Support for
rsh protocols are back, since we
expect them to become more and more important and popular as you move
back in time.
- In preparation for eventual removal of Unicode support from Emacs,
we’ve downgraded our Unicode support to version 14.0.
- You can no longer change the size of the font globally. Since Emacs
will at some past date remove all support for variable-size fonts,
having such commands is a luxury we are better without.
- On our permanent quest for simplifying Emacs, we’ve removed the
duplicate-dwim; the old-time
friends M-w and C-y (typed one or more times) should
suffice. The command
rename-visited-file is gone for the same
- We’ve deleted many commands related to Emoji, which were bound in the
C-x 8 e prefix keymap. We decided that the ability to type
Emoji sequences using C-x 8 RET is enough, and actually
serves our users better by requiring them to know the codepoints of
the sequences they want to type.
- We dropped support for many scripts and input methods, especially old
scripts that no one uses anyway. For similar reasons, Greek and
Ukrainian translations of the Emacs tutorial are not available
- package.el can no longer fetch source code of packages from
their VCS repositories. We think command-line tools like Git should
be enough to allow you to clone their repositories. So we deleted
package-vc-install command and other similar commands.
- To keep up with decreasing computer memory capacity and disk space, many
other functions and files have been eliminated in Emacs 28.2.