GNU Mes brings a Reduced Binary Seed bootstrap to GuixSD and potentially to any other interested GNU/Linux distribution, and aims to help create a full source bootstrap as part of the bootstrappable builds effort.
It consists of a mutual self-hosting Scheme interpreter written in ~5,000 LOC of simple C and a Nyacc-based C compiler written in Scheme. This mes.c is being simplified to be transpiled by M2-Planet.
The Scheme interpreter (mes.c) has a Garbage Collector, a library of loadable Scheme modules– notably Dominique Boucher's LALR, Pre-R6RS portable syntax-case with R7RS ellipsis, Matt Wette's Nyacc –and test suite just barely enough to support a simple REPL and simple C-compiler: MesCC.
Mes+MesCC can compile an only lightly patched TinyCC that is self-hosting. Using this tcc and the Mes C library we now have a Reduced Binary Seed bootstrap for the gnutools triplet: glibc-2.2.5, binutils-2.20.1, gcc-2.95.3. This is enough to bootstrap GuixSD for i686-linux and x8664-linux.
Mes is inspired by The Maxwell Equations of Software: LISP-1.5 – John McCarthy page 13, GNU Guix's source/binary packaging transparency and Jeremiah Orians's stage0 ~500 byte self-hosting hex assembler.
GNU Mes is free software, it is distributed under the terms of the GNU General Public Licence version 3 or later. See the file COPYING.