mirror of
https://github.com/fosslinux/live-bootstrap.git
synced 2026-03-20 02:02:58 +01:00
Add mes and mescc-tools-extra
mescc-tools-extra contains two important tools: - cp - chmod mes first builds itself from a mes 0.21 seed as used by guix, and then builds a mes 0.22 and then mes 0.22 using that created mes 0.22. It does /not/ use bootstrap.sh as we don't have a proper shell at this point, it has been manually adapted for kaem.
This commit is contained in:
parent
2706e07556
commit
649d7b68dc
1029 changed files with 120985 additions and 18 deletions
81
sysa/mes-0.22/doc/announce/ANNOUNCE-0.13
Normal file
81
sysa/mes-0.22/doc/announce/ANNOUNCE-0.13
Normal file
|
|
@ -0,0 +1,81 @@
|
|||
Subject: Mes 0.13 released
|
||||
|
||||
I am pleased to announce the release of Mes 0.13, representing 45
|
||||
commits over 3 weeks. MesCC can now compile a functional tcc when
|
||||
running on Mes (in ~1h45') or on Guile (in ~3min).
|
||||
|
||||
This means that we are getting very close to a full source bootstrap
|
||||
of tcc: it is now built without gcc, glibc or guile; using only
|
||||
MesCC-tools and Mes sources and corresponding ascii/binary seeds.
|
||||
|
||||
* 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 a modified TinyCC[8] that is close to being
|
||||
self-hosting. A GNU Gcc-compiled tcc is known[9] to compile GCC.
|
||||
|
||||
Mes is inspired by The Maxwell Equations of Software: LISP-1.5[10]
|
||||
-- John McCarthy page 13, GNU Guix's source/binary packaging
|
||||
transparency and Jeremiah Orians's stage0[11] ~300 byte self-hosting
|
||||
hex assembler.
|
||||
|
||||
* Download
|
||||
|
||||
git clone https://gitlab.com/janneke/mes
|
||||
|
||||
wget https://gitlab.com/janneke/mes/-/archive/v0.13/mes-0.13.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.13 since 0.12
|
||||
** Core
|
||||
*** Bootstrapped Mes+MesCC can now compile a patched tcc in ~2h30' (~25,000 LOC).
|
||||
*** MesCC scripts for Mes and Guile are now merged; executable is: `mescc'.
|
||||
*** Mes now uses only one arena for stop-and-copy; doubles available size.
|
||||
*** Mes now has a Guile-like command-line interface (mes.repl has been removed).
|
||||
*** Mes now boots into a full Scheme by default.
|
||||
*** Mes can now be compiled (MES_MINI=1) to boot into a minimal Scheme (~2000 cells).
|
||||
*** Mes now creates less garbage in the reader and in
|
||||
append2, append_reverse, reverse, reverse!, vector-for-each, vector-to-list, vector-map.
|
||||
*** 5 new functions
|
||||
append-reverse, chmod, ioctl, isatty, isspace, last_pair, reverse!.
|
||||
** Language
|
||||
*** 3 new functions
|
||||
char-whitespace?, chmod, isatty?
|
||||
** Noteworthy bug fixes
|
||||
*** Two bugs in the jam scraper/garbage collector have been fixed.
|
||||
*** equal2_p now uses tail call elimination.
|
||||
*** Escaped characters in strings are now read and write'd correctly.
|
||||
*** The repl now expands macros again.
|
||||
|
||||
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] https://lists.gnu.org/archive/html/tinycc-devel/2017-05/msg00103.html
|
||||
[10] http://www.softwarepreservation.org/projects/LISP/book/LISP%201.5%20Programmers%20Manual.pdf
|
||||
[11] https://github.com/oriansj/stage0
|
||||
Loading…
Add table
Add a link
Reference in a new issue