Skip to content
Tech News
← Back to articles

What's new in Emacs 31.1

read original more articles
Why This Matters

Emacs 31.1 introduces numerous quality-of-life improvements, including enhanced tree-sitter support and the retirement of its quirky unexec dumper, marking a significant step in its evolution. While no major feature dominates this release, these incremental updates aim to improve user experience and performance, reflecting Emacs's ongoing commitment to refinement. The deprecation of the unexec dumper also signifies a shift away from legacy approaches, paving the way for future enhancements.

Key Takeaways

Emacs 31.1 adds a slew of quality-of-life features. It retires its quirky unexec dumper; there are general improvements to tree-sitter, including a much-wanted auto-installer for grammars; and much more.

Updated for Emacs 31

Emacs 31.1 is finally out! Unlike earlier Emacs versions, there is not a singular big-bang feature in this release. From what I could gather, the new garbage collector was possibly planned for inclusion in Emacs 31.1, but it has been postponed to Emacs 32. But more on that in a future post; it’s an interesting subject.

Some of the more notable features in Emacs 31.1 are small, quality of life fixes, and one deprecation that marks the end of an era.

As always, my book, Mastering Emacs is 31% off for the next week to celebrate the release also.

The unexec/pdumper controversy and subsequent deprecation

Emacs is… not a normal application. When you compile and link it, you get temacs which is the heart of Emacs but without most of the libraries that ship with it. It’s a bare-bones Emacs with little more than the C core and the interpreter; it’s not really that useful.

To get the Emacs binary you know and love, you have to run temacs and tell it to load the standard library into memory. That is slow. There is a lot of elisp and housekeeping that has to happen. It can take several minutes and a fair bit of CPU and ram to start Emacs this way; it’s untenable.

This has been a problem that has dogged Emacs for decades. It’s not a huge deal today, but back in the day it could break the back on home computers or even shared multi-user environments if a brace of enthusiastic Emacs users all decide to launch Emacs at the same time in the morning.

The solution to this problem? Load it all in once and then literally dump the text/data/bss/etc. segments of Emacs’s memory to a new binary. Do that, and you don’t have to bootstrap all that Emacs lisp state again and again. It feels like a wrestling move almost. You corral a top-heavy Emacs into position and apply The Attitude Adjustment, body slamming Emacs into a new binary, and everything’s all set up and ready to go.

... continue reading