doc: Release update.

* HACKING: Update.
* INSTALL: Update.
* NEWS: Update.
* README: Update.
* doc/announce/ANNOUNCE-0.17: New file.
This commit is contained in:
Jan Nieuwenhuizen 2018-07-22 16:21:50 +02:00
parent ce3d25395e
commit 54bfc90850
No known key found for this signature in database
GPG Key ID: F3C1A0D9C1D65273
21 changed files with 174 additions and 42 deletions

View File

@ -67,7 +67,6 @@ mes.c.
** TODO
*** release 0.x, unsorted
- upstream mes-boot to GuixSD.
- add full source gcc-4.7 package build.
- replace GuixSD bootstrap for x86.
- replace bootstrap utils (with gash?): flex, bash, bzip2,
coreutils, diffutils, gawk, grep, gzip, make, sed, tar.
@ -102,6 +101,7 @@ mes.c.
- add x86_64, replace GuixSD's bootstrap binaries for x86_64.
- more architectures (does GuixSD require this, i.e. before 1.0?).
** DONE
*** 0.17 GNU Mes is now an official GNU project and bootstraps gcc-4.7.4.
*** 0.16.1 Mes now has info docs and installs ootb on Debian buster/testing.
*** 0.16 Mes Lib C now bootstraps glibc-2.2.5, binutils-2.20.1, gcc-4.1.0.
*** 0.15: MesCC now has a libc+gnu that supports compiling binutils-2.14, gcc-2.95.3 and glibc-2.2.5.

View File

