Brussels / 2 & 3 February 2019


Building a whole distro on top of a minimalistic language

The story of GNU Guix

GNU Guix is a package manager and GNU/Linux distribution that builds on Scheme, a Lisp dialect known for its emphasis on minimalism. This talk will be an exploration of Guix’ use of Scheme’s extensibility to build high-level abstractions and user interfaces in a broad sense.

GNU Guix is a package manager, GNU/Linux distribution, and more generally a “software deployment toolbox” featuring key features such as transactional upgrades and rollbacks, declarative operating system configuration, and more. Guix has become a relatively large piece of software but a key aspect of it is that Guix builds on Scheme, a Lisp dialect known for its emphasis on minimalism. From day one, use of Scheme as its single implementation language has shaped Guix.

This talk will be about what it means for Guix to be implemented as a set of libraries on top of this tiny core that Scheme is. Together we will have a guided tour through Guix’ interfaces, be they “programming” or “user” interfaces; we’ll look at its embedded domain-specific languages (EDSLs) that make it just as clear as your favorite YAML/JSON/XML thing while retaining the full power (and joy!) of a general-purpose programming language. We’ll discuss the features of Scheme that make it possible. I will share my thoughts on how such a design can empower users and how well this has worked in practice.


Ludovic Courtès