doc: Release update.

* BOOTSTRAP: Update.
* HACKING: Update.
* INSTALL: Update.
* NEWS: Update.
* README: Update.
* scaffold/tests/23-pointer.c: Add (janneke) to copyright line.
* doc/images/gcc-mesboot-graph.png: Update.
* doc/mes.texi (The Mes Bootstrap Process): Describe update.
This commit is contained in:
Jan Nieuwenhuizen 2018-06-26 22:22:56 +02:00
parent 4003e3b721
commit c0af8a1452
No known key found for this signature in database
GPG key ID: F3C1A0D9C1D65273
8 changed files with 33 additions and 21 deletions

View file

@ -83,7 +83,7 @@ be source.
https://gitlab.com/janneke/mes https://gitlab.com/janneke/mes
*** mes.c: a Scheme interpreter prototyped in C ~3000 Lines *** mes.c: a Scheme interpreter in ~5,000LOC of simple C
*** mescc: a C compiler written in Scheme (uses Nyacc C99 parser in Scheme) *** mescc: a C compiler written in Scheme (uses Nyacc C99 parser in Scheme)
*** mes.M2: this Scheme interpreter in preprocessed M2 *** mes.M2: this Scheme interpreter in preprocessed M2
@ -107,7 +107,7 @@ be source.
** have tcc-boot compile gnutools triplet: binutils-2.14, gcc-2.95.3, glibc-2.2.5. ** have tcc-boot compile gnutools triplet: binutils-2.14, gcc-2.95.3, glibc-2.2.5.
** have tcc-boot's mes-tcc compile a fully functional tcc ** have tcc-boot's mes-tcc compile a fully functional tcc
** hex.0, hex.1, M0 ** hex.0, hex.1, M0
** M1, hex2_linker prototyped in C ** M1, hex2_linker in simple C
** M2-Planet is now self-hosting, written in M2 ** M2-Planet is now self-hosting, written in M2
** mes+mescc are mutual self-hosting ** mes+mescc are mutual self-hosting
** patched tcc compiled with mes+mescc ** patched tcc compiled with mes+mescc

View file

@ -95,6 +95,7 @@ mes.c.
- add x86_64, replace GuixSD's bootstrap binaries for x86_64. - add x86_64, replace GuixSD's bootstrap binaries for x86_64.
- more architectures (does GuixSD require this, i.e. before 1.0?). - more architectures (does GuixSD require this, i.e. before 1.0?).
** DONE ** DONE
*** 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.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. *** 0.15: MesCC now has a libc+gnu that supports compiling binutils-2.14, gcc-2.95.3 and glibc-2.2.5.
*** 0.14: Mes+MesCC now compiles a slightly patched self-hosting tcc. *** 0.14: Mes+MesCC now compiles a slightly patched self-hosting tcc.

View file

