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