@c -*- coding: utf-8 -*-
@c This is part of the Emacs manual.
@c Copyright (C) 2005--2023 Free Software Foundation, Inc.
@c See file emacs.texi for copying conditions.

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

@itemize @bullet
@item
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.

@item
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.

@item
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.

@item
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
files.

@item
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.

@item
The ``pure GTK'' (a.k.a.@: @acronym{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.

@item
The @option{--init-directory} command-line option was removed, as
initializing Emacs with init files of another user is a preposterous
idea anyway.

@item
In line with simplifying and eventually removing the
native-compilation option, we've deleted the
@code{inhibit-automatic-native-compilation} variable and its support
code.  This greatly simplifies how native compilation works and makes
your configure-time decision regarding native compilation in Emacs
clear-cut: either Emacs always compiles Lisp to native code before
using it, or it never does so; no more half measures and special
exceptions.  For similar reasons, @code{native-compile-prune-cache}
and @code{startup-redirect-eln-cache} features are no longer part of
Emacs.

@item
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.

@item
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.

@item
Commands to scale and rotate images are once again bound to single
keys like @kbd{+}, @kbd{-}, and @kbd{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.

@item
To simplify typing popular commands, we've rebound the @w{@kbd{C-x 8 . .}}
back to @w{@kbd{C-x 8 .}} and @w{@kbd{C-x 8 = =}} back to @w{@kbd{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.

@item
If you inadvertently kill the @file{*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 @file{*scratch*}
altogether, and this is the first step in that direction.

@item
Support for @code{rlogin} and @code{rsh} protocols are back, since we
expect them to become more and more important and popular as you move
back in time.

@item
In preparation for eventual removal of Unicode support from Emacs,
we've downgraded our Unicode support to version 14.0.

@item
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.

@item
On our permanent quest for simplifying Emacs, we've removed the
commands @code{duplicate-line} and @code{duplicate-dwim}; the old-time
friends @kbd{M-w} and @kbd{C-y} (typed one or more times) should
suffice.  The command @code{rename-visited-file} is gone for the same
reason.

@item
We've deleted many commands related to Emoji, which were bound in the
@kbd{C-x 8 e} prefix keymap.  We decided that the ability to type
Emoji sequences using @kbd{C-x 8 @key{RET}} is enough, and actually
serves our users better by requiring them to know the codepoints of
the sequences they want to type.

@item
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
anymore.

@item
@file{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
the @code{package-vc-install} command and other similar commands.

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