Use a more responsive Emacs by testing the IGC development branch

(Date: 24 September 2025)

Summary

We explain how to test a new feature of Emacs, in development, which makes Emacs more responsive.

This is a new Garbage Collector which you can try as part of the IGC branch, and instructions are provided.

Introduction

Emacs depends on effective Garbage Collection (GC). Garbage collection is an important part of the effectiveness of Lisp and Emacs.

There is a development branch of Emacs that uses a more advanced garbage collector, called Incremental Garbage Collector (IGC).

The stated goal of IGC is to reduce garbage collection pauses and make Emacs more responsive.

You are encouraged to test it and instructions are provided.

Using the branch

The recipe for trying the branch is as follows

$ git clone https://git.savannah.gnu.org/git/emacs.git
$ git checkout feature/igc
$ ./autogen.sh
$ ./configure --with-mps
$ make
$ src/emacs 

Background

The Emacs incremental garbage collector (IGC), relies on the C library by Ravenbrook Limited, the Memory Pool System (MPS).

The main authors of IGC are Gerd Moellman (previous Emacs maintainer in the past), Pip Cet, and Helmut Heller; co-maintainers Eli Zaretzkii and Stefan Kangas also worked on the branch. My own modest contribution consists of a dozen patches. See the repo git log for full attribution.

Helmut has recently volunteered to maintain the feature/igc branch, and with the inclusion of the MPS within the Emacs source tree, it is straightforward to build.

Conclusion

Garbage collection is an important part of the effectiveness of Lisp and Emacs.

You can test the ICG branch for your workflow and notice improvements. Report bugs in the usual way with M-x report-emacs-bug.