[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
|
|
Subscribe / Log in / New account

Looking ahead to Emacs 30

By Jake Edge
January 30, 2024

EmacsConf 2023 was, like its recent predecessors, an online conference with lots of talks about various aspects of the Emacs editor—though, of course, it is way more than just an editor. Last year's edition was held in early December. One of the talks that looked interesting was on Emacs development, which was given live by John Wiegley. In it, he briefly described some of the biggest features coming in Emacs 30, which is the next major version coming for the tool.

Talk

Wiegley's talk is something of a yearly tradition at EmacsConf, apparently. He noted that he is not an Emacs maintainer, so he gathered the information for the presentation by talking for an hour with Eli Zaretskii, who is a longtime maintainer. Zaretskii told him that Emacs 29, released in July 2023, had lots of new features; some of those were "quite radical", Wiegley said, but it has been successful and well-received. The Emacs 29.2 release was imminent at the time of the talk; it came out in mid-January. The plan is to make a new release branch for Emacs 30 sometime fairly shortly after that point, he said.

Emacs 30 looks like it will "be a little less interesting that Emacs 29 was" because there will likely be fewer big changes going in, but that does not mean there is nothing planned. To start with, it will have Android support, which is a feature that LWN tried out last year. "If you have ever wanted to have native Emacs on a tablet", which is something Wiegley has "always wanted", it will be available in the new release. There is also much better touchscreen support coming in Emacs 30 for both tablets and laptops.

Emacs "Grand Unified Debugger" (GUD) mode is getting support for the LLDB debugger that is used with the LLVM compiler suite. It will be particularly useful on macOS and is another feature he is personally looking forward to. Emacs perl-mode is being deprecated in favor of C Perl mode because the project does not want to support two Perl major modes with its "meager resources".

One of the headline features for Emacs 29 was optional support for the Tree-sitter parsing library that brings better and faster syntax recognition and highlighting, code indentation, and so on. Tree-sitter will generate parsers for languages that are specified using JavaScript to describe the grammar; the output is a concrete syntax tree that can be used by other tools. Emacs 29 shipped with more than 20 new major modes for various programming (and other) languages, which can be used when Emacs is built with Tree-sitter. Many different programming languages (C, C++, Rust, Python, Go, Java, Ruby, ...), configuration languages (YAML, TOML, JSON), and other language types (Bash, CSS, CMake, Dockerfile, ...) got new major modes (e.g. python-ts-mode) as part of the new feature.

Tree-sitter uses the grammar libraries, which must be built from the JavaScript grammar and be present on the local system, in order to parse the structure of the language. The Tree-sitter modes avoid using Emacs Lisp and regular expressions for syntax recognition as is done now, Wiegley said. Over time, more and more languages will receive Tree-sitter-based major modes. For Emacs 30, three new Tree-sitter modes have been added: Lua, Elixir, and HTML.

The last new feature that he mentioned is better byte-compiler warnings for "many more questionable constructs". These include things like empty macro bodies and missing expressions in places where they are expected; "just silly stuff that might litter the code". The new warnings will "help you clean up the code and get rid of those potential sites of error". There is a long list of new warnings in the NEWS file for Emacs 30.

Wiegley also noted that Zaretskii had asked him to mention that Stefan Kangas has been added as an Emacs maintainer. Kangas also gave a talk at EmacsConf this year.

As part of a Q&A session after the talk, Wiegley discussed his favorite recent features, with native compilation being near the top of the list. He uses a lot of different modes within his Emacs buffers, including Org Mode, Gnus, and Eshell so native compilation has made a big difference. It has "brought the user experience much closer to a modern app than some of the lagging and slowness that I might have experienced in the past". He also touched on topics like using machine-learning tools such as ChatGPT (including for writing Emacs Lisp code), support for Emacs on macOS (he is a longtime user and has not encountered any major problems), Rosetta Code, and more.

Other features

Looking at the NEWS file shows lots of other bits that are coming in Emacs 30. For example, native compilation will now build automatically with Emacs if libgccjit is available on the build system. On Linux systems, Emacs will now be the default application for handling org-protocol URIs; the emacsclient.desktop file has been changed to register as the handler of the protocol. X selection requests (for selecting and yanking, also known as copying and pasting) are "now handled much faster and asynchronously", so they should work better over slow networks.

There are entries for new and changed features for many different parts of Emacs, including Dired, Grep, Network Security Manager, Version Control, Compilation Mode, and more. The NEWS file is nearly 2,000 lines of text, in an Org-format document naturally, which should give some sense for the amount of changes; another data point of interest is that the file for Emacs 29, which Zaretskii and Wiegley said was a much larger release, is more than double that length.

One change that was made was partially unmade after a lengthy debate about changing the existing behavior of the jump-to-register and point-to-register commands. A change was proposed in October 2023 for the behavior of the register-name prompt. At the time, the participants in the bug thread settled on making the new behavior the default, but once it got merged into the main branch, complaints arose. As shown in the NEWS file, the complaints were addressed by making the default be to preserve the existing behavior, while allowing others to customize the prompt behavior.

So the Emacs 30 release will be a hodge-podge of features, bug fixes, user options, and more throughout the huge footprint of the tool. The release cadence seems to have picked up over the last few major releases, which can be seen on the release history page, so we may well see Emacs 30 before the end of the year.

Another thing that seems likely in that time span is another EmacsConf, which seem to land near the end of each calendar year. The report from the 2023 edition describes a lively conference with lots of interesting talks, all of which are available for viewing in a variety of formats. The report also details the free-software tools that were used to organize and host the virtual conference as well as the process improvements tried and the finances for the conference, all of which will be of interest to other conference organizers.

As noted five months ago, I am a relative newcomer to really trying to get the most out of Emacs, though I have used it for a long time. Of course, that simply means that there are lots of opportunities to learn new things—too many in truth. The EmacsConf talks look like they provide even more of such opportunities, should time allow. There certainly does not seem to be much of a bottom to this particular rabbit hole.


Index entries for this article
ConferenceEmacsConf/2023


to post comments

Hah! A "bottom?"

Posted Jan 30, 2024 22:15 UTC (Tue) by ejr (subscriber, #51652) [Link] (4 responses)

There is nothing wrong with your [computer]. Do not attempt to adjust the [operating system]. We are controlling transmission. If we wish to make it [complicated], we will bring up [Common Lisp]. If we wish to make it softer, we will tune it to [some settings no one remembers]. We will control the horizontal (C-a, C-e). We will control the vertical (C-v, M-v).

Emacs. Just emacs.

Hah! A "bottom?"

Posted Jan 31, 2024 4:49 UTC (Wed) by rsidd (subscriber, #2582) [Link] (1 responses)

I don't see the point of this comment. Also, emacs doesn't use common lisp. (It of course has support for editing common lisp, like for C and every other language.)

Hah! A "bottom?"

Posted Jan 31, 2024 9:13 UTC (Wed) by dottedmag (subscriber, #18590) [Link]

Hah! A "bottom?"

Posted Feb 3, 2024 10:01 UTC (Sat) by bpearlmutter (subscriber, #14693) [Link] (1 responses)

... We are men of groans and howls,
Mystic men who eat boiled owls,
Tell us what you wish, oh King,
Our magic can do anything.

Hah! A "bottom?"

Posted Feb 6, 2024 18:11 UTC (Tue) by ejr (subscriber, #51652) [Link]

"O, that way madness lies; let me shun that[...]"

Looking ahead to Emacs 30

Posted Jan 31, 2024 5:40 UTC (Wed) by alison (subscriber, #63752) [Link] (1 responses)

I was especially pleased by LWN's earlier note regarding v6.8-rc1 to read that the kernel now has a .editorconfig file for emacs. I had not heard of editorconfig before reading the article. I'm delighted to see that bpftrace, systemd and util-linux all have .editorconfig files as well. Thanks as always for the great coverage!

Looking ahead to Emacs 30

Posted Jan 31, 2024 14:24 UTC (Wed) by daenzer (subscriber, #7050) [Link]

The kernel tree getting a .editorconfig file is indeed great.

Note that EditorConfig isn't Emacs specific, in fact Emacs doesn't support EditorConfig out of the box, it's a plugin: https://editorconfig.org/#download

Looking ahead to Emacs 30

Posted Feb 8, 2024 6:42 UTC (Thu) by callegar (guest, #16148) [Link] (1 responses)

> There is also much better touchscreen support coming in Emacs 30 for both tablets and laptops

Wonder how this will be. Emacs has always been requiring a CTRL and an ESC key to be used nicely. Yet, getting a virtual keyboard with these keys seems to be an almost impossible task. The only thing that I know getting it is `termux` on Android, that adds a bar above the usual Android virtual keyboard with the important keys that are missing from the main keyboard. But I still have to find anything providing CTRL, TAB, ALT, ESC elsewhere. As an example, the plasma desktop supports the `maliit`, that unfortunately is almost completely useless for doing anything practical because it does not have a terminal layout (so no use for it with konsole, emacs, nor any app requiring keyboard accelerators).

Looking ahead to Emacs 30

Posted Feb 8, 2024 14:22 UTC (Thu) by cidra (guest, #169548) [Link]

Emacs 30 will include `modifier-bar-mode` that adds a row on the toolbar with all the modifiers. That's how I use Emacs on Android (I've also bound Volume-Down and Volume-Up to CTRL and Meta, for convenience)

Looking ahead to Emacs 30

Posted Feb 8, 2024 6:48 UTC (Thu) by callegar (guest, #16148) [Link]

Something that I really would like to see is the integration of visual line mode with treesitter for some "languages" that may take advantage of very long lines (or maybe of adaptive wrap prefix). I think of `LaTeX`, where typing

\section{This is a very very long section header that cannot fit in a single line}

produces a visually pleasant

\section{This is a very very long section header
␣␣that cannot fit in a single line}

using hard wrap and auto fill, but

\section{This is a very very long section header
that cannot fit in a single line}

with visual line mode even with the adaptive wrap prefix.


Copyright © 2024, Eklektix, Inc.
This article may be redistributed under the terms of the Creative Commons CC BY-SA 4.0 license
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds