2 Subject: GNU Mes 0.18 released
4 <#secure method=pgpmime mode=sign>
5 We are pleased to announce the release of GNU Mes 0.18, representing
6 83 commits over 8 weeks.
8 Mes is now bringing a Reduced Binary Seed bootstrap to GuixSD; the
9 size of bootstrap binaries has been halved and no regular toolchain
10 binaries are used as binary seeds (i686-linux and x86_64-linux only).
12 MesCC has been refactored to use an abstracted assembly language and
13 can now (cross-)build x86_64 binaries.
17 - reduce the 1MB ASCII M1 seed to ~5000 LOC/~100KB of M2 source
18 - revive Gash/Geesh and use it to decimate the remaining bootstrap
20 - and/or otherwise reduce the bootstrap binaries
23 Packages are available from Guix's core-updates-next branch.
27 GNU Mes[0] brings a Reduced Binary Seed bootstrap[1] to GuixSD[2] and
28 potentially to any other interested GNU/Linux distribution, and aims
29 to help create a full source bootstrap as part of the
30 bootstrappable builds[3] effort.
32 It consists of a mutual self-hosting Scheme interpreter written in
33 ~5,000 LOC of simple C and a Nyacc-based C compiler written in Scheme.
34 This mes.c is being simplified[4] to be transpiled by M2-Planet[5].
36 The Scheme interpreter (mes.c) has a Garbage Collector, a library of
37 loadable Scheme modules-- notably Dominique Boucher's LALR[6], Pre-R6RS
38 [portable syntax-case[7] with R7RS ellipsis, Matt Wette's Nyacc[8] --and test
39 suite just barely enough to support a simple REPL and simple
42 Mes+MesCC can compile an only lightly patched TinyCC[9] that is
43 self-hosting. Using this tcc and the Mes C library we now have a
44 Reduced Binary Seed bootstrap for the gnutools triplet: glibc-2.2.5,
45 binutils-2.20.1, gcc-2.95.3. This is enough to bootstrap GuixSD for
46 i686-linux and x86_64-linux.
48 Mes is inspired by The Maxwell Equations of Software: LISP-1.5[10] -- John
49 McCarthy page 13, GNU Guix's source/binary packaging transparency and
50 Jeremiah Orians's stage0[11] ~500 byte self-hosting hex assembler.
54 git clone git://git.savannah.gnu.org/mes.git
56 Here are the compressed sources and a GPG detached signature[*]:
57 https://ftp.gnu.org/gnu/mes/mes-0.18.tar.gz
58 https://ftp.gnu.org/gnu/mes/mes-0.18.tar.gz.sig
60 Use a mirror for higher download bandwidth:
61 https://ftpmirror.gnu.org/mes/mes-0.18.tar.gz
62 https://ftpmirror.gnu.org/mes/mes-0.18.tar.gz.sig
64 Here are the MD5 and SHA1 checksums:
66 f9f901f175fbc8a5a3d90c9c551ccc8c mes-0.18.tar.gz
67 4f7612731a745ebb806548186453d55e0d0bf217 mes-0.18.tar.gz
69 [*] Use a .sig file to verify that the corresponding file (without the
70 .sig suffix) is intact. First, be sure to download both the .sig file
71 and the corresponding tarball. Then, run a command like this:
73 gpg --verify mes-0.18.tar.gz.sig
75 If that command fails because you don't have the required public key,
76 then run this command to import it:
78 gpg --keyserver keys.gnupg.net --recv-keys 1A858392E331EAFDB8C27FFBF3C1A0D9C1D65273
80 and rerun the 'gpg --verify' command.
82 Mes runs from the source tree and can also be built, packaged and
83 installed in Guix[SD] from a git checkout by running
85 guix package -f .guix.scm
87 * Get informed, get involved
89 Join #bootstrappable on irc.freenode.net.
91 * Changes in 0.18 since 0.17.1
93 *** Mes/MesCC now supports x86_64.
94 *** Mes/MesCC now brings a Reduced Binary Seed bootstrap to GuixSD.
96 *** fold-right now supports 3 lists.
98 *** MesCC now supports x86_64 (also as cross build), using -m 64.
99 *** Mes C Library now has better support for bootstrapping gcc-3.0.
100 *** Mes C test suite now has 178 tests; 74 tests were added.
101 *** MesCC has been refactored to support use an abstracted assembly language.
102 *** MesCC now uses Nyacc 0.86.0.
103 ** Noteworthy bug fixes
104 *** scaffold/tests/7s-struct-short.c has been fixed.
105 * Changes in 0.17.1 since 0.17
107 *** Mes C Library has now been exploded into a separate C file per function.
108 *** Mes C Library now bootstraps glibc-2.16.0, binutils-2.20.1, gcc-4.7.4.
109 *** Mes C Library now supports compiling make-3.82.
110 *** Mes C Library now supports compiling diffutils-2.7.
111 *** Mes C Library now supports x86_64.
113 chdir, clock_gettime, closedir, execl, opendir, readdir, time.
115 getlogin, setlocale, setvbuf, sigaddset, sigblock.
116 ** Noteworthy bug fixes
117 *** qsort can now handle lists with duplicate entries.
122 [0] https://www.gnu.org/software/mes
123 [1] http://joyofsource.com/reduced-binary-seed-bootstrap.html
124 [2] https://www.gnu.org/software/guix
125 [3] https://bootstrappable.org
126 [4] https://github.com/oriansj/mes-m2
127 [5] https://github.com/oriansj/m2-planet
128 [6] https://github.com/schemeway/lalr-scm
129 [7] https://www.cs.indiana.edu/chezscheme/syntax-case/old-psyntax.html
130 [8] https://www.nongnu.org/nyacc
131 [9] https://gitlab.com/janneke/tinycc
132 [10] http://www.softwarepreservation.org/projects/LISP/book/LISP%201.5%20Programmers%20Manual.pdf
133 [11] https://github.com/oriansj/stage0