Emacs 29 will be released later this year, but it's already got a couple of neat additions. Let's try it!
I already ran these when I compiled Emacs 28.
sudo apt build-dep emacs gcc --version # mine is... 12 sudo apt install libgccjit-12-dev
There's a branch for Emacs 29 in the git repository. We can check out just that branch.
git clone --single-branch --branch=emacs-29 http://git.savannah.gnu.org/r/emacs.git emacs-29
Then we build it just as with Emacs 28.
cd emacs-29 ./autogen.sh ./configure --with-native-compilation make -j16 make -j16 check src/emacs -Q # try it out! sudo make install
Looks like it worked!
❯ emacs --version GNU Emacs 29.0.60 Development version 5a6dfab1e4d5 on emacs-29 branch; build date 2023-02-06. Copyright (C) 2023 Free Software Foundation, Inc. GNU Emacs comes with ABSOLUTELY NO WARRANTY. You may redistribute copies of GNU Emacs under the terms of the GNU General Public License. For more information about these matters, see the file named COPYING.
Again, let's double check that we have native compilation that we asked for.
M-x describe-variable RET system-configuration-features RET
Emacs 29 has transparency. I've been adjusting the
alpha frame parameter for some time. That makes the whole window transparent. Now there is an
alpha-background frame parameter, which is more what you expect.
;; For current frame (set-frame-parameter nil 'alpha-background 90) ;; For all new frames henceforth (add-to-list 'default-frame-alist '(alpha-background . 90))
Emacs 29 includes eglot! I've been accessing language servers with
lsp-mode, which I configure for each language. Eglot will try to guess the language server with no configuration at all. It's amazing!
You can run
M-x eglot RET
from just about anywhere and it will look for an appropriate language server. Of course, you may want to configure languages you use a lot. If nothing else, you can enable it by default. For example, this is my
(require 'eglot) (add-hook 'go-mode-hook 'eglot-ensure)
When I open a
.go file, it essentially runs
M-x eglot RET for me.
Now I can start using the language server immediately.
Emacs 29 is going to be fantastic!