GNU Mes
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.
Downloading Mes
git clone git://git.savannah.gnu.org/mes.git
Mes can be found on the main GNU ftp server: http://ftp.gnu.org/gnu/mes/ (via HTTP) and ftp://ftp.gnu.org/gnu/mes/ (via FTP). It can also be found on the GNU mirrors; please use a mirror if possible.
Documentation
Documentation for Mes is available online, as is documentation for most GNU software. You may also find more information about Mes by running info mes or man mes, or by looking at <prefix>/share/doc/mes/, /usr/doc/mes/, /usr/local/doc/mes/, or similar directories on your system. A brief summary is available by running mes --help.
Mailing lists
Mes has the following mailing lists:
- bug-mes is used to discuss most aspects of Mes, including development and enhancement requests, as well as bug reports.
- guix-devel is for general user help and discussion.
Announcements about Mes and most other GNU software are made on info-gnu (archive).
Security reports that should not be made immediately public can be sent directly to the maintainer. If there is no response to an urgent issue, you can escalate to the general security mailing list for advice.
Getting involved
Development of Mes, and GNU in general, is a volunteer effort, and you can contribute. For information, please read How to help GNU. If you'd like to get involved, it's a good idea to join the discussion mailing list (see above).
Join the #bootstrappable channel on
the Freenode IRC
network to chat with the Bootstrappable and GNU Mes community or
to get help in real time.
- Test releases
- Trying the latest test release (when available) is always appreciated. Test releases of Mes can be found at http://alpha.gnu.org/gnu/mes/ (via HTTP) and ftp://alpha.gnu.org/gnu/mes/ (via FTP).
- Development
- For development sources, issue trackers, and other information, please see the Mes project page at savannah.gnu.org.
- Maintainer
- Mes is currently being maintained by janneke. Please use the mailing lists for contact.
Licensing
Mes is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version.
GNU Operating System![[FSF logo]](/National_Library/20181105034639im_/https://gnu.org/graphics/fsf-logo-notext-small.png)