<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>