doc: Release update.
authorJan Nieuwenhuizen <janneke@gnu.org>
Thu, 8 Jun 2017 18:39:24 +0000 (20:39 +0200)
committerJan Nieuwenhuizen <janneke@gnu.org>
Thu, 8 Jun 2017 18:39:24 +0000 (20:39 +0200)
* NEWS: Update.
* INSTALL: Update.
* HACKING: Update.
* doc/ANNOUNCE-0.8: New file.

HACKING
INSTALL
NEWS
doc/ANNOUNCE-0.8 [new file with mode: 0644]

diff --git a/HACKING b/HACKING
index 399f3f29181c0ed049fe3ab1e0ced7df6bbca66a..9708f3fa1dd9c4d2b79a300de99076a8e5437171 100644 (file)
--- a/HACKING
+++ b/HACKING
@@ -40,10 +40,9 @@ generates several recipies of sh build scripts in out/.
 * ROADMAP
 ** TODO 
 *** release 0.8
-  - move from lambda-based .o format to stage0's hex2.
-  - use stage0's linker to produce ELF.
-  - simplify [at least bootstrap] build process.
+  - produce ELF_sym and ELF_str tables from hex2; nicer for objdump -d, gdb
 *** release 0.x, unsorted
+  - simplify [at least the bootstrap] build process.
   - seamless connection to stage0.
   - mescc: compile tcc.c.
   - mescc: support unsigned comparison, arithmetic.
