doc: Release udpate.
authorJan Nieuwenhuizen <janneke@gnu.org>
Wed, 23 May 2018 20:48:00 +0000 (22:48 +0200)
committerJan Nieuwenhuizen <janneke@gnu.org>
Wed, 23 May 2018 20:48:00 +0000 (22:48 +0200)
* BOOTSTRAP: Update.
* HACKING: Update.
* NEWS: Update.
* README: Update.
* doc/ANNOUNCE-0.15: New file.

BOOTSTRAP
HACKING
NEWS
README
doc/ANNOUNCE-0.14
doc/ANNOUNCE-0.15 [new file with mode: 0644]

index 391359751f0f95980f9c551e5a4caef2d9d5e078..0ee93c89ea992ba39b403bc702b8efca857005b9 100644 (file)
--- a/BOOTSTRAP
+++ b/BOOTSTRAP
@@ -92,7 +92,9 @@ be source.
     https://gitlab.com/janneke/tinycc
 
 * TODO
-** have bootstrapped tcc compile gcc-4.7
+** 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.
 ** fix bootstrap-loops: (Nyacc?, mes.M2, psyntax.pp?)
@@ -101,6 +103,7 @@ be source.
 ** x86_64, arm, the Hurd
 
 * DONE
+** 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
diff --git a/HACKING b/HACKING
index 6c39932658756b6c34aac6edcccf0064f8d4c2b1..f69dffe3f090a02a2a2937afcf7cf32c130ec205 100644 (file)
--- a/HACKING
+++ b/HACKING
@@ -57,14 +57,16 @@ mes.c.
 
 
 * ROADMAP
-** TODO 
+** TODO
 *** release 0.x, unsorted
-  - mes-tcc: have bootstrapped tcc compile gcc-4.7.
+  - upstream mes-boot to GuixSD.
+  - add full source gcc-4.7 package build.
+  - replace GuixSD bootstrap for x86.
   - tcc: remove or upstream patches from tcc-boot
   - mes: prepare src/mes.c for M2-Planet transpiler.
   - mes: real module support, bonus for supporting Guile's define-module/define-public syntax.
   - mes: produce functional mes from mes.M1 transpiled by M2-Planet.
-  - mes: we're a full Scheme now, drop .MES prefix, use .SCM.
+  - mes: we're a full Scheme now, drop .MES suffix, use .SCM.
     + find a way to fix foo.mes/foo.scm trickery (full Guile-like module support?)
     + how about setting `guile' or even `guile-2' cond-expand features
       for external libraries (Nyacc) we look like Guile/Guile-2
@@ -89,6 +91,7 @@ mes.c.
   - add x86_64, replace GuixSD's bootstrap binaries for x86_64.
   - more architectures?
 ** DONE
+*** 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.13: Mes+MesCC now compiles a modified, functional tcc.c (~25,000LOC) in 1h30'.
 *** 0.12: Mes+MesCC now compiles mes.c (~3000LOC) in ~4min.
@@ -110,7 +113,7 @@ eenough to work on compiling tinycc's tcc.c albeit a somewhat modified version.
 * DEBUG
   MES_DEBUG=<level> mes
 ** Levels
-  1) Informational: 
+  1) Informational:
      - MODULEDIR
      - included SCM modules and sources
      - result of program
@@ -159,7 +162,7 @@ neat, Lisp/Scheme, bootstrapping and trusted binaries are probably not
 in scope as there is no mention of such things; only ML is mentioned
 while Guile is used for bootstrapping.
 
-* Assorted ideas and info 
+* Assorted ideas and info
 ** Using GDB on assembly/a.out
 info registers
 p/x $eax
@@ -186,7 +189,7 @@ out/i686-unknown-linux-gnu-mes --dump < module/mes/read-0.mes > module/mes/read-
 ** SC - c as s-expressions
 sc: http://sph.mn/content/3d3
 ** RNRS
