Bringing GNU Emacs to Native Code; Corallo; Nassi; Manca.

Libgccjit based compiler for Elisp.

> Though still a work in progress, our implementation is able to bootstrap a functional Emacs and compile all lexically scoped Elisp files, including the whole GNU Emacs Lisp Package Archive (ELPA). Native-compiled Elisp shows an increase of performance ranging from 2.3x up to 42x with respect to the equivalent byte-code, measured over a set of small benchmarks.

doi.org/10.5281/zenodo.3736363

If you have a checkout of Emacs handy, this is very easy to try now as it's in-tree. Install libgccjit (libgccjit-7-dev for me on Linux Mint, -8- doesn't work b/c gcc is 7.5.x), then

git co feature/nativecomp
git pull
./configure --with-nativecomp && make -j$(lscpu | awk '/^CPU\(s\):/ {print $1}'

Building it right now. An exciting wait!

Ouch, this choked my laptop hard, you might want to avoid the -j.. stuff to make, or use half your cores maybe.

Had to interrupt the build. I think I should take the advice of the authors and not compile everything in the build. Also limit the build to a couple cores and ~1Gb of memory because it pushed everything I'm using into swap and made my desktop unworkable.

I wish I hadn't left my RPi3 in Ankara...

Sign in to participate in the conversation
Mastodon @ SDF

"I appreciate SDF but it's a general-purpose server and the name doesn't make it obvious that it's about art." - Eugen Rochko