@ -17,7 +17,7 @@ similar way.
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.4 is known to work. - [[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://savannah.gnu.org/projects/nyacc][Nyacc]], [[https://gitlab.com/janneke/nyacc][patched Nyacc]] 0.80.42 is known to work.
- GNU Gcc, 4.9.3 is known to work. - GNU Gcc, 4.9.3 is known to work.
- GNU Guile, version 2.0.12 or is know to work. - GNU Guile, version 2.0.12 or is know to work.
@ -42,13 +42,13 @@ similar way.
* Bootstrap build * Bootstrap build
The bootstrap build is being prototyped in GuixSD, see The bootstrap build is being developed in GuixSD, see
https://gitlab.com/janneke/guix/blob/wip-bootstrap/gnu/packages/mes.scm https://gitlab.com/janneke/guix/blob/wip-bootstrap/gnu/packages/mes.scm
** Prerequisites ** Prerequisites
- [[https://github.com/oriansj/mescc-tools][mescc-tools]], 0.4 is known to work. - [[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://savannah.gnu.org/projects/nyacc][Nyacc]], [[https://gitlab.com/janneke/nyacc][patched Nyacc]] 0.80.42 is known to work.
- [[https://github.com/oriansj/mescc-tools][mes-seed]], 0.15 is known to work. - [[https://gitlab.com/janneke/mes-seed][mes-seed]], 0.16 is known to work.
** Build it ** Build it
<setup environment, e.g. prefix, MES_SEED> <setup environment, e.g. prefix, MES_SEED>

7
NEWS
View file

@ -10,6 +10,13 @@ Copyright © 2016,2017,2018 Jan (janneke) 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.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.
* Changes in 0.16 since 0.15 * Changes in 0.16 since 0.15
** Core ** Core
*** Support building with tcc, including Mes Lib C in-line assembly. *** Support building with tcc, including Mes Lib C in-line assembly.

19
README
View file

@ -1,12 +1,15 @@
-*- org -*- -*- org -*-
Mes -- Maxwell Equations of Software Mes -- Maxwell Equations of Software
[[https://gitlab.com/janneke/mes][Mes]] aims to help create full source bootstrapping for [[https://www.gnu.org/software/guix][GuixSD]] as part [[http://gitlab.comog/janneke/mes][Mes]] aims to help create full
of the [[http://bootstrappable.org][bootstrappable builds]] effort. 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 It currently consists of a mutual self-hosting Scheme interpreter
prototype written in C and a Nyacc-based C compiler written in Scheme. written in ~5,000 LOC of simple C and a Nyacc-based C compiler written
This C prototype is [[https://github.com/oriansj/mes-m2][being simplified]] to be transpiled by [[https://github.com/oriansj/m2-planet][M2-Planet]]. 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 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]], library of loadable Scheme modules-- notably Dominique Boucher's [[https://github.com/schemeway/lalr-scm][LALR]],
@ -14,7 +17,7 @@ Pre-R6RS [[https://www.cs.indiana.edu/chezscheme/syntax-case/old-psyntax.html][p
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 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. REPL and simple C-compiler: MesCC.
Mes+MesCC can compile an only [[https://gitlab.com/janneke/tinycc][lightly patched TinyCC]] that is 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 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, 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.1.0.
@ -28,7 +31,7 @@ General Public Licence version 3 or later. See the file COPYING.
* Get it * Get it
git clone https://gitlab.com/janneke/mes git clone http://gitlab.com/janneke/mes
* Build it (see INSTALL for full instructions) * Build it (see INSTALL for full instructions)
@ -50,7 +53,7 @@ General Public Licence version 3 or later. See the file COPYING.
Please send Mes bug reports to janneke@gnu.org. Please send Mes bug reports to janneke@gnu.org.
[0] https://gitlab.com/janneke/mes [0] http://gitlab.com/janneke/mes
[1] https://www.gnu.org/software/guix [1] https://www.gnu.org/software/guix
[2] http://bootstrappable.org [2] http://bootstrappable.org
[3] https://github.com/oriansj/mes-m2 [3] https://github.com/oriansj/mes-m2
@ -59,6 +62,6 @@ General Public Licence version 3 or later. See the file COPYING.
[6] https://www.cs.indiana.edu/chezscheme/syntax-case/old-psyntax.html [6] https://www.cs.indiana.edu/chezscheme/syntax-case/old-psyntax.html
[7] https://www.nongnu.org/nyacc [7] https://www.nongnu.org/nyacc
[8] https://www.gnu.org/software/guile/docs/master/guile.html/PEG-Parsing.html [8] https://www.gnu.org/software/guile/docs/master/guile.html/PEG-Parsing.html
[9] https://gitlab.com/janneke/tinycc [9] http://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%25201.5%2520Programmers%2520Manual.pdf
[11] https://github.com/oriansj/stage0 [11] https://github.com/oriansj/stage0

Binary file not shown.

Before

Width:  |  Height:  |  Size: 68 KiB

After

Width:  |  Height:  |  Size: 828 KiB

View file

@ -501,14 +501,15 @@ binutils-source + binutils0 + gcc + glibc => binutils
gcc-source + binutils + gcc-core + glibc => gcc gcc-source + binutils + gcc-core + glibc => gcc
@end verbatim @end verbatim
@c FIXME: ./pre-inst-env guix graph --type=references gcc-mesboot@4.1.0 @c This graph is generated from wip-bootstrap, doing:
@c | dot -T png > gcc-mesboot-4.1.0.png
@c Using anything else (e.g. --type=package, --type=bag) produces an @c sed -i s,package-with-bootstrap-guile,identity, gnu/packages/{commencement,mes}.scm
@c unreadable image with *many* duplicates.
Here's a generated dependency diagram to give you impression, it is @c ./pre-inst-env guix graph gcc-mesboot | dot -T png >
not complete or correct. @c gcc-mesboot-graph.png
Here's a generated dependency diagram to give you impression, it is not
complete or correct.
@image{images/gcc-mesboot-graph,2in,,Reference graph of the gcc-mesboot} @image{images/gcc-mesboot-graph,2in,,Reference graph of the gcc-mesboot}

View file

@ -1,6 +1,6 @@
/* -*-comment-start: "//";comment-end:""-*- /* -*-comment-start: "//";comment-end:""-*-
* Mes --- Maxwell Equations of Software * Mes --- Maxwell Equations of Software
* Copyright © 2017 Jan Nieuwenhuizen <janneke@gnu.org> * Copyright © 2017 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
* *
* This file is part of Mes. * This file is part of Mes.
* *