doc: Release udpate.
* BOOTSTRAP: Update. * HACKING: Update. * NEWS: Update. * README: Update. * doc/ANNOUNCE-0.15: New file.
This commit is contained in:
parent
b6b93f9f19
commit
25651c6d51
|
@ -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
|
||||
|
|
8
HACKING
8
HACKING
|
@ -59,12 +59,14 @@ mes.c.
|
|||
* ROADMAP
|
||||
** 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.
|
||||
|
@ -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
|
||||
|
||||
|
|
34
NEWS
34
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.
|
||||
|
|
8
README
8
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.
|
||||
|
|
|
@ -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]
|
||||
|
@ -80,7 +82,7 @@ installed in Guix[SD] by the usual
|
|||
__lshrdi3, __ashldi3, __ashrdi3, strncpy.
|
||||
**** 9 new mlibc stubs
|
||||
__fixdfdi, __fixsfdi, __fixunsxfdi, __fixxfdi, __floatundixf, ldexp,
|
||||
__fixunsxfdi, __floatundixf, ldexp, strtod, strtof, strtold.
|
||||
strtod, strtof, strtold.
|
||||
|
||||
Greetings,
|
||||
janneke
|
||||
|
|
106
doc/ANNOUNCE-0.15
Normal file
106
doc/ANNOUNCE-0.15
Normal file
|
@ -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
|
Loading…
Reference in a new issue