Emacs 29.2

Hey, Emacs 29.2 was released yesterday! Let's install it!

First, make sure we have all the dependencies.

❯ sudo apt build-dep emacs

Emacs 28+ includes native compilation. We definitely want that, so make sure we have libgccjit.

❯ gcc --version 
gcc (Debian 12.2.0-14) 12.2.0
Copyright (C) 2022 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

# pick the libgccjit that matches
❯ sudo apt install libgccjit-12-dev

Emacs 29+ includes tree-sitter support.

❯ sudo apt install libtree-sitter-dev

Now download it.

❯ cd ~/Downloads
❯ wget https://ftpmirror.gnu.org/emacs/emacs-29.2.tar.xz
❯ wget https://ftpmirror.gnu.org/emacs/emacs-29.2.tar.xz.sig
❯ wget https://ftp.gnu.org/gnu/gnu-keyring.gpg
❯ gpgv --keyring ./gnu-keyring.gpg emacs-29.2.tar.xz.sig emacs-29.2.tar.xz
gpgv: Signature made Thu 18 Jan 2024 05:55:57 AM EST
gpgv:                using RSA key 17E90D521672C04631B1183EE78DAE0F3115E06B
gpgv: Good signature from "Eli Zaretskii <eliz@gnu.org>"

Thanks, Eli! Now install it.

❯ cd ~/Emacs
❯ tar xf ~/Downloads/emacs-29.2.tar.xz
❯ cd emacs-29.2
❯ ./autogen.sh
...
❯ ./configure --with-native-compilation
...
❯ make -j$(nproc)
...
❯ src/emacs --version
GNU Emacs 29.2
Copyright (C) 2024 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.

# Try it out!
❯ src/emacs -Q

# If all is well, install it!
❯ sudo make install

❯ ls -l /usr/local/bin/emacs
lrwxrwxrwx 1 root root 10 Jan 19 12:54 /usr/local/bin/emacs -> emacs-29.2

Now running just emacs starts our spankin' new Emacs 29.2!

./emacs.png

If we run this

M-x describe-variable RET system-configuration-features RET

(describe-variable is probably C-h v) we see we have NATIVE_COMP and TREE_SITTER support. Keen!