doc: Release update.

* NEWS: Update.
* INSTALL: Update.
* HACKING: Update.
* doc/ANNOUNCE-0.8: New file.
This commit is contained in:
Jan Nieuwenhuizen 2017-06-08 20:39:24 +02:00
parent c44df4ed8a
commit 97951fd47e
4 changed files with 107 additions and 17 deletions

View file

@ -40,10 +40,9 @@ generates several recipies of sh build scripts in out/.
* ROADMAP * ROADMAP
** TODO ** TODO
*** release 0.8 *** release 0.8
- move from lambda-based .o format to stage0's hex2. - produce ELF_sym and ELF_str tables from hex2; nicer for objdump -d, gdb
- use stage0's linker to produce ELF.
- simplify [at least bootstrap] build process.
*** release 0.x, unsorted *** release 0.x, unsorted
- simplify [at least the bootstrap] build process.
- seamless connection to stage0. - seamless connection to stage0.
- mescc: compile tcc.c. - mescc: compile tcc.c.
- mescc: support unsigned comparison, arithmetic. - mescc: support unsigned comparison, arithmetic.
@ -217,4 +216,8 @@ simple as possible.
*** [[http://tack.sourceforge.net/][ack]] *** [[http://tack.sourceforge.net/][ack]]
<rain1> it may be possible to compile like this: mes |> ack |> pcc |> tcc |> <rain1> it may be possible to compile like this: mes |> ack |> pcc |> tcc |>
gcc 4.7.4 |> gcc later version... up to modern 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 Bootstrapping Wiki: https://bootstrapping.miraheze.org/wiki/Main_Page
** rain1's hex86
https://notabug.org/rain1/hex86/src/master/tests/hex0b3.hex86

33
INSTALL
View file

@ -6,36 +6,41 @@ Building and Installing Mes
git clone https://gitlab.com/janneke/mes git clone https://gitlab.com/janneke/mes
* Prerequisites * 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 -l guix.scm #64 bit + 32bit
guix environment --system=i686-linux -l guix.scm #32 bit only guix environment --system=i686-linux -l guix.scm #32 bit only
** Other GNU/Linux *** Other GNU/Linux
*** [[https://github.com/oriansj/MESCC_Tools][MESCC_Tools]], 0.0 is known to work. **** [[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. 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. 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 Guile is not strictly necessary but it is used by the configure script
and in development. and in development.
*** GNU Make, version 4.0 is know to work. **** GNU Make, version 4.0 is know to work.
Not strictly necessary. 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. 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.
*** GNU coreutils **** git, 2.10 is known to work.
*** sed, GNU sed 4.2 is known to work. **** Perl, 5.22 is known to work.
*** git, 2.10 is known to work.
*** Perl, 5.22 is known to work.
* Build it * Build it

12
NEWS
View file

@ -10,6 +10,18 @@ Copyright © 2016,2017 Jan Nieuwenhuizen <janneke@gnu.org>
Please send Mes bug reports to 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 * Changes in 0.7 since 0.6
** Core ** Core
*** The minimal C reader is now always included; dependencies *** The minimal C reader is now always included; dependencies

70
doc/ANNOUNCE-0.8 Normal file
View file

@ -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