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:
parent
4003e3b721
commit
c0af8a1452
|
@ -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
|
||||||
|
|
1
HACKING
1
HACKING
|
@ -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.
|
||||||
|
|
8
INSTALL
8
INSTALL
|
@ -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
7
NEWS
|
@ -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
19
README
|
@ -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 |
13
doc/mes.texi
13
doc/mes.texi
|
@ -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}
|
||||||
|
|
||||||
|
|
|
@ -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.
|
||||||
*
|
*
|
||||||
|
|
Loading…
Reference in a new issue