This is the announcement thread for
emacs-pgtk-native-comp, where you can find bleeding-edge Emacs builds combining the work-in-progress
The following builds are produced from a Guix package, but will run on any linux system using a stand-alone pack. Alternatively, you can compile
emacs-pgtk-native-comp on ArchLinux-based systems using the AUR package, or install it from the Nix overlay.
using the stand-alone pack
emacs-...-guix-pack.tar.xz file contains a self-contained emacs build which can run on any linux system.
To use it, download and extract the archive somewhere, then launch
bin/emacs directly or add the
bin/ directory to your
mkdir emacs-pgtk-native-comp cd emacs-pgtk-native-comp tar xf /path/to/emacs-...-guix-pack.tar.xz export PATH="$PWD/bin:$PATH" which emacs # .../emacs-pgtk-native-comp/bin/emacs
using the Guix package manager
emacs-...-guix-archive.nar.xz file contains a complete export of the Guix build.
To import it for the first time, you’ll need to accept the signing key:
cat /path/to/signing-key.pub | guix archive --authorize
Then you can import the build archive and install it using the package hash:
xzcat /path/to/emacs-...-guix-archive.nar.xz | guix archive --import guix install `cat /path/to/package-hash.txt` which emacs # ~/.guix-profile/bin/emacs
NOTE: Run with
FONTCONFIG_PATH=/etc/fonts for Guix Emacs to see your system fonts.
pgtk branch (Pure GTK) adds a new rendering engine to Emacs, replacing the legacy X11 implementation with one using only GTK APIs. This brings native Wayland support to Emacs, and also gives improved rendering performance on X11.
See masm11’s pgtk branch for more information.
native-comp branch (aka. gccemacs) adds functionality for compiling Elisp to native code. The compiler runs a number of optimization passes to generate code which performs noticeably faster than interpreted or byte-compiled Elisp.
The native compilation branch has been merged to
master and will be included in Emacs 28, but
pgtk is still under development/review. The objective is to have it stabilized and merged for the Emacs 28 release, but that is not guaranteed.