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
100
sysa/mes-0.22/doc/announce/ANNOUNCE-0.16
Normal file
100
sysa/mes-0.22/doc/announce/ANNOUNCE-0.16
Normal file
|
|
@ -0,0 +1,100 @@
|
|||
Subject: Mes 0.16 released
|
||||
|
||||
I am pleased to announce the release of Mes 0.16, representing 27
|
||||
commits over 2 weeks.
|
||||
|
||||
A most annoying ELF header bug was fixed that suddenly had all Mes
|
||||
binaries segfault before entering `_start' on Linux 4.17 and later.
|
||||
|
||||
We now have binutils-2.20.1 and gcc-4.1.0, both compiled with
|
||||
gcc-2.95.3 and glibc-2.2.5.
|
||||
|
||||
This reduced-binary-seed bootstrap still depends on these bootstrap
|
||||
binaries: BOOTSTRAP-GUILE, flex, bash, bzip2, coreutils, diffutils,
|
||||
gawk, grep, gzip, make, sed, tar, on the small binary seeds:
|
||||
tinycc-seed, mescc-seed and on the mes.M1 ASCII seed.
|
||||
|
||||
Next targets:
|
||||
|
||||
- build a Gcc 4.7 and Glibc 2.23
|
||||
- upstream the x86 Mes bootstrap to GuixSD
|
||||
- reduce the 1MB ASCII M1 seed to ~5000 LOC/~100KB of M2 source
|
||||
- revive Gash: a posix shell for Guile to reduce the bootstrap binary
|
||||
dependencies
|
||||
- and/or otherwise reduce the bootstrap binary dependencies
|
||||
|
||||
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] effort.
|
||||
|
||||
It currently consists of a mutual self-hosting Scheme interpreter
|
||||
prototype written in C and a Nyacc-based C compiler written in Scheme.
|
||||
This C prototype is being simplified[3] to be transpiled by M2-Planet[4].
|
||||
|
||||
The Scheme interpreter prototype (mes.c) has a Garbage Collector, a
|
||||
library of loadable Scheme modules-- notably Dominique Boucher's LALR[5],
|
||||
Pre-R6RS portable syntax-case[6] with R7RS ellipsis, Matt Wette's Nyacc[7],
|
||||
Guile's PEG[8] --and test suite just barely enough to support a simple
|
||||
REPL and simple C-compiler: MesCC.
|
||||
|
||||
Mes+MesCC can compile an only lighty patched TinyCC[9] that is
|
||||
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,
|
||||
binutils-2.20.1, gcc-4.1.0.
|
||||
|
||||
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] ~500 byte self-hosting hex assembler.
|
||||
|
||||
* Download
|
||||
|
||||
git clone https://gitlab.com/janneke/mes
|
||||
|
||||
wget https://gitlab.com/janneke/mes/-/archive/v0.16/mes-0.16.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
|
||||
|
||||
* Get informed, get involved
|
||||
|
||||
Join #bootstrappable on irc.freenode.net.
|
||||
|
||||
* Changes in 0.16 since 0.15
|
||||
** Core
|
||||
*** Support building with tcc, including Mes Lib C in-line assembly.
|
||||
*** core:execl now supports 1000 arguments.
|
||||
** MesCC
|
||||
*** Mes Lib C now bootstraps glibc-2.2.5, binutils-2.20.1, gcc-4.1.0.
|
||||
*** MesCC binaries now run on Linux 4.17 too, i.e. survive Linus' new `sane mmap limits.'
|
||||
*** MesCC now runs with mescc-tools 0.5 (no = in long options).
|
||||
**** 3 new C test
|
||||
88-strrchrc, 97-fopen.c, 98-fopen.c.
|
||||
** Noteworthy bug fixes
|
||||
*** strrchr now stops when it reaches start of string.
|
||||
*** fopen now return 0 upon failure. Supports binutils' hack: fd=-2 means `cached'.
|
||||
*** vfprintf, vsprintf now support precision and width on integers strings better.
|
||||
*** fread now produces ungetc'd chars too.
|
||||
*** memcmp now supports comparing 0 bytes, supporting binutils.
|
||||
|
||||
*** The unused ELF header data section, identical to the text section, has been removed.
|
||||
|
||||
Greetings,
|
||||
janneke
|
||||
|
||||
[0] https://gitlab.com/janneke/mes
|
||||
[1] https://www.gnu.org/software/guix
|
||||
[2] http://bootstrappable.org
|
||||
[3] https://github.com/oriansj/mes-m2
|
||||
[4] https://github.com/oriansj/m2-planet
|
||||
[5] https://github.com/schemeway/lalr-scm
|
||||
[6] https://www.cs.indiana.edu/chezscheme/syntax-case/old-psyntax.html
|
||||
[7] https://www.nongnu.org/nyacc
|
||||
[8] https://www.gnu.org/software/guile/docs/master/guile.html/PEG-Parsing.html
|
||||
[9] https://gitlab.com/janneke/tinycc
|
||||
[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