<div dir="auto">Congrats!</div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Nov 26, 2019, 11:11 Brett Gilio <<a href="mailto:brettg@posteo.net">brettg@posteo.net</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Jan Nieuwenhuizen <<a href="mailto:janneke@gnu.org" target="_blank" rel="noreferrer">janneke@gnu.org</a>> writes:<br>
<br>
> We are pleased to announce the release of GNU Mes 0.21, representing<br>
> 54 commits over 10 weeks.<br>
><br>
> Mes has now brought the Reduced Binary Seed bootstrap to Guix (bootstrap<br>
> a GNU/Linux system without binary GNU toolchain or equivalent). See<br>
> <a href="https://guix.gnu.org/blog/2019/guix-reduces-bootstrap-seed-by-50/" rel="noreferrer noreferrer" target="_blank">https://guix.gnu.org/blog/2019/guix-reduces-bootstrap-seed-by-50/</a><br>
><br>
> This release supports a Scheme-only bootstrap: Mes can now be built with<br>
> Gash and the experimental Gash Core Utils instead of using GNU Awk, GNU<br>
> Bash, the GNU Core Utilities, GNU Grep, GNU Gzip, GNU Make, GNU SED, and<br>
> GNU Tar. Also, the Mes C Library now supports bootstrapping those.<br>
> Finally, this release brings Mes as a package to Debian GNU/Linux.<br>
><br>
> We are excited that the Nlnet Foundation[12] is now sponsoring this<br>
> work!<br>
><br>
> Next targets:<br>
><br>
> - Introduce the Reduced Binaries Seed bootstrap to NixOS (Debian,<br>
> Gentoo, ...?)<br>
> - Scheme-only bootstrap: use Guile, Gash and Gash Core Utils to remove<br>
> awk, bash, core utilities, grep, gzip, make, sed, tar, etc. from the<br>
> Guix bootstrap binaries<br>
> - ARM support<br>
> - Full Source Bootstrap: compile Mes.c using M2-Planet<br>
> - Reduced Binary Seed bootstrap for ARM<br>
> - the Hurd<br>
><br>
> Packages are available in Guix master.<br>
><br>
> * About<br>
><br>
> GNU Mes[0] brings a Reduced Binary Seed bootstrap[1] to GNU Guix[2].<br>
> This bootstrap has halved the size of opaque, uninspectable binaries<br>
> that were needed to bootstrap Guix. The final goal is to help create<br>
> a full source bootstrap as part of the bootstrappable builds[3] effort<br>
> for any interested UNIX-like operating system.<br>
><br>
> It consists of a mutual self-hosting Scheme interpreter written in<br>
> ~5,000 LOC of simple C and a Nyacc-based C compiler written in Scheme.<br>
> This mes.c is being simplified[4] to be transpiled by M2-Planet[5].<br>
><br>
> The Scheme interpreter has a Garbage Collector, a library of loadable<br>
> Scheme modules-- notably Dominique Boucher's LALR[6], Pre-R6RS<br>
> [portable syntax-case[7] with R7RS ellipsis, Matt Wette's Nyacc[8]<br>
> --and test suite just enough to support a REPL and a C99 compiler:<br>
> MesCC.<br>
><br>
> Mes+MesCC can compile an only lightly patched TinyCC[9] that is<br>
> self-hosting. Using this tcc and the Mes C library we now have a<br>
> Reduced Binary Seed bootstrap for the gnutools triplet: glibc-2.2.5,<br>
> binutils-2.20.1, gcc-2.95.3. This is enough to bootstrap Guix for<br>
> i686-linux and x86_64-linux.<br>
><br>
> Mes is inspired by The Maxwell Equations of Software: LISP-1.5[10] -- John<br>
> McCarthy page 13, GNU Guix's source/binary packaging transparency and<br>
> Jeremiah Orians's stage0[11] ~500 byte self-hosting hex assembler.<br>
><br>
> * Download<br>
><br>
> git clone git://<a href="http://git.savannah.gnu.org/mes.git" rel="noreferrer noreferrer" target="_blank">git.savannah.gnu.org/mes.git</a><br>
><br>
> Here are the compressed sources and a GPG detached signature[*]:<br>
> <a href="https://ftp.gnu.org/gnu/mes/mes-0.21.tar.gz" rel="noreferrer noreferrer" target="_blank">https://ftp.gnu.org/gnu/mes/mes-0.21.tar.gz</a><br>
> <a href="https://ftp.gnu.org/gnu/mes/mes-0.21.tar.gz.sig" rel="noreferrer noreferrer" target="_blank">https://ftp.gnu.org/gnu/mes/mes-0.21.tar.gz.sig</a><br>
><br>
> Use a mirror for higher download bandwidth:<br>
> <a href="https://ftpmirror.gnu.org/mes/mes-0.21.tar.gz" rel="noreferrer noreferrer" target="_blank">https://ftpmirror.gnu.org/mes/mes-0.21.tar.gz</a><br>
> <a href="https://ftpmirror.gnu.org/mes/mes-0.21.tar.gz.sig" rel="noreferrer noreferrer" target="_blank">https://ftpmirror.gnu.org/mes/mes-0.21.tar.gz.sig</a><br>
><br>
> Here are the MD5 and SHA1 checksums:<br>
><br>
> dea43529d2d84fb4b9d81bdd9efcc715 mes-0.21.tar.gz<br>
> 35721a81feeab6e0d5913b8bf78f18951edbb964 mes-0.21.tar.gz<br>
><br>
> [*] Use a .sig file to verify that the corresponding file (without the<br>
> .sig suffix) is intact. First, be sure to download both the .sig file<br>
> and the corresponding tarball. Then, run a command like this:<br>
><br>
> gpg --verify mes-0.21.tar.gz.sig<br>
><br>
> If that command fails because you don't have the required public key,<br>
> then run this command to import it:<br>
><br>
> gpg --keyserver <a href="http://keys.gnupg.net" rel="noreferrer noreferrer" target="_blank">keys.gnupg.net</a> --recv-keys 1A858392E331EAFDB8C27FFBF3C1A0D9C1D65273<br>
><br>
> and rerun the 'gpg --verify' command.<br>
><br>
> * Get informed, get involved<br>
><br>
> See <a href="https://bootstrappable.org" rel="noreferrer noreferrer" target="_blank">https://bootstrappable.org</a><br>
> Join #bootstrappable on <a href="http://irc.freenode.net" rel="noreferrer noreferrer" target="_blank">irc.freenode.net</a>.<br>
><br>
> * Changes in 0.21 since 0.20<br>
> ** Core<br>
> *** Mes can now be bootstrapped with Gash and Gash Core Utils.<br>
> *** Mes now supports a Scheme-only bootstrap.<br>
> *** Mes now supports -c EXPR.<br>
> ** MesCC<br>
> *** Mes C Library now supports bootstrapping GNU Awk, GNU Bash, GNU SED, and GNU Tar.<br>
> *** Mes C Library now has limited float support in vfprintf, vsnprintf, vsscanf.<br>
> **** 7 new functions<br>
> abtod, atof, creat, dtoab, execlp, isgraph, mknod, readlink, strtod,<br>
> symlink.<br>
> **** 5 new stubs<br>
> getgrgid, getgrnam, getpgid, getpgrp, mktime, setgrent.<br>
> ** Noteworthy bug fixes<br>
> *** A bug with `mes -c EXPR' has been fixed.<br>
> *** The REPL now works again on x86_64.<br>
> *** --with-system-libc now works again.<br>
><br>
> Greetings,<br>
> janneke and Danny.<br>
><br>
> [0] <a href="https://www.gnu.org/software/mes" rel="noreferrer noreferrer" target="_blank">https://www.gnu.org/software/mes</a><br>
> [1] <a href="https://guix.gnu.org/blog/2019/guix-reduces-bootstrap-seed-by-50/" rel="noreferrer noreferrer" target="_blank">https://guix.gnu.org/blog/2019/guix-reduces-bootstrap-seed-by-50/</a><br>
> [2] <a href="https://www.gnu.org/software/guix" rel="noreferrer noreferrer" target="_blank">https://www.gnu.org/software/guix</a><br>
> [3] <a href="https://bootstrappable.org" rel="noreferrer noreferrer" target="_blank">https://bootstrappable.org</a><br>
> [4] <a href="https://github.com/oriansj/mes-m2" rel="noreferrer noreferrer" target="_blank">https://github.com/oriansj/mes-m2</a><br>
> [5] <a href="https://github.com/oriansj/m2-planet" rel="noreferrer noreferrer" target="_blank">https://github.com/oriansj/m2-planet</a><br>
> [6] <a href="https://github.com/schemeway/lalr-scm" rel="noreferrer noreferrer" target="_blank">https://github.com/schemeway/lalr-scm</a><br>
> [7] <a href="https://www.cs.indiana.edu/chezscheme/syntax-case/old-psyntax.html" rel="noreferrer noreferrer" target="_blank">https://www.cs.indiana.edu/chezscheme/syntax-case/old-psyntax.html</a><br>
> [8] <a href="https://www.nongnu.org/nyacc" rel="noreferrer noreferrer" target="_blank">https://www.nongnu.org/nyacc</a><br>
> [9] <a href="https://gitlab.com/janneke/tinycc" rel="noreferrer noreferrer" target="_blank">https://gitlab.com/janneke/tinycc</a><br>
> [10] <a href="http://www.softwarepreservation.org/projects/LISP/book/LISP%201.5%20Programmers%20Manual.pdf" rel="noreferrer noreferrer" target="_blank">http://www.softwarepreservation.org/projects/LISP/book/LISP%201.5%20Programmers%20Manual.pdf</a><br>
> [11] <a href="https://savannah.nongnu.org/projects/stage0" rel="noreferrer noreferrer" target="_blank">https://savannah.nongnu.org/projects/stage0</a><br>
> [12] <a href="https://nlnet.nl/project/GNUMes" rel="noreferrer noreferrer" target="_blank">https://nlnet.nl/project/GNUMes</a><br>
<br>
Fantastic work to everybody involved!<br>
<br>
Brett Gilio<br>
<br>
</blockquote></div>