core: Implement stack and frame.
[mes.git] / BOOTSTRAP
index 0ee93c89ea992ba39b403bc702b8efca857005b9..82e3c422318d1227a5e345fc85fbdae6c1c9d013 100644 (file)
--- a/BOOTSTRAP
+++ b/BOOTSTRAP
@@ -1,4 +1,11 @@
-bootstrappable.org project                                           -*- org -*-
+                                                              -*- org -*-
+#+TITLE: bootstrappable.org project
+
+Copyright © 2016, 2017, 2018 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
+
+  Copying and distribution of this file, with or without modification,
+  are permitted in any medium without royalty provided the copyright
+  notice and this notice are preserved.
 
 * What?
 ** Full source bootstrapping for GuixSD
@@ -51,12 +58,12 @@ about the bootstrap binaries and compilers?
 
 *** The current way out: Ignore the problem
 
- ``recipe for yoghurt: add yoghurt to milk''
+ ``recipe for yogurt: add yogurt to milk''
 
 *** New solution: Full source bootstrapping path
 
 * How?
-** Software: MesCC-tools, M2-Planet, Mes and MesCC
+** Software: MesCC-tools, M2-Planet, GNU Mes and MesCC
 ** MesCC-tools
 
     https://github.com/oriansj/mescc-tools
@@ -75,15 +82,15 @@ be source.
 *** M1: a macro assembler written in M0
 *** hex2: a hex2 linker written in M0
 *** M2-Planet: a self-hosting M2 (C-with-structs) transpiler written in M1
-*** Mes: A Scheme interpreter written in C, with cpp transformed into M2
+*** GNU Mes: A Scheme interpreter written in C, with cpp transformed into M2
 *** MesCC: A C compiler written in Scheme
 *** tcc-boot: a patched version of TinyCC
 
-** Mes and MesCC
+** GNU Mes and MesCC
 
-    https://gitlab.com/janneke/mes
+    https://www.gnu.org/software/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)
 *** mes.M2: this Scheme interpreter in preprocessed M2
 
@@ -92,21 +99,21 @@ be source.
     https://gitlab.com/janneke/tinycc
 
 * TODO
-** upstream mes-boot to GuixSD.
-** add full source gcc-4.7 package build.
-** replace GuixSD bootstrap for x86.
 ** remove or upstream patches from tcc-boot
 ** prepare src/mes.c for M2-Planet transpiler.
+** arm, the Hurd
 ** fix bootstrap-loops: (Nyacc?, mes.M2, psyntax.pp?)
 ** make GNU gcc (8.0?) bootstrappable again, remove [need for] tcc stage
-** integrate with GuixSD
-** x86_64, arm, the Hurd
-
 * DONE
+** upstream mes-boot to GuixSD.
+** replace GuixSD bootstrap for x86_64.
+** replace GuixSD bootstrap for x86.
+** add full source gcc-4.7 package build.
+** bootstrap gcc+glibc-built binutils-20.1, gcc-4.1.0.
 ** 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
 ** 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
 ** mes+mescc are mutual self-hosting
 ** patched tcc compiled with mes+mescc