Emacs Should Be Emacs Lisp

Back in February at FOSDEM 20, Tom Tromey gave a very interesting talk of how he believes the core of Emacs should evolve. He considers most of the current proposals such as Rmacs, Guile Emacs, and rewriting the core in common Lisp but ultimately rejects them. Emacs, he says, should be written in Elisp, a language that Tromey believes is much better than popularly believed.

He starts by discussing why he rejected the other solutions. The basic problem with them is that they either don’t solve the problems with the C-based core or introduce what he calls impedance mismatches that will introduce bugs and make maintenance harder. Then he notes that Common Lisp implementations are written in Common Lisp and that there’s no reason that Elisp couldn’t be written in Elisp.

Such a step would make solving some of Emacs’ other problems easier to fix. Threading and garbage collection would become much simpler than they are now. Also, packages would be able to affect the core in the same way they affect the rest of Emacs now.

Tromey’s preferred solution is to compile the Elisp into native machine code. He considers a couple of ways of doing that: using a JIT compiler and, my favorite, gccemacs. The benefits of such a system is that you get native code speed while still having the development advantages that he discussed earlier.

It’s a great talk about a future for Emacs that I hope comes to pass: An Emacs that’s faster and easier to hack. What’s not to like? The video is 19 minutes long so it will take some planning but should be easy to fit in.

This entry was posted in General and tagged . Bookmark the permalink.