-*** [[http://www.scheme-reports.org/][Scheme Reports]] 
+*** [[http://www.scheme-reports.org/][Scheme Reports]]
 *** [[ftp://publications.ai.mit.edu/ai-publications/pdf/AIM-349.pdf][Scheme - Report on Scheme]]
 *** [[ftp://publications.ai.mit.edu/ai-publications/pdf/AIM-452.pdf][RRS - Revised Report on Scheme]]
 
@@ -237,4 +240,3 @@ https://miyuki.github.io/2017/10/04/gcc-archaeology-1.html
 ** rain1's Bootstrapping Wiki: https://bootstrapping.miraheze.org/wiki/Main_Page
 ** rain1's hex86
 https://notabug.org/rain1/hex86/src/master/tests/hex0b3.hex86
-
diff --git a/NEWS b/NEWS
index 78dd8a09b842f12330875e6eae01de4cd747c0dd..153047d8e96caac934e77b62f793da80ce9c1f1c 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -10,6 +10,40 @@ Copyright © 2016,2017,2018 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
 
 Please send Mes bug reports to janneke@gnu.org.
 
+* Changes in 0.15 since 0.14
+** Core
+*** Support fork, exec, waitpid.
+*** Boot-0 loading has been refactored.
+*** MesCC now has out of the box Geiser support.
+** Language
+*** 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 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.
+*** MesCC now has a posixy command line interface.
+**** 70 new functions
+abs, access, alarm, alloca, atexit, atol, bcmp, bcopy, brk, bzero,
+chmod, clearerr, close, dup, dup2, execve, fabs, fcntl, fdgets, feof,
+fgets, fileno, fork, freopen, fscanf, fstat, fsync, getcwd, getgid,
+getpid, getrusage, getuid, index, ioctl, isalnum, isalpha, isascii,
+iscntrl, isprint, ispunct, kill, link, lseek, lstat, mkdir, mktemp,
+nanosleep, open, perror, pipe, raise, read, rename, rindex, rmdir,
+sbrk, sbrk, setitimer, signal, sleep, stat, strcspn, strdup, strerror,
+strncat, strpbrk, strspn, unlink, unsetenv, waitpid.
+**** 23 new stubs
+abort, atof, bsearch, bsearch, chown, ctime, fpurge, freadahead,
+frexp, getpwnam, gmtime, mbstowcs, pclose, popen, rewind, setbuf,
+sigsetmask, strftime, sys_siglist, system, times, umask, utime.
+**** 10 new C tests
+51-strcmp.c, 70-printf.c, 87-sscanf.c, 90-strpbrk.c, 91-fseek.c,
+92-stat.c, 93-fread-fwrite.c, 94-unsetenv.c, 95-signal.c, 96-strto.c.
+
 * Changes in 0.14 since 0.13
 ** Core
 *** Bootstrapped Mes+MesCC  now compiles a tcc that is self-hosting and only slightly patched.
diff --git a/README b/README
index c688d2dca7dd54a61e15071413d321f1908d759e..0b6dd0c1373c947aa4b9f72e6953d8b13a7e1b55 100644 (file)
--- a/README
+++ b/README
@@ -15,7 +15,8 @@ Guile's [[https://www.gnu.org/software/guile/docs/master/guile.html/PEG-Parsing.
 REPL and simple C-compiler: MesCC.
 
 Mes+MesCC can compile a only [[https://gitlab.com/janneke/tinycc][lightly modified TinyCC]] that is
-self-hosting.  A GNU Ccc-compiled tcc is [[https://lists.gnu.org/archive/html/tinycc-devel/2017-05/msg00103.html][known]] to compile GCC.
+self-hosting.  Using the Mes C library, this tcc can now build the
+gnutools triplet: binutils-2.14, gcc-2.95.3, glibc-2.2.5.
 
 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
@@ -30,9 +31,8 @@ Jeremiah Orians's stage0 ~300 byte self-hosting hex assembler.
 [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] 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
-[11] https://github.com/oriansj/stage0
+[9] http://www.softwarepreservation.org/projects/LISP/book/LISP%25201.5%2520Programmers%2520Manual.pdf
+[10] https://github.com/oriansj/stage0
 
 Mes is free software, it is distributed under the terms of the GNU
 General Public Licence version 3 or later.  See the file COPYING.
index 5ecc09b377ef0640e0ac6da0ca1d6cf720b52efb..e302a3c5648e65b976c417146e65654c12046742 100644 (file)
@@ -1,16 +1,18 @@
 Subject: Mes 0.14 released
 
-I am pleased to announce the release of Mes 0.14, representing 93
-commits over 3 weeks.  Mes+MesCC now compiles a self-hosting tcc that
-has only been slightly patched.
+I am pleased to announce the release of Mes 0.14, representing 98
+commits over 4 weeks.  Mes+MesCC now compiles a self-hosting TinyCC
+that has only been slightly patched.
 
 This means that we can now build a tcc that depends only on a 1MB
 ASCII M1 seed.  GuixSD currently uses a ~250MB binary seed to build
 gcc.
 
 Next targets are: build gcc using this almost full-source bootstrapped
-tcc, and reduce the 1MB ASCII M1 seed to a ~100KB almost source seed
-of M2 (a simple C-like language).
+tcc, and reduce the 1MB ASCII M1 seed to ~100KB of M2 source, which is
+a restricted subset of C.
+
+Packages are available from Guix's wip-bootstrap branch.
 
 * About
 
@@ -28,7 +30,7 @@ of M2 (a simple C-like language).
     enough to support a simple REPL (repl.mes) and simple C-compiler
     MesCC.
 
-    Mes+MesCC can compile a only slightly patched TinyCC[8] that is
+    Mes+MesCC can compile an only slightly patched TinyCC[8] that is
     self-hosting.  A GNU Ccc-compiled tcc is known[9] to compile GCC.
 
     Mes is inspired by The Maxwell Equations of Software: LISP-1.5[10]
@@ -79,8 +81,8 @@ installed in Guix[SD] by the usual
  **** 4 new functions
  __lshrdi3, __ashldi3, __ashrdi3, strncpy.
  **** 9 new mlibc stubs
-__fixdfdi, __fixsfdi, __fixunsxfdi, __fixxfdi, __floatundixf, ldexp,
__fixunsxfdi, __floatundixf, ldexp, strtod, strtof, strtold.
+ __fixdfdi, __fixsfdi, __fixunsxfdi, __fixxfdi, __floatundixf, ldexp,
+ strtod, strtof, strtold.
 
 Greetings,
 janneke
diff --git a/doc/ANNOUNCE-0.15 b/doc/ANNOUNCE-0.15
new file mode 100644 (file)
index 0000000..588f222
--- /dev/null
@@ -0,0 +1,106 @@
+Subject: Mes 0.15 released
+
+I am pleased to announce the release of Mes 0.15, representing 45
+commits over 3 weeks.  The GNU toolchain is getting bootstrapped!
+
+As of 0.14, Mes+MesCC compiles a self-hosting TinyCC.  Using the 0.15
+Mes C library, this TinyCC can build the GNU tools triplet:
+binutils-2.14, gcc-2.95.3, glibc-2.2.5.
+
+This means that we can build a GNU toolchain that depends only on a
+critical 1MB ASCII M1 seed.  GuixSD currently uses a ~250MB binary
+seed to build gcc.
+
+Next targets are: upstream the Mes bootstrap to GuixSD, build a
+Gcc-4.7 and Glibc-2.23, bootstrap utilities like bison, flex, grep,
+sed..., replace GuixSD's bootstrap for x86 and reduce the 1MB ASCII M1
+seed to ~5000 LOC/~100KB of M2 source, which is a restricted subset of
+C.
+
+Packages are available from Guix's wip-bootstrap branch.
+
+* About
+
+    Mes[0] aims to help create full source bootstrapping for GuixSD[1]
+    as part of the bootstrappable builds[2] project.
+
+    It currently consists of a mutual self-hosting Scheme interpreter
+    prototype in C and a Nyacc-based C compiler in Scheme.  This C
+    prototype is being simplified to be transpiled by M2-Planet[3].
+
+    The Scheme interpreter prototype (mes.c) has a Garbage Collector,
+    a library of loadable Scheme modules-- notably Dominique Boucher's
+    LALR[4], pre-R6RS portable syntax-case[5] with R7RS ellipsis, Matt
+    Wette's Nyacc[6], Guile's PEG[7] --and test suite just barely
+    enough to support a simple REPL (repl.mes) and simple C-compiler
+    MesCC.
+
+    Mes+MesCC can compile an only slightly patched TinyCC[8] that is
+    self-hosting.  Using the Mes C library, this tcc can now build the
+    GNU tools triplet: binutils-2.14, gcc-2.95.3, glibc-2.2.5.
+
+    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] ~300 byte self-hosting
+    hex assembler.
+
+* Download
+
+    git clone https://gitlab.com/janneke/mes
+
+    wget https://gitlab.com/janneke/mes/-/archive/v0.15/mes-0.15.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.15 since 0.14
+ ** Core
+ *** Support fork, exec, waitpid.
+ *** Boot-0 loading has been refactored.
+ *** MesCC now has out of the box Geiser support.
+ ** Language
+ *** 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 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.
+ *** MesCC now has a posixy command line interface.
+ **** 70 new functions
+ abs, access, alarm, alloca, atexit, atol, bcmp, bcopy, brk, bzero,
+ chmod, clearerr, close, dup, dup2, execve, fabs, fcntl, fdgets, feof,
+ fgets, fileno, fork, freopen, fscanf, fstat, fsync, getcwd, getgid,
+ getpid, getrusage, getuid, index, ioctl, isalnum, isalpha, isascii,
+ iscntrl, isprint, ispunct, kill, link, lseek, lstat, mkdir, mktemp,
+ nanosleep, open, perror, pipe, raise, read, rename, rindex, rmdir,
+ sbrk, sbrk, setitimer, signal, sleep, stat, strcspn, strdup, strerror,
+ strncat, strpbrk, strspn, unlink, unsetenv, waitpid.
+ **** 23 new stubs
+ abort, atof, bsearch, bsearch, chown, ctime, fpurge, freadahead,
+ frexp, getpwnam, gmtime, mbstowcs, pclose, popen, rewind, setbuf,
+ sigsetmask, strftime, sys_siglist, system, times, umask, utime.
+ **** 10 new C tests
+ 51-strcmp.c, 70-printf.c, 87-sscanf.c, 90-strpbrk.c, 91-fseek.c,
+ 92-stat.c, 93-fread-fwrite.c, 94-unsetenv.c, 95-signal.c, 96-strto.c.
+
+
+Greetings,
+janneke
+
+[0] https://gitlab.com/janneke/mes
+[1] https://www.gnu.org/software/guix
+[2] http://bootstrappable.org
+[3] https://github.com/oriansj/m2-planet
+[4] https://github.com/schemeway/lalr-scm
+[5] https://www.cs.indiana.edu/chezscheme/syntax-case/old-psyntax.html
+[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
+[10] https://github.com/oriansj/stage0