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

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

@itemize @bullet
@item
The venerable @code{unexec} dumper is back!  It is still deprecated, but
we plan on un-deprecating it in Emacs 26, in preparation for the
@file{glibc} developers' reinstating the various hooks which Emacs needs
to reliably be built using @code{unexec}.

@item
@command{ctags} is once again a separate program.  We decided that the
need to remember the @option{--ctags} option to @command{etags} is not
friendly enough to our users, and switched back to a time-proven Unix
philosophy of ``programs that do one thing and do it well''.

@item
We dropped the annoying feature of scraping at startup files and
directories in @file{user-lisp} subdirectory of your Emacs configuration
directory.  It slows down startup, especially as computers and hard
disks become slower and slower as you move back in time.

@item
As part of our continuous struggle to make Emacs simpler, we've removed
the @code{margin} face, so text shown in display margins will now use
the same @code{default} face as the rest of buffer text.  Our long-term
goal is to remove faces completely, thus leaving the Emacs with just two
colors, so we gradually remove more and more faces as we go.

@item
Yet another complication which we got rid of is child frames on
text-only terminals.  They are still supported on GUI frames, but one
improvement at a time.

@item
Fancy completion bells and whistles, such as eager display of completion
candidates, updating the @file{*Completions*} buffer as you type,
control of point motion in @file{*Completions*} via
@code{completions-format}, etc.@: will no longer confuse you because we
deleted all of that stuff.  No one should need completion features
beyond what typing @key{TAB} produces!

@item
Commands that modify the window layout of a frame are gone.  You can no
longer be seduced to transpose or rotate windows on their frame.  Once
again, only Emacs decides how to arrange and re-arrange windows.

For the same reason, we nuked @code{split-frame} and @code{merge-frames}
commands.  @kbd{C-x 2} and @kbd{C-x 0} should be enough for everyone!

@item
We removed quite a few complications due to Unicode Standard version
17.0 and related features.  This includes quite a few characters which
will never be needed in the past, the language environments for Syriac
and Tifinagh, and several input methods which no one should miss, and
which will fall in disuse soon enough anyway.  As memory becomes more
and more at premium, we must make Emacs leaner and meaner to follow
suit.

@item
User option @code{treesit-enabled-modes} is no longer part of Emacs.
Customize @code{major-mode-remap-alist} to activate Tree-sitter based
modes instead of the traditional modes; this is much simpler and easier
to remember and manage.

@item
Sendmail and Rmail no longer try to detect suspicious email addresses
and warn you about them.  As you move back in time, people become nicer
and nicer, and all those malevolent souls who constantly look for
opportunities to cause you damage become more and more vague memories
from the distant future.  Eventually, we will once again have just the
small Arpanet where everyone were your friends, and who needs these
paranoid features then?

@item
You can no longer edit Grep results and have the edits reflected in the
original files.  We've removed that because we believe one should only
edit the original files directly, with the full benefit of the
surrounding context.

@item
Commands for handling VCS repositories with multiple working trees were
deleted from VC.  We concluded that multiple working tree in a single
project are a clear sign of design bloat, and we refuse to admit such
bloatware into Emacs.  So this is gone---good riddance!

Numerous other VC features, which we considered too fancy and not
useful enough, were removed for the same reason.

@item
To review an Emacs Lisp package before installing it from ELPA, you will
now need to actually read its code and documentation, because the user
option @code{package-review-policy}, and the associated functionalities
to show the diffs from the previous version, are gone.  ``Use the
source, Luke!''

We also deleted @code{package-autosuggest} and
@code{package-autosuggest-mode}, since we want to trust our users to
know better.

@item
In preparation for removal of the @code{customize-dirlocals} command in
the previous Emacs version, we nuked @code{Custom-dirlocals-mode}.

@item
We have removed several packages and modes that we consider unnecessary
for the past of Emacs.  This includes @code{icalendar-mode} and
@code{lua-mode} modes, and the @code{timeout} and
@code{system-taskbar-mode} libraries.  the @code{system-sleep} package
is gone for the same reasons.

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