doc: Release update.
[mes.git] / doc / announce / ANNOUNCE-0.17
1 Subject: GNU Mes 0.17 released
2
3 <#secure method=pgpmime mode=sign>
4 We are delighted to announce the release of GNU Mes 0.17, representing
5 64 commits over 6 weeks.
6
7 Mes is now an official GNU package and we have bootstrapped gcc-4.7.4
8 for x86-linux with a reduced binary seed (i.e., without regular toolchain).
9
10 Next targets:
11
12  - upstream the x86 Mes bootstrap to GuixSD
13  - create a x86_64 Mes C Lib, see if that is is enough to bootstrap x86_64
14  - reduce the 1MB ASCII M1 seed to ~5000 LOC/~100KB of M2 source
15  - create a plan for Geesh and Gash and use them to reduce the
16    bootstrap binary dependencies
17  - and/or otherwise reduce the bootstrap binary dependencies
18
19 Packages are available from Guix's wip-bootstrap branch.
20
21 * About
22
23 GNU Mes[0] aims to help create full source bootstrapping for GNU/Linux
24 distributions such as GuixSD[1] as part of the bootstrappable builds[2]
25 effort.
26
27 It consists of a mutual self-hosting Scheme interpreter written in
28 ~5,000 LOC of simple C and a Nyacc-based C compiler written in Scheme.
29 This mes.c is being simplified[3] to be transpiled by M2-Planet[4].
30
31 The Scheme interpreter (mes.c) has a Garbage Collector, a library of
32 loadable Scheme modules-- notably Dominique Boucher's LALR[5],
33 Pre-R6RS portable syntax-case[6] with R7RS ellipsis, Matt Wette's
34 Nyacc[7] --and test suite just barely enough to support a simple REPL
35 and simple C-compiler: MesCC.
36
37 Mes+MesCC can compile an only lightly patched TinyCC[8] that is
38 self-hosting.  Using this tcc and the Mes C library we now have a
39 reduced-binary-seed bootstrap for the gnutools triplet: glibc-2.2.5,
40 binutils-2.20.1, gcc-4.7.4.
41
42 Mes is inspired by The Maxwell Equations of Software: LISP-1.5[9] --
43 John McCarthy page 13, GNU Guix's source/binary packaging transparency
44 and Jeremiah Orians's stage0[10] ~500 byte self-hosting hex assembler.
45
46 * Download
47
48   git clone git://git.savannah.gnu.org/mes.git
49
50   Here are the compressed sources and a GPG detached signature[*]:
51     https://ftp.gnu.org/gnu/mes/mes-0.17.tar.gz
52     https://ftp.gnu.org/gnu/mes/mes-0.17.tar.gz.sig
53
54   Use a mirror for higher download bandwidth:
55     https://www.gnu.org/order/ftp.html
56
57   Here are the MD5 and SHA1 checksums:
58
59   93ca82612e203fd667dfbdfb83c06549  mes-0.17.tar.gz
60   d38ec93ab6dc2c92a5c5e96fef7f9295972772c2  mes-0.17.tar.gz
61
62   [*] Use a .sig file to verify that the corresponding file (without the
63   .sig suffix) is intact.  First, be sure to download both the .sig file
64   and the corresponding tarball.  Then, run a command like this:
65
66     gpg --verify mes-0.17.tar.gz.sig
67
68   If that command fails because you don't have the required public key,
69   then run this command to import it:
70
71     gpg --keyserver keys.gnupg.net --recv-keys 1A858392E331EAFDB8C27FFBF3C1A0D9C1D65273
72
73   and rerun the 'gpg --verify' command.
74
75 Mes runs from the source tree and can also be built, packaged and
76 installed in Guix[SD] from a git checkout by running
77
78     guix package -f .guix.scm
79
80 * Get informed, get involved
81
82     Join #bootstrappable on irc.freenode.net.
83
84 * Changes in 0.17 since 0.16.1
85  ** Core
86  *** GNU Mes is now an official GNU package.
87  *** MesCC is now installed as a regular Guile package.
88  *** Support --srcdir build.
89  *** Support all standard GNU make targets.
90  ** MesCC
91  *** Mes C Lib now bootstraps glibc-2.2.5, binutils-2.20.1, gcc-4.7.4.
92 * Changes in 0.16.1 since 0.16
93  ** Core
94  *** Mes now builds out of the box on Debian buster/testing.
95  *** Mes now comes with a generic build recipe: build-aux/setup-mes.sh.
96  *** Mes now comes with INFO documentation.
97  ** MesCC
98  *** MesCC now exits if spawning BLOOD_ELF, M1, or HEX2 fails.
99
100 Greetings,
101 janneke
102
103 [0] https://www.gnu.org/software/mes
104 [1] https://www.gnu.org/software/guix
105 [2] http://bootstrappable.org
106 [3] https://github.com/oriansj/mes-m2
107 [4] https://github.com/oriansj/m2-planet
108 [5] https://github.com/schemeway/lalr-scm
109 [6] https://www.cs.indiana.edu/chezscheme/syntax-case/old-psyntax.html
110 [7] https://www.nongnu.org/nyacc
111 [8] https://gitlab.com/janneke/tinycc
112 [9] http://www.softwarepreservation.org/projects/LISP/book/LISP%201.5%20Programmers%20Manual.pdf
113 [10] https://github.com/oriansj/stage0