mescc: Refactor type system: struct/enum fields: (name . <type>).
[mes.git] / doc / ANNOUNCE-0.8
1 Subject: Mes 0.8 released
2
3 I am pleased to announce the release of Mes 0.8, representing 34
4 commits over 3 weeks.  Mescc now produces object files in the hex2
5 ascii output format compatible with the stage0 linker.
6
7 Special thanks to Jeremiah Orians for support with MESCC_Tools and
8 hex2, more goodness to follow soon!
9
10 * About
11
12     Mes aims to create full source bootstrapping for GuixSD: an
13     entirely source-based bootstrap path.  The target is to [have
14     GuixSD] boostrap from a minimal, easily inspectable binary --that
15     should be readable as source-- into something close to R6RS
16     Scheme.
17
18     It currently consists of a mutual self-hosting [close to Guile-]
19     Scheme interpreter prototype in C and a Nyacc-based C compiler in
20     [Guile] Scheme.
21
22     The Scheme interpreter prototype (mes.c) has a Garbage Collector,
23     a library of loadable Scheme modules-- notably Dominique Boucher's
24     LALR[1], Pre-R6RS portable syntax-case[2] with R7RS ellipsis, Matt
25     Wette's Nyacc[3] Guile's PEG[4] --and test suite just barely
26     enough to support a simple REPL (repl.mes) and simple C-compiler
27     (mescc.mes) that can produce the second initial ELF binary from
28     binary from mes.c, in only about 2h30'.
29
30     Mes was inspired by The Maxwell Equations of Software: LISP-1.5[5]
31     -- John McCarthy page 13, GNU Guix's[6] source/binary packaging
32     transparency and Jeremiah Orians's stage0[7] bootstrap project.
33
34 * Download
35
36     git clone https://gitlab.com/janneke/mes
37
38     wget https://gitlab.com/janneke/mes/repository/archive.tar.gz?ref=v0.8 -O mes-0.8.tar.gz
39
40 Mes runs from the source tree and can also be built, packaged and
41 installed in Guix[SD] by the usual
42
43     guix package -f guix.scm
44
45 * Changes in 0.8 since 0.7
46  ** Mescc
47  *** Mescc now depends on the hex2 linker from MESCC_Tools[9].
48  Direct ELF output support has been removed.
49  ELF symbol and string table creation has been removed.
50  *** Mescc now has experimental annotation support for hex2.
51  *** Mescc has experimental annotation support for hex2.
52  *** Mescc has been simplified by leveraging use labels in hex2 output.
53  *** Mescc now supports continue in loops.
54  *** Mescc now compiles to hex2 object files.
55  ** Language
56  *** 1 new function
57  list-index.
58
59 Greetings,
60 janneke
61
62 [1] https://github.com/schemeway/lalr-scm
63 [2] https://www.cs.indiana.edu/chezscheme/syntax-case/old-psyntax.html
64 [3] https://www.nongnu.org/nyacc/
65 [4] https://www.gnu.org/software/guile/docs/master/guile.html/PEG-Parsing.html
66 [5] http://www.softwarepreservation.org/projects/LISP/book/LISP%25201.5%2520Programmers%2520Manual.pdf
67 [6] https://www.gnu.org/software/guix/
68 [7] https://github.com/oriansj/stage0
69 [8] https://gitlab.com/janneke/tinycc
70 [9] https://github.com/oriansj/MESCC_Tools