@@ -217,4 +216,8 @@ simple as possible.
 *** [[http://tack.sourceforge.net/][ack]]
 <rain1> it may be possible to compile like this:  mes |> ack |> pcc |> tcc |>
         gcc 4.7.4 |> gcc later version... up to modern
+*** [[https://web.archive.org/web/20160402225843/http://homepage.ntlworld.com/edmund.grimley-evans/cc500/][cc500]]
 ** rain1's Bootstrapping Wiki: https://bootstrapping.miraheze.org/wiki/Main_Page
+** rain1's hex86
+https://notabug.org/rain1/hex86/src/master/tests/hex0b3.hex86
+
diff --git a/INSTALL b/INSTALL
index 8996a74345f5ee92bf4a3917d95513d50407c9e8..5a00dbf4ca7f50c7fa027039b202e9edcf2d1207 100644 (file)
--- a/INSTALL
+++ b/INSTALL
@@ -6,36 +6,41 @@ Building and Installing Mes
    git clone https://gitlab.com/janneke/mes
 
 * Prerequisites
-** Guix
+** Bootstrapping
+For bootstrapping, the only dependency is the hex2 linker
+*** [[https://github.com/oriansj/MESCC_Tools][MESCC_Tools]], 0.1 is known to work.
+For development
+**
+** Development
+For development, there are some more dependencies.
+*** Guix
 
     guix environment -l guix.scm     #64 bit + 32bit
     guix environment --system=i686-linux -l guix.scm #32 bit only
 
-** Other GNU/Linux
-*** [[https://github.com/oriansj/MESCC_Tools][MESCC_Tools]], 0.0 is known to work.
+*** Other GNU/Linux
+**** [[https://github.com/oriansj/MESCC_Tools][MESCC_Tools]], 0.0 is known to work.
 
-*** [[https://savannah.gnu.org/projects/nyacc][Nyacc]], 0.78.0 is known to work.
+**** [[https://savannah.gnu.org/projects/nyacc][Nyacc]], 0.78.0 is known to work.
 Matt Wette's C99 LALR parser.
 
-*** GNU Gcc, 4.9.3 is known to work.
+**** GNU Gcc, 4.9.3 is known to work.
 The idea is to drop this requirement, of course.
 
-*** GNU Guile, version 2.0.12 or is know to work.
+**** GNU Guile, version 2.0.12 or is know to work.
 Guile is not strictly necessary but it is used by the configure script
 and in development.
 
-*** GNU Make, version 4.0 is know to work.
+**** GNU Make, version 4.0 is know to work.
 Not strictly necessary.
 
-*** /bin/sh, GNU Bash 4.3 is known to work.
+**** /bin/sh, GNU Bash 4.3 is known to work.
 Let's just say for now that it gets awkward without a shell.
 
-*** Development (but see [[./guix.scm]])
-
-*** GNU coreutils
-*** sed, GNU sed 4.2 is known to work.
-*** git, 2.10 is known to work.
-*** Perl, 5.22 is known to work.
+**** GNU coreutils
+**** sed, GNU sed 4.2 is known to work.
+**** git, 2.10 is known to work.
+**** Perl, 5.22 is known to work.
 
 * Build it
 
diff --git a/NEWS b/NEWS
index 167fd308818ed5c28e4c2490f21d7f7fd26a5017..ad7c355757a2418b826870d7d5fd0aed37fc39a1 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -10,6 +10,18 @@ Copyright © 2016,2017 Jan Nieuwenhuizen <janneke@gnu.org>
 
 Please send Mes bug reports to janneke@gnu.org.
 
+* Changes in 0.8 since 0.7
+** Mescc
+*** Mescc now has experimental annotation support for hex2.
+*** Mescc now depends on the hex2 linker from [[https://github.com/oriansj/MESCC_Tools][MESCC_Tools]].
+Direct ELF output support has been removed.
+ELF symbol and string table creation has been removed.
+*** Mescc has been simplified by leveraging use labels in hex2 output.
+*** Mescc now supports continue in loops.
+*** Mescc now compiles to hex2 object files.
+** Language
+*** 1 new function
+list-index.
 * Changes in 0.7 since 0.6
 ** Core
 *** The minimal C reader is now always included; dependencies
diff --git a/doc/ANNOUNCE-0.8 b/doc/ANNOUNCE-0.8
new file mode 100644 (file)
index 0000000..c17e55b
--- /dev/null
@@ -0,0 +1,70 @@
+Subject: Mes 0.8 released
+
+I am pleased to announce the release of Mes 0.8, representing 34
+commits over 3 weeks.  Mescc now produces object files in the hex2
+ascii output format compatible with the stage0 linker.
+
+Special thanks to Jeremiah Orians for support with MESCC_Tools and
+hex2, more goodness to follow soon!
+
+* About
+
+    Mes aims to create full source bootstrapping for GuixSD: an
+    entirely source-based bootstrap path.  The target is to [have
+    GuixSD] boostrap from a minimal, easily inspectable binary --that
+    should be readable as source-- into something close to R6RS
+    Scheme.
+
+    It currently consists of a mutual self-hosting [close to Guile-]
+    Scheme interpreter prototype in C and a Nyacc-based C compiler in
+    [Guile] Scheme.
+
+    The Scheme interpreter prototype (mes.c) has a Garbage Collector,
+    a library of loadable Scheme modules-- notably Dominique Boucher's
+    LALR[1], Pre-R6RS portable syntax-case[2] with R7RS ellipsis, Matt
+    Wette's Nyacc[3] Guile's PEG[4] --and test suite just barely
+    enough to support a simple REPL (repl.mes) and simple C-compiler
+    (mescc.mes) that can produce the second initial ELF binary from
+    binary from mes.c, in only about 2h30'.
+
+    Mes was inspired by The Maxwell Equations of Software: LISP-1.5[5]
+    -- John McCarthy page 13, GNU Guix's[6] source/binary packaging
+    transparency and Jeremiah Orians's stage0[7] bootstrap project.
+
+* Download
+
+    git clone https://gitlab.com/janneke/mes
+
+    wget https://gitlab.com/janneke/mes/repository/archive.tar.gz?ref=v0.8 -O mes-0.8.tar.gz
+
+Mes runs from the source tree and can also be built, packaged and
+installed in Guix[SD] by the usual
+
+    guix package -f guix.scm
+
+* Changes in 0.8 since 0.7
+ ** Mescc
+ *** Mescc now depends on the hex2 linker from MESCC_Tools[9].
+ Direct ELF output support has been removed.
+ ELF symbol and string table creation has been removed.
+ *** Mescc now has experimental annotation support for hex2.
+ *** Mescc has experimental annotation support for hex2.
+ *** Mescc has been simplified by leveraging use labels in hex2 output.
+ *** Mescc now supports continue in loops.
+ *** Mescc now compiles to hex2 object files.
+ ** Language
+ *** 1 new function
+ list-index.
+
+Greetings,
+janneke
+
+[1] https://github.com/schemeway/lalr-scm
+[2] https://www.cs.indiana.edu/chezscheme/syntax-case/old-psyntax.html
+[3] https://www.nongnu.org/nyacc/
+[4] https://www.gnu.org/software/guile/docs/master/guile.html/PEG-Parsing.html
+[5] http://www.softwarepreservation.org/projects/LISP/book/LISP%25201.5%2520Programmers%2520Manual.pdf
+[6] https://www.gnu.org/software/guix/
+[7] https://github.com/oriansj/stage0
+[8] https://gitlab.com/janneke/tinycc
+[9] https://github.com/oriansj/MESCC_Tools