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.2 features.
Emacs no longer uses GMP, the GNU Multiple Precision library, and doesn’t support Lisp integers greater than
most-positive-fixnum
or smaller thanmost-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 haveXDG_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
andpackage-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 theafter-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 andlist-threads
were removed, andthread-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
, anddiff-buffers
.To keep up with decreasing computer memory capacity and disk space, many other functions and files have been eliminated in Emacs 26.3.