@ -48,17 +48,17 @@ similar way.
* Bootstrap build
The bootstrap build is being developed in GuixSD, see
https://gitlab.com/janneke/guix/blob/wip-bootstrap/gnu/packages/mes.scm
The bootstrap build is being developed in Guix, on wip-bootstrap, see
http://git.savannah.gnu.org/cgit/guix.git/tree/gnu/packages/mes.scm?h=wip-bootstrap
** Prerequisites
- [[https://github.com/oriansj/mescc-tools][mescc-tools]], 0.5 is known to work.
- [[https://savannah.gnu.org/projects/nyacc][Nyacc]], [[https://gitlab.com/janneke/nyacc][patched Nyacc]] 0.80.42 is known to work.
- [[https://gitlab.com/janneke/mes-seed][mes-seed]], 0.16 is known to work.
- [[https://gitlab.com/janneke/mes-seed][mes-seed]], 0.17 is known to work.
** Build it
<setup environment, e.g. prefix, MES_SEED>
./configure.sh [--prefix=<prefix>]
./build.sh
** Check it

24
NEWS
View File

@ -10,6 +10,14 @@ Copyright © 2016,2017,2018 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
Please send Mes bug reports to bug-mes@gnu.org.
* Changes in 0.17 since 0.16.1
** Core
*** GNU Mes is now an official GNU package.
*** MesCC is now installed as a regular Guile package.
*** Support --srcdir build.
*** Support all standard GNU make targets.
** MesCC
*** Mes C Lib now bootstraps glibc-2.2.5, binutils-2.20.1, gcc-4.7.4.
* Changes in 0.16.1 since 0.16
** Core
*** Mes now builds out of the box on Debian buster/testing.
@ -19,10 +27,10 @@ Please send Mes bug reports to bug-mes@gnu.org.
*** MesCC now exits if spawning BLOOD_ELF, M1, or HEX2 fails.
* Changes in 0.16 since 0.15
** Core
*** Support building with tcc, including Mes Lib C in-line assembly.
*** Support building with tcc, including Mes C Lib in-line assembly.
*** core:execl now supports 1000 arguments.
** MesCC
*** Mes Lib C now bootstraps glibc-2.2.5, binutils-2.20.1, gcc-4.1.0.
*** Mes C Lib now bootstraps glibc-2.2.5, binutils-2.20.1, gcc-4.1.0.
*** MesCC binaries now run on Linux 4.17 too, i.e. survive Linus' new `sane mmap limits.'
*** MesCC now runs with mescc-tools 0.5 (no = in long options).
**** 3 new C test
@ -44,13 +52,13 @@ Please send Mes bug reports to bug-mes@gnu.org.
*** 2 new functions
drop, drop-right.
** MesCC
*** MesCC and Mes Lib C can now build binutils-2.30, gcc-2.95.3 and glibc-2.2.5.
*** MesCC and Mes C Lib can now build binutils-2.30, gcc-2.95.3 and glibc-2.2.5.
*** MesCC now provides dummy crti.o, crtn.o so that tcc needs not be patched for those.
*** Mes Lib C now supports compiling glibc-2.2.25.
*** Mes Lib C now supports compiling gcc-2.95.3
*** Mes Lib C now supports compiling binutils-2.30.
*** Mes Lib C now supports compiling m4-1.4.
*** Mes Lib C has been split into archs: gcc, x86-mes-gcc and x86-mes.
*** Mes C Lib now supports compiling glibc-2.2.25.
*** Mes C Lib now supports compiling gcc-2.95.3
*** Mes C Lib now supports compiling binutils-2.30.
*** Mes C Lib now supports compiling m4-1.4.
*** Mes C Lib has been split into archs: gcc, x86-mes-gcc and x86-mes.
*** MesCC now has a posixy command line interface.
**** 70 new functions
abs, access, alarm, alloca, atexit, atol, bcmp, bcopy, brk, bzero,

25
README
View File

@ -8,25 +8,24 @@ source bootstrapping for GNU/Linux distributions such as
[[https://www.gnu.org/software/guix][GuixSD]] as part of the
[[http://bootstrappable.org][bootstrappable builds]] effort.
It currently consists of a mutual self-hosting Scheme interpreter
written in ~5,000 LOC of simple C and a Nyacc-based C compiler written
in Scheme. This mes.c is [[https://github.com/oriansj/mes-m2][being simplified]] to be transpiled by
[[https://github.com/oriansj/m2-planet][M2-Planet]].
It consists of a mutual self-hosting Scheme interpreter written in
~5,000 LOC of simple C and a Nyacc-based C compiler written in Scheme.
This mes.c is [[https://github.com/oriansj/mes-m2][being simplified]] to be transpiled by [[https://github.com/oriansj/m2-planet][M2-Planet]].
The Scheme interpreter prototype (mes.c) has a Garbage Collector, a
library of loadable Scheme modules-- notably Dominique Boucher's [[https://github.com/schemeway/lalr-scm][LALR]],
Pre-R6RS [[https://www.cs.indiana.edu/chezscheme/syntax-case/old-psyntax.html][portable syntax-case]] with R7RS ellipsis, Matt Wette's [[https://www.nongnu.org/nyacc][Nyacc]],
Guile's [[https://www.gnu.org/software/guile/docs/master/guile.html/PEG-Parsing.html][PEG]] --and test suite just barely enough to support a simple
REPL and simple C-compiler: MesCC.
The Scheme interpreter (mes.c) has a Garbage Collector, a library of
loadable Scheme modules-- notably Dominique Boucher's [[https://github.com/schemeway/lalr-scm][LALR]], Pre-R6RS
[[https://www.cs.indiana.edu/chezscheme/syntax-case/old-psyntax.html][portable syntax-case]] with R7RS ellipsis, Matt Wette's [[https://www.nongnu.org/nyacc][Nyacc]] --and test
suite just barely enough to support a simple REPL and simple
C-compiler: MesCC.
Mes+MesCC can compile an only [[http://gitlab.com/janneke/tinycc][lightly patched TinyCC]] that is
self-hosting. Using this tcc and the Mes C library we now have a
reduced-binary-seed bootstrap for the gnutools triplet: glibc-2.2.5,
binutils-2.20.1, gcc-4.1.0.
binutils-2.20.1, gcc-4.7.4.
GNU Mes is inspired by The Maxwell Equations of Software: [[http://www.softwarepreservation.org/projects/LISP/book/LISP%2525201.5%252520Programmers%252520Manual.pdf][LISP-1.5]] --
John McCarthy page 13, GNU Guix's source/binary packaging transparency
and Jeremiah Orians's [[https://github.com/oriansj/stage0][stage0]] ~500 byte self-hosting hex assembler.
Mes is inspired by The Maxwell Equations of Software: [[http://www.softwarepreservation.org/projects/LISP/book/LISP%201.5%20Programmers%20Manual.pdf][LISP-1.5]] -- John
McCarthy page 13, GNU Guix's source/binary packaging transparency and
Jeremiah Orians's [[https://github.com/oriansj/stage0][stage0]] ~500 byte self-hosting hex assembler.
GNU Mes is free software, it is distributed under the terms of the GNU
General Public Licence version 3 or later. See the file [[file:COPYING][COPYING]].

View File

@ -300,9 +300,20 @@ else
$(warning update-hash: no guix)
endif
release: update-hash
tag:
git tag -s v$(VERSION) -m "GNU Mes $(VERSION)."
# Release process
# 0. doc: Release update, Release commit, make seed, test guix bootstrap
# 1. make tag
# 2. make dist
# 3. make release
guix-build:
./pre-inst-env $(GUIX) build mes@$(VERSION) --with-source=$(TARBALL)
release: update-hash | gen-announce guix-build
GPG_KEY_ID:=1A858392E331EAFDB8C27FFBF3C1A0D9C1D65273
gen-announce:
../gnulib/build-aux/announce-gen\

View File

@ -93,4 +93,4 @@ janneke
[7] https://www.gnu.org/software/guile/docs/master/guile.html/PEG-Parsing.html
[8] https://gitlab.com/janneke/tinycc
[9] https://lists.gnu.org/archive/html/tinycc-devel/2017-05/msg00103.html
[10] http://www.softwarepreservation.org/projects/LISP/book/LISP%25201.5%2520Programmers%2520Manual.pdf
[10] http://www.softwarepreservation.org/projects/LISP/book/LISP%201.5%20Programmers%20Manual.pdf

View File

@ -67,4 +67,4 @@ janneke
[7] https://www.gnu.org/software/guile/docs/master/guile.html/PEG-Parsing.html
[8] https://gitlab.com/janneke/tinycc
[9] https://lists.gnu.org/archive/html/tinycc-devel/2017-05/msg00103.html
[10] http://www.softwarepreservation.org/projects/LISP/book/LISP%25201.5%2520Programmers%2520Manual.pdf
[10] http://www.softwarepreservation.org/projects/LISP/book/LISP%201.5%20Programmers%20Manual.pdf

View File

@ -93,5 +93,5 @@ janneke
[7] https://www.gnu.org/software/guile/docs/master/guile.html/PEG-Parsing.html
[8] https://gitlab.com/janneke/tinycc
[9] https://lists.gnu.org/archive/html/tinycc-devel/2017-05/msg00103.html
[10] http://www.softwarepreservation.org/projects/LISP/book/LISP%25201.5%2520Programmers%2520Manual.pdf
[10] http://www.softwarepreservation.org/projects/LISP/book/LISP%201.5%20Programmers%20Manual.pdf
[11] https://github.com/oriansj/stage0

View File

@ -77,5 +77,5 @@ janneke
[7] https://www.gnu.org/software/guile/docs/master/guile.html/PEG-Parsing.html
[8] https://gitlab.com/janneke/tinycc
[9] https://lists.gnu.org/archive/html/tinycc-devel/2017-05/msg00103.html
[10] http://www.softwarepreservation.org/projects/LISP/book/LISP%25201.5%2520Programmers%2520Manual.pdf
[10] http://www.softwarepreservation.org/projects/LISP/book/LISP%201.5%20Programmers%20Manual.pdf
[11] https://github.com/oriansj/stage0

View File

@ -97,5 +97,5 @@ janneke
[7] https://www.gnu.org/software/guile/docs/master/guile.html/PEG-Parsing.html
[8] https://gitlab.com/janneke/tinycc
[9] https://lists.gnu.org/archive/html/tinycc-devel/2017-05/msg00103.html
[10] http://www.softwarepreservation.org/projects/LISP/book/LISP%25201.5%2520Programmers%2520Manual.pdf
[10] http://www.softwarepreservation.org/projects/LISP/book/LISP%201.5%20Programmers%20Manual.pdf
[11] https://github.com/oriansj/stage0

View File

@ -102,5 +102,5 @@ janneke
[6] https://www.nongnu.org/nyacc/
[7] https://www.gnu.org/software/guile/docs/master/guile.html/PEG-Parsing.html
[8] https://gitlab.com/janneke/tinycc
[9] http://www.softwarepreservation.org/projects/LISP/book/LISP%25201.5%2520Programmers%2520Manual.pdf
[9] http://www.softwarepreservation.org/projects/LISP/book/LISP%201.5%20Programmers%20Manual.pdf
[10] https://github.com/oriansj/stage0

View File

@ -96,5 +96,5 @@ janneke
[7] https://www.nongnu.org/nyacc
[8] https://www.gnu.org/software/guile/docs/master/guile.html/PEG-Parsing.html
[9] https://gitlab.com/janneke/tinycc
[10] http://www.softwarepreservation.org/projects/LISP/book/LISP%25201.5%2520Programmers%2520Manual.pdf
[10] http://www.softwarepreservation.org/projects/LISP/book/LISP%201.5%20Programmers%20Manual.pdf
[11] https://github.com/oriansj/stage0

114
doc/announce/ANNOUNCE-0.17 Normal file
View File

@ -0,0 +1,114 @@
Subject: GNU Mes 0.17 released [alpha]
<#secure method=pgpmime mode=sign>
We are delighted to announce the release of GNU Mes 0.17, representing
55 commits over 5 weeks.
Mes is now an official GNU package and we have bootstrapped gcc-4.7.4
for x86-linux with a reduced binary seed (i.e., without regular toolchain).
Next targets:
- upstream the x86 Mes bootstrap to GuixSD
- create a x86_64 Mes C Lib, see if that is is enough to bootstrap x86_64
- reduce the 1MB ASCII M1 seed to ~5000 LOC/~100KB of M2 source
- create a plan for Geesh and Gash and use them to reduce the
bootstrap binary dependencies
- and/or otherwise reduce the bootstrap binary dependencies
Packages are available from Guix's wip-bootstrap branch.
* About
GNU Mes[0] aims to help create full source bootstrapping for GNU/Linux
distributions such as GuixSD[1] as part of the bootstrappable builds[2]
effort.
It consists of a mutual self-hosting Scheme interpreter written in
~5,000 LOC of simple C and a Nyacc-based C compiler written in Scheme.
This mes.c is being simplified[3] to be transpiled by M2-Planet[4].
The Scheme interpreter (mes.c) has a Garbage Collector, a library of
loadable Scheme modules-- notably Dominique Boucher's LALR[5],
Pre-R6RS portable syntax-case[6] with R7RS ellipsis, Matt Wette's
Nyacc[7] --and test suite just barely enough to support a simple REPL
and simple C-compiler: MesCC.
Mes+MesCC can compile an only lightly patched TinyCC[8] that is
self-hosting. Using this tcc and the Mes C library we now have a
reduced-binary-seed bootstrap for the gnutools triplet: glibc-2.2.5,
binutils-2.20.1, gcc-4.7.4.
Mes is inspired by The Maxwell Equations of Software: LISP-1.5[9] --
John McCarthy page 13, GNU Guix's source/binary packaging transparency
and Jeremiah Orians's stage0[10] ~500 byte self-hosting hex assembler.
* Download
git clone git://git.savannah.gnu.org/mes.git
Here are the compressed sources and a GPG detached signature[*]:
https://alpha.gnu.org/gnu/mes/mes-0.17.tar.gz
https://alpha.gnu.org/gnu/mes/mes-0.17.tar.gz.sig
Use a mirror for higher download bandwidth:
https://www.gnu.org/order/ftp.html
Here are the MD5 and SHA1 checksums:
5e571c2f5ddaefbfe3dd618d69c40038 mes-0.17.tar.gz
1fbebe64ab330aec4c7ffbca88ea04b7be17458d mes-0.17.tar.gz
[*] Use a .sig file to verify that the corresponding file (without the
.sig suffix) is intact. First, be sure to download both the .sig file
and the corresponding tarball. Then, run a command like this:
gpg --verify mes-0.17.tar.gz.sig
If that command fails because you don't have the required public key,
then run this command to import it:
gpg --keyserver keys.gnupg.net --recv-keys 1A858392E331EAFDB8C27FFBF3C1A0D9C1D65273
and rerun the 'gpg --verify' command.
Mes runs from the source tree and can also be built, packaged and
installed in Guix[SD] from a git checkout by running
guix package -f .guix.scm
* Get informed, get involved
Join #bootstrappable on irc.freenode.net.
* Changes in 0.17 since 0.16.1
** Core
*** GNU Mes is now an official GNU package.
*** MesCC is now installed as a regular Guile package.
*** Support --srcdir build.
*** Support all standard GNU make targets.
** MesCC
*** Mes C Lib now bootstraps glibc-2.2.5, binutils-2.20.1, gcc-4.7.4.
* Changes in 0.16.1 since 0.16
** Core
*** Mes now builds out of the box on Debian buster/testing.
*** Mes now comes with a generic build recipe: build-aux/setup-mes.sh.
*** Mes now comes with INFO documentation.
** MesCC
*** MesCC now exits if spawning BLOOD_ELF, M1, or HEX2 fails.
Greetings,
janneke
[0] https://www.gnu.org/software/mes
[1] https://www.gnu.org/software/guix
[2] http://bootstrappable.org
[3] https://github.com/oriansj/mes-m2
[4] https://github.com/oriansj/m2-planet
[5] https://github.com/schemeway/lalr-scm
[6] https://www.cs.indiana.edu/chezscheme/syntax-case/old-psyntax.html
[7] https://www.nongnu.org/nyacc
[8] https://gitlab.com/janneke/tinycc
[9] http://www.softwarepreservation.org/projects/LISP/book/LISP%201.5%20Programmers%20Manual.pdf
[10] https://github.com/oriansj/stage0

View File

@ -96,4 +96,4 @@ Greetings,
Jan
[1] https://lists.nongnu.org/archive/html/guile-user/2016-09/msg00061.html
[2] http://www.softwarepreservation.org/projects/LISP/book/LISP%25201.5%2520Programmers%2520Manual.pdf
[2] http://www.softwarepreservation.org/projects/LISP/book/LISP%201.5%20Programmers%20Manual.pdf

View File

@ -100,4 +100,4 @@ Jan
[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
[5] http://www.softwarepreservation.org/projects/LISP/book/LISP%201.5%20Programmers%20Manual.pdf

View File

@ -74,6 +74,6 @@ janneke
[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
[5] http://www.softwarepreservation.org/projects/LISP/book/LISP%201.5%20Programmers%20Manual.pdf
[6] https://www.gnu.org/software/guix/
[7] https://github.com/oriansj/stage0

View File

@ -77,6 +77,6 @@ janneke
[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
[5] http://www.softwarepreservation.org/projects/LISP/book/LISP%201.5%20Programmers%20Manual.pdf
[6] https://www.gnu.org/software/guix/
[7] https://github.com/oriansj/stage0

View File

@ -77,7 +77,7 @@ janneke
[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
[5] http://www.softwarepreservation.org/projects/LISP/book/LISP%201.5%20Programmers%20Manual.pdf
[6] https://www.gnu.org/software/guix/
[7] https://github.com/oriansj/stage0
[8] https://gitlab.com/janneke/tinycc

View File

@ -63,7 +63,7 @@ janneke
[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
[5] http://www.softwarepreservation.org/projects/LISP/book/LISP%201.5%20Programmers%20Manual.pdf
[6] https://www.gnu.org/software/guix/
[7] https://github.com/oriansj/stage0
[8] https://gitlab.com/janneke/tinycc

View File

@ -90,4 +90,4 @@ janneke
[7] https://www.gnu.org/software/guile/docs/master/guile.html/PEG-Parsing.html
[8] https://gitlab.com/janneke/tinycc
[9] https://lists.gnu.org/archive/html/tinycc-devel/2017-05/msg00103.html
[10] http://www.softwarepreservation.org/projects/LISP/book/LISP%25201.5%2520Programmers%2520Manual.pdf
[10] http://www.softwarepreservation.org/projects/LISP/book/LISP%201.5%20Programmers%20Manual.pdf

View File

@ -283,7 +283,7 @@ distribution from source, using only an initial 500 byte binary seed?
As fate would have it, I stumbled upon this
@url{https://queue.acm.org/detail.cfm?id=1039523, interview with Alan
Kay}, where he shares a revelation he had when reading John McCarthy's
@url{http://www.softwarepreservation.org/projects/LISP/book/LISP%25201.5%2520Programmers%2520Manual.pdf,
@url{http://www.softwarepreservation.org/projects/LISP/book/LISP%201.5%20Programmers%20Manual.pdf,
LISP-1.5} manual:
@quotation