Compare commits
11 Commits
master
...
wip-fosdem
Author | SHA1 | Date |
---|---|---|
Jan Nieuwenhuizen | b18623b0d1 | |
Jan Nieuwenhuizen | 9989a8674a | |
Jan Nieuwenhuizen | 927cc12607 | |
Jan Nieuwenhuizen | f6e1ceedef | |
Jan Nieuwenhuizen | e3d7414ac2 | |
Jan Nieuwenhuizen | eb94972b6b | |
Jan Nieuwenhuizen | c4eed1cdbd | |
Jan Nieuwenhuizen | 83a79020a5 | |
Jan Nieuwenhuizen | 1c5fcbdf21 | |
Jan Nieuwenhuizen | adf306350d | |
Jan Nieuwenhuizen | ddc160c188 |
|
@ -1,5 +1,5 @@
|
|||
;;; GNU Mes --- Maxwell Equations of Software
|
||||
;;; Copyright © 2018,2019,2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
;;; Copyright © 2018,2019 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Mes.
|
||||
;;;
|
||||
|
@ -34,31 +34,8 @@
|
|||
(scheme-mode
|
||||
.
|
||||
((geiser-active-implementations . (guile))
|
||||
|
||||
;; Guile syntax
|
||||
(eval . (put 'pass-if 'scheme-indent-function 1))
|
||||
(eval . (put 'pass-if-not 'scheme-indent-function 1))
|
||||
(eval . (put 'pass-if-eq 'scheme-indent-function 2))
|
||||
(eval . (put 'pass-if-equal 'scheme-indent-function 2))
|
||||
(eval . (put 'expect-fail 'scheme-indent-function 2))
|
||||
(eval . (put 'pass-if-timeout 'scheme-indent-function 2))
|
||||
|
||||
;; Guix package
|
||||
(eval . (put 'package 'scheme-indent-function 0))
|
||||
(eval . (put 'origin 'scheme-indent-function 0))
|
||||
|
||||
;; Guix 'modify-phases' and its keywords.
|
||||
(eval . (put 'modify-phases 'scheme-indent-function 1))
|
||||
(eval . (put 'replace 'scheme-indent-function 1))
|
||||
(eval . (put 'add-before 'scheme-indent-function 2))
|
||||
(eval . (put 'add-after 'scheme-indent-function 2))
|
||||
|
||||
;; Guix utils
|
||||
(eval . (put 'substitute* 'scheme-indent-function 1))
|
||||
|
||||
(eval
|
||||
.
|
||||
|
||||
(progn
|
||||
(defun prefix-dir-locals-dir (elt)
|
||||
(concat (locate-dominating-file buffer-file-name ".dir-locals.el") elt))
|
||||
|
|
|
@ -1,21 +1,3 @@
|
|||
# GNU Mes --- Maxwell Equations of Software
|
||||
# Copyright © 2016,2017,2019,2020,2022 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
#
|
||||
# This file is part of GNU Mes.
|
||||
#
|
||||
# GNU Mes is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 3 of the License, or (at
|
||||
# your option) any later version.
|
||||
#
|
||||
# GNU Mes is distributed in the hope that it will be useful, but
|
||||
# WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with GNU Mes. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
*-
|
||||
*~
|
||||
.#*
|
||||
|
@ -51,56 +33,42 @@
|
|||
*.mini-hex2
|
||||
*.a
|
||||
*.o
|
||||
*.h.m2
|
||||
*.c.m2
|
||||
*.seed-out
|
||||
*.stderr
|
||||
*.stdout
|
||||
|
||||
*.x86-out
|
||||
|
||||
/TAGS
|
||||
|
||||
/lib/x86-mes/0exit-42
|
||||
/lib/x86-mes/exit-42
|
||||
|
||||
/lib/tests/*/[0-9a][0-9a-z]-*
|
||||
!/lib/tests/*/*.c
|
||||
!/lib/tests/*/*.exit
|
||||
!/lib/tests/*/*.stdout
|
||||
|
||||
/scaffold/*.M1
|
||||
/scaffold/*.m2
|
||||
/scaffold/*.hex2
|
||||
/scaffold/argv
|
||||
/scaffold/hello
|
||||
/scaffold/main
|
||||
/scaffold/micro-mes
|
||||
/scaffold/read
|
||||
/scaffold/tiny-mes
|
||||
|
||||
/scaffold/argv-m2
|
||||
/scaffold/hello-m2
|
||||
/scaffold/main-m2
|
||||
/scaffold/micro-mes-m2
|
||||
/scaffold/read-m2
|
||||
/scaffold/tiny-mes-m2
|
||||
/scaffold/tests/[0-9a][0-9a-z]-*
|
||||
/scaffold/tests/t.*
|
||||
!/scaffold/tests/*.c
|
||||
!/scaffold/tests/*.exit
|
||||
!/scaffold/tests/*.stdout
|
||||
|
||||
/.config.make
|
||||
/.store
|
||||
/.tarball-version
|
||||
|
||||
/out
|
||||
?
|
||||
?.mes
|
||||
\#*#
|
||||
/doc/fosdem/fosdem.aux
|
||||
/doc/fosdem/fosdem.log
|
||||
/doc/fosdem/fosdem.nav
|
||||
/doc/fosdem/fosdem.out
|
||||
/doc/fosdem/fosdem.snm
|
||||
/doc/fosdem/fosdem.tex
|
||||
/doc/fosdem/fosdem.toc
|
||||
/doc/fosdem/fosdem.*vrb
|
||||
/doc/**/*.aux
|
||||
/doc/**/*.log
|
||||
/doc/**/*.nav
|
||||
/doc/**/*.out
|
||||
/doc/**/*.snm
|
||||
/doc/**/*.tex
|
||||
/doc/**/*.toc
|
||||
/doc/**/*.*vrb
|
||||
/doc/mes
|
||||
/doc/mes.1
|
||||
/doc/mes.info
|
||||
/doc/mes.pdf
|
||||
|
@ -135,7 +103,6 @@
|
|||
/doc/images/gcc-mesboot-graph.pdf
|
||||
/doc/web/
|
||||
/config.sh
|
||||
/include/arch
|
||||
/include/mes/config.h
|
||||
/gcc-lib
|
||||
/mescc-lib
|
||||
|
|
20
AUTHORS
|
@ -13,8 +13,6 @@ Additions and fixes throughout
|
|||
Jeremiah Orians <jeremiah@pdp10.guru>
|
||||
lib/stdio/fopen.c (first simple version of fopen)
|
||||
scaffold/tests/98-fopen.c
|
||||
Initial work on elf headers:
|
||||
lib/linux/x86-mes/elf32-header.hex2 and similar
|
||||
|
||||
Han-Wen Nienhuys <hanwen@xs4all.nl>
|
||||
lib/string/memmem.c (_memmem, memmem)
|
||||
|
@ -30,13 +28,6 @@ rain1
|
|||
scaffold/tests/90-goto-var.c
|
||||
scaffold/tests/91-goto-array.c
|
||||
|
||||
Nathalie Kopaczewski <natkopa@gmail.com>
|
||||
Fast long devision
|
||||
lib/div.c (__mesabi_log2i)
|
||||
|
||||
W. J. van der Laan <laanwj@protonmail.com>
|
||||
Bugfixes for logand, 64bit build, and va_arg
|
||||
|
||||
List of imported files
|
||||
|
||||
D A Gwyn
|
||||
|
@ -61,8 +52,11 @@ module/mes/getopt-long.scm
|
|||
Optargs from Guile
|
||||
mes/module/mes/optargs.scm
|
||||
|
||||
PEG from Guile
|
||||
mes/module/mes/peg/
|
||||
|
||||
Pmatch from Guile
|
||||
mes/module/system/base/pmatch.scm
|
||||
mes/module/mes/pmatch.scm
|
||||
|
||||
Pretty-print from Guile
|
||||
mes/module/mes/pretty-print.scm
|
||||
|
@ -86,12 +80,8 @@ lib/mach/msg.c
|
|||
lib/mach/mach-init.c
|
||||
lib/mach/*.S
|
||||
|
||||
M2-Planet dependencies
|
||||
lib/m2/x86/x86_defs.M1
|
||||
lib/m2/x86/ELF-x86.hex2
|
||||
|
||||
* legalese
|
||||
Copyright © 2016,2017,2018,2019,2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
Copyright © 2016,2017,2018,2019 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
|
||||
|
|
|
@ -160,5 +160,5 @@ be source.
|
|||
|
||||
* Contact
|
||||
** bug-mes@gnu.org
|
||||
** #bootstrappable, #guix on libera.chat
|
||||
** #bootstrappable, #guix on freenode
|
||||
** bootstrappable.org
|
||||
|
|
8
COPYING
|
@ -1,7 +1,7 @@
|
|||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 3, 29 June 2007
|
||||
|
||||
Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
|
||||
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
|
@ -645,7 +645,7 @@ the "copyright" line and a pointer to where the full notice is found.
|
|||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
|
@ -664,11 +664,11 @@ might be different; for a GUI interface, you would use an "about box".
|
|||
You should also get your employer (if you work as a programmer) or school,
|
||||
if any, to sign a "copyright disclaimer" for the program, if necessary.
|
||||
For more information on this, and how to apply and follow the GNU GPL, see
|
||||
<https://www.gnu.org/licenses/>.
|
||||
<http://www.gnu.org/licenses/>.
|
||||
|
||||
The GNU General Public License does not permit incorporating your program
|
||||
into proprietary programs. If your program is a subroutine library, you
|
||||
may consider it more useful to permit linking proprietary applications with
|
||||
the library. If this is what you want to do, use the GNU Lesser General
|
||||
Public License instead of this License. But first, please read
|
||||
<https://www.gnu.org/licenses/why-not-lgpl.html>.
|
||||
<http://www.gnu.org/philosophy/why-not-lgpl.html>.
|
||||
|
|
57
HACKING
|
@ -2,11 +2,9 @@
|
|||
#+TITLE: Hacking GNU Mes
|
||||
|
||||
* SETUP
|
||||
guix shell #64 bit + 32bit
|
||||
|
||||
CC=i686-unknown-linux-gnu-gcc ./configure
|
||||
CC=arm-unknown-linux-gnueabihf-gcc ./configure
|
||||
guix environment -l guix.scm #64 bit + 32bit
|
||||
|
||||
CC=i686-unkown-linux-gnu-gcc ./configure
|
||||
or
|
||||
./configure
|
||||
|
||||
|
@ -50,23 +48,6 @@ Configure to compile with Tiny CC
|
|||
- bytes read
|
||||
6) globals
|
||||
|
||||
* TESTING
|
||||
** make check recheck=true TESTS="tests/base lib/tests/scaffold/t.c"
|
||||
** mescc
|
||||
|
||||
*** To skip MES tests, in "./check.sh", comment-out check-boot.sh, check-mes.sh.
|
||||
|
||||
*** Running individual tests
|
||||
#+BEGIN_SRC bash
|
||||
cd gcc-lib
|
||||
V=2 CC=i686-unknown-linux-gnu-gcc ../pre-inst-env test-c.sh ../lib/tests/scaffold/t.c
|
||||
#+END_SRC
|
||||
|
||||
#+BEGIN_SRC bash
|
||||
cd mescc-lib
|
||||
V=2 CC=mescc ../pre-inst-env test-c.sh ../lib/tests/scaffold/t.c
|
||||
#+END_SRC
|
||||
|
||||
* Bugs
|
||||
** mes: performance, Mes is now 2-10x slower than Guile.
|
||||
** mes/mescc lack support for fork/exec on the Hurd.
|
||||
|
@ -130,30 +111,30 @@ x/s *((char **)($rsp+8))
|
|||
|
||||
** C parser/compiler
|
||||
*** [[https://savannah.gnu.org/projects/nyacc][nyacc]]
|
||||
*** PEG: [[https://piumarta.com/software/peg/][parse C using PEG]]
|
||||
*** PEG: [[http://piumarta.com/software/peg/][parse C using PEG]]
|
||||
*** [[https://en.wikipedia.org/wiki/Tiny_C_Compiler][Tiny C Compiler]]
|
||||
*** [[https://www.t3x.org/subc/index.html][Sub C]]
|
||||
*** [[http://www.t3x.org/subc/index.html][Sub C]]
|
||||
*** [[https://groups.google.com/forum/#!topic/comp.lang.lisp/VPuX0VsjTTE][C intepreter in LISP/Scheme/Python]]
|
||||
|
||||
** C assembler/linker
|
||||
*** [[https://www.tldp.org/HOWTO/Assembly-HOWTO/linux.html][Assembly HOWTO]]
|
||||
*** [[http://www.tldp.org/HOWTO/Assembly-HOWTO/linux.html][Assembly HOWTO]]
|
||||
*** ELF
|
||||
7f 45 4c 46
|
||||
*** [[https://www.muppetlabs.com/~breadbox/software/tiny/][Small ELF programs]]
|
||||
*** [[https://www.cirosantilli.com/elf-hello-world/][Elf hello world]]
|
||||
*** [[http://www.muppetlabs.com/~breadbox/software/tiny/][Small ELF programs]]
|
||||
*** [[http://www.cirosantilli.com/elf-hello-world/][Elf hello world]]
|
||||
** SC - c as s-expressions
|
||||
sc: https://sph.mn/content/3d3
|
||||
sc: http://sph.mn/content/3d3
|
||||
** RNRS
|
||||
*** [[https://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]]
|
||||
|
||||
** tiny schemes
|
||||
https://forum.osdev.org/viewtopic.php?f=15&t=19937
|
||||
http://forum.osdev.org/viewtopic.php?f=15&t=19937
|
||||
|
||||
https://www.stripedgazelle.org/joey/dreamos.html
|
||||
https://armpit.sourceforge.net/
|
||||
https://common-lisp.net/project/movitz/movitz.html
|
||||
http://www.stripedgazelle.org/joey/dreamos.html
|
||||
http://armpit.sourceforge.net/
|
||||
http://common-lisp.net/project/movitz/movitz.html
|
||||
|
||||
<civodul> janneke: https://github.com/namin/inc looks interesting [15:18]
|
||||
** Orians Jeremiah
|
||||
|
@ -170,13 +151,13 @@ https://common-lisp.net/project/movitz/movitz.html
|
|||
<janneke> OriansJ: i looked a few times and saw 'LISP empty', so thanks for
|
||||
the pointer! [00:24]
|
||||
<civodul> OriansJ, janneke: from that page, there's also:
|
||||
https://web.archive.org/web/20160604035203fw_/https://homepage.ntlworld.com/edmund.grimley-evans/bcompiler.html
|
||||
https://web.archive.org/web/20160604035203fw_/http://homepage.ntlworld.com/edmund.grimley-evans/bcompiler.html
|
||||
|
||||
** C4/C500
|
||||
https://web.archive.org/web/20160604041431/https://homepage.ntlworld.com/edmund.grimley-evans/cc500/cc500.c
|
||||
https://web.archive.org/web/20160604041431/http://homepage.ntlworld.com/edmund.grimley-evans/cc500/cc500.c
|
||||
https://github.com/rswier/c4/blob/master/c4.c
|
||||
** Compilers for free
|
||||
https://codon.com/compilers-for-free
|
||||
http://codon.com/compilers-for-free
|
||||
** Small lisps
|
||||
*** [[https://www.mirrorservice.org/sites/www.bitsavers.org/bits/TI/Explorer/zeta-c/][ZETA-C]]
|
||||
** Small C compilers
|
||||
|
@ -188,10 +169,10 @@ simple as possible.
|
|||
*** pcc
|
||||
*** early GCC?
|
||||
https://miyuki.github.io/2017/10/04/gcc-archaeology-1.html
|
||||
*** [[https://tack.sourceforge.net/][ack]]
|
||||
*** [[http://tack.sourceforge.net/][ack]]
|
||||
<rain1> it may be possible to compile like this: mes |> ack |> pcc |> tcc |>
|
||||
gcc 4.7.4 |> gcc later version... up to modern
|
||||
*** [[https://web.archive.org/web/20160402225843/https://homepage.ntlworld.com/edmund.grimley-evans/cc500/][cc500]]
|
||||
*** [[https://web.archive.org/web/20160402225843/http://homepage.ntlworld.com/edmund.grimley-evans/cc500/][cc500]]
|
||||
** rain1's Bootstrapping Wiki: https://bootstrapping.miraheze.org/wiki/Main_Page
|
||||
** rain1's hex86
|
||||
https://notabug.org/rain1/hex86/src/master/tests/hex0b3.hex86
|
||||
|
@ -202,7 +183,7 @@ https://notabug.org/rain1/hex86/src/master/tests/hex0b3.hex86
|
|||
** linux syscalls: https://fedora.juszkiewicz.com.pl/syscalls.html
|
||||
* legalese
|
||||
|
||||
Copyright © 2016,2017,2018,2019,2021,2022 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
Copyright © 2016,2017,2018,2019 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
|
||||
|
|
26
INSTALL
|
@ -1,7 +1,7 @@
|
|||
-*- org -*-
|
||||
#+TITLE: Building and Installing GNU Mes
|
||||
|
||||
Copyright © 2016,2017,2018,2019,2021,2022 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
Copyright © 2016,2017,2018,2019 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
|
||||
|
@ -20,20 +20,19 @@ similar way.
|
|||
** Prerequisites
|
||||
*** Guix
|
||||
#+BEGIN_SRC bash
|
||||
guix shell #64 bit + 32bit
|
||||
guix shell --system=i686-linux #32 bit only
|
||||
guix shell --system=armhf-linux #32 bit only
|
||||
guix environment -l guix.scm #64 bit + 32bit
|
||||
guix environment --system=i686-linux -l guix.scm #32 bit only
|
||||
#+END_SRC
|
||||
|
||||
*** Other GNU/Linux
|
||||
- [[https://savannah.gnu.org/projects/mescc-tools/][mescc-tools]], 1.4.0 is known to work.
|
||||
- [[https://github.com/oriansj/m2-planet][M2-Planet]] (optional), 1.9.0 is known to work.
|
||||
- [[https://savannah.gnu.org/projects/nyacc][Nyacc]], 1.00.2 is known to work.
|
||||
- GNU Gcc, 7.5.0 is known to work.
|
||||
- GNU Guile, version 3.0.4 is know to work.
|
||||
- SH, /bin/sh, GNU Bash 5.0.16 is known to work.
|
||||
- [[https://savannah.gnu.org/projects/mescc-tools/][mescc-tools]], 0.6.1 is known to work.
|
||||
- [[https://savannah.gnu.org/projects/nyacc][Nyacc]], 0.93.0 is known to work.
|
||||
- GNU Gcc, 4.9.3 is known to work.
|
||||
- GNU Guile, version 2.0.12 or is know to work.
|
||||
- SH, /bin/sh, GNU Bash 4.3 is known to work.
|
||||
- GNU coreutils
|
||||
- sed, GNU sed 4.8 is known to work.
|
||||
- sed, GNU sed 4.2 is known to work.
|
||||
- Perl, 5.22 is known to work.
|
||||
|
||||
** Build it
|
||||
|
||||
|
@ -79,9 +78,8 @@ The bootstrap build is part of Guix, see
|
|||
https://git.savannah.gnu.org/cgit/guix.git/tree/gnu/packages/commencement.scm
|
||||
|
||||
** Prerequisites
|
||||
- [[https://savannah.gnu.org/projects/mescc-tools/][mescc-tools]], 1.4.0 is known to work.
|
||||
- [[https://github.com/oriansj/m2-planet][M2-Planet]], 1.9.0 is known to work.
|
||||
- [[https://savannah.gnu.org/projects/nyacc][Nyacc]], 1.00.2 is known to work.
|
||||
- [[https://savannah.gnu.org/projects/mescc-tools/][mescc-tools]], 0.6.1 is known to work.
|
||||
- [[https://savannah.gnu.org/projects/nyacc][Nyacc]], 0.93.0 is known to work.
|
||||
|
||||
** Build it
|
||||
|
||||
|
|
74
NEWS
|
@ -2,7 +2,7 @@
|
|||
#+TITLE: GNU Mes NEWS – history of user-visible changes
|
||||
#+STARTUP: content hidestars
|
||||
|
||||
Copyright © 2016,2017,2018,2019,2021,2022,2023 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
Copyright © 2016,2017,2018,2019 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
|
||||
|
@ -10,78 +10,6 @@ Copyright © 2016,2017,2018,2019,2021,2022,2023 Jan (janneke) Nieuwenhuizen <jan
|
|||
|
||||
Please send Mes bug reports to bug-mes@gnu.org.
|
||||
|
||||
* Changes in 0.24.2 since 0.24.1
|
||||
** Build
|
||||
*** A number of compile warnings have been fixed.
|
||||
*** The `simple.make' and `simple.sh' builds have been resurrected.
|
||||
** MesCC
|
||||
*** Some assembly defines were added for building TinyCC for x86_64.
|
||||
*** `__assert_fail' has been updated to use the standard signature.
|
||||
** Noteworthy bug fixes
|
||||
*** A bootstrap build without M2-Planet is now supported again.
|
||||
*** `gettimeofday' no longer segfaults in the M2-Planet build.
|
||||
*** `stat64' and friends are now used on 32bit platforms.
|
||||
This fixes https://debbugs.gnu.org/41264, and should also fix
|
||||
https://debbugs.gnu.org/49985,
|
||||
https://debbugs.gnu.org/53415,
|
||||
https://debbugs.gnu.org/53416.
|
||||
*** The Mes C Library now supports uppercase hex conversions.
|
||||
* Changes in 0.24.1 since 0.24
|
||||
** Build
|
||||
*** Support M2-Planet bootstrap for ARM.
|
||||
** MesCC
|
||||
*** The Mes C Library now supports bootstrapping ARM.
|
||||
** Noteworthy bug fixes
|
||||
*** The definition of S_ISUID was fixed.
|
||||
*** Unsigned modulo has been fixed for ARM.
|
||||
*** A bug with abtol has been fixed.
|
||||
*** Workarounds for building with gcc-12.2.0 have been added.
|
||||
* Changes in 0.24 since 0.23
|
||||
** Core
|
||||
*** Mes and Mes C Library can now be built with M2-Planet.
|
||||
*** Mes now supports the --bootstrap build on ARM.
|
||||
** MesCC
|
||||
*** MesCC now supports the integer suffixes:
|
||||
Next to `U', also support `ULL', `UL', `L', and `LL'.
|
||||
** Noteworthy bug fixes
|
||||
*** MesCC now uses the unsigned type for sizeof.
|
||||
*** MesCC now only uses signed division if numerator is signed.
|
||||
*** The Mes C library now supports an argv bigger than 255.
|
||||
*** Development build support with Guile-2 was resurrected.
|
||||
*** The logand procedure now works correctly.
|
||||
*** The 64bit build was resurrected.
|
||||
|
||||
* Changes in 0.23.1 since 0.23
|
||||
** Build: Move to libera.chat.
|
||||
** Core
|
||||
*** Mes and Mes C Library can now support ARM bootstrap.
|
||||
** MesCC
|
||||
*** MesCC now supports ARM bootstrap.
|
||||
** Noteworthy bug fixes
|
||||
*** Stack frame 0 does not perform out of bounds access.
|
||||
*** MesCC's -m64 works again.
|
||||
*** Guile-2 support has been resurrected.
|
||||
*** logand has been fixed.
|
||||
*** Mes C Library now supports more than 255 command line parameters.
|
||||
|
||||
* Changes in 0.23 since 0.22
|
||||
** Core
|
||||
*** Mes and Mes C Library can now be built with GCC 10.x.
|
||||
** MesCC
|
||||
*** The Mes C Library now supports an armhf-linux bootstrap.
|
||||
*** MesCC now supports ARM.
|
||||
*** mini.c library was split into _exit.c, and _write.c.
|
||||
*** When building with GCC, -lgcc is now used.
|
||||
*** MesCC now has it's own support library libmescc.a (-lmescc).
|
||||
*** MesCC now requires mescc-tools-0.7.0 or later for ARM.
|
||||
*** MesCC can be now built with nyacc-1.00.2:
|
||||
note that nyacc-1.03.0 is not (backwards) compatible.
|
||||
*** MesCC can be built with Guile 3.0.x:
|
||||
See https://bugs.gnu.org/43831; use guild compile -O1 with Guile 3.0.x.
|
||||
*** MesCC now raises SIGABRT on abort, if supported.
|
||||
** Noteworthy bug fixes
|
||||
*** unreadchar on EOF is now a no-op.
|
||||
*** malloc now aligns the blocks it gives out to max_align_t.
|
||||
* Changes in 0.22 since 0.21
|
||||
** Core
|
||||
*** Mes now builds reproducibly with MesCC, cross distribution
|
||||
|
|
10
PORTING
|
@ -20,14 +20,16 @@ to your config.scm and run guix system reconfigure.
|
|||
|
||||
** Setup environment
|
||||
|
||||
For example (note: ARM is no longer a 'port', see HACKING)
|
||||
#+BEGIN_SRC bash
|
||||
guix shell --system=armhf-linux --pure bash coreutils diffutils findutils gawk gcc-toolchain grep git guile gzip help2man make mescc-tools nyacc openssh-sans-x pkg-config sed tar texinfo
|
||||
guix environment -s armhf-linux --pure --ad-hoc bash coreutils diffutils gawk gcc-toolchain grep guile help2man make nyacc pkg-config sed texinfo
|
||||
PATH=~/src/mescc-tools-arm/bin:$PATH
|
||||
#+END_SRC
|
||||
|
||||
(No git, graphviz on ARM yet).
|
||||
|
||||
** Try it
|
||||
#+BEGIN_SRC bash
|
||||
CC=gnu-triplet-gcc ./configure --with-courage --with-system-libc
|
||||
./configure --with-courage --with-system-libc
|
||||
./simple.sh
|
||||
#+END_SRC
|
||||
|
||||
|
@ -75,7 +77,7 @@ a Reduced Binary seed, thus significantly reducing the Trusted Computing
|
|||
Base (TCB), strategic decisions about the build process can start.
|
||||
|
||||
* Legalese
|
||||
Copyright © 2019,2022 Jan (janneke) Nieuwenhuizen <[[mailto:janneke@gnu.org][janneke@gnu.org]]>
|
||||
Copyright © 2019 Jan (janneke) Nieuwenhuizen <[[mailto:janneke@gnu.org][janneke@gnu.org]]>
|
||||
|
||||
Copying and distribution of this file, with or without modification,
|
||||
are permitted in any medium without royalty provided the copyright
|
||||
|
|
32
README
|
@ -6,32 +6,29 @@
|
|||
[[https://www.gnu.org/software/mes][GNU Mes]] is a Scheme interpreter and C compiler for bootstrapping the GNU
|
||||
System. Since version 0.22 it has again helped to halve the size of
|
||||
opaque, uninspectable binary seeds that are currently being used in the
|
||||
[[https://guix.gnu.org/blog/2020/guix-further-reduces-bootstrap-seed-to-25][Further Reduced Binary Seed bootstrap]] of [[https://www.gnu.org/software/guix][GNU Guix]]. The final goal is to
|
||||
help create a full-source bootstrap as part of the [[https://bootstrappable.org][bootstrappable builds]]
|
||||
[[https://guix.gnu.org/blog/2019/guix-reduces-bootstrap-seed-by-50/][Reduced Binary Seed bootstrap]] of [[https://www.gnu.org/software/guix][GNU Guix]]. The final goal is to help
|
||||
create a full source bootstrap as part of the [[http://bootstrappable.org][bootstrappable builds]]
|
||||
effort for UNIX-like operating systems.
|
||||
|
||||
The Scheme interpreter is written in ~5,000 LOC of simple C, and the C
|
||||
compiler written in Scheme and these are mutual self-hosting. Mes can
|
||||
now be bootstrapped from [[https://github.com/oriansj/m2-planet][M2-Planet]] and [[https://savannah.nongnu.org/projects/mescc-tools][Mescc-Tools]].
|
||||
compiler written in Scheme and these are mutual self-hosting. This
|
||||
mes.c is [[https://github.com/oriansj/mes-m2][being simplified]] to be transpiled by [[https://github.com/oriansj/m2-planet][M2-Planet]].
|
||||
|
||||
Mes has a Garbage Collector, a library of loadable Scheme modules--
|
||||
notably Dominique Boucher's [[https://github.com/schemeway/lalr-scm][LALR]], Pre-R6RS [[https://www.cs.indiana.edu/chezscheme/syntax-case/old-psyntax.html][portable syntax-case]] with
|
||||
R7RS ellipsis, Matt Wette's [[https://www.nongnu.org/nyacc][Nyacc]] --and test suite, just enough to
|
||||
support a REPL and a C99 compiler: mescc.
|
||||
|
||||
Mes + MesCC + Mes C Library can build a [[https://gitlab.com/janneke/tinycc][bootstrappable TinyCC]] that is
|
||||
Mes+MesCC can compile an only [[http://gitlab.com/janneke/tinycc][lightly patched TinyCC]] 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-2.95.3. This is enough to bootstrap Guix for
|
||||
i686-linux, x86_64-linux, armhf-linux and aarch64-linux.
|
||||
i686-linux and x86_64-linux.
|
||||
|
||||
Mes is inspired by The Maxwell Equations of Software: [[https://www.softwarepreservation.org/projects/LISP/book/LISP%201.5%20Programmers%20Manual.pdf][LISP-1.5]] -- John
|
||||
Mes is inspired by The Maxwell Equations of Software: [[http://www.softwarepreservation.org/projects/LISP/book/LISP%201.5%20Programmers%20Manual.pdf][LISP-1.5]] -- John
|
||||
McCarthy page 13, GNU Guix's source/binary packaging transparency and
|
||||
Jeremiah Orians's [[https://github.com/oriansj/stage0][stage0]] ~500 byte self-hosting hex assembler.
|
||||
|
||||
We are very grateful to NLNet for sponsoring the [[https://nlnet.nl/project/GNUMes][Reduced Binary Seed
|
||||
bootstrap]], the [[https://nlnet.nl/project/GNUMes-arm][ARM port]], and the [[https://nlnet.nl/project/GNUMes-ARM_RISC-V][Full Source Bootstrap.]]
|
||||
|
||||
GNU Mes is free software, it is distributed under the terms of the GNU
|
||||
General Public Licence version 3 or later. See the file [[file:COPYING][COPYING]].
|
||||
|
||||
|
@ -67,23 +64,20 @@ General Public Licence version 3 or later. See the file [[file:COPYING][COPYING
|
|||
|
||||
* Links
|
||||
[0] https://www.gnu.org/software/mes
|
||||
[1] https://guix.gnu.org/blog/2020/guix-further-reduces-bootstrap-seed-to-25
|
||||
[1] https://guix.gnu.org/blog/2019/guix-reduces-bootstrap-seed-by-50/
|
||||
[2] https://www.gnu.org/software/guix
|
||||
[3] https://bootstrappable.org
|
||||
[4] https://github.com/oriansj/m2-planet
|
||||
[5] https://savannah.nongnu.org/projects/mescc-tools
|
||||
[4] https://github.com/oriansj/mes-m2
|
||||
[5] https://github.com/oriansj/m2-planet
|
||||
[6] https://github.com/schemeway/lalr-scm
|
||||
[7] https://www.cs.indiana.edu/chezscheme/syntax-case/old-psyntax.html
|
||||
[8] https://www.nongnu.org/nyacc
|
||||
[9] https://gitlab.com/janneke/tinycc
|
||||
[10] [[https://www.softwarepreservation.org/projects/LISP/book/LISP%201.5%20Programmers%20Manual.pdf]]
|
||||
[11] https://savannah.nongnu.org/projects/stage0
|
||||
[12] https://nlnet.nl/project/GNUMes
|
||||
[13] https://nlnet.nl/project/GNUMes-arm
|
||||
[14] https://nlnet.nl/project/GNUMes-ARM_RISC-V
|
||||
[10] [[http://www.softwarepreservation.org/projects/LISP/book/LISP%201.5%20Programmers%20Manual.pdf]]
|
||||
[11] https://github.com/oriansj/stage0
|
||||
|
||||
* Legalese
|
||||
Copyright © 2016,2017,2018,2019,2020,2021,2022 Jan (janneke) Nieuwenhuizen <[[mailto:janneke@gnu.org][janneke@gnu.org]]>
|
||||
Copyright © 2016,2017,2018,2019 Jan (janneke) Nieuwenhuizen <[[mailto:janneke@gnu.org][janneke@gnu.org]]>
|
||||
|
||||
Copying and distribution of this file, with or without modification,
|
||||
are permitted in any medium without royalty provided the copyright
|
||||
|
|
53
ROADMAP
|
@ -1,7 +1,7 @@
|
|||
-*- org -*-
|
||||
#+TITLE: Tentative GNU Mes Road Map
|
||||
|
||||
Copyright © 2016,2017,2018,2019,2020,2022,2023 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
Copyright © 2016,2017,2018,2019 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
|
||||
|
@ -19,29 +19,27 @@ Since its inception, the project has gone a long way towards that goal. Below
|
|||
is a list of items we want for version "1.0" of GNU Mes.
|
||||
|
||||
You're welcome to discuss this road map on bug-mes@gnu.org or #bootstrappable
|
||||
on Libera Chat!
|
||||
on Freenode!
|
||||
|
||||
* TODO
|
||||
** release 0.x, unsorted
|
||||
- Full Guile module support.
|
||||
- Run Gash and Gash-Utils on Mes.
|
||||
- Remove Guile as a dependency for the Guix Full Source Bootstrap.
|
||||
- Integrate Full Source bootstrap for ARM on GNU Guix;
|
||||
see branch wip-aarch64-bootstrap.
|
||||
- Integrate Reduced Binary Seed bootstrap for ARM on GNU Guix;
|
||||
see branch wip-arm-bootstrap.
|
||||
- Introduce the Reduced Binary Seed bootstrap to NixOS (Debian,
|
||||
Arch, Gentoo, ...?).
|
||||
- Full Guile-compatible module support; see branch wip-module.
|
||||
- RISC-V support: Mes C Library and MesCC.
|
||||
- AArch64 support: Mes C Library and MesCC.
|
||||
- Simplify eval-apply and other core functionality
|
||||
+ See https://github.com/oriansj/mes-m2 fork/rewrite of mes.
|
||||
- Merge the Scheme-only bootstrap which uses Gash and Gash Core
|
||||
Utilities to remove from bootstrap-binary seed : Awk, Bash, Core
|
||||
Utilities, Grep, Gzip, Sed, Tar.
|
||||
- Introduce the Reduced Binaries Seed bootstrap to NixOS (Debian,
|
||||
Arch, Gentoo, ...?)
|
||||
- Full Source Bootstrap: compile mes.c using M2-Planet. Jeremiah
|
||||
branched-out from mes; see https://github.com/oriansj/mes-m2, also see the
|
||||
branches: wip-full-source-bootstrap, wip-m2-merge and wip-m2.
|
||||
- Full Guile-compatible module support: define-module, define-public,
|
||||
export, use-modules, ...
|
||||
- ARMv7/AArch64 support: Mes C Library and MesCC.
|
||||
- Simplify eval-apply and other core functionality (see mes-m2).
|
||||
- Support native x86_64 bootstrap.
|
||||
- Simplify MesCC ``MesCC should optimize ease of convincing us of its
|
||||
correctness''.
|
||||
- Switch to Autotools for development build (bootstrap builds use
|
||||
kaem.run and bootstrap.sh); see branch wip-auto.
|
||||
correctness''
|
||||
- tcc: remove or upstream patches from tcc-boot.
|
||||
- tcc: build 0.9.27 directly instead of via 0.9.26, see tinycc
|
||||
** after release 1.0
|
||||
- Build Guix packages using Mes: run or simplify (guix build utils),
|
||||
(guix build gnu-build-system).
|
||||
|
@ -50,12 +48,9 @@ on Libera Chat!
|
|||
- Bootstrap support for the Hurd. Most needed now are fork and exec.
|
||||
- Replace the initial gcc-2.95.3 with gcc-4.6.4.
|
||||
- FreeBSD, *BSD?
|
||||
- Tiny CC:
|
||||
+ remove or upstream patches from tcc-boot,
|
||||
+ build 0.9.27 directly instead of via 0.9.26; see tinycc branch
|
||||
wip-bootstrappable@0.9.27
|
||||
- Skip Tiny CC: Build gcc using MesCC.
|
||||
- Better garbage collector.
|
||||
wip-bootstrappable@0.9.27 branch
|
||||
- Skip tcc: Build gcc using MesCC.
|
||||
- better garbage collector.
|
||||
- mes/mescc: proper docstrings, api reference documentation.
|
||||
- mes/mescc: bootstrap a minimal Guile?
|
||||
+ libguile/{eval,init,list,strings,values,..}.
|
||||
|
@ -66,14 +61,6 @@ on Libera Chat!
|
|||
https://srfi.schemers.org/srfi-72/srfi-72.html, or
|
||||
+ ... drop it?
|
||||
* DONE
|
||||
- 0.24: Full Source Bootstrap:
|
||||
+ integrate into GNU Guix; see branch wip-full-source-bootstrap.
|
||||
- 0.23 Full Source Bootstrap:
|
||||
+ compile mes.c using M2-Planet; see branch wip-m2,
|
||||
- GNU Mes now supports building Tiny CC on ARM.
|
||||
- Merge the Scheme-only bootstrap which uses Gash and Gash Core
|
||||
Utilities to remove from bootstrap-binary seed : Awk, Bash, Core
|
||||
Utilities, Grep, Gzip, Sed, Tar.
|
||||
- 0.22 GNU Mes now builds reproducibly cross-platform, runs on the
|
||||
Hurd and has better support for other distributions and kernels.
|
||||
- 0.21 GNU Mes now supports a Scheme-only bootstrap and is packaged in
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# GNU Mes --- Maxwell Equations of Software
|
||||
# Copyright © 2018,2019,2021,2022,2023 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
# Copyright © 2018,2019 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
#
|
||||
# This file is part of GNU Mes.
|
||||
#
|
||||
|
@ -85,26 +85,17 @@ PHONY_TARGETS:=\
|
|||
|
||||
.PHONY: $(PHONY_TARGETS)
|
||||
|
||||
X86_ARCH_HEADERS = $(wildcard $(scrdest)include/linux/x86/*.h)
|
||||
ARCH_HEADERS = $(X86_ARCH_HEADERS:$(srcdest)include/linux/x86/%=include/arch/%)
|
||||
|
||||
default: all
|
||||
|
||||
all: doc
|
||||
|
||||
doc: build
|
||||
|
||||
build: | $(ARCH_HEADERS)
|
||||
build:
|
||||
$(SHELL) build.sh
|
||||
|
||||
src/${program_prefix}mes: build
|
||||
|
||||
include/arch/%.h: $(srcdest)include/$(mes_kernel)/$(mes_cpu)/%.h | arch-dir
|
||||
cp -f $< $@
|
||||
|
||||
arch-dir:
|
||||
mkdir -p include/arch
|
||||
|
||||
clean:
|
||||
rm -f *.o *.s bin/mes bin/mes-gcc bin/mes-mescc
|
||||
rm -f mes.{aux,cp,cps,fn,info,log,tmp,toc,vr,vrs}
|
||||
|
@ -113,7 +104,6 @@ clean:
|
|||
rm -f build-aux/mes-snarf.go
|
||||
rm -f module/mescc.go
|
||||
rm -f module/mes/*.go module/mescc/*.go
|
||||
rm -f module/mescc/armv4/*.go
|
||||
rm -f module/mescc/i386/*.go
|
||||
rm -f module/mescc/x86_64/*.go
|
||||
rm -rf gcc-lib/*.o gcc-lib/*.s gcc-lib/*.a gcc-lib/*-mes
|
||||
|
@ -144,7 +134,7 @@ maintainer-clean: distclean
|
|||
rm -f doc/version.texi
|
||||
|
||||
TAGS:
|
||||
etags ${srcdest}lib/*.c ${srcdest}lib/*/*.c ${srcdest}src/*.c ${srcdest}include/*.h ${srcdest}include/*/*.h ${srcdest}include/sys/*.h
|
||||
etags ${srcdest}lib/*.c ${srcdest}lib/*/*.c ${srcdest}src/*.c ${srcdest}include/*.h ${srcdest}include/sys/*.h
|
||||
|
||||
all-go:
|
||||
${srcdest}build-aux/build-guile.sh
|
||||
|
@ -270,16 +260,6 @@ WEB_IMAGES:=\
|
|||
web: info $(WEB_IMAGES)
|
||||
GENDOCS_TEMPLATE_DIR=doc build-aux/gendocs.sh -I doc -s ${srcdest}doc/mes.texi -o doc/web/manual --email bug-mes@gnu.org mes "GNU Mes manual"
|
||||
|
||||
SITE = /srv/mes.org
|
||||
publish: web
|
||||
rsync -P -v . $(SITE)/
|
||||
rsync -P -v . $(SITE)/manual/
|
||||
rsync -P -rvz doc/web/manual/ $(SITE)/manual/
|
||||
|
||||
LOCAL_SITE = $(HOME)/src/web/mes
|
||||
publish-local: web
|
||||
$(MAKE) publish SITE=$(LOCAL_SITE)
|
||||
|
||||
### dist
|
||||
COMMIT=$(shell test -e ${srcdest}.git && (cd ${srcdir} && git describe --dirty 2>/dev/null) || cat ${srcdest}.tarball-version)
|
||||
TARBALL_VERSION=$(COMMIT:v%=%)
|
||||
|
@ -301,10 +281,7 @@ GIT_LS_FILES:=find
|
|||
MTIME:=0
|
||||
endif
|
||||
|
||||
check-signature:
|
||||
git show HEAD --show-signature |grep 'gpg: Good signature'
|
||||
|
||||
dist: check-signature $(TARBALL)
|
||||
dist: $(TARBALL)
|
||||
|
||||
sign-dist: $(TARBALL)
|
||||
gpg -a --output $(TARBALL).sig --detach-sig $(TARBALL)
|
||||
|
@ -332,10 +309,8 @@ $(TARBALL): .tarball-version | generate-ChangeLog
|
|||
ifdef GUIX
|
||||
update-hash: $(TARBALL)
|
||||
$(GUIX) download file://$(PWD)/$<
|
||||
sed -i \
|
||||
-e 's,version #!mes!# "[^"]*"),version #!mes!# "$(VERSION)"),' \
|
||||
-e 's,(base32 #!mes!# "[^"]*"),(base32 #!mes!# "$(shell $(GUIX) hash $<)"),' \
|
||||
guix/git/mes.scm
|
||||
sed -i -e 's,(base32 #!mes!# "[^"]*"),(base32 #!mes!# "$(shell $(GUIX) hash $<)"),' guix/git/mes.scm
|
||||
|
||||
else
|
||||
$(warning update-hash: no guix)
|
||||
endif
|
||||
|
@ -345,72 +320,35 @@ tag:
|
|||
|
||||
# Release process
|
||||
# 0. Prepare git, see history:
|
||||
# - doc: Release update (NEWS, etc.)
|
||||
# - Generate announcement
|
||||
# + touch mes-0.23.tar.gz
|
||||
# + make gen-announce VERSION=0.23
|
||||
# + Update and commit doc/announce/ANNOUNCE-0.23,
|
||||
# using xxx (32,40) for checksums
|
||||
# - create "Release 0.23" commit (see Release 0.22).
|
||||
# + configure
|
||||
# + configure.sh
|
||||
# 1. Tag for release
|
||||
# make tag VERSION=0.23
|
||||
# 2. Create signed tarball
|
||||
# ./configure
|
||||
# make sign-dist
|
||||
# 3. Update Guix package description
|
||||
# make release
|
||||
# 4. Finish announcement
|
||||
# - make sum-announce
|
||||
# - doc: Release update
|
||||
# + NEWS, etc.
|
||||
# + doc/announce/ANNOUNCE-0.22, using xxx for checksums
|
||||
# - Release 0.22
|
||||
# 1. make tag VERSION=0.22
|
||||
# 2. make sign-dist
|
||||
# 3. make release
|
||||
# - Update doc/announce/ANNOUNCE-0.22
|
||||
# - doc: Post-release update.
|
||||
# - build-aux/GNUMakefile.in: gen-announce: update previous-version
|
||||
# 5. Verify
|
||||
# - Update package in Guix master.
|
||||
# - If applicable, verify bootstrap.
|
||||
# 6. Upload to ftp.gnu.org
|
||||
# 7. Update web
|
||||
# - make publish-local
|
||||
# - Update ~/src/web/mes/index.html
|
||||
# - Upload: cvs ci
|
||||
# 8. Create blog post
|
||||
# cp doc/announce/ANNOUNCE-0.23 ~/src/web/joyofsource.com/posts/announce-0.23.md
|
||||
# fix urls and all
|
||||
# 9. Send mail
|
||||
# To: info-gnu@gnu.org
|
||||
# Cc: bug-mes@gnu.org
|
||||
# Cc: guix-devel@gnu.org
|
||||
# Cc: bootstrappable@freelists.org
|
||||
# Cc: rb-general@lists.reproducible-builds.org
|
||||
# 4. verify bootstrap
|
||||
|
||||
guix-build:
|
||||
./pre-inst-env $(GUIX) build mes@$(VERSION) --with-source=$(TARBALL)
|
||||
|
||||
release: check-signature update-hash
|
||||
git commit -m 'guix: mes: Update to $(VERSION).' \
|
||||
-m '* guix/git/mes.scm (mes)[source]: Update to $(VERSION).' \
|
||||
guix/git/mes.scm
|
||||
release: update-hash | gen-announce guix-build
|
||||
|
||||
GPG_KEY_ID:=1A858392E331EAFDB8C27FFBF3C1A0D9C1D65273
|
||||
GEN_ANNOUNCE=$(GNULIB)/build-aux/announce-gen
|
||||
GNULIB=../../gnulib
|
||||
gen-announce:
|
||||
$(GEN_ANNOUNCE) \
|
||||
--release-type=beta \
|
||||
--package-name=mes \
|
||||
--previous-version='0.24.1' \
|
||||
--current-version=$(VERSION) \
|
||||
--gpg-key-id=$(GPG_KEY_ID) \
|
||||
--url-directory=https://ftp.gnu.org/gnu/mes \
|
||||
--news=NEWS \
|
||||
> doc/announce/ANNOUNCE-$(VERSION)
|
||||
|
||||
sum-announce:
|
||||
sed -i \
|
||||
-e "s, xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx $(PACKAGE)-$(VERSION).tar.gz, $(shell sha256sum $(PACKAGE)-$(VERSION).tar.gz)," \
|
||||
-e "s, xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx $(PACKAGE)-$(VERSION).tar.gz, $(shell sha1sum $(PACKAGE)-$(VERSION).tar.gz)," \
|
||||
-e "s, xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx $(PACKAGE)-$(VERSION).tar.gz, $(shell md5sum $(PACKAGE)-$(VERSION).tar.gz)," \
|
||||
doc/announce/ANNOUNCE-$(VERSION)
|
||||
$(GEN_ANNOUNCE)\
|
||||
--release-type=beta\
|
||||
--package-name=mes\
|
||||
--previous-version='0.21 '\
|
||||
--current-version=$(VERSION)\
|
||||
--gpg-key-id=$(GPG_KEY_ID)\
|
||||
--url-directory=https://ftp.gnu.org/gnu/mes\
|
||||
--news=NEWS\
|
||||
> doc/announce/ANNOUNCE-$(VERSION)-
|
||||
|
||||
installdirs: mkinstalldirs
|
||||
mkdir -p\
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
#! @SHELL@
|
||||
|
||||
# GNU Mes --- Maxwell Equations of Software
|
||||
# Copyright © 2019,2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
# Copyright © 2019 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
#
|
||||
# This file is part of GNU Mes.
|
||||
#
|
||||
|
@ -18,10 +18,6 @@
|
|||
# You should have received a copy of the GNU General Public License
|
||||
# along with GNU Mes. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
if test "$V" = 1 -o "$V" = 2; then
|
||||
set -x
|
||||
fi
|
||||
|
||||
LANG=
|
||||
MES_ARENA=${MES_ARENA-20000000}
|
||||
export MES_ARENA
|
||||
|
@ -35,14 +31,8 @@ MES_PREFIX=${MES_PREFIX-$PWD}
|
|||
. ${srcdest}build-aux/configure-lib.sh
|
||||
. ${srcdest}build-aux/cflags.sh
|
||||
|
||||
if test -n "@M2_PLANET@"; then
|
||||
echo " KAEM kaem.run"
|
||||
kaem --strict --verbose
|
||||
fi
|
||||
|
||||
CPPFLAGS="-D HAVE_CONFIG_H=1 -I include"
|
||||
libdir=$PWD/lib
|
||||
export libdir
|
||||
AM_CFLAGS=""
|
||||
mkdir -p mescc-lib
|
||||
cp config.sh mescc-lib/config.sh
|
||||
cd mescc-lib
|
||||
|
@ -50,8 +40,7 @@ srcdest=../${srcdest}
|
|||
ln -sf ${srcdest}mes .
|
||||
ln -sf ${srcdest}module .
|
||||
ln -sf ${srcdest}src .
|
||||
AM_CPPFLAGS="-D HAVE_CONFIG_H=1 -I ${srcdest}include -I ../include -I include"
|
||||
AM_CFLAGS="-L ${srcdest}lib"
|
||||
AM_CPPFLAGS="-D HAVE_CONFIG_H=1 -I ${srcdest}include -I ${srcdest}include/$mes_kernel/$mes_cpu"
|
||||
|
||||
mkdir -p $mes_cpu-mes
|
||||
$CC -c $AM_CPPFLAGS $CPPFLAGS $AM_CFLAGS $CFLAGS ${srcdest}lib/$mes_kernel/$mes_cpu-mes-$compiler/crt1.c
|
||||
|
@ -70,18 +59,6 @@ done
|
|||
echo " AR $mes_cpu-mes/libc-mini.a"
|
||||
$AR crD $mes_cpu-mes/libc-mini.a $objects
|
||||
|
||||
objects=
|
||||
for c in $libmescc_SOURCES; do
|
||||
o=$(basename $c .c).o
|
||||
if test ! -e $o -o ${srcdest}$c -nt $o; then
|
||||
echo " CC $c"
|
||||
$CC -c $AM_CPPFLAGS $CPPFLAGS $AM_CFLAGS $CFLAGS ${srcdest}$c
|
||||
fi
|
||||
objects="$objects $o"
|
||||
done
|
||||
echo " AR $mes_cpu-mes/libmescc.a"
|
||||
$AR crD $mes_cpu-mes/libmescc.a $objects
|
||||
|
||||
objects=
|
||||
for c in $libc_SOURCES; do
|
||||
o=$(basename $c .c).o
|
||||
|
@ -108,8 +85,7 @@ $AR crD $mes_cpu-mes/libc+tcc.a $objects
|
|||
|
||||
cd ..
|
||||
srcdest=
|
||||
AM_CPPFLAGS="-D HAVE_CONFIG_H=1 -I ${srcdest}include -I ../include -I include"
|
||||
AM_CFLAGS="-L ${srcdest}lib"
|
||||
CPPFLAGS="-D HAVE_CONFIG_H=1 -I ${srcdest}include -I ${srcdest}include/$mes_kernel/$mes_cpu"
|
||||
|
||||
objects=
|
||||
for c in $mes_SOURCES; do
|
||||
|
@ -122,7 +98,7 @@ for c in $mes_SOURCES; do
|
|||
done
|
||||
echo " CCLD bin/mes-mescc"
|
||||
mkdir -p bin
|
||||
$CC $AM_CFLAGS -nostdlib -o bin/mes-mescc -L mescc-lib mescc-lib/crt1.o $objects -lc -lmescc
|
||||
$CC -nostdlib -o bin/mes-mescc -L mescc-lib mescc-lib/crt1.o $objects -lc
|
||||
cp bin/mes-mescc bin/mes
|
||||
|
||||
(
|
||||
|
|
|
@ -34,8 +34,6 @@ module/mescc/M1.scm
|
|||
module/mescc/as.scm
|
||||
module/mescc/bytevectors.scm
|
||||
module/mescc/compile.scm
|
||||
module/mescc/armv4/as.scm
|
||||
module/mescc/armv4/info.scm
|
||||
module/mescc/i386/as.scm
|
||||
module/mescc/i386/info.scm
|
||||
module/mescc/x86_64/as.scm
|
||||
|
@ -62,6 +60,6 @@ for i in $SCM_FILES $SCRIPTS; do
|
|||
go=${i%%.scm}.go
|
||||
f=${srcdest}$i
|
||||
if test $f -nt $go; then
|
||||
trace "GUILEC $f" $GUILD compile $GUILD_OPTIMIZE -L ${srcdest}module -L ${srcdest}build-aux -L ${srcdest}scripts -o $go $f
|
||||
trace "GUILEC $f" $GUILD compile -L ${srcdest}module -L ${srcdest}build-aux -L ${srcdest}scripts -o $go $f
|
||||
fi
|
||||
done
|
||||
|
|
|
@ -44,12 +44,6 @@ if test -e libmes.s; then
|
|||
cp libmes.s $mes_cpu-mes
|
||||
fi
|
||||
|
||||
archive libmescc.a $libmescc_SOURCES
|
||||
cp libmescc.a $mes_cpu-mes
|
||||
if test -e libmescc.s; then
|
||||
cp libmescc.s $mes_cpu-mes
|
||||
fi
|
||||
|
||||
if test $mes_libc = mes; then
|
||||
archive libc.a $libc_SOURCES
|
||||
cp libc.a $mes_cpu-mes
|
||||
|
@ -64,6 +58,16 @@ if test -e libc+tcc.s; then
|
|||
cp libc+tcc.s $mes_cpu-mes
|
||||
fi
|
||||
|
||||
if $courageous; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
archive libc+gnu.a $libc_gnu_SOURCES
|
||||
cp libc+gnu.a $mes_cpu-mes
|
||||
if test -e libc+gnu.s; then
|
||||
cp libc+gnu.s $mes_cpu-mes
|
||||
fi
|
||||
|
||||
archive libtcc1.a $libtcc1_SOURCES
|
||||
cp libtcc1.a $mes_cpu-mes
|
||||
if test -e libtcc1.s; then
|
||||
|
@ -75,13 +79,3 @@ cp libgetopt.a $mes_cpu-mes
|
|||
if test -e libgetopt.s; then
|
||||
cp libgetopt.s $mes_cpu-mes
|
||||
fi
|
||||
|
||||
if $courageous; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
archive libc+gnu.a $libc_gnu_SOURCES
|
||||
cp libc+gnu.a $mes_cpu-mes
|
||||
if test -e libc+gnu.s; then
|
||||
cp libc+gnu.s $mes_cpu-mes
|
||||
fi
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
#! /bin/sh
|
||||
|
||||
# GNU Mes --- Maxwell Equations of Software
|
||||
# Copyright © 2019,2021 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
# Copyright © 2019 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
#
|
||||
# This file is part of GNU Mes.
|
||||
#
|
||||
|
@ -30,25 +30,28 @@ fi
|
|||
. ./config.sh
|
||||
. ${srcdest}build-aux/trace.sh
|
||||
. ${srcdest}build-aux/cc.sh
|
||||
. ${srcdest}build-aux/configure-lib.sh
|
||||
|
||||
trap 'test -f .log && cat .log' EXIT
|
||||
|
||||
for c in $mes_SOURCES; do
|
||||
mes_sources="
|
||||
src/gc.c
|
||||
src/hash.c
|
||||
src/lib.c
|
||||
src/math.c
|
||||
src/mes.c
|
||||
src/module.c
|
||||
src/posix.c
|
||||
src/reader.c
|
||||
src/string.c
|
||||
src/struct.c
|
||||
src/vector.c
|
||||
"
|
||||
|
||||
for c in $mes_sources; do
|
||||
compile $c
|
||||
done
|
||||
if test $mes_libc = system; then
|
||||
LIBS=-lmes
|
||||
fi
|
||||
if [ "$compiler" = "gcc" ]
|
||||
then
|
||||
# Make it possible to resolve raise(), required by libgcc.a, provided in
|
||||
# libc.a. The final command line has to have "-lc -lgcc -lc".
|
||||
# See <https://www.openwall.com/lists/musl/2018/05/09/1>.
|
||||
LIBS="${LIBS} -lgcc -lc"
|
||||
fi
|
||||
if [ "$compiler" = "mescc" ]; then
|
||||
LIBS="${LIBS} -lc -lmescc"
|
||||
fi
|
||||
link bin/mes-$compiler
|
||||
cp bin/mes-$compiler bin/mes
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
#! /bin/sh
|
||||
|
||||
# GNU Mes --- Maxwell Equations of Software
|
||||
# Copyright © 2017,2018,2019,2022 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
# Copyright © 2017,2018,2019 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
#
|
||||
# This file is part of GNU Mes.
|
||||
#
|
||||
|
@ -29,7 +29,6 @@ fi
|
|||
|
||||
. ./config.sh
|
||||
. ${srcdest}build-aux/trace.sh
|
||||
. ${srcdest}build-aux/cflags.sh
|
||||
|
||||
if $courageous; then
|
||||
set +e
|
||||
|
@ -43,6 +42,25 @@ else
|
|||
}
|
||||
fi
|
||||
|
||||
case "$mes_cpu" in
|
||||
arm)
|
||||
stage0_arch=40
|
||||
stage0_cpu=armv7l
|
||||
;;
|
||||
x86_64)
|
||||
stage0_arch=2
|
||||
stage0_cpu=amd64
|
||||
;;
|
||||
x86)
|
||||
stage0_arch=1
|
||||
stage0_cpu=x86
|
||||
;;
|
||||
*)
|
||||
stage0_arch=1
|
||||
stage0_cpu=$mes_cpu
|
||||
;;
|
||||
esac
|
||||
|
||||
trace "CCLD ${srcdest}lib/$mes_kernel/$mes_cpu-mes-$compiler/exit-42.S" $CC\
|
||||
-nostdlib\
|
||||
-g\
|
||||
|
@ -61,11 +79,12 @@ else
|
|||
fi
|
||||
|
||||
trace "HEX2 ${srcdest}lib/$mes_kernel/$mes_cpu-mes/elf$mes_bits-0exit-42.hex2" $HEX2\
|
||||
--little-endian\
|
||||
--LittleEndian\
|
||||
$stage0_cpu_flag\
|
||||
--base-address 0x1000000\
|
||||
--BaseAddress 0x1000000\
|
||||
-f ${srcdest}lib/$mes_kernel/$mes_cpu-mes/elf$mes_bits-0header.hex2\
|
||||
-f ${srcdest}lib/$mes_kernel/$mes_cpu-mes/elf$mes_bits-0exit-42.hex2\
|
||||
--exec_enable\
|
||||
-o 0exit-42
|
||||
|
||||
trace "TEST 0exit-42"
|
||||
|
@ -74,12 +93,13 @@ trace "TEST 0exit-42"
|
|||
[ $r = 42 ]
|
||||
|
||||
trace "HEX2 ${srcdest}lib/$mes_kernel/$mes_cpu-mes/elf$mes_bits-body-exit-42.hex2" $HEX2\
|
||||
--little-endian\
|
||||
--LittleEndian\
|
||||
$stage0_cpu_flag\
|
||||
--base-address 0x1000000\
|
||||
--BaseAddress 0x1000000\
|
||||
-f ${srcdest}lib/$mes_kernel/$mes_cpu-mes/elf$mes_bits-header.hex2\
|
||||
-f ${srcdest}lib/$mes_kernel/$mes_cpu-mes/elf$mes_bits-body-exit-42.hex2\
|
||||
-f ${srcdest}lib/$mes_kernel/$mes_cpu-mes/elf$mes_bits-footer-single-main.hex2\
|
||||
--exec_enable\
|
||||
-o body-exit-42
|
||||
|
||||
trace "TEST body-exit-42"
|
||||
|
@ -100,11 +120,12 @@ trace "TEST hello-mes"
|
|||
[ $r = 0 ]
|
||||
|
||||
trace "HEX2 ${srcdest}lib/$mes_kernel/$mes_cpu-mes/elf$mes_bits-0hello-mes.hex2" $HEX2\
|
||||
--little-endian\
|
||||
--LittleEndian\
|
||||
$stage0_cpu_flag\
|
||||
--base-address 0x1000000\
|
||||
--BaseAddress 0x1000000\
|
||||
-f ${srcdest}lib/$mes_kernel/$mes_cpu-mes/elf$mes_bits-0header.hex2\
|
||||
-f ${srcdest}lib/$mes_kernel/$mes_cpu-mes/elf$mes_bits-0hello-mes.hex2\
|
||||
--exec_enable\
|
||||
-o 0hello-mes
|
||||
|
||||
trace "TEST 0hello-mes"
|
||||
|
@ -113,12 +134,13 @@ trace "TEST 0hello-mes"
|
|||
[ $r = 0 ]
|
||||
|
||||
trace "HEX2 ${srcdest}lib/$mes_kernel/$mes_cpu-mes/elf$mes_bits-body-hello-mes.hex2" $HEX2\
|
||||
--little-endian\
|
||||
--LittleEndian\
|
||||
$stage0_cpu_flag\
|
||||
--base-address 0x1000000\
|
||||
--BaseAddress 0x1000000\
|
||||
-f ${srcdest}lib/$mes_kernel/$mes_cpu-mes/elf$mes_bits-header.hex2\
|
||||
-f ${srcdest}lib/$mes_kernel/$mes_cpu-mes/elf$mes_bits-body-hello-mes.hex2\
|
||||
-f ${srcdest}lib/$mes_kernel/$mes_cpu-mes/elf$mes_bits-footer-single-main.hex2\
|
||||
--exec_enable\
|
||||
-o body-hello-mes
|
||||
|
||||
trace "TEST body-hello-mes"
|
||||
|
|
|
@ -49,22 +49,5 @@ for c in $libc_gnu_SOURCES; do
|
|||
done
|
||||
cp libc+gnu.c $mes_cpu-mes
|
||||
|
||||
rm -f libtcc1.c
|
||||
cat > libtcc1.c <<EOF
|
||||
// Generated from Mes -- do not edit
|
||||
// compiler: $compiler
|
||||
// cpu: $mes_cpu
|
||||
// bits: $mes_bits
|
||||
// libc: $mes_libc
|
||||
// kernel: $mes_kernel
|
||||
// system: $mes_system
|
||||
|
||||
EOF
|
||||
for c in $libtcc1_SOURCES; do
|
||||
echo "// $c" >> libtcc1.c
|
||||
cat ${srcdest}$c >> libtcc1.c
|
||||
echo >> libtcc1.c
|
||||
done
|
||||
cp libtcc1.c $mes_cpu-mes
|
||||
|
||||
cp ${srcdest}lib/libtcc1.c $mes_cpu-mes
|
||||
cp ${srcdest}lib/posix/getopt.c $mes_cpu-mes/libgetopt.c
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
#! /bin/sh
|
||||
|
||||
# GNU Mes --- Maxwell Equations of Software
|
||||
# Copyright © 2018,2019,2022 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
# Copyright © 2018,2019 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
#
|
||||
# This file is part of GNU Mes.
|
||||
#
|
||||
|
@ -66,8 +66,9 @@ fi
|
|||
AM_CPPFLAGS="
|
||||
-D HAVE_CONFIG_H=1
|
||||
-I ${srcdest}lib
|
||||
-I include
|
||||
-I ${srcdest}include
|
||||
-I ../include
|
||||
-I ${srcdest}include/$mes_kernel/$mes_cpu
|
||||
"
|
||||
if test $mes_kernel = gnu; then
|
||||
AM_CPPFLAGS="$AM_CPPFLAGS
|
||||
|
@ -92,32 +93,15 @@ fi
|
|||
AM_CPPFLAGS="
|
||||
-D HAVE_CONFIG_H=1
|
||||
-I ${srcdest}lib
|
||||
-I ${srcdest}include
|
||||
-I ../include
|
||||
-I include
|
||||
-I ${srcdest}include
|
||||
-I ${srcdest}include/$mes_kernel/$mes_cpu
|
||||
"
|
||||
if test "$compiler" != bootstrap; then
|
||||
if test $compiler = gcc; then
|
||||
${SHELL} ${srcdest}build-aux/build-mes.sh
|
||||
fi
|
||||
)
|
||||
|
||||
if test -n "$M2_PLANET" && (test "$mes_cpu" == "x86" \
|
||||
|| test "$mes_cpu" == "arm"); then
|
||||
(
|
||||
. ${srcdest}build-aux/trace.sh
|
||||
if [ -z "$V" -o "$V" = 0 ]; then
|
||||
__verbose=
|
||||
else
|
||||
__verbose=--verbose
|
||||
fi
|
||||
trace "KAEM scaffold/main.kaem" kaem --strict $__verbose -f scaffold/main.kaem
|
||||
trace "KAEM scaffold/hello.kaem" kaem --strict $__verbose -f scaffold/hello.kaem
|
||||
trace "KAEM scaffold/argv.kaem" kaem --strict $__verbose -f scaffold/argv.kaem
|
||||
trace "KAEM scaffold/read.kaem" kaem --strict $__verbose -f scaffold/read.kaem
|
||||
trace "KAEM kaem.run" kaem --strict $__verbose
|
||||
)
|
||||
fi
|
||||
|
||||
(
|
||||
mkdir -p mescc-lib
|
||||
cp config.sh mescc-lib
|
||||
|
@ -136,9 +120,9 @@ fi
|
|||
AM_CPPFLAGS="
|
||||
-D HAVE_CONFIG_H=1
|
||||
-I ${srcdest}lib
|
||||
-I ${srcdest}include
|
||||
-I ../include
|
||||
-I include
|
||||
-I ${srcdest}include
|
||||
-I ${srcdest}include/$mes_kernel/$mes_cpu
|
||||
"
|
||||
compiler=mescc
|
||||
AR=${MESAR-"${srcdest}pre-inst-env mesar"}
|
||||
|
@ -150,7 +134,6 @@ fi
|
|||
${SHELL} ${srcdest}build-aux/build-lib.sh
|
||||
${SHELL} ${srcdest}build-aux/build-source-lib.sh
|
||||
if $bootstrap; then
|
||||
rm -f globals.* # FIXME: avoid name clash with globals from lib
|
||||
${SHELL} ${srcdest}build-aux/build-mes.sh
|
||||
cp -f bin/mes-mescc ../bin
|
||||
cp -f bin/mes ../bin
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# GNU Mes --- Maxwell Equations of Software
|
||||
# Copyright © 2018,2019,2020,2022 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
# Copyright © 2018,2019 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
#
|
||||
# This file is part of GNU Mes.
|
||||
#
|
||||
|
@ -16,25 +16,6 @@
|
|||
# You should have received a copy of the GNU General Public License
|
||||
# along with GNU Mes. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
case "$mes_cpu" in
|
||||
arm)
|
||||
stage0_arch=40
|
||||
stage0_cpu=armv7l
|
||||
;;
|
||||
x86_64)
|
||||
stage0_arch=2
|
||||
stage0_cpu=amd64
|
||||
;;
|
||||
x86)
|
||||
stage0_arch=1
|
||||
stage0_cpu=x86
|
||||
;;
|
||||
*)
|
||||
stage0_arch=1
|
||||
stage0_cpu=$mes_cpu
|
||||
;;
|
||||
esac
|
||||
|
||||
AM_CPPFLAGS="
|
||||
-D HAVE_CONFIG_H=1
|
||||
-I ${srcdest}include
|
||||
|
@ -48,11 +29,6 @@ if test $mes_kernel = gnu; then
|
|||
fi
|
||||
|
||||
AM_CFLAGS=
|
||||
if test "$V" = 2; then
|
||||
AM_CFLAGS="$AM_CFLAGS -v"
|
||||
elif test "$V" = 3; then
|
||||
AM_CFLAGS="$AM_CFLAGS -v -v"
|
||||
fi
|
||||
|
||||
if test $mes_libc = mes; then
|
||||
AM_CFLAGS="$AM_CFLAGS
|
||||
|
@ -74,12 +50,6 @@ if test $mes_libc = mes; then
|
|||
fi
|
||||
LIBS=-lc
|
||||
|
||||
if test $mes_cpu = arm; then
|
||||
AM_CFLAGS="$AM_CFLAGS
|
||||
-marm
|
||||
"
|
||||
fi
|
||||
|
||||
export AM_CFLAGS CFLAGS
|
||||
export AM_CPPFLAGS CPPFLAGS
|
||||
export AM_LDFLAGS LDFLAGS
|
||||
|
|
|
@ -110,7 +110,6 @@ scaffold/boot/50-primitive-load.scm
|
|||
scaffold/boot/53-closure-display.scm
|
||||
scaffold/boot/60-let-syntax.scm
|
||||
scaffold/boot/call-cc.scm
|
||||
scaffold/boot/gc.scm
|
||||
scaffold/boot/memory.scm
|
||||
scaffold/boot/numbers.scm
|
||||
"
|
||||
|
|
|
@ -27,7 +27,6 @@ tests/boot.test
|
|||
tests/read.test
|
||||
tests/srfi-0.test
|
||||
tests/macro.test
|
||||
tests/gc.test
|
||||
tests/perform.test
|
||||
tests/base.test
|
||||
tests/quasiquote.test
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
#! /bin/sh
|
||||
|
||||
# GNU Mes --- Maxwell Equations of Software
|
||||
# Copyright © 2017,2018,2019,2020,2022 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
# Copyright © 2017,2018,2019 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
#
|
||||
# This file is part of GNU Mes.
|
||||
#
|
||||
|
@ -22,7 +22,7 @@ set -e
|
|||
. ./config.sh
|
||||
set -u
|
||||
|
||||
mes_tests="
|
||||
TESTS="
|
||||
lib/tests/scaffold/t.c
|
||||
lib/tests/scaffold/01-return-0.c
|
||||
lib/tests/scaffold/02-return-1.c
|
||||
|
@ -85,7 +85,6 @@ lib/tests/scaffold/33-and-or.c
|
|||
lib/tests/scaffold/34-pre-post.c
|
||||
lib/tests/scaffold/35-compare-char.c
|
||||
lib/tests/scaffold/36-compare-arithmetic.c
|
||||
lib/tests/scaffold/36-compare-arithmetic-negative.c
|
||||
lib/tests/scaffold/37-compare-assign.c
|
||||
lib/tests/scaffold/38-compare-call-2.c
|
||||
lib/tests/scaffold/38-compare-call-3.c
|
||||
|
@ -105,9 +104,7 @@ lib/tests/assert/50-assert.c
|
|||
lib/tests/mes/50-itoa.c
|
||||
lib/tests/posix/50-getenv.c
|
||||
lib/tests/stdlib/50-malloc.c
|
||||
lib/tests/string/50-memcmp.c
|
||||
lib/tests/string/50-strcmp.c
|
||||
lib/tests/string/50-strcmp-itoa.c
|
||||
lib/tests/string/50-strcpy.c
|
||||
lib/tests/string/50-strncmp.c
|
||||
lib/tests/posix/50-open-read.c
|
||||
|
@ -116,8 +113,6 @@ lib/tests/scaffold/54-argc.c
|
|||
lib/tests/scaffold/54-argv.c
|
||||
lib/tests/scaffold/55-char-array.c
|
||||
lib/tests/scaffold/60-math.c
|
||||
lib/tests/scaffold/60-math-itoa.c
|
||||
lib/tests/scaffold/60-math-modulo.c
|
||||
lib/tests/scaffold/61-array.c
|
||||
lib/tests/scaffold/62-array.c
|
||||
lib/tests/scaffold/63-struct.c
|
||||
|
@ -132,9 +127,6 @@ lib/tests/scaffold/63-struct-cell.c
|
|||
lib/tests/scaffold/64-make-cell.c
|
||||
lib/tests/scaffold/65-read.c
|
||||
lib/tests/scaffold/66-local-char-array.c
|
||||
"
|
||||
|
||||
tcc_tests="
|
||||
lib/tests/scaffold/70-stdarg.c
|
||||
lib/tests/stdio/70-printf-hello.c
|
||||
lib/tests/stdio/70-printf-simple.c
|
||||
|
@ -194,9 +186,6 @@ lib/tests/scaffold/70-array-in-struct-init.c
|
|||
lib/tests/scaffold/70-struct-short-enum-init.c
|
||||
lib/tests/scaffold/70-struct-post.c
|
||||
lib/tests/scaffold/70-extern.c
|
||||
lib/tests/scaffold/70-ternary-arithmetic-argument.c
|
||||
lib/tests/scaffold/70-function-modulo.c
|
||||
lib/tests/scaffold/70-or-argument.c
|
||||
lib/tests/setjmp/80-setjmp.c
|
||||
lib/tests/stdio/80-sscanf.c
|
||||
lib/tests/stdlib/80-qsort.c
|
||||
|
@ -209,7 +198,8 @@ lib/tests/scaffold/84-struct-field-list.c
|
|||
lib/tests/scaffold/85-sizeof.c
|
||||
"
|
||||
|
||||
gnu_tests="
|
||||
if test -z "$bootstrap"; then
|
||||
TESTS="$TESTS
|
||||
lib/tests/dirent/90-readdir.c
|
||||
lib/tests/io/90-stat.c
|
||||
lib/tests/mes/90-abtod.c
|
||||
|
@ -235,18 +225,18 @@ lib/tests/scaffold/a0-math-divide-signed-negative.c
|
|||
lib/tests/scaffold/a1-global-no-align.c
|
||||
lib/tests/scaffold/a1-global-no-clobber.c
|
||||
"
|
||||
fi
|
||||
|
||||
xfail_tests="
|
||||
XFAIL_TESTS="
|
||||
lib/tests/stdio/90-sprintf.c
|
||||
"
|
||||
|
||||
if test $compiler = mescc; then
|
||||
xfail_tests="$xfail_tests
|
||||
XFAIL_TESTS="$XFAIL_TESTS
|
||||
lib/tests/scaffold/17-compare-unsigned-char-le.c
|
||||
lib/tests/scaffold/17-compare-unsigned-short-le.c
|
||||
lib/tests/scaffold/66-local-char-array.c
|
||||
lib/tests/scaffold/72-typedef-struct-def-local.c
|
||||
lib/tests/scaffold/70-ternary-arithmetic-argument.c
|
||||
lib/tests/mes/90-abtod.c
|
||||
lib/tests/mes/90-dtoab.c
|
||||
lib/tests/scaffold/90-goto-var.c
|
||||
|
@ -254,35 +244,35 @@ lib/tests/scaffold/91-goto-array.c
|
|||
"
|
||||
|
||||
if test $mes_cpu = x86; then
|
||||
xfail_tests="$xfail_tests
|
||||
XFAIL_TESTS="$XFAIL_TESTS
|
||||
"
|
||||
fi
|
||||
|
||||
if test $mes_cpu = x86_64; then
|
||||
xfail_tests="$xfail_tests
|
||||
XFAIL_TESTS="$XFAIL_TESTS
|
||||
lib/tests/scaffold/a0-call-trunc-int.c
|
||||
"
|
||||
fi
|
||||
fi
|
||||
|
||||
if test $mes_cpu = x86_64; then
|
||||
xfail_tests="$xfail_tests
|
||||
XFAIL_TESTS="$XFAIL_TESTS
|
||||
lib/tests/stdio/70-printf-stdarg.c
|
||||
"
|
||||
fi
|
||||
|
||||
if test $compiler = gcc; then
|
||||
xfail_tests="$xfail_tests
|
||||
XFAIL_TESTS="$XFAIL_TESTS
|
||||
"
|
||||
|
||||
if test $mes_cpu = x86; then
|
||||
xfail_tests="$xfail_tests
|
||||
XFAIL_TESTS="$XFAIL_TESTS
|
||||
lib/tests/mes/90-dtoab.c
|
||||
"
|
||||
fi
|
||||
|
||||
if test $mes_cpu = x86_64; then
|
||||
xfail_tests="$xfail_tests
|
||||
XFAIL_TESTS="$XFAIL_TESTS
|
||||
lib/tests/stdio/70-printf-hello.c
|
||||
lib/tests/stdio/70-printf-simple.c
|
||||
lib/tests/stdio/70-printf.c
|
||||
|
@ -294,16 +284,6 @@ lib/tests/string/90-snprintf.c
|
|||
fi
|
||||
fi
|
||||
|
||||
# Allow for make check TESTS=lib/tests/setjmp/80-setjmp.c
|
||||
if test -n "$bootstrap"; then
|
||||
TESTS="${TESTS-$mes_tests$tcc_tests}"
|
||||
else
|
||||
TESTS="${TESTS-$mes_tests$tcc_test$gnu_tests}"
|
||||
fi
|
||||
|
||||
# Allow for make check xfail_tests=lib/tests/setjmp/80-setjmp.c
|
||||
XFAIL_TESTS="${XFAIL_TESTS-$xfail_tests}"
|
||||
|
||||
recheck=${recheck-false}
|
||||
test_ext=.c
|
||||
log_compiler="${SHELL} ${srcdest}build-aux/test-c.sh"
|
||||
|
|
|
@ -35,9 +35,6 @@ if $courageous; then
|
|||
fi
|
||||
|
||||
CFLAGS=
|
||||
if test $mes_cpu = arm; then
|
||||
CFLAGS="-marm"
|
||||
fi
|
||||
if test $mes_libc = mes; then
|
||||
CFLAGS="${CFLAGS}
|
||||
-static
|
||||
|
@ -79,8 +76,6 @@ if test $compiler = gcc; then
|
|||
cd gcc-lib
|
||||
srcdest=$srcdir/../
|
||||
srcdir=../$srcdir
|
||||
MES_CHECKING_BUILTIN_LIBS="-l gcc"
|
||||
export MES_CHECKING_BUILTIN_LIBS
|
||||
../pre-inst-env ${SHELL} ${srcdest}build-aux/check-mescc.sh
|
||||
)
|
||||
fi
|
||||
|
@ -99,8 +94,7 @@ fi
|
|||
LDFLAGS="
|
||||
-nostdlib
|
||||
"
|
||||
MES_CHECKING_BUILTIN_LIBS="-l mescc"
|
||||
export MES_CHECKING_BUILTIN_LIBS
|
||||
LIBS=-lc
|
||||
AR="${srcdest}pre-inst-env mesar"
|
||||
CC="${srcdest}pre-inst-env mescc"
|
||||
../pre-inst-env ${SHELL} ${srcdest}build-aux/check-mescc.sh
|
||||
|
|
|
@ -26,7 +26,6 @@ DIFF:=@DIFF@
|
|||
DOT:=@DOT@
|
||||
GIT:=@GIT@
|
||||
GUILD:=@GUILD@
|
||||
GUILD_OPTIMIZE:=@GUILD_OPTIMIZE@
|
||||
GUILE:=@GUILE@
|
||||
GUILE_EFFECTIVE_VERSION:=@GUILE_EFFECTIVE_VERSION@
|
||||
GUILE_LOAD_PATH:=@GUILE_LOAD_PATH@
|
||||
|
|
|
@ -27,7 +27,6 @@ DIFF=${DIFF-@DIFF@}
|
|||
DOT="@DOT@"
|
||||
GIT="@GIT@"
|
||||
GUILD="@GUILD@"
|
||||
GUILD_OPTIMIZE="${GUILD_OPTIMIZE-@GUILD_OPTIMIZE@}"
|
||||
GUILE="@GUILE@"
|
||||
GUILE_EFFECTIVE_VERSION="@GUILE_EFFECTIVE_VERSION@"
|
||||
GUILE_LOAD_PATH="@GUILE_LOAD_PATH@"
|
||||
|
@ -35,10 +34,8 @@ GUIX="@GUIX@"
|
|||
HELP2MAN="@HELP2MAN@"
|
||||
HEX2="@HEX2@"
|
||||
LDFLAGS=${LDFLAGS-"@LDFLAGS@"}
|
||||
KAEM="@KAEM@"
|
||||
MAKEINFO="@MAKEINFO@"
|
||||
M1="@M1@"
|
||||
M2_PLANET="@M2_PLANET@"
|
||||
MES_FOR_BUILD="@MES_FOR_BUILD@"
|
||||
NYACC="@NYACC@"
|
||||
PACKAGE="@PACKAGE@"
|
||||
|
@ -101,11 +98,7 @@ export V
|
|||
export colors
|
||||
export compiler
|
||||
export courageous
|
||||
export mes_cpu
|
||||
export srcdest
|
||||
export srcdir
|
||||
export stage0_cpu
|
||||
export GUILE_AUTO_COMPILE
|
||||
export MES_PREFIX
|
||||
export TESTS
|
||||
export XFAIL_TESTS
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
#! /bin/sh
|
||||
|
||||
# GNU Mes --- Maxwell Equations of Software
|
||||
# Copyright © 2019,2020,2021 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
# Copyright © 2019 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
#
|
||||
# This file is part of GNU Mes.
|
||||
#
|
||||
|
@ -36,10 +36,8 @@ lib/mes/oputs.c
|
|||
|
||||
if test $mes_libc = mes; then
|
||||
libc_mini_shared_SOURCES="$libc_mini_shared_SOURCES
|
||||
lib/mes/globals.c
|
||||
lib/$mes_kernel/$mes_cpu-mes-$compiler/mini.c
|
||||
lib/stdlib/exit.c
|
||||
lib/$mes_kernel/$mes_cpu-mes-$compiler/_exit.c
|
||||
lib/$mes_kernel/$mes_cpu-mes-$compiler/_write.c
|
||||
lib/stdlib/puts.c
|
||||
lib/string/strlen.c
|
||||
"
|
||||
|
@ -78,22 +76,11 @@ lib/mes/mini-write.c
|
|||
"
|
||||
fi
|
||||
|
||||
libmescc_SOURCES="
|
||||
lib/mes/globals.c
|
||||
lib/linux/$mes_cpu-mes-$compiler/syscall-internal.c
|
||||
"
|
||||
|
||||
if test $mes_cpu = arm; then
|
||||
libmescc_SOURCES="$libmescc_SOURCES
|
||||
lib/mes/div.c
|
||||
"
|
||||
fi
|
||||
|
||||
libmes_SOURCES="
|
||||
$libc_mini_shared_SOURCES
|
||||
lib/ctype/isnumber.c
|
||||
lib/mes/abtol.c
|
||||
lib/mes/cast.c
|
||||
lib/mes/div.c
|
||||
lib/mes/eputc.c
|
||||
lib/mes/fdgetc.c
|
||||
lib/mes/fdputc.c
|
||||
|
@ -107,7 +94,6 @@ lib/mes/ntoab.c
|
|||
lib/mes/oputc.c
|
||||
lib/mes/ultoa.c
|
||||
lib/mes/utoa.c
|
||||
lib/stub/__raise.c
|
||||
"
|
||||
|
||||
if test $mes_libc = mes; then
|
||||
|
@ -115,7 +101,6 @@ if test $mes_libc = mes; then
|
|||
lib/ctype/isdigit.c
|
||||
lib/ctype/isspace.c
|
||||
lib/ctype/isxdigit.c
|
||||
lib/mes/assert_msg.c
|
||||
lib/posix/write.c
|
||||
lib/stdlib/atoi.c
|
||||
"
|
||||
|
@ -158,6 +143,7 @@ lib/stdio/putc.c
|
|||
lib/stdio/putchar.c
|
||||
lib/stdio/ungetc.c
|
||||
lib/stdlib/free.c
|
||||
lib/stdlib/malloc.c
|
||||
lib/stdlib/realloc.c
|
||||
lib/string/memchr.c
|
||||
lib/string/memcmp.c
|
||||
|
@ -167,7 +153,6 @@ lib/string/memset.c
|
|||
lib/string/strcmp.c
|
||||
lib/string/strcpy.c
|
||||
lib/string/strncmp.c
|
||||
lib/posix/raise.c
|
||||
"
|
||||
|
||||
if test $mes_kernel = gnu; then
|
||||
|
@ -189,7 +174,7 @@ lib/stub/execve.c
|
|||
lib/stub/fork.c
|
||||
lib/stub/_getcwd.c
|
||||
lib/stub/gettimeofday.c
|
||||
lib/stub/ioctl3.c
|
||||
lib/stub/ioctl.c
|
||||
lib/stub/time.c
|
||||
lib/stub/unlink.c
|
||||
lib/stub/waitpid.c
|
||||
|
@ -209,16 +194,13 @@ lib/linux/fork.c
|
|||
lib/linux/fsync.c
|
||||
lib/linux/_getcwd.c
|
||||
lib/linux/gettimeofday.c
|
||||
lib/linux/ioctl3.c
|
||||
lib/linux/ioctl.c
|
||||
lib/linux/_open3.c
|
||||
lib/linux/malloc.c
|
||||
lib/linux/_read.c
|
||||
lib/linux/time.c
|
||||
lib/linux/unlink.c
|
||||
lib/linux/waitpid.c
|
||||
lib/linux/$mes_cpu-mes-$compiler/syscall.c
|
||||
lib/linux/getpid.c
|
||||
lib/linux/kill.c
|
||||
"
|
||||
fi
|
||||
|
||||
|
@ -226,15 +208,6 @@ libtcc1_SOURCES="
|
|||
lib/libtcc1.c
|
||||
"
|
||||
|
||||
if test $mes_cpu = arm; then
|
||||
libtcc1_SOURCES="$libtcc1_SOURCES
|
||||
lib/mes/div.c
|
||||
lib/string/__memcpy.c
|
||||
lib/string/__memmove.c
|
||||
lib/string/__memset.c
|
||||
"
|
||||
fi
|
||||
|
||||
libc_tcc_SOURCES="
|
||||
$libc_SOURCES
|
||||
lib/ctype/islower.c
|
||||
|
@ -327,6 +300,7 @@ lib/posix/alarm.c
|
|||
lib/posix/execl.c
|
||||
lib/posix/execlp.c
|
||||
lib/posix/mktemp.c
|
||||
lib/posix/raise.c
|
||||
lib/posix/sbrk.c
|
||||
lib/posix/sleep.c
|
||||
lib/posix/unsetenv.c
|
||||
|
@ -411,10 +385,11 @@ lib/linux/getdents.c
|
|||
lib/linux/getegid.c
|
||||
lib/linux/geteuid.c
|
||||
lib/linux/getgid.c
|
||||
lib/linux/getpid.c
|
||||
lib/linux/getppid.c
|
||||
lib/linux/getrusage.c
|
||||
lib/linux/getuid.c
|
||||
lib/linux/ioctl.c
|
||||
lib/linux/kill.c
|
||||
lib/linux/link.c
|
||||
lib/linux/lstat.c
|
||||
lib/linux/mkdir.c
|
||||
|
@ -433,13 +408,7 @@ lib/linux/symlink.c
|
|||
fi
|
||||
|
||||
mes_SOURCES="
|
||||
src/builtins.c
|
||||
src/cc.c
|
||||
src/core.c
|
||||
src/display.c
|
||||
src/eval-apply.c
|
||||
src/gc.c
|
||||
src/globals.c
|
||||
src/hash.c
|
||||
src/lib.c
|
||||
src/math.c
|
||||
|
@ -447,9 +416,7 @@ src/mes.c
|
|||
src/module.c
|
||||
src/posix.c
|
||||
src/reader.c
|
||||
src/stack.c
|
||||
src/string.c
|
||||
src/struct.c
|
||||
src/symbol.c
|
||||
src/vector.c
|
||||
"
|
||||
|
|
|
@ -50,7 +50,6 @@ export mes_cpu
|
|||
export mes_bits
|
||||
export mes_libc
|
||||
export mes_kernel
|
||||
export stage0_cpu
|
||||
|
||||
ifdef V
|
||||
export V
|
||||
|
@ -120,10 +119,6 @@ ifdef SHELL
|
|||
export SHELL
|
||||
endif
|
||||
|
||||
ifdef GUILD_OPTIMIZE
|
||||
export GUILD_OPTIMIZE
|
||||
endif
|
||||
|
||||
ifdef GUILE_LOAD_PATH
|
||||
export GUILE_LOAD_PATH
|
||||
endif
|
||||
|
@ -163,11 +158,3 @@ endif
|
|||
ifdef M1FLAGS
|
||||
export M1FLAGS
|
||||
endif
|
||||
|
||||
ifdef TESTS
|
||||
export TESTS
|
||||
endif
|
||||
|
||||
ifdef XFAIL_TESTS
|
||||
export XFAIL_TESTS
|
||||
endif
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
#! @SHELL@
|
||||
|
||||
# GNU Mes --- Maxwell Equations of Software
|
||||
# Copyright © 2017,2018,2019,2022 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
# Copyright © 2017,2018,2019 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
#
|
||||
# This file is part of GNU Mes.
|
||||
#
|
||||
|
@ -47,9 +47,6 @@ cp $_v bin/mes ${DESTDIR}${bindir}/mes
|
|||
if test -f bin/mes-gcc; then
|
||||
cp $_v bin/mes-gcc ${DESTDIR}${bindir}/mes-gcc
|
||||
fi
|
||||
if test -f bin/mes-m2; then
|
||||
cp $_v bin/mes-m2 ${DESTDIR}${bindir}/mes-m2
|
||||
fi
|
||||
if test -f bin/mes-mescc; then
|
||||
cp $_v bin/mes-mescc ${DESTDIR}${bindir}/mes-mescc
|
||||
fi
|
||||
|
@ -99,7 +96,6 @@ mkdir -p $DESTDIR$includedir
|
|||
mkdir -p $DESTDIR$libdir
|
||||
mkdir -p $DESTDIR$pkgdatadir
|
||||
tar -cf- -C ${srcdir}/include . | tar -${v}xf- -C $DESTDIR$includedir
|
||||
tar -cf- -C include . | tar -${v}xf- -C $DESTDIR$includedir
|
||||
tar -cf- -C ${srcdir}/lib $mes_cpu-mes | tar -${v}xf- -C $DESTDIR$libdir
|
||||
tar -cf- -C ${srcdir}/lib $mes_kernel/$mes_cpu-mes | tar -${v}xf- -C $DESTDIR$libdir
|
||||
if test -z "$srcdest"; then
|
||||
|
|
|
@ -4,7 +4,7 @@ exec ${GUILE-guile} --no-auto-compile -L $(dirname $0) -C $(dirname $0) -e '(mes
|
|||
!#
|
||||
|
||||
;;; GNU Mes --- Maxwell Equations of Software
|
||||
;;; Copyright © 2016,2017,2018,2019 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
;;; Copyright © 2016,2017,2018 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
;;;
|
||||
;;; mes-snarf.scm: This file is part of GNU Mes.
|
||||
;;;
|
||||
|
@ -85,7 +85,8 @@ exec ${GUILE-guile} --no-auto-compile -L $(dirname $0) -C $(dirname $0) -e '(mes
|
|||
(cut string-replace-string <> "_to_" "->")
|
||||
(cut string-replace-suffix <> "_x" "!")
|
||||
(cut string-replace-suffix <> "_x_" "!-")
|
||||
(cut string-replace-suffix <> "_p" "?"))
|
||||
(cut string-replace-suffix <> "_p" "?")
|
||||
)
|
||||
(function.name f))))
|
||||
(if (not (string-suffix? "-" name)) name
|
||||
(string-append "core:" (string-drop-right name 1))))))
|
||||
|
@ -104,26 +105,19 @@ exec ${GUILE-guile} --no-auto-compile -L $(dirname $0) -C $(dirname $0) -e '(mes
|
|||
(format #f "// CONSTANT ~a ~a\n" s i)
|
||||
(format #f "#define ~a ~a\n" s i)))
|
||||
|
||||
(define (symbol->header s i)
|
||||
(let ((c (string-upcase s)))
|
||||
(string-append
|
||||
(format #f "\n// CONSTANT ~a ~a\n" c i)
|
||||
(format #f "#define ~a ~a\n" c i)
|
||||
(format #f "struct scm *~a; /* ~a */\n" s i))))
|
||||
|
||||
(define (function->header f i)
|
||||
(let* ((arity (or (assoc-ref (function.annotation f) 'arity)
|
||||
(if (string-null? (function.formals f)) 0
|
||||
(length (string-split (function.formals f) #\,)))))
|
||||
(n (if (eq? arity 'n) -1 arity)))
|
||||
(format #f "struct scm *~a (~a);\n" (function.name f) (function.formals f))))
|
||||
(format #f "SCM ~a (~a);\n" (function.name f) (function.formals f))))
|
||||
|
||||
(define (function->source f i)
|
||||
(let* ((arity (or (assoc-ref (function.annotation f) 'arity)
|
||||
(if (string-null? (function.formals f)) 0
|
||||
(length (string-split (function.formals f) #\,)))))
|
||||
(n (if (eq? arity 'n) -1 arity)))
|
||||
(format #f " a = init_builtin (builtin_type, ~s, ~a, &~a, a);\n" (function-scm-name f) n (function.name f))))
|
||||
(format #f " a = init_builtin (builtin_type, ~s, ~a, &~a, a);\n" (function.name f) n (function.name f))))
|
||||
|
||||
(define (disjoin . predicates)
|
||||
(lambda (. arguments)
|
||||
|
@ -131,11 +125,11 @@ exec ${GUILE-guile} --no-auto-compile -L $(dirname $0) -C $(dirname $0) -e '(mes
|
|||
|
||||
(define (snarf-symbols string)
|
||||
(let* ((lines (string-split string #\newline))
|
||||
(symbols (filter (cut string-contains <> " = init_symbol (") lines)))
|
||||
(symbols (filter (cut string-prefix? " init_symbol (" <>) lines)))
|
||||
(define (line->symbol line)
|
||||
((compose
|
||||
string-trim-both
|
||||
(lambda (s) (string-take s (string-index s #\=))))
|
||||
(lambda (s) (string-take s (string-index s #\,)))
|
||||
(cut string-drop <> (string-length " init_symbol (")))
|
||||
line))
|
||||
(map line->symbol symbols)))
|
||||
|
||||
|
@ -150,28 +144,20 @@ exec ${GUILE-guile} --no-auto-compile -L $(dirname $0) -C $(dirname $0) -e '(mes
|
|||
(receive (function rest)
|
||||
(apply values (string-split-string line " "))
|
||||
(and function
|
||||
(or (equal? (string-trim previous) "struct scm*")
|
||||
(equal? (string-trim previous) "struct scm *"))
|
||||
(equal? (string-trim previous) "SCM")
|
||||
(not (string-null? function))
|
||||
(not (string-prefix? "#" function))
|
||||
(not (string-prefix? "/" function))
|
||||
rest
|
||||
(receive (parameter-list annotation)
|
||||
(apply values (string-split-string rest " /*:"))
|
||||
(let* ((parameters (string-trim-both parameter-list))
|
||||
(parameters (string-drop parameters 1))
|
||||
(apply values (string-split-string rest " ///"))
|
||||
(let* ((parameters (string-drop parameter-list 1))
|
||||
(parameters (string-drop-right parameters 1))
|
||||
(annotation (if (string? annotation) (string-trim-both annotation)
|
||||
annotation))
|
||||
(annotation (if (and (string? annotation)
|
||||
(string-suffix? "*/" annotation))
|
||||
(string-drop-right annotation 2)
|
||||
annotation))
|
||||
(formals (if (string-null? parameters) '()
|
||||
(string-split parameters #\,)))
|
||||
(formals (map string-trim formals)))
|
||||
(and parameters
|
||||
(let* ((non-SCM (filter (negate (cut string-prefix? "struct scm" <>)) formals)))
|
||||
(let* ((non-SCM (filter (negate (cut string-prefix? "SCM" <>)) formals)))
|
||||
(and (null? non-SCM)
|
||||
(let ((annotation (and annotation (with-input-from-string annotation read))))
|
||||
(make-function function parameters annotation))))))))))
|
||||
|
|
|
@ -1,72 +0,0 @@
|
|||
#! /bin/sh
|
||||
|
||||
set -x
|
||||
|
||||
ptr_once='s,([^N])(MACRO|NAME|VALUE) \(([^()]*)\),\1\3->\L\2,'
|
||||
ptr_once='s,([^N])(BYTES|CAR|CDR|CLOSURE|CONTINUATION|LENGTH|MACRO|NAME|PORT|REF|STRING|STRUCT|TYPE|VALUE|VARIABLE|VECTOR) \(([^()]*)\),\1\3->\L\2,'
|
||||
n_once='s,N(TYPE|CAR|CDR|LENGTH|VALUE|VECTOR) \(([^()]*)\),\2->\L\1,'
|
||||
ncbytes='s,NC(BYTES) \(([^()]*)\),news_\L\1 (\2),'
|
||||
cbytes='s,([^N])C(BYTES) \(([^()]*)\),\1cell_\L\2 (\3),'
|
||||
cstring='s,C(STRING) \(([^()]*)\),cell_bytes (STRING (\2)),'
|
||||
struct='s,SCM,struct scm *,g'
|
||||
struct_scm_p='s,struct scm\* ?,struct scm *,g'
|
||||
|
||||
sed -ri \
|
||||
-e 's,POINTER_CELLS=0,POINTER_CELLS=1', \
|
||||
-e 's,#define POINTER_CELLS 0,#define POINTER_CELLS 1', \
|
||||
-e "$ncbytes" \
|
||||
-e "$cbytes" \
|
||||
-e "$cstring" \
|
||||
\
|
||||
-e "$ncbytes" \
|
||||
-e "$cbytes" \
|
||||
-e "$cstring" \
|
||||
\
|
||||
-e "$ptr_once" \
|
||||
-e "$ptr_once" \
|
||||
-e "$ptr_once" \
|
||||
-e 's,->\<struct\>,->structure,g' \
|
||||
-e "$struct" \
|
||||
-e "$struct_scm_p" \
|
||||
\
|
||||
-e "$n_once" \
|
||||
-e "$n_once" \
|
||||
\
|
||||
-e 's,CAR \(([^()]*)\),\1->cdr,' \
|
||||
-e 's,CAAR \(([^()]*)\),\1->car->car,' \
|
||||
-e 's,CADR \(([^()]*)\),\1->cdr->car,' \
|
||||
-e 's,CDAR \(([^()]*)\),\1->car->cdr,' \
|
||||
-e 's,CDDR \(([^()]*)\),\1->cdr->cdr,' \
|
||||
-e 's,CADAR \(([^()]*)\),\1->car->cdr->car,' \
|
||||
-e 's,CADDR \(([^()]*)\),\1->cdr->cdr->car,' \
|
||||
-e 's,CDADR \(([^()]*)\),\1->cdr->car->cdr,' \
|
||||
-e 's,CDDDR \(([^()]*)\),\1->cdr->cdr->cdr,' \
|
||||
-e 's,CDDAR \(([^()]*)\),\1->car->cdr->cdr,' \
|
||||
-e 's,CDADAR \(([^()]*)\),\1->cdr->car->cdr->car,' \
|
||||
\
|
||||
include/mes/builtins.h \
|
||||
include/mes/mes.h \
|
||||
include/mes/symbols.h \
|
||||
include/mes/builtins.h \
|
||||
include/m2/lib.h \
|
||||
src/builtins.c \
|
||||
src/cc.c \
|
||||
src/core.c \
|
||||
src/display.c \
|
||||
src/eval-apply.c \
|
||||
src/gc.c \
|
||||
src/hash.c \
|
||||
src/lib.c \
|
||||
src/m2.c \
|
||||
src/math.c \
|
||||
src/mes.c \
|
||||
src/module.c \
|
||||
src/posix.c \
|
||||
src/reader.c \
|
||||
src/stack.c \
|
||||
src/string.c \
|
||||
src/struct.c \
|
||||
src/symbol.c \
|
||||
src/vector.c \
|
||||
src/test/gc.c \
|
||||
simple.make \
|
|
@ -48,9 +48,6 @@ export bindir
|
|||
GUIX_PACKAGE_PATH="$abs_top_srcdir/guix${GUIX_PACKAGE_PATH:+:}$GUIX_PACKAGE_PATH"
|
||||
export GUIX_PACKAGE_PATH
|
||||
|
||||
MES_UNINSTALLED=1
|
||||
export MES_UNINSTALLED
|
||||
|
||||
LANG=
|
||||
LC_ALL=
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
#! /bin/sh
|
||||
|
||||
# GNU Mes --- Maxwell Equations of Software
|
||||
# Copyright © 2018,2019 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
# Copyright © 2018 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
#
|
||||
# This file is part of GNU Mes.
|
||||
#
|
||||
|
@ -20,43 +20,17 @@
|
|||
|
||||
set -e
|
||||
|
||||
srcdest=${srcdest-./}
|
||||
. ${srcdest}config.sh
|
||||
. ${srcdest}build-aux/config.sh
|
||||
. ${srcdest}build-aux/trace.sh
|
||||
|
||||
trace "SNARF$snarf builtins.c" ${srcdest}build-aux/mes-snarf.scm src/builtins.c
|
||||
trace "SNARF$snarf core.c" ${srcdest}build-aux/mes-snarf.scm src/core.c
|
||||
trace "SNARF$snarf display.c" ${srcdest}build-aux/mes-snarf.scm src/display.c
|
||||
trace "SNARF$snarf eval-apply.c" ${srcdest}build-aux/mes-snarf.scm src/eval-apply.c
|
||||
trace "SNARF$snarf gc.c" ${srcdest}build-aux/mes-snarf.scm src/gc.c
|
||||
trace "SNARF$snarf hash.c" ${srcdest}build-aux/mes-snarf.scm src/hash.c
|
||||
trace "SNARF$snarf lib.c" ${srcdest}build-aux/mes-snarf.scm src/lib.c
|
||||
trace "SNARF$snarf math.c" ${srcdest}build-aux/mes-snarf.scm src/math.c
|
||||
trace "SNARF$snarf mes.c" ${srcdest}build-aux/mes-snarf.scm src/mes.c
|
||||
trace "SNARF$snarf module.c" ${srcdest}build-aux/mes-snarf.scm src/module.c
|
||||
trace "SNARF$snarf posix.c" ${srcdest}build-aux/mes-snarf.scm src/posix.c
|
||||
trace "SNARF$snarf reader.c" ${srcdest}build-aux/mes-snarf.scm src/reader.c
|
||||
trace "SNARF$snarf stack.c" ${srcdest}build-aux/mes-snarf.scm src/stack.c
|
||||
trace "SNARF$snarf strings.c" ${srcdest}build-aux/mes-snarf.scm src/string.c
|
||||
trace "SNARF$snarf struct.c" ${srcdest}build-aux/mes-snarf.scm src/struct.c
|
||||
trace "SNARF$snarf symbol.c" ${srcdest}build-aux/mes-snarf.scm src/symbol.c
|
||||
trace "SNARF$snarf vector.c" ${srcdest}build-aux/mes-snarf.scm src/vector.c
|
||||
|
||||
for i in src/*.symbols.h; do
|
||||
n=$(basename $i .symbols.h)
|
||||
echo "/* src/$n.c */"
|
||||
cat $i
|
||||
mv $i $(basename $i .symbols.h).s
|
||||
done > s
|
||||
|
||||
for i in src/*.h; do
|
||||
n=$(basename $i .h)
|
||||
echo "/* src/$n.c */"
|
||||
cat $i
|
||||
done > h
|
||||
|
||||
for i in src/*.i; do
|
||||
n=$(basename $i .i)
|
||||
echo " /* src/$n.c */"
|
||||
cat $i
|
||||
done > c
|
||||
trace "SNARF$snarf gc.c" ${srcdest}build-aux/mes-snarf.scm src/gc.c
|
||||
trace "SNARF$snarf hash.c" ${srcdest}build-aux/mes-snarf.scm src/hash.c
|
||||
trace "SNARF$snarf lib.c" ${srcdest}build-aux/mes-snarf.scm src/lib.c
|
||||
trace "SNARF$snarf math.c" ${srcdest}build-aux/mes-snarf.scm src/math.c
|
||||
trace "SNARF$snarf mes.c" ${srcdest}build-aux/mes-snarf.scm src/mes.c
|
||||
trace "SNARF$snarf module.c" ${srcdest}build-aux/mes-snarf.scm src/module.c
|
||||
trace "SNARF$snarf posix.c" ${srcdest}build-aux/mes-snarf.scm src/posix.c
|
||||
trace "SNARF$snarf reader.c" ${srcdest}build-aux/mes-snarf.scm src/reader.c
|
||||
trace "SNARF$snarf strings.c" ${srcdest}build-aux/mes-snarf.scm src/string.c
|
||||
trace "SNARF$snarf struct.c" ${srcdest}build-aux/mes-snarf.scm src/struct.c
|
||||
trace "SNARF$snarf vector.c" ${srcdest}build-aux/mes-snarf.scm src/vector.c
|
||||
|
|
|
@ -40,35 +40,26 @@ rm -f "$o"
|
|||
CC=${CC-gcc}
|
||||
|
||||
i=$(basename "$t" .c)
|
||||
|
||||
if [ -z "${MES_CHECKING_BUILTIN_LIBS}" ]
|
||||
then
|
||||
MES_CHECKING_BUILTIN_LIBS="`${CC} --print-libgcc-file-name`"
|
||||
fi
|
||||
|
||||
if [ -z "${i/[012][0-9]-*/}" ]; then
|
||||
LIBS="${MES_CHECKING_BUILTIN_LIBS} -l c-mini"
|
||||
LIBS=
|
||||
elif [ -z "${i/[34][0-9]-*/}" ]; then
|
||||
LIBS="-l c-mini ${MES_CHECKING_BUILTIN_LIBS} -l c-mini"
|
||||
LIBS='-l c-mini'
|
||||
elif [ -z "${i/[78][0-9a-z]-*/}" ]; then
|
||||
LIBS="-l c+tcc ${MES_CHECKING_BUILTIN_LIBS} -l c+tcc"
|
||||
LIBS='-l c+tcc'
|
||||
elif [ -z "${i/9[0-9a-z]-*/}" ]; then
|
||||
LIBS="-l c+gnu ${MES_CHECKING_BUILTIN_LIBS} -l c+gnu"
|
||||
LIBS='-l c+gnu'
|
||||
else
|
||||
# Make it possible to resolve raise(), required by libgcc.a, provided
|
||||
# in libc.a. The final command line has to have "-lc -lgcc -lc".
|
||||
# See <https://www.openwall.com/lists/musl/2018/05/09/1>.
|
||||
LIBS="-l c ${MES_CHECKING_BUILTIN_LIBS} -l c"
|
||||
LIBS='-l c'
|
||||
fi
|
||||
|
||||
if test $mes_kernel = gnu\
|
||||
&& test -z "$LIBS"; then
|
||||
LIBS="-l c-mini -l mescc"
|
||||
LIBS="-l c-mini"
|
||||
fi
|
||||
|
||||
if test $mes_libc = system; then
|
||||
crt1=
|
||||
LIBS='-l mes -l mescc'
|
||||
LIBS='-l mes'
|
||||
else
|
||||
crt1=crt1.o
|
||||
fi
|
||||
|
@ -77,7 +68,7 @@ $CC -g -c $AM_CPPFLAGS $CPPFLAGS $AM_CFLAGS $CFLAGS -o "$o".o "$t"
|
|||
$CC -g $AM_CFLAGS $CFLAGS $AM_LDFLAGS $LDFLAGS -L . -o "$o" $crt1 "$o".o $LIBS
|
||||
|
||||
set +e
|
||||
timeout 20 "$o" -s --long file0 file1 > "$o".1 2> "$o".2
|
||||
timeout 10 "$o" -s --long file0 file1 > "$o".1 2> "$o".2
|
||||
r=$?
|
||||
set -e
|
||||
if [ -f "$b".exit ]; then
|
||||
|
|
|
@ -4,8 +4,7 @@ MES_ARENA=100000000 exec ${SCHEME-guile} -L . --no-auto-compile -e '(configure)'
|
|||
!#
|
||||
|
||||
;;; GNU Mes --- Maxwell Equations of Software
|
||||
;;; Copyright © 2016,2017,2018,2019,2020,2021,2022,2023 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
;;; Copyright © 2020 Vagrant Cascadian <vagrant@reproducible-builds.org>
|
||||
;;; Copyright © 2016,2017,2018,2019 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
;;;
|
||||
;;; configure: This file is part of GNU Mes.
|
||||
;;;
|
||||
|
@ -37,7 +36,7 @@ MES_ARENA=100000000 exec ${SCHEME-guile} -L . --no-auto-compile -e '(configure)'
|
|||
(define PACKAGE "mes")
|
||||
(define PACKAGE-NAME "GNU Mes")
|
||||
(define PACKAGE-BUGREPORT "bug-mes@gnu.org")
|
||||
(define VERSION "0.24.2")
|
||||
(define VERSION "0.22")
|
||||
|
||||
(cond-expand
|
||||
(guile)
|
||||
|
@ -322,14 +321,14 @@ MES_ARENA=100000000 exec ${SCHEME-guile} -L . --no-auto-compile -e '(configure)'
|
|||
(enable-silent-rules)
|
||||
(with-system-libc)
|
||||
|
||||
(enable-fast-install) ; Ignored for Guix
|
||||
(enable-fast-install) ; Ignored for Guix
|
||||
(mandir (value #t)) ; Ignored for Debian
|
||||
(localstatedir (value #t)) ; Ignored for Debian
|
||||
(libexecdir (value #t)) ; Ignored for Debian
|
||||
(runstatedir (value #t)) ; Ignored for Debian
|
||||
(disable-maintainer-mode) ; Ignored for Debian
|
||||
(disable-dependency-tracking) ; Ignored for Debian
|
||||
(disable-maintainer-mode) ; Ignored for Debian
|
||||
(disable-option-checking) ; Ignored for Debian
|
||||
(libexecdir (value #t)) ; Ignored for Debian
|
||||
(localstatedir (value #t)) ; Ignored for Debian
|
||||
(mandir (value #t)) ; Ignored for Debian
|
||||
(runstatedir (value #t))))) ; Ignored for Debian
|
||||
)))
|
||||
|
||||
(getopt-long args option-spec)))
|
||||
|
||||
|
@ -389,7 +388,6 @@ Some influential environment variables:
|
|||
LDFLAGS C linker flags
|
||||
GUILE guile command
|
||||
GUILD guild command
|
||||
GUILD_OPTIMIZE guild compile optimization
|
||||
GUILE_LOAD_PATH guile load path; where to find Nyacc
|
||||
MES_FOR_BUILD build system MES [can be mes or guile]
|
||||
" PACKAGE VERSION (getenv "prefix")))
|
||||
|
@ -454,14 +452,12 @@ Some influential environment variables:
|
|||
(deps (fold (lambda (program results)
|
||||
(cons (check-program-version program) results))
|
||||
'()
|
||||
(list (make-dep "hex2" #:version '(1 4 0))
|
||||
(make-dep "M1" #:version '(1 4 0))
|
||||
(make-dep "blood-elf" #:version '(2 0 0))
|
||||
(make-dep "kaem" #:version '(1 0 0) #:optional? #t)
|
||||
(make-dep "M2-Planet" #:version '(1 9 0) #:optional? #t)
|
||||
(list (make-dep "hex2")
|
||||
(make-dep "M1")
|
||||
(make-dep "blood-elf")
|
||||
(make-dep "diff" #:optional? #t)
|
||||
(make-dep "guile" #:version '(2 0) #:commands '("guile-3.0" "guile-3" "guile-2.2" "guile-2.0" "guile-2" "guile") #:optional? #t)
|
||||
(make-dep "mes" #:version '(0 22) #:optional? #t)
|
||||
(make-dep "guile" #:version '(2 0) #:commands '("guile-2.2" "guile-2.0" "guile-2" "guile") #:optional? #t)
|
||||
(make-dep "mes" #:version '(0 20) #:optional? #t)
|
||||
(make-dep "guix" #:version '() #:optional? #t)
|
||||
(make-dep "ar" #:version '(2 10) #:optional? #t)
|
||||
(make-dep "sh" #:optional? #t)
|
||||
|
@ -480,9 +476,6 @@ Some influential environment variables:
|
|||
(make-dep "help2man" #:version '(1 47) #:optional? #t)
|
||||
(make-dep "perl" #:version '(5) #:optional? #t))))
|
||||
(guile (file-name "guile" deps))
|
||||
;; See https://bugs.gnu.org/43831; use -O1 with Guile-3
|
||||
(guild-optimize (let ((guile-version (and=> (find-dep "guile" deps) dependency-version-found)))
|
||||
(and guile-version (tuple< '(2 9) guile-version) "-O1")))
|
||||
(deps (if guile (cons (check-program-version (make-dep "nyacc" #:version '(0 99 0) #:commands (list (string-append guile " -c '(use-modules (nyacc lalr)) (display *nyacc-version*)'")) #:file-name #t #:version-option #f))
|
||||
deps)
|
||||
deps))
|
||||
|
@ -494,7 +487,6 @@ Some influential environment variables:
|
|||
(file-name "cc" deps)
|
||||
(file-name "cc-v" deps)
|
||||
(file-name "mescc" deps)))
|
||||
(m2-planet (file-name "M2-Planet" deps))
|
||||
(deps (if cc
|
||||
(cons* (check-header-c cc (make-dep "limits.h"))
|
||||
(check-header-c cc (make-dep "stdio.h" #:optional? #t))
|
||||
|
@ -517,7 +509,7 @@ Some influential environment variables:
|
|||
"))
|
||||
deps)
|
||||
deps))
|
||||
(mescc? (file-name "cc is Mes C" deps))
|
||||
(mesc? (file-name "cc is MES C" deps))
|
||||
(deps (if cc
|
||||
(cons (check-compile-c cc (make-dep "cc is Tiny C" #:data "#if !defined (__TINYC__)
|
||||
#error no tinycc
|
||||
|
@ -546,7 +538,7 @@ Some influential environment variables:
|
|||
(cut member <> '("pc" "portbld" "unknown")))
|
||||
(cdr host-type-list))))
|
||||
(mes-kernel (if (string-prefix? "freebsd" mes-kernel) "freebsd" mes-kernel))
|
||||
(mes-compiler (cond (gcc? "gcc") (tcc? "gcc") (mescc? "mescc") (else "bootstrap")))
|
||||
(mes-compiler (cond (gcc? "gcc") (tcc? "gcc") (else "mescc")))
|
||||
(mes-system (string-join (list mes-cpu mes-kernel "mes") "-"))
|
||||
(bash (or (and (file-exists? "/bin/bash") "/bin/bash")
|
||||
(file-name "bash" deps)
|
||||
|
@ -630,18 +622,15 @@ See \"Porting GNU Mes\" in the manual, or try --with-courage\n" mes-system)
|
|||
|
||||
("@AR@" . ,(or (file-name "ar" deps) ""))
|
||||
("@BASH@" . ,bash)
|
||||
("@CC@" . ,(or cc ""))
|
||||
("@CC@" . ,cc)
|
||||
("@DIFF@" . ,(or (file-name "diff" deps) (string-append abs-top-builddir "/pre-inst-env diff.scm")))
|
||||
("@DOT@" . ,(or (file-name "dot" deps) ""))
|
||||
("@GIT@" . ,(or (file-name "git" deps) ""))
|
||||
("@GUILD_OPTIMIZE@" . ,(or (getenv "GUILD_OPTIMIZE") guild-optimize ""))
|
||||
("@GUILE@" . ,guile)
|
||||
("@GUILE_EFFECTIVE_VERSION@" . ,(effective-version))
|
||||
("@GUILE_LOAD_PATH@" . ,(string-join guile-load-path ":"))
|
||||
("@GUIX@" . ,(or (file-name "guix" deps) ""))
|
||||
("@HELP2MAN@" . ,(or (file-name "help2man" deps) ""))
|
||||
("@KAEM@" . ,(or (file-name "kaem" deps) ""))
|
||||
("@M2_PLANET@" . ,(or (file-name "M2-Planet" deps) ""))
|
||||
("@MAKEINFO@" . ,(or (file-name "makeinfo" deps) ""))
|
||||
("@MES_FOR_BUILD@" . ,(or (file-name "mes" deps)
|
||||
guile))
|
||||
|
@ -662,8 +651,8 @@ See \"Porting GNU Mes\" in the manual, or try --with-courage\n" mes-system)
|
|||
(cons (string-append "@" (variable-name o) "@") (or (format #f "~a" (dependency-file-name o)) "")))
|
||||
deps))))
|
||||
|
||||
(unless (or cc m2-planet)
|
||||
(format (current-error-port) "must supply C compiler or M2-Planet\n")
|
||||
(unless cc
|
||||
(format (current-error-port) "must supply a C compiler")
|
||||
(exit 2))
|
||||
(for-each (lambda (o)
|
||||
(let* ((src (string-append srcdest o))
|
||||
|
@ -707,13 +696,6 @@ See \"Porting GNU Mes\" in the manual, or try --with-courage\n" mes-system)
|
|||
#define MES_VERSION \"" VERSION "\"
|
||||
")))))
|
||||
(substitute (string-append srcdest "build-aux/config.make.in") pairs #:target ".config.make"))
|
||||
(let ((arch-dir (string-append srcdest "include/" mes-kernel "/" mes-cpu)))
|
||||
(define (copy-header file-name)
|
||||
(system* "cp" "-f" "-v"
|
||||
(string-append arch-dir "/" file-name)
|
||||
(string-append "include/arch/" file-name)))
|
||||
(system* "mkdir" "-p" "include/arch")
|
||||
(for-each copy-header '("kernel-stat.h" "syscall.h")))
|
||||
|
||||
(let ((make (and=> (file-name "make" deps) basename)))
|
||||
(display (string-append "
|
||||
|
|
20
configure.sh
|
@ -1,7 +1,7 @@
|
|||
#! /bin/sh
|
||||
|
||||
# GNU Mes --- Maxwell Equations of Software
|
||||
# Copyright © 2018,2019,2021,2022,2023 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
# Copyright © 2018,2019 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
#
|
||||
# This file is part of GNU Mes.
|
||||
#
|
||||
|
@ -20,7 +20,7 @@
|
|||
|
||||
set -e
|
||||
|
||||
VERSION=0.24.2
|
||||
VERSION=0.22
|
||||
srcdir=${srcdir-$(dirname $0)}
|
||||
srcdest=
|
||||
if test "$srcdir" != "."; then
|
||||
|
@ -77,8 +77,6 @@ GUILE=${GUILE-$(command -v guile)} || true
|
|||
HEX2=${HEX2-$(command -v hex2)}
|
||||
LDPFLAGS=${LDFLAGS-}
|
||||
M1=${M1-$(command -v M1)}
|
||||
M2_PLANET=${M2_PLANET-$(command -v M2-Planet)} || true
|
||||
KAEM=${KAEM-$(command -v kaem)} || true
|
||||
MES_FOR_BUILD=${MES_FOR_BUILD-$(command -v mes || command -v guile || echo mes)}
|
||||
GIT=${GIT-$(command -v git)} || true
|
||||
PERL=${PERL-$(command -v perl)} || true
|
||||
|
@ -169,8 +167,6 @@ subst () {
|
|||
-e s,"@HEX2FLAGS@,$HEX2FLAGS,"\
|
||||
-e s,"@M1@,$M1,"\
|
||||
-e s,"@M1FLAGS@,$M1FLAGS,"\
|
||||
-e s,"@M2_PLANET@,$M2_PLANET,"\
|
||||
-e s,"@KAEM@,$KAEM,"\
|
||||
-e s,"@MES_FOR_BUILD@,$MES_FOR_BUILD,"\
|
||||
-e s,"@numbered_arch@,$numbered_arch,"\
|
||||
-e s,"@SHELL@,$SHELL,"\
|
||||
|
@ -221,13 +217,7 @@ elif $CC --version | grep tcc; then
|
|||
compiler=gcc
|
||||
else
|
||||
compiler=mescc
|
||||
if ! $CC --version; then
|
||||
CC="$PWD/pre-inst-env mescc"
|
||||
fi
|
||||
if test "$CC" = "M2-Planet"; then
|
||||
CC="$PWD/pre-inst-env mescc"
|
||||
fi
|
||||
AR=${AR-$PWD/pre-inst-env mesar}
|
||||
AR=${AR-$PWD/scripts/mesar}
|
||||
fi
|
||||
|
||||
AR=${AR-$(command -v ar)} || true
|
||||
|
@ -271,10 +261,6 @@ cat >> include/mes/config.h <<EOF
|
|||
#define MES_VERSION "$VERSION"
|
||||
EOF
|
||||
|
||||
mkdir -p include/arch
|
||||
cp -f -v ${srcdest}include/${mes_kernel}/${mes_cpu}/kernel-stat.h include/arch
|
||||
cp -f -v ${srcdest}include/${mes_kernel}/${mes_cpu}/syscall.h include/arch
|
||||
|
||||
cat <<EOF
|
||||
GNU Mes is configured for
|
||||
compiler: $compiler
|
||||
|
|
|
@ -1,120 +0,0 @@
|
|||
|
||||
Subject: GNU Mes 0.23 released
|
||||
|
||||
<#secure method=pgpmime mode=sign>
|
||||
|
||||
We are happy to announce the release of GNU Mes 0.23, representing 125
|
||||
commits over one year by four people.
|
||||
|
||||
Mes was ported to ARM and can now be used in the GNU Guix Reduced Binary
|
||||
Seed bootstrap as described here
|
||||
|
||||
https://guix.gnu.org/blog/2020/guix-further-reduces-bootstrap-seed-to-25/
|
||||
|
||||
and now also for armhf-linux and aarch-linux. Work to integrate this
|
||||
into Guix is ongoing: tinycc and gcc-core-2.95.3 have been built.
|
||||
|
||||
We are excited that the Nlnet Foundation is now sponsoring this work!
|
||||
|
||||
Enjoy,
|
||||
Janneke and Danny.
|
||||
|
||||
* About
|
||||
|
||||
GNU Mes[0] is a Scheme interpreter and C compiler for bootstrapping the
|
||||
GNU System. Since version 0.22 it has again helped to halve the size of
|
||||
opaque, uninspectable binary seeds that are currently being used in the
|
||||
Reduced Binary Seed bootstrap[1] of GNU Guix[2]. The final goal is to
|
||||
help create a full source bootstrap as part of the bootstrappable
|
||||
builds[3] effort for UNIX-like operating systems.
|
||||
|
||||
The Scheme interpreter is written in ~5,000 LOC of simple C, and the C
|
||||
compiler written in Scheme and these are mutual self-hosting. This
|
||||
mes.c is now being simplified to be transpiled by M2-Planet[4].
|
||||
|
||||
Mes 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] --and test suite, just
|
||||
enough to support a REPL and a C99 compiler: mescc.
|
||||
|
||||
Mes + MesCC + Mes C Library can build a bootstrappable TinyCC[8] 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-2.95.3. This is enough to bootstrap Guix for
|
||||
i686-linux, x86_64-linux, armhf-linux and aarch64-linux.
|
||||
|
||||
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] ~500 byte self-hosting hex assembler.
|
||||
|
||||
We are very grateful to NLNet for sponsoring the Reduced Binary Seed
|
||||
bootstrap[11] and the ARM port[12].
|
||||
|
||||
* Download
|
||||
|
||||
git clone git://git.savannah.gnu.org/mes.git
|
||||
|
||||
Here are the compressed sources and a GPG detached signature[*]:
|
||||
https://ftp.gnu.org/gnu/mes/mes-0.23.tar.gz
|
||||
https://ftp.gnu.org/gnu/mes/mes-0.23.tar.gz.sig
|
||||
|
||||
Use a mirror for higher download bandwidth:
|
||||
https://ftpmirror.gnu.org/mes/mes-0.23.tar.gz
|
||||
https://ftpmirror.gnu.org/mes/mes-0.23.tar.gz.sig
|
||||
|
||||
Here are the MD5 and SHA1 checksums:
|
||||
|
||||
e9a0ae6e2c3842cf57fccb54909463ba mes-0.23.tar.gz
|
||||
0560879358e5a980f7374844c495c92014b47878 mes-0.23.tar.gz
|
||||
|
||||
[*] Use a .sig file to verify that the corresponding file (without the
|
||||
.sig suffix) is intact. First, be sure to download both the .sig file
|
||||
and the corresponding tarball. Then, run a command like this:
|
||||
|
||||
gpg --verify mes-0.23.tar.gz.sig
|
||||
|
||||
If that command fails because you don't have the required public key,
|
||||
then run this command to import it:
|
||||
|
||||
gpg --keyserver keys.gnupg.net --recv-keys 1A858392E331EAFDB8C27FFBF3C1A0D9C1D65273
|
||||
|
||||
and rerun the 'gpg --verify' command.
|
||||
|
||||
* Get informed, get involved
|
||||
|
||||
See https://bootstrappable.org
|
||||
Join #bootstrappable on irc.freenode.net.
|
||||
|
||||
* NEWS
|
||||
* Changes in 0.23 since 0.22
|
||||
** Core
|
||||
*** Mes and Mes C Library can now be built with GCC 10.x.
|
||||
** MesCC
|
||||
*** The Mes C Library now supports an armhf-linux bootstrap.
|
||||
*** MesCC now supports ARM.
|
||||
*** mini.c library was split into _exit.c, and _write.c.
|
||||
*** When building with GCC, -lgcc is now used.
|
||||
*** MesCC now has it's own support library libmescc.a (-lmescc).
|
||||
*** MesCC now requires mescc-tools-0.7.0 or later for ARM.
|
||||
*** MesCC can be now built with nyacc-1.00.2:
|
||||
note that nyacc-1.03.0 is not (backwards) compatible.
|
||||
*** MesCC can be built with Guile 3.0.x:
|
||||
See https://bugs.gnu.org/43831; use guild compile -O1 with Guile 3.0.x.
|
||||
*** MesCC now raises SIGABRT on abort, if supported.
|
||||
** Noteworthy bug fixes
|
||||
*** unreadchar on EOF is now a no-op.
|
||||
*** malloc now aligns the blocks it gives out to max_align_t.
|
||||
|
||||
[0] https://www.gnu.org/software/mes
|
||||
[1] https://guix.gnu.org/blog/2020/guix-further-reduces-bootstrap-seed-to-25
|
||||
[2] https://www.gnu.org/software/guix
|
||||
[3] https://bootstrappable.org
|
||||
[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://gitlab.com/janneke/tinycc
|
||||
[9] http://www.softwarepreservation.org/projects/LISP/book/LISP%201.5%20Programmers%20Manual.pdf
|
||||
[10] https://savannah.nongnu.org/projects/stage0
|
||||
[11] https://nlnet.nl/project/GNUMes
|
||||
[12] https://nlnet.nl/project/GNUMes-arm
|
|
@ -1,119 +0,0 @@
|
|||
|
||||
Subject: GNU Mes 0.24 released
|
||||
|
||||
<#secure method=pgpmime mode=sign>
|
||||
|
||||
We are thrilled to announce the release of GNU Mes 0.24, representing
|
||||
222 commits over one year by four people.
|
||||
|
||||
Mes has now been ported to M2-Planet and can be bootstrapped using
|
||||
stage0-posix[0], starting from the 357-byte hex0 binary of the
|
||||
bootstrap-seeds[1], as was promised at FOSDEM'21[2].
|
||||
|
||||
We are exciteda that the NlNet Foundation[4] is again sponsoring this
|
||||
work!
|
||||
|
||||
What's next?
|
||||
|
||||
Work to integrate this so-called "Full Source Bootstrap" is happening on
|
||||
the wip-full-source-bootstrap[3] branch. Also, full Guile compatible
|
||||
module support, and RICS-V support.
|
||||
|
||||
Enjoy!
|
||||
|
||||
* About
|
||||
|
||||
GNU Mes[5] is a Scheme interpreter and C compiler for bootstrapping
|
||||
the GNU System. Since version 0.22 it has again helped to halve the
|
||||
size of opaque, uninspectable binary seeds that are currently being
|
||||
used in the Reduced Binary Seed bootstrap[6] of GNU Guix[7]. The
|
||||
final goal is to help create a full source bootstrap as part of the
|
||||
bootstrappable builds[8] effort for UNIX-like operating systems.
|
||||
|
||||
The Scheme interpreter is written in ~5,000 LOC of simple C, and the C
|
||||
compiler written in Scheme and these are mutual self-hosting. Mes can
|
||||
now be bootstrapped from M2-Planet[9] and Mescc-Tools[10].
|
||||
|
||||
Mes has a Garbage Collector, a library of loadable Scheme modules--
|
||||
notably Dominique Boucher's LALR[11], Pre-R6RS portable
|
||||
syntax-case[12] with R7RS ellipsis, Matt Wette's Nyacc[13] --and test
|
||||
suite, just enough to support a REPL and a C99 compiler: mescc.
|
||||
|
||||
Mes + MesCC + Mes C Library can build a bootstrappable TinyCC[14] 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-2.95.3. This is enough to bootstrap Guix for
|
||||
i686-linux, x86_64-linux, armhf-linux and aarch64-linux.
|
||||
|
||||
Mes is inspired by The Maxwell Equations of Software: LISP-1.5[15] --
|
||||
John McCarthy page 13, GNU Guix's source/binary packaging transparency
|
||||
and Jeremiah Orians's stage0[16] 357-byte self-hosting hex assembler.
|
||||
|
||||
* Download
|
||||
|
||||
git clone git://git.savannah.gnu.org/mes.git
|
||||
|
||||
Here are the compressed sources and a GPG detached signature[*]:
|
||||
https://ftp.gnu.org/gnu/mes/mes-0.24.tar.gz
|
||||
https://ftp.gnu.org/gnu/mes/mes-0.24.tar.gz.sig
|
||||
|
||||
Use a mirror for higher download bandwidth:
|
||||
https://ftpmirror.gnu.org/mes/mes-0.24.tar.gz
|
||||
https://ftpmirror.gnu.org/mes/mes-0.24.tar.gz.sig
|
||||
|
||||
Here are the SHA1 and SHA256 checksums:
|
||||
|
||||
f6681aa02edc6729af43f1d7c46ae1a97cbc1c92 mes-0.24.tar.gz
|
||||
828be15e02c103df8a248232491fba10d763724d6ec10f08a2e0e1d249bd9902 mes-0.24.tar.gz
|
||||
|
||||
[*] Use a .sig file to verify that the corresponding file (without the
|
||||
.sig suffix) is intact. First, be sure to download both the .sig file
|
||||
and the corresponding tarball. Then, run a command like this:
|
||||
|
||||
gpg --verify mes-0.24.tar.gz.sig
|
||||
|
||||
If that command fails because you don't have the required public key,
|
||||
or that public key has expired, try the following commands to update
|
||||
or refresh it, and then rerun the 'gpg --verify' command.
|
||||
|
||||
gpg --recv-keys 1A858392E331EAFDB8C27FFBF3C1A0D9C1D65273
|
||||
|
||||
* Get informed, get involved
|
||||
|
||||
See https://bootstrappable.org
|
||||
Join #bootstrappable on irc.libera.chat
|
||||
|
||||
* NEWS
|
||||
* Changes in 0.24 since 0.23
|
||||
** Core
|
||||
*** Mes and Mes C Library can now be built with M2-Planet.
|
||||
*** Mes now supports the --bootstrap build on ARM.
|
||||
** MesCC
|
||||
*** MesCC now supports the integer suffixes:
|
||||
Next to `U', also support `ULL', `UL', `L', and `LL'.
|
||||
** Noteworthy bug fixes
|
||||
*** MesCC now uses the unsigned type for sizeof.
|
||||
*** MesCC now only uses signed division if numerator is signed.
|
||||
*** The Mes C library now supports an argv bigger than 255.
|
||||
*** Development build support with Guile-2 was resurrected.
|
||||
*** The logand procedure now works correctly.
|
||||
*** The 64bit build was resurrected.
|
||||
|
||||
* Links
|
||||
[0] https://github.com/oriansj/stage0-posix
|
||||
[1] https://github.com/oriansj/bootstrap-seeds
|
||||
[2] https://archive.fosdem.org/2021/schedule/event/gnumes/
|
||||
[3] https://git.savannah.gnu.org/cgit/guix.git/log/?h=wip-full-source-bootstrap
|
||||
[4] https://nlnet.nl/project/GNUMes-ARM_RISC-V
|
||||
[5] https://www.gnu.org/software/mes
|
||||
[6] https://guix.gnu.org/blog/2020/guix-further-reduces-bootstrap-seed-to-25
|
||||
[7] https://www.gnu.org/software/guix
|
||||
[8] https://bootstrappable.org
|
||||
[9] https://github.com/oriansj/m2-planet
|
||||
[10] https://savannah.nongnu.org/projects/mescc-tools
|
||||
[11] https://github.com/schemeway/lalr-scm
|
||||
[12] https://www.cs.indiana.edu/chezscheme/syntax-case/old-psyntax.html
|
||||
[13] https://www.nongnu.org/nyacc
|
||||
[14] https://gitlab.com/janneke/tinycc
|
||||
[15] http://www.softwarepreservation.org/projects/LISP/book/LISP%201.5%20Programmers%20Manual.pdf
|
||||
[16] https://savannah.nongnu.org/projects/stage0
|
|
@ -1,115 +0,0 @@
|
|||
|
||||
Subject: GNU Mes 0.24.1 released
|
||||
|
||||
<#secure method=pgpmime mode=sign>
|
||||
|
||||
We are happy to announce the release of GNU Mes 0.24.1, representing 23
|
||||
commits over five months by four people.
|
||||
|
||||
Mes now supports the stage0-posix and M2-Planet Full Source bootstrap on
|
||||
Aarch64 for ARM. Because stage0-posix does not support ARM yet, the Mes
|
||||
ARM bootstrap is currently prototyped on Aarch64.
|
||||
|
||||
We are excited that the NlNet Foundation[4] is again sponsoring this
|
||||
work!
|
||||
|
||||
What's next?
|
||||
|
||||
Work to prototype this so-called "Full Source Bootstrap" for ARM on
|
||||
Aarch64 is happening on the wip-aarch64-bootstrap[3] branch. Also, full
|
||||
Guile compatible module support, and RISC-V support.
|
||||
|
||||
Enjoy!
|
||||
|
||||
* About
|
||||
|
||||
GNU Mes[5] is a Scheme interpreter and C compiler for bootstrapping
|
||||
the GNU System. Since version 0.22 it has again helped to halve the
|
||||
size of opaque, uninspectable binary seeds that are currently being
|
||||
used in the Reduced Binary Seed bootstrap[6] of GNU Guix[7]. The
|
||||
final goal is to help create a full source bootstrap as part of the
|
||||
bootstrappable builds[8] effort for UNIX-like operating systems.
|
||||
|
||||
The Scheme interpreter is written in ~5,000 LOC of simple C, and the C
|
||||
compiler written in Scheme and these are mutual self-hosting. Mes can
|
||||
now be bootstrapped from M2-Planet[9] and Mescc-Tools[10].
|
||||
|
||||
Mes has a Garbage Collector, a library of loadable Scheme modules--
|
||||
notably Dominique Boucher's LALR[11], Pre-R6RS portable
|
||||
syntax-case[12] with R7RS ellipsis, Matt Wette's Nyacc[13] --and test
|
||||
suite, just enough to support a REPL and a C99 compiler: mescc.
|
||||
|
||||
Mes + MesCC + Mes C Library can build a bootstrappable TinyCC[14] 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-2.95.3. This is enough to bootstrap Guix for
|
||||
i686-linux, x86_64-linux, armhf-linux and aarch64-linux.
|
||||
|
||||
Mes is inspired by The Maxwell Equations of Software: LISP-1.5[15] --
|
||||
John McCarthy page 13, GNU Guix's source/binary packaging transparency
|
||||
and Jeremiah Orians's stage0[16] 357-byte self-hosting hex assembler.
|
||||
|
||||
* Download
|
||||
|
||||
git clone git://git.savannah.gnu.org/mes.git
|
||||
|
||||
Here are the compressed sources and a GPG detached signature[*]:
|
||||
https://ftp.gnu.org/gnu/mes/mes-0.24.1.tar.gz
|
||||
https://ftp.gnu.org/gnu/mes/mes-0.24.1.tar.gz.sig
|
||||
|
||||
Use a mirror for higher download bandwidth:
|
||||
https://ftpmirror.gnu.org/mes/mes-0.24.1.tar.gz
|
||||
https://ftpmirror.gnu.org/mes/mes-0.24.1.tar.gz.sig
|
||||
|
||||
Here are the SHA1 and SHA256 checksums:
|
||||
|
||||
bceaaaf1cafaa31ccb1ee1247ce2dd651a2f67be mes-0.24.1.tar.gz
|
||||
35120ceb0676632e58973355b9f86dff9cc717ed65ed2a17ff5272c59f2a0535 mes-0.24.1.tar.gz
|
||||
|
||||
[*] Use a .sig file to verify that the corresponding file (without the
|
||||
.sig suffix) is intact. First, be sure to download both the .sig file
|
||||
and the corresponding tarball. Then, run a command like this:
|
||||
|
||||
gpg --verify mes-0.24.1.tar.gz.sig
|
||||
|
||||
If that command fails because you don't have the required public key,
|
||||
or that public key has expired, try the following commands to update
|
||||
or refresh it, and then rerun the 'gpg --verify' command.
|
||||
|
||||
gpg --recv-keys 1A858392E331EAFDB8C27FFBF3C1A0D9C1D65273
|
||||
|
||||
* Get informed, get involved
|
||||
|
||||
See https://bootstrappable.org
|
||||
Join #bootstrappable on irc.libera.chat
|
||||
|
||||
* NEWS
|
||||
* Changes in 0.24.1 since 0.24
|
||||
** Build
|
||||
*** Support M2-Planet bootstrap for ARM.
|
||||
** MesCC
|
||||
*** The Mes C Library now supports bootstrapping ARM.
|
||||
** Noteworthy bug fixes
|
||||
*** The definition of S_ISUID was fixed.
|
||||
*** Unsigned modulo has been fixed for ARM.
|
||||
*** A bug with abtol has been fixed.
|
||||
*** Workarounds for building with gcc-12.2.0 have been added.
|
||||
|
||||
* Links
|
||||
[0] https://github.com/oriansj/stage0-posix
|
||||
[1] https://github.com/oriansj/bootstrap-seeds
|
||||
[2] https://archive.fosdem.org/2021/schedule/event/gnumes/
|
||||
[3] https://git.savannah.gnu.org/cgit/guix.git/log/?h=wip-aarch64-bootstrap
|
||||
[4] https://nlnet.nl/project/GNUMes-ARM_RISC-V
|
||||
[5] https://www.gnu.org/software/mes
|
||||
[6] https://guix.gnu.org/blog/2020/guix-further-reduces-bootstrap-seed-to-25
|
||||
[7] https://www.gnu.org/software/guix
|
||||
[8] https://bootstrappable.org
|
||||
[9] https://github.com/oriansj/m2-planet
|
||||
[10] https://savannah.nongnu.org/projects/mescc-tools
|
||||
[11] https://github.com/schemeway/lalr-scm
|
||||
[12] https://www.cs.indiana.edu/chezscheme/syntax-case/old-psyntax.html
|
||||
[13] https://www.nongnu.org/nyacc
|
||||
[14] https://gitlab.com/janneke/tinycc
|
||||
[15] http://www.softwarepreservation.org/projects/LISP/book/LISP%201.5%20Programmers%20Manual.pdf
|
||||
[16] https://savannah.nongnu.org/projects/stage0
|
|
@ -1,117 +0,0 @@
|
|||
|
||||
Subject: GNU Mes 0.24.2 released
|
||||
|
||||
<#secure method=pgpmime mode=sign>
|
||||
|
||||
We are happy to announce the release of GNU Mes 0.24.2, representing 25
|
||||
commits over nine months by four people.
|
||||
|
||||
This release should fix the long standing `stat64' bug #41264[0].
|
||||
|
||||
We are very grateful that the NLnet Foundation[1] is sponsoring this
|
||||
work!
|
||||
|
||||
What's next?
|
||||
|
||||
Work to prototype this so-called "Full Source Bootstrap" for ARM on
|
||||
Aarch64 is happening on the wip-aarch64-bootstrap[2] branch. Also, full
|
||||
Guile compatible module support, and RISC-V support.
|
||||
|
||||
Enjoy!
|
||||
|
||||
* About
|
||||
|
||||
GNU Mes[3] is a Scheme interpreter and C compiler for bootstrapping
|
||||
the GNU System. Since version 0.22 it has again helped to halve the
|
||||
size of opaque, uninspectable binary seeds that are currently being
|
||||
used in the Reduced Binary Seed bootstrap[4] of GNU Guix[5]. The
|
||||
final goal is to help create a full source bootstrap as part of the
|
||||
bootstrappable builds[6] effort for UNIX-like operating systems.
|
||||
|
||||
The Scheme interpreter is written in ~5,000 LOC of simple C, and the C
|
||||
compiler written in Scheme and these are mutual self-hosting. Mes can
|
||||
now be bootstrapped from M2-Planet[7] and Mescc-Tools[8].
|
||||
|
||||
Mes has a Garbage Collector, a library of loadable Scheme modules--
|
||||
notably Dominique Boucher's LALR[9], Pre-R6RS portable
|
||||
syntax-case[10] with R7RS ellipsis, Matt Wette's Nyacc[11] --and test
|
||||
suite, just enough to support a REPL and a C99 compiler: mescc.
|
||||
|
||||
Mes + MesCC + Mes C Library can build a bootstrappable TinyCC[12] 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-2.95.3. This is enough to bootstrap Guix for
|
||||
i686-linux, x86_64-linux, armhf-linux and aarch64-linux.
|
||||
|
||||
Mes is inspired by The Maxwell Equations of Software: LISP-1.5[13] --
|
||||
John McCarthy page 13, GNU Guix's source/binary packaging transparency
|
||||
and Jeremiah Orians's stage0[14] 357-byte self-hosting hex assembler.
|
||||
|
||||
* Download
|
||||
|
||||
git clone git://git.savannah.gnu.org/mes.git
|
||||
|
||||
Here are the compressed sources and a GPG detached signature[*]:
|
||||
https://ftp.gnu.org/gnu/mes/mes-0.24.2.tar.gz
|
||||
https://ftp.gnu.org/gnu/mes/mes-0.24.2.tar.gz.sig
|
||||
|
||||
Use a mirror for higher download bandwidth:
|
||||
https://ftpmirror.gnu.org/mes/mes-0.24.2.tar.gz
|
||||
https://ftpmirror.gnu.org/mes/mes-0.24.2.tar.gz.sig
|
||||
|
||||
Here are the SHA1 and SHA256 checksums:
|
||||
|
||||
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx mes-0.24.2.tar.gz
|
||||
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx mes-0.24.2.tar.gz
|
||||
|
||||
[*] Use a .sig file to verify that the corresponding file (without the
|
||||
.sig suffix) is intact. First, be sure to download both the .sig file
|
||||
and the corresponding tarball. Then, run a command like this:
|
||||
|
||||
gpg --verify mes-0.24.2.tar.gz.sig
|
||||
|
||||
If that command fails because you don't have the required public key,
|
||||
or that public key has expired, try the following commands to update
|
||||
or refresh it, and then rerun the 'gpg --verify' command.
|
||||
|
||||
gpg --recv-keys 1A858392E331EAFDB8C27FFBF3C1A0D9C1D65273
|
||||
|
||||
* Get informed, get involved
|
||||
|
||||
See https://bootstrappable.org
|
||||
Join #bootstrappable on irc.libera.chat
|
||||
|
||||
* NEWS
|
||||
* Changes in 0.24.2 since 0.24.1
|
||||
** Build
|
||||
*** A number of compile warnings have been fixed.
|
||||
*** The `simple.make' and `simple.sh' builds have been resurrected.
|
||||
** MesCC
|
||||
*** Some assembly defines were added for building TinyCC for x86_64.
|
||||
*** `__assert_fail' has been updated to use the standard signature.
|
||||
** Noteworthy bug fixes
|
||||
*** A bootstrap build without M2-Planet is now supported again.
|
||||
*** `gettimeofday' no longer segfaults in the M2-Planet build.
|
||||
*** `stat64' and friends are now used on 32bit platforms.
|
||||
This fixes https://debbugs.gnu.org/41264, and should also fix
|
||||
https://debbugs.gnu.org/49985,
|
||||
https://debbugs.gnu.org/53415,
|
||||
https://debbugs.gnu.org/53416.
|
||||
*** The Mes C Library now supports uppercase hex conversions.
|
||||
|
||||
* Links
|
||||
[0] https://debbugs.gnu.org/41264
|
||||
[1] https://nlnet.nl/project/GNUMes-ARM_RISC-V
|
||||
[2] https://git.savannah.gnu.org/cgit/guix.git/log/?h=wip-aarch64-bootstrap
|
||||
[3] https://www.gnu.org/software/mes
|
||||
[4] https://guix.gnu.org/blog/2020/guix-further-reduces-bootstrap-seed-to-25
|
||||
[5] https://www.gnu.org/software/guix
|
||||
[6] https://bootstrappable.org
|
||||
[7] https://github.com/oriansj/m2-planet
|
||||
[8] https://savannah.nongnu.org/projects/mescc-tools
|
||||
[9] https://github.com/schemeway/lalr-scm
|
||||
[10] https://www.cs.indiana.edu/chezscheme/syntax-case/old-psyntax.html
|
||||
[11] https://www.nongnu.org/nyacc
|
||||
[12] https://gitlab.com/janneke/tinycc
|
||||
[13] http://www.softwarepreservation.org/projects/LISP/book/LISP%201.5%20Programmers%20Manual.pdf
|
||||
[14] https://github.com/oriansj/stage0-posix
|
|
@ -6,7 +6,7 @@
|
|||
|
||||
@display
|
||||
Copyright @copyright{} 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc.
|
||||
@uref{https://fsf.org/}
|
||||
@uref{http://fsf.org/}
|
||||
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
@ -414,7 +414,7 @@ The Free Software Foundation may publish new, revised versions
|
|||
of the GNU Free Documentation License from time to time. Such new
|
||||
versions will be similar in spirit to the present version, but may
|
||||
differ in detail to address new problems or concerns. See
|
||||
@uref{https://www.gnu.org/copyleft/}.
|
||||
@uref{http://www.gnu.org/copyleft/}.
|
||||
|
||||
Each version of the License is given a distinguishing version number.
|
||||
If the Document specifies that a particular numbered version of this
|
||||
|
|
|
@ -1,107 +1,123 @@
|
|||
digraph "Guix bag" {
|
||||
"/gnu/store/3va8hfvfyp6dbwqk3036kb25wbp0f81z-gcc-core-mesboot0-2.95.3.drv" [label = "gcc-core-mesboot0@2.95.3", shape = box, fontname = sans];
|
||||
"/gnu/store/3va8hfvfyp6dbwqk3036kb25wbp0f81z-gcc-core-mesboot0-2.95.3.drv" -> "/gnu/store/8ghnzf9idpmva8l4n8fyvvgqlln4rddi-binutils-mesboot0-2.14.drv" [color = red];
|
||||
"/gnu/store/3va8hfvfyp6dbwqk3036kb25wbp0f81z-gcc-core-mesboot0-2.95.3.drv" -> "/gnu/store/yx5dz5gi00q8h5i138h59j1jmbhr3qa4-bash-mesboot0-2.05b.drv" [color = red];
|
||||
"/gnu/store/3va8hfvfyp6dbwqk3036kb25wbp0f81z-gcc-core-mesboot0-2.95.3.drv" -> "/gnu/store/yy8bxckakx5f4rpvqfggrfy21y7bn53g-bzip2-mesboot-1.0.8.drv" [color = red];
|
||||
"/gnu/store/3va8hfvfyp6dbwqk3036kb25wbp0f81z-gcc-core-mesboot0-2.95.3.drv" -> "/gnu/store/qyphha8i1pylf10pm76400kq5d07zsvr-gzip-mesboot-1.2.4.drv" [color = red];
|
||||
"/gnu/store/3va8hfvfyp6dbwqk3036kb25wbp0f81z-gcc-core-mesboot0-2.95.3.drv" -> "/gnu/store/vn42sjmbh0zr9wn9lnbsdrxlh1zihx50-patch-mesboot-2.5.9.drv" [color = red];
|
||||
"/gnu/store/3va8hfvfyp6dbwqk3036kb25wbp0f81z-gcc-core-mesboot0-2.95.3.drv" -> "/gnu/store/16w6l2c80hh98kfykal9hpbm93cscbcg-sed-mesboot0-1.18.drv" [color = red];
|
||||
"/gnu/store/3va8hfvfyp6dbwqk3036kb25wbp0f81z-gcc-core-mesboot0-2.95.3.drv" -> "/gnu/store/yl8gsvanaj8wgngmgc4an06g5ybadad2-gash-utils-boot-0.1.0.drv" [color = red];
|
||||
"/gnu/store/3va8hfvfyp6dbwqk3036kb25wbp0f81z-gcc-core-mesboot0-2.95.3.drv" -> "/gnu/store/h1m81zsyi3l4yd9r7pd3ffanb61pszxy-tcc-boot-0.9.27.drv" [color = red];
|
||||
"/gnu/store/3va8hfvfyp6dbwqk3036kb25wbp0f81z-gcc-core-mesboot0-2.95.3.drv" -> "/gnu/store/hlm2wxhh0irfjnds4i86imdqi13iwj81-make-mesboot0-3.80.drv" [color = red];
|
||||
"/gnu/store/3va8hfvfyp6dbwqk3036kb25wbp0f81z-gcc-core-mesboot0-2.95.3.drv" -> "/gnu/store/jrf5jckbwk949npav1p62vgcg95lr4mx-gash-boot-0.2.0.drv" [color = red];
|
||||
"/gnu/store/3va8hfvfyp6dbwqk3036kb25wbp0f81z-gcc-core-mesboot0-2.95.3.drv" -> "/gnu/store/yl8gsvanaj8wgngmgc4an06g5ybadad2-gash-utils-boot-0.1.0.drv" [color = red];
|
||||
"/gnu/store/3va8hfvfyp6dbwqk3036kb25wbp0f81z-gcc-core-mesboot0-2.95.3.drv" -> "/gnu/store/w77kjhmj4c4sncndnh0kvf0jfpwpradm-bootar-1a.drv" [color = red];
|
||||
"/gnu/store/3va8hfvfyp6dbwqk3036kb25wbp0f81z-gcc-core-mesboot0-2.95.3.drv" -> "/gnu/store/qs4086i9b9q0b74l4wjqgzbdc3c0f58f-guile-bootstrap-2.0.drv" [color = red];
|
||||
"/gnu/store/8ghnzf9idpmva8l4n8fyvvgqlln4rddi-binutils-mesboot0-2.14.drv" [label = "binutils-mesboot0@2.14", shape = box, fontname = sans];
|
||||
"/gnu/store/8ghnzf9idpmva8l4n8fyvvgqlln4rddi-binutils-mesboot0-2.14.drv" -> "/gnu/store/yx5dz5gi00q8h5i138h59j1jmbhr3qa4-bash-mesboot0-2.05b.drv" [color = cyan3];
|
||||
"/gnu/store/8ghnzf9idpmva8l4n8fyvvgqlln4rddi-binutils-mesboot0-2.14.drv" -> "/gnu/store/yy8bxckakx5f4rpvqfggrfy21y7bn53g-bzip2-mesboot-1.0.8.drv" [color = cyan3];
|
||||
"/gnu/store/8ghnzf9idpmva8l4n8fyvvgqlln4rddi-binutils-mesboot0-2.14.drv" -> "/gnu/store/qyphha8i1pylf10pm76400kq5d07zsvr-gzip-mesboot-1.2.4.drv" [color = cyan3];
|
||||
"/gnu/store/8ghnzf9idpmva8l4n8fyvvgqlln4rddi-binutils-mesboot0-2.14.drv" -> "/gnu/store/vn42sjmbh0zr9wn9lnbsdrxlh1zihx50-patch-mesboot-2.5.9.drv" [color = cyan3];
|
||||
"/gnu/store/8ghnzf9idpmva8l4n8fyvvgqlln4rddi-binutils-mesboot0-2.14.drv" -> "/gnu/store/16w6l2c80hh98kfykal9hpbm93cscbcg-sed-mesboot0-1.18.drv" [color = cyan3];
|
||||
"/gnu/store/8ghnzf9idpmva8l4n8fyvvgqlln4rddi-binutils-mesboot0-2.14.drv" -> "/gnu/store/yl8gsvanaj8wgngmgc4an06g5ybadad2-gash-utils-boot-0.1.0.drv" [color = cyan3];
|
||||
"/gnu/store/8ghnzf9idpmva8l4n8fyvvgqlln4rddi-binutils-mesboot0-2.14.drv" -> "/gnu/store/h1m81zsyi3l4yd9r7pd3ffanb61pszxy-tcc-boot-0.9.27.drv" [color = cyan3];
|
||||
"/gnu/store/8ghnzf9idpmva8l4n8fyvvgqlln4rddi-binutils-mesboot0-2.14.drv" -> "/gnu/store/hlm2wxhh0irfjnds4i86imdqi13iwj81-make-mesboot0-3.80.drv" [color = cyan3];
|
||||
"/gnu/store/8ghnzf9idpmva8l4n8fyvvgqlln4rddi-binutils-mesboot0-2.14.drv" -> "/gnu/store/jrf5jckbwk949npav1p62vgcg95lr4mx-gash-boot-0.2.0.drv" [color = cyan3];
|
||||
"/gnu/store/8ghnzf9idpmva8l4n8fyvvgqlln4rddi-binutils-mesboot0-2.14.drv" -> "/gnu/store/yl8gsvanaj8wgngmgc4an06g5ybadad2-gash-utils-boot-0.1.0.drv" [color = cyan3];
|
||||
"/gnu/store/8ghnzf9idpmva8l4n8fyvvgqlln4rddi-binutils-mesboot0-2.14.drv" -> "/gnu/store/w77kjhmj4c4sncndnh0kvf0jfpwpradm-bootar-1a.drv" [color = cyan3];
|
||||
"/gnu/store/8ghnzf9idpmva8l4n8fyvvgqlln4rddi-binutils-mesboot0-2.14.drv" -> "/gnu/store/qs4086i9b9q0b74l4wjqgzbdc3c0f58f-guile-bootstrap-2.0.drv" [color = cyan3];
|
||||
"/gnu/store/yx5dz5gi00q8h5i138h59j1jmbhr3qa4-bash-mesboot0-2.05b.drv" [label = "bash-mesboot0@2.05b", shape = box, fontname = sans];
|
||||
"/gnu/store/yx5dz5gi00q8h5i138h59j1jmbhr3qa4-bash-mesboot0-2.05b.drv" -> "/gnu/store/hlm2wxhh0irfjnds4i86imdqi13iwj81-make-mesboot0-3.80.drv" [color = darkgoldenrod];
|
||||
"/gnu/store/yx5dz5gi00q8h5i138h59j1jmbhr3qa4-bash-mesboot0-2.05b.drv" -> "/gnu/store/0izhx7j1n6lcpcbvy9i9pyjkzjpbxrcj-tcc-boot0-0.9.26-1103-g6e62e0e.drv" [color = darkgoldenrod];
|
||||
"/gnu/store/yx5dz5gi00q8h5i138h59j1jmbhr3qa4-bash-mesboot0-2.05b.drv" -> "/gnu/store/jrf5jckbwk949npav1p62vgcg95lr4mx-gash-boot-0.2.0.drv" [color = darkgoldenrod];
|
||||
"/gnu/store/yx5dz5gi00q8h5i138h59j1jmbhr3qa4-bash-mesboot0-2.05b.drv" -> "/gnu/store/yl8gsvanaj8wgngmgc4an06g5ybadad2-gash-utils-boot-0.1.0.drv" [color = darkgoldenrod];
|
||||
"/gnu/store/yx5dz5gi00q8h5i138h59j1jmbhr3qa4-bash-mesboot0-2.05b.drv" -> "/gnu/store/w77kjhmj4c4sncndnh0kvf0jfpwpradm-bootar-1a.drv" [color = darkgoldenrod];
|
||||
"/gnu/store/yx5dz5gi00q8h5i138h59j1jmbhr3qa4-bash-mesboot0-2.05b.drv" -> "/gnu/store/qs4086i9b9q0b74l4wjqgzbdc3c0f58f-guile-bootstrap-2.0.drv" [color = darkgoldenrod];
|
||||
"/gnu/store/hlm2wxhh0irfjnds4i86imdqi13iwj81-make-mesboot0-3.80.drv" [label = "make-mesboot0@3.80", shape = box, fontname = sans];
|
||||
"/gnu/store/hlm2wxhh0irfjnds4i86imdqi13iwj81-make-mesboot0-3.80.drv" -> "/gnu/store/0izhx7j1n6lcpcbvy9i9pyjkzjpbxrcj-tcc-boot0-0.9.26-1103-g6e62e0e.drv" [color = magenta];
|
||||
"/gnu/store/hlm2wxhh0irfjnds4i86imdqi13iwj81-make-mesboot0-3.80.drv" -> "/gnu/store/jrf5jckbwk949npav1p62vgcg95lr4mx-gash-boot-0.2.0.drv" [color = magenta];
|
||||
"/gnu/store/hlm2wxhh0irfjnds4i86imdqi13iwj81-make-mesboot0-3.80.drv" -> "/gnu/store/yl8gsvanaj8wgngmgc4an06g5ybadad2-gash-utils-boot-0.1.0.drv" [color = magenta];
|
||||
"/gnu/store/hlm2wxhh0irfjnds4i86imdqi13iwj81-make-mesboot0-3.80.drv" -> "/gnu/store/w77kjhmj4c4sncndnh0kvf0jfpwpradm-bootar-1a.drv" [color = magenta];
|
||||
"/gnu/store/hlm2wxhh0irfjnds4i86imdqi13iwj81-make-mesboot0-3.80.drv" -> "/gnu/store/qs4086i9b9q0b74l4wjqgzbdc3c0f58f-guile-bootstrap-2.0.drv" [color = magenta];
|
||||
"/gnu/store/0izhx7j1n6lcpcbvy9i9pyjkzjpbxrcj-tcc-boot0-0.9.26-1103-g6e62e0e.drv" [label = "tcc-boot0@0.9.26-1103-g6e62e0e", shape = box, fontname = sans];
|
||||
"/gnu/store/0izhx7j1n6lcpcbvy9i9pyjkzjpbxrcj-tcc-boot0-0.9.26-1103-g6e62e0e.drv" -> "/gnu/store/iny72b5k1f531xv7fr2i31j4gqknjv2l-mes-boot-0.22.drv" [color = darkseagreen];
|
||||
"/gnu/store/0izhx7j1n6lcpcbvy9i9pyjkzjpbxrcj-tcc-boot0-0.9.26-1103-g6e62e0e.drv" -> "/gnu/store/a6nbjivhxp65wqj5s8rz0fnmwzqxmhry-bootstrap-mescc-tools-0.5.2.drv" [color = darkseagreen];
|
||||
"/gnu/store/0izhx7j1n6lcpcbvy9i9pyjkzjpbxrcj-tcc-boot0-0.9.26-1103-g6e62e0e.drv" -> "/gnu/store/jrf5jckbwk949npav1p62vgcg95lr4mx-gash-boot-0.2.0.drv" [color = darkseagreen];
|
||||
"/gnu/store/0izhx7j1n6lcpcbvy9i9pyjkzjpbxrcj-tcc-boot0-0.9.26-1103-g6e62e0e.drv" -> "/gnu/store/yl8gsvanaj8wgngmgc4an06g5ybadad2-gash-utils-boot-0.1.0.drv" [color = darkseagreen];
|
||||
"/gnu/store/0izhx7j1n6lcpcbvy9i9pyjkzjpbxrcj-tcc-boot0-0.9.26-1103-g6e62e0e.drv" -> "/gnu/store/w77kjhmj4c4sncndnh0kvf0jfpwpradm-bootar-1a.drv" [color = darkseagreen];
|
||||
"/gnu/store/0izhx7j1n6lcpcbvy9i9pyjkzjpbxrcj-tcc-boot0-0.9.26-1103-g6e62e0e.drv" -> "/gnu/store/qs4086i9b9q0b74l4wjqgzbdc3c0f58f-guile-bootstrap-2.0.drv" [color = darkseagreen];
|
||||
"/gnu/store/iny72b5k1f531xv7fr2i31j4gqknjv2l-mes-boot-0.22.drv" [label = "mes-boot@0.22", shape = box, fontname = sans];
|
||||
"/gnu/store/iny72b5k1f531xv7fr2i31j4gqknjv2l-mes-boot-0.22.drv" -> "/gnu/store/xdhz4v7icrfwdbq1j5j052id8l04arms-bootstrap-mes-rewired-0.19.drv" [color = peachpuff4];
|
||||
"/gnu/store/iny72b5k1f531xv7fr2i31j4gqknjv2l-mes-boot-0.22.drv" -> "/gnu/store/a6nbjivhxp65wqj5s8rz0fnmwzqxmhry-bootstrap-mescc-tools-0.5.2.drv" [color = peachpuff4];
|
||||
"/gnu/store/iny72b5k1f531xv7fr2i31j4gqknjv2l-mes-boot-0.22.drv" -> "/gnu/store/jrf5jckbwk949npav1p62vgcg95lr4mx-gash-boot-0.2.0.drv" [color = peachpuff4];
|
||||
"/gnu/store/iny72b5k1f531xv7fr2i31j4gqknjv2l-mes-boot-0.22.drv" -> "/gnu/store/yl8gsvanaj8wgngmgc4an06g5ybadad2-gash-utils-boot-0.1.0.drv" [color = peachpuff4];
|
||||
"/gnu/store/iny72b5k1f531xv7fr2i31j4gqknjv2l-mes-boot-0.22.drv" -> "/gnu/store/w77kjhmj4c4sncndnh0kvf0jfpwpradm-bootar-1a.drv" [color = peachpuff4];
|
||||
"/gnu/store/iny72b5k1f531xv7fr2i31j4gqknjv2l-mes-boot-0.22.drv" -> "/gnu/store/qs4086i9b9q0b74l4wjqgzbdc3c0f58f-guile-bootstrap-2.0.drv" [color = peachpuff4];
|
||||
"/gnu/store/xdhz4v7icrfwdbq1j5j052id8l04arms-bootstrap-mes-rewired-0.19.drv" [label = "bootstrap-mes-rewired@0.19", shape = box, fontname = sans];
|
||||
"/gnu/store/xdhz4v7icrfwdbq1j5j052id8l04arms-bootstrap-mes-rewired-0.19.drv" -> "/gnu/store/r7bbw2ywmgqp6m5a1hp0fs4lhc51w3sq-bootstrap-mes-0.drv" [color = cyan3];
|
||||
"/gnu/store/xdhz4v7icrfwdbq1j5j052id8l04arms-bootstrap-mes-rewired-0.19.drv" -> "/gnu/store/jrf5jckbwk949npav1p62vgcg95lr4mx-gash-boot-0.2.0.drv" [color = cyan3];
|
||||
"/gnu/store/r7bbw2ywmgqp6m5a1hp0fs4lhc51w3sq-bootstrap-mes-0.drv" [label = "bootstrap-mes@0", shape = box, fontname = sans];
|
||||
"/gnu/store/jrf5jckbwk949npav1p62vgcg95lr4mx-gash-boot-0.2.0.drv" [label = "gash-boot@0.2.0", shape = box, fontname = sans];
|
||||
"/gnu/store/jrf5jckbwk949npav1p62vgcg95lr4mx-gash-boot-0.2.0.drv" -> "/gnu/store/w77kjhmj4c4sncndnh0kvf0jfpwpradm-bootar-1a.drv" [color = darkviolet];
|
||||
"/gnu/store/jrf5jckbwk949npav1p62vgcg95lr4mx-gash-boot-0.2.0.drv" -> "/gnu/store/qs4086i9b9q0b74l4wjqgzbdc3c0f58f-guile-bootstrap-2.0.drv" [color = darkviolet];
|
||||
"/gnu/store/w77kjhmj4c4sncndnh0kvf0jfpwpradm-bootar-1a.drv" [label = "bootar@1a", shape = box, fontname = sans];
|
||||
"/gnu/store/w77kjhmj4c4sncndnh0kvf0jfpwpradm-bootar-1a.drv" -> "/gnu/store/qs4086i9b9q0b74l4wjqgzbdc3c0f58f-guile-bootstrap-2.0.drv" [color = blue];
|
||||
"/gnu/store/qs4086i9b9q0b74l4wjqgzbdc3c0f58f-guile-bootstrap-2.0.drv" [label = "guile-bootstrap@2.0", shape = box, fontname = sans];
|
||||
"/gnu/store/a6nbjivhxp65wqj5s8rz0fnmwzqxmhry-bootstrap-mescc-tools-0.5.2.drv" [label = "bootstrap-mescc-tools@0.5.2", shape = box, fontname = sans];
|
||||
"/gnu/store/yl8gsvanaj8wgngmgc4an06g5ybadad2-gash-utils-boot-0.1.0.drv" [label = "gash-utils-boot@0.1.0", shape = box, fontname = sans];
|
||||
"/gnu/store/yl8gsvanaj8wgngmgc4an06g5ybadad2-gash-utils-boot-0.1.0.drv" -> "/gnu/store/w77kjhmj4c4sncndnh0kvf0jfpwpradm-bootar-1a.drv" [color = blue];
|
||||
"/gnu/store/yl8gsvanaj8wgngmgc4an06g5ybadad2-gash-utils-boot-0.1.0.drv" -> "/gnu/store/jrf5jckbwk949npav1p62vgcg95lr4mx-gash-boot-0.2.0.drv" [color = blue];
|
||||
"/gnu/store/yl8gsvanaj8wgngmgc4an06g5ybadad2-gash-utils-boot-0.1.0.drv" -> "/gnu/store/qs4086i9b9q0b74l4wjqgzbdc3c0f58f-guile-bootstrap-2.0.drv" [color = blue];
|
||||
"/gnu/store/yy8bxckakx5f4rpvqfggrfy21y7bn53g-bzip2-mesboot-1.0.8.drv" [label = "bzip2-mesboot@1.0.8", shape = box, fontname = sans];
|
||||
"/gnu/store/yy8bxckakx5f4rpvqfggrfy21y7bn53g-bzip2-mesboot-1.0.8.drv" -> "/gnu/store/hlm2wxhh0irfjnds4i86imdqi13iwj81-make-mesboot0-3.80.drv" [color = blue];
|
||||
"/gnu/store/yy8bxckakx5f4rpvqfggrfy21y7bn53g-bzip2-mesboot-1.0.8.drv" -> "/gnu/store/0izhx7j1n6lcpcbvy9i9pyjkzjpbxrcj-tcc-boot0-0.9.26-1103-g6e62e0e.drv" [color = blue];
|
||||
"/gnu/store/yy8bxckakx5f4rpvqfggrfy21y7bn53g-bzip2-mesboot-1.0.8.drv" -> "/gnu/store/jrf5jckbwk949npav1p62vgcg95lr4mx-gash-boot-0.2.0.drv" [color = blue];
|
||||
"/gnu/store/yy8bxckakx5f4rpvqfggrfy21y7bn53g-bzip2-mesboot-1.0.8.drv" -> "/gnu/store/yl8gsvanaj8wgngmgc4an06g5ybadad2-gash-utils-boot-0.1.0.drv" [color = blue];
|
||||
"/gnu/store/yy8bxckakx5f4rpvqfggrfy21y7bn53g-bzip2-mesboot-1.0.8.drv" -> "/gnu/store/w77kjhmj4c4sncndnh0kvf0jfpwpradm-bootar-1a.drv" [color = blue];
|
||||
"/gnu/store/yy8bxckakx5f4rpvqfggrfy21y7bn53g-bzip2-mesboot-1.0.8.drv" -> "/gnu/store/qs4086i9b9q0b74l4wjqgzbdc3c0f58f-guile-bootstrap-2.0.drv" [color = blue];
|
||||
"/gnu/store/qyphha8i1pylf10pm76400kq5d07zsvr-gzip-mesboot-1.2.4.drv" [label = "gzip-mesboot@1.2.4", shape = box, fontname = sans];
|
||||
"/gnu/store/qyphha8i1pylf10pm76400kq5d07zsvr-gzip-mesboot-1.2.4.drv" -> "/gnu/store/0izhx7j1n6lcpcbvy9i9pyjkzjpbxrcj-tcc-boot0-0.9.26-1103-g6e62e0e.drv" [color = red];
|
||||
"/gnu/store/qyphha8i1pylf10pm76400kq5d07zsvr-gzip-mesboot-1.2.4.drv" -> "/gnu/store/jrf5jckbwk949npav1p62vgcg95lr4mx-gash-boot-0.2.0.drv" [color = red];
|
||||
"/gnu/store/qyphha8i1pylf10pm76400kq5d07zsvr-gzip-mesboot-1.2.4.drv" -> "/gnu/store/yl8gsvanaj8wgngmgc4an06g5ybadad2-gash-utils-boot-0.1.0.drv" [color = red];
|
||||
"/gnu/store/qyphha8i1pylf10pm76400kq5d07zsvr-gzip-mesboot-1.2.4.drv" -> "/gnu/store/w77kjhmj4c4sncndnh0kvf0jfpwpradm-bootar-1a.drv" [color = red];
|
||||
"/gnu/store/qyphha8i1pylf10pm76400kq5d07zsvr-gzip-mesboot-1.2.4.drv" -> "/gnu/store/qs4086i9b9q0b74l4wjqgzbdc3c0f58f-guile-bootstrap-2.0.drv" [color = red];
|
||||
"/gnu/store/vn42sjmbh0zr9wn9lnbsdrxlh1zihx50-patch-mesboot-2.5.9.drv" [label = "patch-mesboot@2.5.9", shape = box, fontname = sans];
|
||||
"/gnu/store/vn42sjmbh0zr9wn9lnbsdrxlh1zihx50-patch-mesboot-2.5.9.drv" -> "/gnu/store/hlm2wxhh0irfjnds4i86imdqi13iwj81-make-mesboot0-3.80.drv" [color = darkseagreen];
|
||||
"/gnu/store/vn42sjmbh0zr9wn9lnbsdrxlh1zihx50-patch-mesboot-2.5.9.drv" -> "/gnu/store/0izhx7j1n6lcpcbvy9i9pyjkzjpbxrcj-tcc-boot0-0.9.26-1103-g6e62e0e.drv" [color = darkseagreen];
|
||||
"/gnu/store/vn42sjmbh0zr9wn9lnbsdrxlh1zihx50-patch-mesboot-2.5.9.drv" -> "/gnu/store/jrf5jckbwk949npav1p62vgcg95lr4mx-gash-boot-0.2.0.drv" [color = darkseagreen];
|
||||
"/gnu/store/vn42sjmbh0zr9wn9lnbsdrxlh1zihx50-patch-mesboot-2.5.9.drv" -> "/gnu/store/yl8gsvanaj8wgngmgc4an06g5ybadad2-gash-utils-boot-0.1.0.drv" [color = darkseagreen];
|
||||
"/gnu/store/vn42sjmbh0zr9wn9lnbsdrxlh1zihx50-patch-mesboot-2.5.9.drv" -> "/gnu/store/w77kjhmj4c4sncndnh0kvf0jfpwpradm-bootar-1a.drv" [color = darkseagreen];
|
||||
"/gnu/store/vn42sjmbh0zr9wn9lnbsdrxlh1zihx50-patch-mesboot-2.5.9.drv" -> "/gnu/store/qs4086i9b9q0b74l4wjqgzbdc3c0f58f-guile-bootstrap-2.0.drv" [color = darkseagreen];
|
||||
"/gnu/store/16w6l2c80hh98kfykal9hpbm93cscbcg-sed-mesboot0-1.18.drv" [label = "sed-mesboot0@1.18", shape = box, fontname = sans];
|
||||
"/gnu/store/16w6l2c80hh98kfykal9hpbm93cscbcg-sed-mesboot0-1.18.drv" -> "/gnu/store/hlm2wxhh0irfjnds4i86imdqi13iwj81-make-mesboot0-3.80.drv" [color = darkgoldenrod];
|
||||
"/gnu/store/16w6l2c80hh98kfykal9hpbm93cscbcg-sed-mesboot0-1.18.drv" -> "/gnu/store/0izhx7j1n6lcpcbvy9i9pyjkzjpbxrcj-tcc-boot0-0.9.26-1103-g6e62e0e.drv" [color = darkgoldenrod];
|
||||
"/gnu/store/16w6l2c80hh98kfykal9hpbm93cscbcg-sed-mesboot0-1.18.drv" -> "/gnu/store/jrf5jckbwk949npav1p62vgcg95lr4mx-gash-boot-0.2.0.drv" [color = darkgoldenrod];
|
||||
"/gnu/store/16w6l2c80hh98kfykal9hpbm93cscbcg-sed-mesboot0-1.18.drv" -> "/gnu/store/yl8gsvanaj8wgngmgc4an06g5ybadad2-gash-utils-boot-0.1.0.drv" [color = darkgoldenrod];
|
||||
"/gnu/store/16w6l2c80hh98kfykal9hpbm93cscbcg-sed-mesboot0-1.18.drv" -> "/gnu/store/w77kjhmj4c4sncndnh0kvf0jfpwpradm-bootar-1a.drv" [color = darkgoldenrod];
|
||||
"/gnu/store/16w6l2c80hh98kfykal9hpbm93cscbcg-sed-mesboot0-1.18.drv" -> "/gnu/store/qs4086i9b9q0b74l4wjqgzbdc3c0f58f-guile-bootstrap-2.0.drv" [color = darkgoldenrod];
|
||||
"/gnu/store/h1m81zsyi3l4yd9r7pd3ffanb61pszxy-tcc-boot-0.9.27.drv" [label = "tcc-boot@0.9.27", shape = box, fontname = sans];
|
||||
"/gnu/store/h1m81zsyi3l4yd9r7pd3ffanb61pszxy-tcc-boot-0.9.27.drv" -> "/gnu/store/yy8bxckakx5f4rpvqfggrfy21y7bn53g-bzip2-mesboot-1.0.8.drv" [color = blue];
|
||||
"/gnu/store/h1m81zsyi3l4yd9r7pd3ffanb61pszxy-tcc-boot-0.9.27.drv" -> "/gnu/store/hlm2wxhh0irfjnds4i86imdqi13iwj81-make-mesboot0-3.80.drv" [color = blue];
|
||||
"/gnu/store/h1m81zsyi3l4yd9r7pd3ffanb61pszxy-tcc-boot-0.9.27.drv" -> "/gnu/store/0izhx7j1n6lcpcbvy9i9pyjkzjpbxrcj-tcc-boot0-0.9.26-1103-g6e62e0e.drv" [color = blue];
|
||||
"/gnu/store/h1m81zsyi3l4yd9r7pd3ffanb61pszxy-tcc-boot-0.9.27.drv" -> "/gnu/store/jrf5jckbwk949npav1p62vgcg95lr4mx-gash-boot-0.2.0.drv" [color = blue];
|
||||
"/gnu/store/h1m81zsyi3l4yd9r7pd3ffanb61pszxy-tcc-boot-0.9.27.drv" -> "/gnu/store/yl8gsvanaj8wgngmgc4an06g5ybadad2-gash-utils-boot-0.1.0.drv" [color = blue];
|
||||
"/gnu/store/h1m81zsyi3l4yd9r7pd3ffanb61pszxy-tcc-boot-0.9.27.drv" -> "/gnu/store/w77kjhmj4c4sncndnh0kvf0jfpwpradm-bootar-1a.drv" [color = blue];
|
||||
"/gnu/store/h1m81zsyi3l4yd9r7pd3ffanb61pszxy-tcc-boot-0.9.27.drv" -> "/gnu/store/qs4086i9b9q0b74l4wjqgzbdc3c0f58f-guile-bootstrap-2.0.drv" [color = blue];
|
||||
"/gnu/store/q8f5yjxp0kcdn2mwqf83bvhal71cnr71-gcc-mesboot-4.9.4.drv" [label = "gcc-mesboot@4.9.4", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/q8f5yjxp0kcdn2mwqf83bvhal71cnr71-gcc-mesboot-4.9.4.drv" -> "/gnu/store/2lpg626q4x8v7hgqajywpq1rc8y72hzx-binutils-mesboot-2.20.1a.drv" [color = magenta];
|
||||
"/gnu/store/q8f5yjxp0kcdn2mwqf83bvhal71cnr71-gcc-mesboot-4.9.4.drv" -> "/gnu/store/7v6fpp5msmjbhmprikrfcj047016gd54-gcc-mesboot1-wrapper-4.7.4.drv" [color = magenta];
|
||||
"/gnu/store/q8f5yjxp0kcdn2mwqf83bvhal71cnr71-gcc-mesboot-4.9.4.drv" -> "/gnu/store/7pllq0crksfkr7856y1pawcy4scc7l4q-gcc-mesboot1-4.7.4.drv" [color = magenta];
|
||||
"/gnu/store/q8f5yjxp0kcdn2mwqf83bvhal71cnr71-gcc-mesboot-4.9.4.drv" -> "/gnu/store/lp6fycqqd8adndlfylh4mlihm0qakxzw-glibc-mesboot-2.16.0.drv" [color = magenta];
|
||||
"/gnu/store/q8f5yjxp0kcdn2mwqf83bvhal71cnr71-gcc-mesboot-4.9.4.drv" -> "/gnu/store/7wqw4023spvggi15vcxyxvivxa4rmmv8-bootstrap-binaries-0.drv" [color = magenta];
|
||||
"/gnu/store/q8f5yjxp0kcdn2mwqf83bvhal71cnr71-gcc-mesboot-4.9.4.drv" -> "/gnu/store/7wqw4023spvggi15vcxyxvivxa4rmmv8-bootstrap-binaries-0.drv" [color = magenta];
|
||||
"/gnu/store/q8f5yjxp0kcdn2mwqf83bvhal71cnr71-gcc-mesboot-4.9.4.drv" -> "/gnu/store/r50fj43103526ga6pi2f9jkk4gvaav7m-diffutils-mesboot-2.7.drv" [color = magenta];
|
||||
"/gnu/store/q8f5yjxp0kcdn2mwqf83bvhal71cnr71-gcc-mesboot-4.9.4.drv" -> "/gnu/store/r0z9bix88pz0wf6sgcn9185iwcsdracs-linux-libre-headers-bootstrap-0.drv" [color = magenta];
|
||||
"/gnu/store/q8f5yjxp0kcdn2mwqf83bvhal71cnr71-gcc-mesboot-4.9.4.drv" -> "/gnu/store/5ad88jy4a1gpbslzdiksk7zjyh28wzkr-make-mesboot-3.82.drv" [color = magenta];
|
||||
"/gnu/store/2lpg626q4x8v7hgqajywpq1rc8y72hzx-binutils-mesboot-2.20.1a.drv" [label = "binutils-mesboot@2.20.1a", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/2lpg626q4x8v7hgqajywpq1rc8y72hzx-binutils-mesboot-2.20.1a.drv" -> "/gnu/store/x9shp86cz9f4rb5xvhs37zzxg1ngi4dr-binutils-mesboot0-2.20.1a.drv" [color = magenta];
|
||||
"/gnu/store/2lpg626q4x8v7hgqajywpq1rc8y72hzx-binutils-mesboot-2.20.1a.drv" -> "/gnu/store/2633565gzh4jqh7c5zf6i0iy9yxqigcv-glibc-mesboot0-2.2.5.drv" [color = magenta];
|
||||
"/gnu/store/2lpg626q4x8v7hgqajywpq1rc8y72hzx-binutils-mesboot-2.20.1a.drv" -> "/gnu/store/slnyk8gbnvfwy1m1was8myivpss58idd-gcc-mesboot0-2.95.3.drv" [color = magenta];
|
||||
"/gnu/store/2lpg626q4x8v7hgqajywpq1rc8y72hzx-binutils-mesboot-2.20.1a.drv" -> "/gnu/store/7wqw4023spvggi15vcxyxvivxa4rmmv8-bootstrap-binaries-0.drv" [color = magenta];
|
||||
"/gnu/store/2lpg626q4x8v7hgqajywpq1rc8y72hzx-binutils-mesboot-2.20.1a.drv" -> "/gnu/store/7wqw4023spvggi15vcxyxvivxa4rmmv8-bootstrap-binaries-0.drv" [color = magenta];
|
||||
"/gnu/store/2lpg626q4x8v7hgqajywpq1rc8y72hzx-binutils-mesboot-2.20.1a.drv" -> "/gnu/store/r50fj43103526ga6pi2f9jkk4gvaav7m-diffutils-mesboot-2.7.drv" [color = magenta];
|
||||
"/gnu/store/2lpg626q4x8v7hgqajywpq1rc8y72hzx-binutils-mesboot-2.20.1a.drv" -> "/gnu/store/r0z9bix88pz0wf6sgcn9185iwcsdracs-linux-libre-headers-bootstrap-0.drv" [color = magenta];
|
||||
"/gnu/store/2lpg626q4x8v7hgqajywpq1rc8y72hzx-binutils-mesboot-2.20.1a.drv" -> "/gnu/store/57da9mdiqhyn72m8wv00pdvzqi2ng4xb-make-mesboot0-3.80.drv" [color = magenta];
|
||||
"/gnu/store/x9shp86cz9f4rb5xvhs37zzxg1ngi4dr-binutils-mesboot0-2.20.1a.drv" [label = "binutils-mesboot0@2.20.1a", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/x9shp86cz9f4rb5xvhs37zzxg1ngi4dr-binutils-mesboot0-2.20.1a.drv" -> "/gnu/store/fglx0fz62bygkdxxg878j7x9pfl37zhh-tcc-boot-0.9.27.drv" [color = red];
|
||||
"/gnu/store/x9shp86cz9f4rb5xvhs37zzxg1ngi4dr-binutils-mesboot0-2.20.1a.drv" -> "/gnu/store/7wqw4023spvggi15vcxyxvivxa4rmmv8-bootstrap-binaries-0.drv" [color = red];
|
||||
"/gnu/store/x9shp86cz9f4rb5xvhs37zzxg1ngi4dr-binutils-mesboot0-2.20.1a.drv" -> "/gnu/store/7wqw4023spvggi15vcxyxvivxa4rmmv8-bootstrap-binaries-0.drv" [color = red];
|
||||
"/gnu/store/x9shp86cz9f4rb5xvhs37zzxg1ngi4dr-binutils-mesboot0-2.20.1a.drv" -> "/gnu/store/r50fj43103526ga6pi2f9jkk4gvaav7m-diffutils-mesboot-2.7.drv" [color = red];
|
||||
"/gnu/store/x9shp86cz9f4rb5xvhs37zzxg1ngi4dr-binutils-mesboot0-2.20.1a.drv" -> "/gnu/store/57da9mdiqhyn72m8wv00pdvzqi2ng4xb-make-mesboot0-3.80.drv" [color = red];
|
||||
"/gnu/store/fglx0fz62bygkdxxg878j7x9pfl37zhh-tcc-boot-0.9.27.drv" [label = "tcc-boot@0.9.27", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/fglx0fz62bygkdxxg878j7x9pfl37zhh-tcc-boot-0.9.27.drv" -> "/gnu/store/mw6swkryp89aml4jzac5lm8kmcv5k6gy-mes-boot-0.19.drv" [color = dimgrey];
|
||||
"/gnu/store/fglx0fz62bygkdxxg878j7x9pfl37zhh-tcc-boot-0.9.27.drv" -> "/gnu/store/nvhjn6b5hi4mj7wnjxrmj0dmdigq9m2z-tcc-boot0-0.9.26-6.c004e9a.drv" [color = dimgrey];
|
||||
"/gnu/store/fglx0fz62bygkdxxg878j7x9pfl37zhh-tcc-boot-0.9.27.drv" -> "/gnu/store/7wqw4023spvggi15vcxyxvivxa4rmmv8-bootstrap-binaries-0.drv" [color = dimgrey];
|
||||
"/gnu/store/mw6swkryp89aml4jzac5lm8kmcv5k6gy-mes-boot-0.19.drv" [label = "mes-boot@0.19", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/mw6swkryp89aml4jzac5lm8kmcv5k6gy-mes-boot-0.19.drv" -> "/gnu/store/msykyiih9lwrd86x00vs00i8s5ipjks4-bootstrap-mescc-tools-0.5.2.drv" [color = darkgoldenrod];
|
||||
"/gnu/store/mw6swkryp89aml4jzac5lm8kmcv5k6gy-mes-boot-0.19.drv" -> "/gnu/store/7wqw4023spvggi15vcxyxvivxa4rmmv8-bootstrap-binaries-0.drv" [color = darkgoldenrod];
|
||||
"/gnu/store/mw6swkryp89aml4jzac5lm8kmcv5k6gy-mes-boot-0.19.drv" -> "/gnu/store/cfw60j3987wrvb26f2bpbw5l5q6q53fj-bootstrap-mes-0.drv" [color = darkgoldenrod];
|
||||
"/gnu/store/msykyiih9lwrd86x00vs00i8s5ipjks4-bootstrap-mescc-tools-0.5.2.drv" [label = "bootstrap-mescc-tools@0.5.2", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/7wqw4023spvggi15vcxyxvivxa4rmmv8-bootstrap-binaries-0.drv" [label = "bootstrap-binaries@0", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/cfw60j3987wrvb26f2bpbw5l5q6q53fj-bootstrap-mes-0.drv" [label = "bootstrap-mes@0", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/nvhjn6b5hi4mj7wnjxrmj0dmdigq9m2z-tcc-boot0-0.9.26-6.c004e9a.drv" [label = "tcc-boot0@0.9.26-6.c004e9a", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/nvhjn6b5hi4mj7wnjxrmj0dmdigq9m2z-tcc-boot0-0.9.26-6.c004e9a.drv" -> "/gnu/store/mw6swkryp89aml4jzac5lm8kmcv5k6gy-mes-boot-0.19.drv" [color = magenta];
|
||||
"/gnu/store/nvhjn6b5hi4mj7wnjxrmj0dmdigq9m2z-tcc-boot0-0.9.26-6.c004e9a.drv" -> "/gnu/store/msykyiih9lwrd86x00vs00i8s5ipjks4-bootstrap-mescc-tools-0.5.2.drv" [color = magenta];
|
||||
"/gnu/store/nvhjn6b5hi4mj7wnjxrmj0dmdigq9m2z-tcc-boot0-0.9.26-6.c004e9a.drv" -> "/gnu/store/7wqw4023spvggi15vcxyxvivxa4rmmv8-bootstrap-binaries-0.drv" [color = magenta];
|
||||
"/gnu/store/nvhjn6b5hi4mj7wnjxrmj0dmdigq9m2z-tcc-boot0-0.9.26-6.c004e9a.drv" -> "/gnu/store/cfw60j3987wrvb26f2bpbw5l5q6q53fj-bootstrap-mes-0.drv" [color = magenta];
|
||||
"/gnu/store/r50fj43103526ga6pi2f9jkk4gvaav7m-diffutils-mesboot-2.7.drv" [label = "diffutils-mesboot@2.7", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/r50fj43103526ga6pi2f9jkk4gvaav7m-diffutils-mesboot-2.7.drv" -> "/gnu/store/mw6swkryp89aml4jzac5lm8kmcv5k6gy-mes-boot-0.19.drv" [color = peachpuff4];
|
||||
"/gnu/store/r50fj43103526ga6pi2f9jkk4gvaav7m-diffutils-mesboot-2.7.drv" -> "/gnu/store/fglx0fz62bygkdxxg878j7x9pfl37zhh-tcc-boot-0.9.27.drv" [color = peachpuff4];
|
||||
"/gnu/store/r50fj43103526ga6pi2f9jkk4gvaav7m-diffutils-mesboot-2.7.drv" -> "/gnu/store/7wqw4023spvggi15vcxyxvivxa4rmmv8-bootstrap-binaries-0.drv" [color = peachpuff4];
|
||||
"/gnu/store/r50fj43103526ga6pi2f9jkk4gvaav7m-diffutils-mesboot-2.7.drv" -> "/gnu/store/7wqw4023spvggi15vcxyxvivxa4rmmv8-bootstrap-binaries-0.drv" [color = peachpuff4];
|
||||
"/gnu/store/r50fj43103526ga6pi2f9jkk4gvaav7m-diffutils-mesboot-2.7.drv" -> "/gnu/store/57da9mdiqhyn72m8wv00pdvzqi2ng4xb-make-mesboot0-3.80.drv" [color = peachpuff4];
|
||||
"/gnu/store/57da9mdiqhyn72m8wv00pdvzqi2ng4xb-make-mesboot0-3.80.drv" [label = "make-mesboot0@3.80", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/57da9mdiqhyn72m8wv00pdvzqi2ng4xb-make-mesboot0-3.80.drv" -> "/gnu/store/fglx0fz62bygkdxxg878j7x9pfl37zhh-tcc-boot-0.9.27.drv" [color = dimgrey];
|
||||
"/gnu/store/57da9mdiqhyn72m8wv00pdvzqi2ng4xb-make-mesboot0-3.80.drv" -> "/gnu/store/7wqw4023spvggi15vcxyxvivxa4rmmv8-bootstrap-binaries-0.drv" [color = dimgrey];
|
||||
"/gnu/store/57da9mdiqhyn72m8wv00pdvzqi2ng4xb-make-mesboot0-3.80.drv" -> "/gnu/store/7wqw4023spvggi15vcxyxvivxa4rmmv8-bootstrap-binaries-0.drv" [color = dimgrey];
|
||||
"/gnu/store/2633565gzh4jqh7c5zf6i0iy9yxqigcv-glibc-mesboot0-2.2.5.drv" [label = "glibc-mesboot0@2.2.5", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/2633565gzh4jqh7c5zf6i0iy9yxqigcv-glibc-mesboot0-2.2.5.drv" -> "/gnu/store/x9shp86cz9f4rb5xvhs37zzxg1ngi4dr-binutils-mesboot0-2.20.1a.drv" [color = red];
|
||||
"/gnu/store/2633565gzh4jqh7c5zf6i0iy9yxqigcv-glibc-mesboot0-2.2.5.drv" -> "/gnu/store/kcyh6k46ijm9nsq1as26rr0aq7rkx4f7-gcc-core-mesboot-2.95.3.drv" [color = red];
|
||||
"/gnu/store/2633565gzh4jqh7c5zf6i0iy9yxqigcv-glibc-mesboot0-2.2.5.drv" -> "/gnu/store/7wqw4023spvggi15vcxyxvivxa4rmmv8-bootstrap-binaries-0.drv" [color = red];
|
||||
"/gnu/store/2633565gzh4jqh7c5zf6i0iy9yxqigcv-glibc-mesboot0-2.2.5.drv" -> "/gnu/store/7wqw4023spvggi15vcxyxvivxa4rmmv8-bootstrap-binaries-0.drv" [color = red];
|
||||
"/gnu/store/2633565gzh4jqh7c5zf6i0iy9yxqigcv-glibc-mesboot0-2.2.5.drv" -> "/gnu/store/r50fj43103526ga6pi2f9jkk4gvaav7m-diffutils-mesboot-2.7.drv" [color = red];
|
||||
"/gnu/store/2633565gzh4jqh7c5zf6i0iy9yxqigcv-glibc-mesboot0-2.2.5.drv" -> "/gnu/store/hnxdqmhjdvh1ra9ar4lxl25xf6a7bhzz-mesboot-headers-0.19.drv" [color = red];
|
||||
"/gnu/store/2633565gzh4jqh7c5zf6i0iy9yxqigcv-glibc-mesboot0-2.2.5.drv" -> "/gnu/store/57da9mdiqhyn72m8wv00pdvzqi2ng4xb-make-mesboot0-3.80.drv" [color = red];
|
||||
"/gnu/store/kcyh6k46ijm9nsq1as26rr0aq7rkx4f7-gcc-core-mesboot-2.95.3.drv" [label = "gcc-core-mesboot@2.95.3", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/kcyh6k46ijm9nsq1as26rr0aq7rkx4f7-gcc-core-mesboot-2.95.3.drv" -> "/gnu/store/x9shp86cz9f4rb5xvhs37zzxg1ngi4dr-binutils-mesboot0-2.20.1a.drv" [color = dimgrey];
|
||||
"/gnu/store/kcyh6k46ijm9nsq1as26rr0aq7rkx4f7-gcc-core-mesboot-2.95.3.drv" -> "/gnu/store/fglx0fz62bygkdxxg878j7x9pfl37zhh-tcc-boot-0.9.27.drv" [color = dimgrey];
|
||||
"/gnu/store/kcyh6k46ijm9nsq1as26rr0aq7rkx4f7-gcc-core-mesboot-2.95.3.drv" -> "/gnu/store/7wqw4023spvggi15vcxyxvivxa4rmmv8-bootstrap-binaries-0.drv" [color = dimgrey];
|
||||
"/gnu/store/kcyh6k46ijm9nsq1as26rr0aq7rkx4f7-gcc-core-mesboot-2.95.3.drv" -> "/gnu/store/7wqw4023spvggi15vcxyxvivxa4rmmv8-bootstrap-binaries-0.drv" [color = dimgrey];
|
||||
"/gnu/store/kcyh6k46ijm9nsq1as26rr0aq7rkx4f7-gcc-core-mesboot-2.95.3.drv" -> "/gnu/store/r50fj43103526ga6pi2f9jkk4gvaav7m-diffutils-mesboot-2.7.drv" [color = dimgrey];
|
||||
"/gnu/store/kcyh6k46ijm9nsq1as26rr0aq7rkx4f7-gcc-core-mesboot-2.95.3.drv" -> "/gnu/store/57da9mdiqhyn72m8wv00pdvzqi2ng4xb-make-mesboot0-3.80.drv" [color = dimgrey];
|
||||
"/gnu/store/hnxdqmhjdvh1ra9ar4lxl25xf6a7bhzz-mesboot-headers-0.19.drv" [label = "mesboot-headers@0.19", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/hnxdqmhjdvh1ra9ar4lxl25xf6a7bhzz-mesboot-headers-0.19.drv" -> "/gnu/store/7wqw4023spvggi15vcxyxvivxa4rmmv8-bootstrap-binaries-0.drv" [color = blue];
|
||||
"/gnu/store/hnxdqmhjdvh1ra9ar4lxl25xf6a7bhzz-mesboot-headers-0.19.drv" -> "/gnu/store/r0z9bix88pz0wf6sgcn9185iwcsdracs-linux-libre-headers-bootstrap-0.drv" [color = blue];
|
||||
"/gnu/store/r0z9bix88pz0wf6sgcn9185iwcsdracs-linux-libre-headers-bootstrap-0.drv" [label = "linux-libre-headers-bootstrap@0", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/slnyk8gbnvfwy1m1was8myivpss58idd-gcc-mesboot0-2.95.3.drv" [label = "gcc-mesboot0@2.95.3", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/slnyk8gbnvfwy1m1was8myivpss58idd-gcc-mesboot0-2.95.3.drv" -> "/gnu/store/x9shp86cz9f4rb5xvhs37zzxg1ngi4dr-binutils-mesboot0-2.20.1a.drv" [color = darkseagreen];
|
||||
"/gnu/store/slnyk8gbnvfwy1m1was8myivpss58idd-gcc-mesboot0-2.95.3.drv" -> "/gnu/store/kcyh6k46ijm9nsq1as26rr0aq7rkx4f7-gcc-core-mesboot-2.95.3.drv" [color = darkseagreen];
|
||||
"/gnu/store/slnyk8gbnvfwy1m1was8myivpss58idd-gcc-mesboot0-2.95.3.drv" -> "/gnu/store/2633565gzh4jqh7c5zf6i0iy9yxqigcv-glibc-mesboot0-2.2.5.drv" [color = darkseagreen];
|
||||
"/gnu/store/slnyk8gbnvfwy1m1was8myivpss58idd-gcc-mesboot0-2.95.3.drv" -> "/gnu/store/7wqw4023spvggi15vcxyxvivxa4rmmv8-bootstrap-binaries-0.drv" [color = darkseagreen];
|
||||
"/gnu/store/slnyk8gbnvfwy1m1was8myivpss58idd-gcc-mesboot0-2.95.3.drv" -> "/gnu/store/7wqw4023spvggi15vcxyxvivxa4rmmv8-bootstrap-binaries-0.drv" [color = darkseagreen];
|
||||
"/gnu/store/slnyk8gbnvfwy1m1was8myivpss58idd-gcc-mesboot0-2.95.3.drv" -> "/gnu/store/r50fj43103526ga6pi2f9jkk4gvaav7m-diffutils-mesboot-2.7.drv" [color = darkseagreen];
|
||||
"/gnu/store/slnyk8gbnvfwy1m1was8myivpss58idd-gcc-mesboot0-2.95.3.drv" -> "/gnu/store/r0z9bix88pz0wf6sgcn9185iwcsdracs-linux-libre-headers-bootstrap-0.drv" [color = darkseagreen];
|
||||
"/gnu/store/slnyk8gbnvfwy1m1was8myivpss58idd-gcc-mesboot0-2.95.3.drv" -> "/gnu/store/57da9mdiqhyn72m8wv00pdvzqi2ng4xb-make-mesboot0-3.80.drv" [color = darkseagreen];
|
||||
"/gnu/store/7v6fpp5msmjbhmprikrfcj047016gd54-gcc-mesboot1-wrapper-4.7.4.drv" [label = "gcc-mesboot1-wrapper@4.7.4", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/7v6fpp5msmjbhmprikrfcj047016gd54-gcc-mesboot1-wrapper-4.7.4.drv" -> "/gnu/store/7wqw4023spvggi15vcxyxvivxa4rmmv8-bootstrap-binaries-0.drv" [color = red];
|
||||
"/gnu/store/7v6fpp5msmjbhmprikrfcj047016gd54-gcc-mesboot1-wrapper-4.7.4.drv" -> "/gnu/store/lp6fycqqd8adndlfylh4mlihm0qakxzw-glibc-mesboot-2.16.0.drv" [color = red];
|
||||
"/gnu/store/7v6fpp5msmjbhmprikrfcj047016gd54-gcc-mesboot1-wrapper-4.7.4.drv" -> "/gnu/store/7pllq0crksfkr7856y1pawcy4scc7l4q-gcc-mesboot1-4.7.4.drv" [color = red];
|
||||
"/gnu/store/lp6fycqqd8adndlfylh4mlihm0qakxzw-glibc-mesboot-2.16.0.drv" [label = "glibc-mesboot@2.16.0", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/lp6fycqqd8adndlfylh4mlihm0qakxzw-glibc-mesboot-2.16.0.drv" -> "/gnu/store/2lpg626q4x8v7hgqajywpq1rc8y72hzx-binutils-mesboot-2.20.1a.drv" [color = magenta];
|
||||
"/gnu/store/lp6fycqqd8adndlfylh4mlihm0qakxzw-glibc-mesboot-2.16.0.drv" -> "/gnu/store/2633565gzh4jqh7c5zf6i0iy9yxqigcv-glibc-mesboot0-2.2.5.drv" [color = magenta];
|
||||
"/gnu/store/lp6fycqqd8adndlfylh4mlihm0qakxzw-glibc-mesboot-2.16.0.drv" -> "/gnu/store/p9sl13frcs2wdcddkh20hc51l7lpavza-glibc-headers-mesboot-2.16.0.drv" [color = magenta];
|
||||
"/gnu/store/lp6fycqqd8adndlfylh4mlihm0qakxzw-glibc-mesboot-2.16.0.drv" -> "/gnu/store/7pllq0crksfkr7856y1pawcy4scc7l4q-gcc-mesboot1-4.7.4.drv" [color = magenta];
|
||||
"/gnu/store/lp6fycqqd8adndlfylh4mlihm0qakxzw-glibc-mesboot-2.16.0.drv" -> "/gnu/store/7wqw4023spvggi15vcxyxvivxa4rmmv8-bootstrap-binaries-0.drv" [color = magenta];
|
||||
"/gnu/store/lp6fycqqd8adndlfylh4mlihm0qakxzw-glibc-mesboot-2.16.0.drv" -> "/gnu/store/7wqw4023spvggi15vcxyxvivxa4rmmv8-bootstrap-binaries-0.drv" [color = magenta];
|
||||
"/gnu/store/lp6fycqqd8adndlfylh4mlihm0qakxzw-glibc-mesboot-2.16.0.drv" -> "/gnu/store/r50fj43103526ga6pi2f9jkk4gvaav7m-diffutils-mesboot-2.7.drv" [color = magenta];
|
||||
"/gnu/store/lp6fycqqd8adndlfylh4mlihm0qakxzw-glibc-mesboot-2.16.0.drv" -> "/gnu/store/r0z9bix88pz0wf6sgcn9185iwcsdracs-linux-libre-headers-bootstrap-0.drv" [color = magenta];
|
||||
"/gnu/store/lp6fycqqd8adndlfylh4mlihm0qakxzw-glibc-mesboot-2.16.0.drv" -> "/gnu/store/5ad88jy4a1gpbslzdiksk7zjyh28wzkr-make-mesboot-3.82.drv" [color = magenta];
|
||||
"/gnu/store/p9sl13frcs2wdcddkh20hc51l7lpavza-glibc-headers-mesboot-2.16.0.drv" [label = "glibc-headers-mesboot@2.16.0", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/p9sl13frcs2wdcddkh20hc51l7lpavza-glibc-headers-mesboot-2.16.0.drv" -> "/gnu/store/2lpg626q4x8v7hgqajywpq1rc8y72hzx-binutils-mesboot-2.20.1a.drv" [color = darkgoldenrod];
|
||||
"/gnu/store/p9sl13frcs2wdcddkh20hc51l7lpavza-glibc-headers-mesboot-2.16.0.drv" -> "/gnu/store/2633565gzh4jqh7c5zf6i0iy9yxqigcv-glibc-mesboot0-2.2.5.drv" [color = darkgoldenrod];
|
||||
"/gnu/store/p9sl13frcs2wdcddkh20hc51l7lpavza-glibc-headers-mesboot-2.16.0.drv" -> "/gnu/store/7pllq0crksfkr7856y1pawcy4scc7l4q-gcc-mesboot1-4.7.4.drv" [color = darkgoldenrod];
|
||||
"/gnu/store/p9sl13frcs2wdcddkh20hc51l7lpavza-glibc-headers-mesboot-2.16.0.drv" -> "/gnu/store/hnxdqmhjdvh1ra9ar4lxl25xf6a7bhzz-mesboot-headers-0.19.drv" [color = darkgoldenrod];
|
||||
"/gnu/store/p9sl13frcs2wdcddkh20hc51l7lpavza-glibc-headers-mesboot-2.16.0.drv" -> "/gnu/store/7wqw4023spvggi15vcxyxvivxa4rmmv8-bootstrap-binaries-0.drv" [color = darkgoldenrod];
|
||||
"/gnu/store/p9sl13frcs2wdcddkh20hc51l7lpavza-glibc-headers-mesboot-2.16.0.drv" -> "/gnu/store/7wqw4023spvggi15vcxyxvivxa4rmmv8-bootstrap-binaries-0.drv" [color = darkgoldenrod];
|
||||
"/gnu/store/p9sl13frcs2wdcddkh20hc51l7lpavza-glibc-headers-mesboot-2.16.0.drv" -> "/gnu/store/r50fj43103526ga6pi2f9jkk4gvaav7m-diffutils-mesboot-2.7.drv" [color = darkgoldenrod];
|
||||
"/gnu/store/p9sl13frcs2wdcddkh20hc51l7lpavza-glibc-headers-mesboot-2.16.0.drv" -> "/gnu/store/r0z9bix88pz0wf6sgcn9185iwcsdracs-linux-libre-headers-bootstrap-0.drv" [color = darkgoldenrod];
|
||||
"/gnu/store/p9sl13frcs2wdcddkh20hc51l7lpavza-glibc-headers-mesboot-2.16.0.drv" -> "/gnu/store/5ad88jy4a1gpbslzdiksk7zjyh28wzkr-make-mesboot-3.82.drv" [color = darkgoldenrod];
|
||||
"/gnu/store/7pllq0crksfkr7856y1pawcy4scc7l4q-gcc-mesboot1-4.7.4.drv" [label = "gcc-mesboot1@4.7.4", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/7pllq0crksfkr7856y1pawcy4scc7l4q-gcc-mesboot1-4.7.4.drv" -> "/gnu/store/2lpg626q4x8v7hgqajywpq1rc8y72hzx-binutils-mesboot-2.20.1a.drv" [color = cyan3];
|
||||
"/gnu/store/7pllq0crksfkr7856y1pawcy4scc7l4q-gcc-mesboot1-4.7.4.drv" -> "/gnu/store/slnyk8gbnvfwy1m1was8myivpss58idd-gcc-mesboot0-2.95.3.drv" [color = cyan3];
|
||||
"/gnu/store/7pllq0crksfkr7856y1pawcy4scc7l4q-gcc-mesboot1-4.7.4.drv" -> "/gnu/store/2633565gzh4jqh7c5zf6i0iy9yxqigcv-glibc-mesboot0-2.2.5.drv" [color = cyan3];
|
||||
"/gnu/store/7pllq0crksfkr7856y1pawcy4scc7l4q-gcc-mesboot1-4.7.4.drv" -> "/gnu/store/7wqw4023spvggi15vcxyxvivxa4rmmv8-bootstrap-binaries-0.drv" [color = cyan3];
|
||||
"/gnu/store/7pllq0crksfkr7856y1pawcy4scc7l4q-gcc-mesboot1-4.7.4.drv" -> "/gnu/store/7wqw4023spvggi15vcxyxvivxa4rmmv8-bootstrap-binaries-0.drv" [color = cyan3];
|
||||
"/gnu/store/7pllq0crksfkr7856y1pawcy4scc7l4q-gcc-mesboot1-4.7.4.drv" -> "/gnu/store/r50fj43103526ga6pi2f9jkk4gvaav7m-diffutils-mesboot-2.7.drv" [color = cyan3];
|
||||
"/gnu/store/7pllq0crksfkr7856y1pawcy4scc7l4q-gcc-mesboot1-4.7.4.drv" -> "/gnu/store/r0z9bix88pz0wf6sgcn9185iwcsdracs-linux-libre-headers-bootstrap-0.drv" [color = cyan3];
|
||||
"/gnu/store/7pllq0crksfkr7856y1pawcy4scc7l4q-gcc-mesboot1-4.7.4.drv" -> "/gnu/store/5ad88jy4a1gpbslzdiksk7zjyh28wzkr-make-mesboot-3.82.drv" [color = cyan3];
|
||||
"/gnu/store/5ad88jy4a1gpbslzdiksk7zjyh28wzkr-make-mesboot-3.82.drv" [label = "make-mesboot@3.82", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/5ad88jy4a1gpbslzdiksk7zjyh28wzkr-make-mesboot-3.82.drv" -> "/gnu/store/x9shp86cz9f4rb5xvhs37zzxg1ngi4dr-binutils-mesboot0-2.20.1a.drv" [color = dimgrey];
|
||||
"/gnu/store/5ad88jy4a1gpbslzdiksk7zjyh28wzkr-make-mesboot-3.82.drv" -> "/gnu/store/2633565gzh4jqh7c5zf6i0iy9yxqigcv-glibc-mesboot0-2.2.5.drv" [color = dimgrey];
|
||||
"/gnu/store/5ad88jy4a1gpbslzdiksk7zjyh28wzkr-make-mesboot-3.82.drv" -> "/gnu/store/slnyk8gbnvfwy1m1was8myivpss58idd-gcc-mesboot0-2.95.3.drv" [color = dimgrey];
|
||||
"/gnu/store/5ad88jy4a1gpbslzdiksk7zjyh28wzkr-make-mesboot-3.82.drv" -> "/gnu/store/57da9mdiqhyn72m8wv00pdvzqi2ng4xb-make-mesboot0-3.80.drv" [color = dimgrey];
|
||||
"/gnu/store/5ad88jy4a1gpbslzdiksk7zjyh28wzkr-make-mesboot-3.82.drv" -> "/gnu/store/7wqw4023spvggi15vcxyxvivxa4rmmv8-bootstrap-binaries-0.drv" [color = dimgrey];
|
||||
"/gnu/store/5ad88jy4a1gpbslzdiksk7zjyh28wzkr-make-mesboot-3.82.drv" -> "/gnu/store/7wqw4023spvggi15vcxyxvivxa4rmmv8-bootstrap-binaries-0.drv" [color = dimgrey];
|
||||
"/gnu/store/5ad88jy4a1gpbslzdiksk7zjyh28wzkr-make-mesboot-3.82.drv" -> "/gnu/store/r0z9bix88pz0wf6sgcn9185iwcsdracs-linux-libre-headers-bootstrap-0.drv" [color = dimgrey];
|
||||
|
||||
}
|
||||
|
|
239
doc/mes.texi
|
@ -13,7 +13,7 @@
|
|||
@set OPENPGP-SIGNING-KEY-ID 1A858392E331EAFDB8C27FFBF3C1A0D9C1D65273
|
||||
|
||||
@copying
|
||||
Copyright @copyright{} 2018,2019,2020,2021,2022 Jan (janneke) Nieuwenhuizen@*
|
||||
Copyright @copyright{} 2018,2019 Jan (janneke) Nieuwenhuizen@*
|
||||
|
||||
Permission is granted to copy, distribute and/or modify this document
|
||||
under the terms of the GNU Free Documentation License, Version 1.3 or
|
||||
|
@ -48,7 +48,7 @@ Edition @value{EDITION} @*
|
|||
@contents
|
||||
|
||||
@c *********************************************************************
|
||||
@node Top
|
||||
@node Top, Introduction, (dir), (dir)
|
||||
@top GNU Mes
|
||||
|
||||
This document describes GNU Mes version @value{VERSION}, a bootstrappable
|
||||
|
@ -72,19 +72,12 @@ Software Freedom
|
|||
|
||||
* Reproducible Builds:: Reproducibility and free software.
|
||||
* Bootstrappable Builds:: The freedom to build a software without binary seed.
|
||||
* Reduced Binary Seed Bootstrap:: Guix reduces bootstrap binaries with 50%.
|
||||
* Scheme-only Bootsrap:: Guix reduced bootstrap binaries to 25%.
|
||||
* Full Source Bootstrap:: A bootstrap worthy of GNU.
|
||||
* Full Source Bootstrap:: Software dependencies worthy of GNU.
|
||||
* LISP as Maxwell's Equations of Software:: Auditable elegance.
|
||||
|
||||
Full Source Bootstrap
|
||||
|
||||
* Stage0:: The Magical Self-Hosting Hex Assembler.
|
||||
* M2-Planet:: A Sub-C bootstrap compiler.
|
||||
|
||||
Installation
|
||||
|
||||
* Requirements:: Software needed to build and run Mes.
|
||||
* Regular Requirements:: Software needed to build and run Mes.
|
||||
* Bootstrap Requirements:: Software needed to bootstrap Mes.
|
||||
* Running the Test Suites:: Testing Mes.
|
||||
|
||||
|
@ -116,7 +109,7 @@ Contributing
|
|||
@end menu
|
||||
|
||||
@c *********************************************************************
|
||||
@node Introduction
|
||||
@node Introduction, Installation, Top, Top
|
||||
@chapter Introduction
|
||||
|
||||
@quotation
|
||||
|
@ -194,17 +187,15 @@ Freedom 1.
|
|||
@menu
|
||||
* Reproducible Builds:: Reproducibility and free software.
|
||||
* Bootstrappable Builds:: The freedom to build a software without binary seed.
|
||||
* Reduced Binary Seed Bootstrap:: Guix reduces bootstrap binaries with 50%.
|
||||
* Scheme-only Bootsrap:: Guix reduced bootstrap binaries to 25%.
|
||||
* Full Source Bootstrap:: A bootstrap worthy of GNU.
|
||||
* Full Source Bootstrap:: Software dependencies worthy of GNU.
|
||||
* LISP as Maxwell's Equations of Software:: Auditable elegance.
|
||||
@end menu
|
||||
|
||||
@node Reproducible Builds
|
||||
@node Reproducible Builds, Bootstrappable Builds, Introduction, Introduction
|
||||
@section Reproducible Builds
|
||||
|
||||
The current Reproducible Builds effort incubated in the Debian
|
||||
project@footnote{@url{https://debian.org, The Debian Project}} and was
|
||||
project@footnote{@url{http://debian.org, The Debian Project}} and was
|
||||
organized by Lunar. Quoting the Reproducible Builds
|
||||
website@footnote{@url{https://reproducible-builds.org/,Reproducible
|
||||
Builds}}
|
||||
|
@ -249,7 +240,7 @@ packages could be rebuild bit-identical from source.
|
|||
@author Martin Uecker
|
||||
@end quotation
|
||||
|
||||
@node Bootstrappable Builds
|
||||
@node Bootstrappable Builds, Full Source Bootstrap, Reproducible Builds, Introduction
|
||||
@section Bootstrappable Builds
|
||||
|
||||
Software distributions that take reproducible builds seriously are
|
||||
|
@ -267,11 +258,10 @@ binary seed that all software distributions inject are the so called
|
|||
@emph{bootstrap binary seed}. Bootstrap binaries are the initial binary
|
||||
seeds that are used to start building the distribution.
|
||||
|
||||
The GNU Guix operating system (@pxref{Top,,, guix, The GNU Guix
|
||||
Manual}), version 1.0 had a relatively small closure of bootstrap binary
|
||||
seed: GNU binutils, GNU gcc, GNU Libc, GNU Guile, and ``Static
|
||||
binaries'' (think: bash, bzip2, coreutils, gawk, grep, gzip, patch, sed,
|
||||
tar, xz).
|
||||
The GNU Guix operating system, version 1.0 had a relatively small
|
||||
closure of bootstrap binary seed: GNU binutils, GNU gcc, GNU Libc, GNU
|
||||
Guile, and ``Static binaries'' (think: bash, bzip2, coreutils, gawk,
|
||||
grep, gzip, patch, sed, tar, xz).
|
||||
|
||||
@example
|
||||
$ du -schx $(readlink $(guix build bootstrap-tarballs)/*)
|
||||
|
@ -298,9 +288,6 @@ $ du -schx *
|
|||
252M total
|
||||
@end example
|
||||
|
||||
@node Reduced Binary Seed Bootstrap
|
||||
@section Reduced Binary Seed Bootstrap
|
||||
|
||||
During the Guix 1.1 development series we managed to create the first
|
||||
reduction by 50% of the Guix @emph{bootstrap binary seed}@footnote{See
|
||||
@url{https://guix.gnu.org/blog/2019/guix-reduces-bootstrap-seed-by-50/}}.
|
||||
|
@ -308,37 +295,16 @@ This was a very important step because the ~250MB @emph{seed} of binary
|
|||
code was practically non-auditable, which makes it hard to establish
|
||||
what source code produced them.
|
||||
|
||||
@node Scheme-only Bootsrap
|
||||
@section Scheme-only Bootstrap
|
||||
@node Full Source Bootstrap, , Bootstrappable Builds, Introduction
|
||||
@section Full Source Bootstrap
|
||||
|
||||
The next step that Guix has taken is to replace the shell and all its
|
||||
utilities with implementations in Guile Scheme, the @emph{Scheme-only
|
||||
bootstrap}. This second halving of the boostrap binaries reduced their
|
||||
size to 25% @footnote{See
|
||||
@url{https://guix.gnu.org/en/blog/2020/guix-further-reduces-bootstrap-seed-to-25/}}.
|
||||
Gash (@pxref{Gash,,, gash, The Gash manual}) is a POSIX-compatible shell
|
||||
that replaces Bash, and it comes with Gash Utils which has minimalist
|
||||
replacements for Awk, the GNU Core Utilities, Grep, Gzip, Sed, and Tar.
|
||||
The rest of the bootstrap binary seeds that were removed are now built
|
||||
from source.
|
||||
There is an obvious solution: we cannot allow any binary seeds in our
|
||||
software stack. Not even in the bootstrap binary seed. Maybe that is a
|
||||
bit too strong: we want to have the absolute minimum of binary seeds and
|
||||
all binary seeds need to be inspectable and must be reviewed. How big
|
||||
would the absolute minimal set be?
|
||||
|
||||
@node Full Source Bootstrap
|
||||
@section Full Source Bootstrap
|
||||
|
||||
Reduction of binary seeds is great, but there is an obvious target: we
|
||||
cannot allow any binary seeds in our software stack. Not even in the
|
||||
bootstrap binary seed. Maybe that is a bit too strong: we want to have
|
||||
the absolute minimum of binary seeds and all binary seeds need to be
|
||||
inspectable and must be reviewed. How big would the absolute minimal
|
||||
set be?
|
||||
|
||||
@menu
|
||||
* Stage0:: The Magical Self-Hosting Hex Assembler.
|
||||
* M2-Planet:: A Sub-C bootstrap compiler.
|
||||
@end menu
|
||||
|
||||
@node Stage0
|
||||
@subsection Stage0
|
||||
@subsection The Magical Self-Hosting Hex Assembler
|
||||
|
||||
June 2016 I learnt about
|
||||
@url{https://github.com/oriansj/stage0/,Stage0}. Jeremiah Orians
|
||||
|
@ -365,7 +331,7 @@ Most computers work pretty well so apparently there is not a pressing
|
|||
need to inspect and study all of these codes. At the same time it is
|
||||
tricky to fully trust@footnote{ Ken Thompson's 1984 Turing award
|
||||
acceptance speech
|
||||
@url{https://www.ece.cmu.edu/~ganger/712.fall02/papers/p761-thompson.pdf,
|
||||
@url{http://www.ece.cmu.edu/~ganger/712.fall02/papers/p761-thompson.pdf,
|
||||
Reflections on Trusting Tust}.} a computer that was bootstrapped in this
|
||||
way.
|
||||
|
||||
|
@ -443,25 +409,13 @@ nothing to all of the programs that our computer runs. Something that
|
|||
seemed to be an impossible dream is suddenly starting to look like
|
||||
``just a couple years of work''.
|
||||
|
||||
@node M2-Planet
|
||||
@subsection M2-Planet
|
||||
|
||||
@url{https://github.com/oriansj/m2-planet/,M2-Planet} @footnote{The
|
||||
PLAtform NEutral Transpiler}, when combined with
|
||||
@url{https://savannah.gnu.org/projects/mescc-tools/, mescc-tools};
|
||||
allows one to compile a subset of the C language into working binaries
|
||||
with introspective steps inbetween. In 2021 M2-Planet with release
|
||||
1.8.0 reached a level of maturity that allowed to build MesCC-Tools and
|
||||
Mes. This allows for another reduction the Guix bootstrap binaries: mes
|
||||
and mescc-tools can be removed.
|
||||
|
||||
@node LISP as Maxwell's Equations of Software
|
||||
@section LISP as Maxwell's Equations of Software
|
||||
|
||||
As fate would have it, I stumbled upon this
|
||||
@url{https://queue.acm.org/detail.cfm?id=1039523, interview with Alan
|
||||
Kay}, where he shares a revelation he had when reading John McCarthy's
|
||||
@url{https://www.softwarepreservation.org/projects/LISP/book/LISP%201.5%20Programmers%20Manual.pdf,
|
||||
@url{http://www.softwarepreservation.org/projects/LISP/book/LISP%201.5%20Programmers%20Manual.pdf,
|
||||
LISP-1.5} manual:
|
||||
|
||||
@quotation
|
||||
|
@ -526,7 +480,7 @@ It is our sincerest hope to bring back this level of quality and
|
|||
elegance..
|
||||
|
||||
@c *********************************************************************
|
||||
@node Installation
|
||||
@node Installation, Bootstrapping, Introduction, Top
|
||||
@chapter Installation
|
||||
|
||||
@cindex installing Mes
|
||||
|
@ -537,13 +491,13 @@ to use it.
|
|||
|
||||
|
||||
@menu
|
||||
* Requirements:: Software needed to build and run Mes.
|
||||
* Regular Requirements:: Software needed to build and run Mes.
|
||||
* Bootstrap Requirements:: Software needed to bootstrap Mes.
|
||||
* Running the Test Suites:: Testing Mes.
|
||||
@end menu
|
||||
|
||||
@node Requirements
|
||||
@section Requirements
|
||||
@node Regular Requirements, Bootstrap Requirements, Installation, Installation
|
||||
@section Regular Requirements
|
||||
|
||||
This section lists requirements when building Mes from source. The
|
||||
build procedure for Mes is the same as for other GNU software, and is
|
||||
|
@ -553,19 +507,12 @@ in the Mes source tree for additional details.
|
|||
GNU Mes depends on the following packages:
|
||||
|
||||
@itemize
|
||||
@item @url{https://gnu.org/software/guile/, GNU Guile}, version 2.0.13 or
|
||||
later, including 2.2.x and 3.0.x,
|
||||
@item @url{https://www.gnu.org/software/make/, GNU Make}.
|
||||
@item @url{https://savannah.gnu.org/projects/nyacc/, NYACC}, version 1.00.2,
|
||||
@item @url{https://gcc.gnu.org, GCC's gcc}, version 2.95.3 or later, including 10.2.0,
|
||||
@item @url{https://savannah.gnu.org/projects/mescc-tools/, mescc-tools}, version 1.4.0,
|
||||
@end itemize
|
||||
|
||||
The following dependencies are optional:
|
||||
|
||||
@itemize
|
||||
Support for building the bootstrap @file{bin/mes-m2} depends on
|
||||
@item @url{https://github.com/oriansj/m2-planet/, M2-Planet}, version 1.9.0.
|
||||
@item @url{http://gnu.org/software/guile/, GNU Guile}, version 2.0.13 or
|
||||
later, including 2.2.x;
|
||||
@item @url{http://www.gnu.org/software/make/, GNU Make}.
|
||||
@item @url{https://savannah.gnu.org/projects/nyacc/, NYACC}, 0.93.0 or later, including 0.99.0.
|
||||
@item @url{http://gcc.gnu.org, GCC's gcc}, version 2.95.3 or later.
|
||||
@item @url{https://savannah.gnu.org/projects/mescc-tools/, mescc-tools}, version 0.6.1 or later,
|
||||
@end itemize
|
||||
|
||||
@cindex Guile, compatibility
|
||||
|
@ -573,7 +520,7 @@ Mes is compatible with GNU Guile, so it is possible to share the same
|
|||
Scheme code between both. Currently Mes only supports the minimal
|
||||
subset of R5RS and Guile extensions to run MesCC.
|
||||
|
||||
@node Bootstrap Requirements
|
||||
@node Bootstrap Requirements, Running the Test Suites, Regular Requirements, Installation
|
||||
@section Bootstrap Requirements
|
||||
|
||||
This section lists requirements when building Mes as a bootstrap
|
||||
|
@ -594,12 +541,11 @@ Bootstrapping Mes depends on the following packages:
|
|||
|
||||
@itemize
|
||||
@item a POSIX-compatible shell
|
||||
@item @url{https://savannah.gnu.org/projects/mescc-tools/, mescc-tools}, version 1.4.0,
|
||||
@item @url{https://github.com/oriansj/m2-planet/, M2-Planet}, version 1.9.0.
|
||||
@item @url{https://savannah.gnu.org/projects/nyacc/, NYACC}, version 1.00.2,
|
||||
@item @url{https://github.com/oriansj/mescc-tools/, mescc-tools}, version 0.6.1 or later.
|
||||
@item @url{https://savannah.gnu.org/projects/nyacc/, NYACC}, 0.93.0 or later, including 0.99.0.
|
||||
@end itemize
|
||||
|
||||
@node Running the Test Suites
|
||||
@node Running the Test Suites, , Bootstrap Requirements, Installation
|
||||
@section Running the Test Suites
|
||||
|
||||
@cindex test suites
|
||||
|
@ -642,7 +588,7 @@ CC=gcc CC32=i686-unknown-linux-gnu-gcc MES=guile \
|
|||
build-aux/test.sh scaffold/tests/00-exit-0
|
||||
@end example
|
||||
|
||||
@node Bootstrapping
|
||||
@node Bootstrapping, Contributing, Installation, Top
|
||||
@chapter Bootstrapping
|
||||
|
||||
@quotation
|
||||
|
@ -687,14 +633,14 @@ responsibility.
|
|||
* Invoking mesar::
|
||||
@end menu
|
||||
|
||||
@node The Mes Bootstrap Process
|
||||
@node The Mes Bootstrap Process, Invoking mes, Bootstrapping, Bootstrapping
|
||||
@section The Mes Bootstrap Process
|
||||
|
||||
The Reduced Binary Seed bootstrap currently adopted by Guix@footnote{See
|
||||
@file{gnu/packages/commencement.scm} in the @var{master} branch in Guix
|
||||
git
|
||||
@url{https://git.savannah.gnu.org/cgit/guix.git/tree/gnu/packages/commencement.scm}}.
|
||||
In its intiial form it is only available for x86-linux and armhf-linux.
|
||||
@url{http://git.savannah.gnu.org/cgit/guix.git/tree/gnu/packages/commencement.scm}}.
|
||||
In its intiial form it is only available for x86-linux.
|
||||
|
||||
Currently, it goes like this:
|
||||
|
||||
|
@ -733,23 +679,19 @@ Currently, it goes like this:
|
|||
^
|
||||
|
|
||||
*
|
||||
gash-boot, gash-utils-boot
|
||||
^
|
||||
|
|
||||
*
|
||||
bootstrap-mescc-tools, bootstrap-mes (~12 MiB)
|
||||
bootstrap-guile (~48 MiB)
|
||||
bootstrap-mescc-tools, bootstrap-mes (~10MB)
|
||||
bootstrap-bash, bootstrap-coreutils&co, bootstrap-guile (~120MB)
|
||||
@end verbatim
|
||||
|
||||
@c This graph is generated from wip-bootstrap, doing:
|
||||
|
||||
@c guix graph --type=bag -e '(@@ (gnu packages commencement) gcc-core-mesboot0)' > doc/images/gcc-mesboot-graph.dot
|
||||
@c ~/src/guix/core-updates/pre-inst-env guix graph --type=bag -e '(@@ (gnu packages commencement) gcc-mesboot)' > doc/images/gcc-mesboot-graph.dot
|
||||
@c dot -T png doc/images/gcc-mesboot-graph.dot > doc/images/gcc-mesboot-graph.png
|
||||
|
||||
Here's a generated dependency diagram to for the initial bootstrap gcc
|
||||
Here's a generated dependency diagram to for the final bootstrap gcc
|
||||
that builds the rest of Guix.
|
||||
|
||||
@image{images/gcc-mesboot-graph,6in,,Reference graph of the gcc-core-mesboot0}
|
||||
@image{images/gcc-mesboot-graph,2in,,Reference graph of the gcc-mesboot}
|
||||
|
||||
Work is ongoing to remove these binary seeds that were intentionally
|
||||
injected by our own doing as temporary shortcut
|
||||
|
@ -757,16 +699,19 @@ injected by our own doing as temporary shortcut
|
|||
bootstrap-mescc-tools (seed), bootstrap-mes (seed)
|
||||
@end example
|
||||
|
||||
For now, this additional non-bootstrapped dependencies (i.e., binary
|
||||
For now, these additional non-bootstrapped dependencies (i.e., binary
|
||||
seeds) are taken for granted
|
||||
|
||||
@example
|
||||
bootstrap-guile
|
||||
bootstrap-guile, bash, bzip2, coreutils, gawk, grep, gzip, patch, sed,
|
||||
tar, xz
|
||||
@end example
|
||||
|
||||
Our next priority is to eleminate these one by one.
|
||||
Although we think these are less essential and thus less interesting
|
||||
than the GNU toolchain triplet that we focussed on initially, our next
|
||||
priority is to eleminate these one by one.
|
||||
|
||||
@node Invoking mes
|
||||
@node Invoking mes, Invoking mescc, The Mes Bootstrap Process, Bootstrapping
|
||||
@section Invoking mes
|
||||
|
||||
@cindex repl
|
||||
|
@ -842,7 +787,7 @@ Display the current version of mes%, and then exit.
|
|||
* Environment Variables:: If the bits won't change, change their habitat.
|
||||
@end menu
|
||||
|
||||
@node Environment Variables
|
||||
@node Environment Variables, , Invoking mes, Invoking mes
|
||||
@subsection Environment Variables
|
||||
@cindex environment variables
|
||||
@cindex shell
|
||||
|
@ -920,7 +865,7 @@ Mes uses @var{@strong{GUILE}_LOAD_PATH} for compatibility with Guile.
|
|||
|
||||
@end table
|
||||
|
||||
@node Invoking mescc
|
||||
@node Invoking mescc, Invoking mesar, Invoking mes, Bootstrapping
|
||||
@section Invoking mescc
|
||||
|
||||
@example
|
||||
|
@ -931,11 +876,10 @@ The @var{option}s can be among the following:
|
|||
|
||||
@table @code
|
||||
|
||||
@item --align=@var{symbol}
|
||||
align @var{symbol}, the default is @code{functions}; other valid values
|
||||
are: @code{globals}.
|
||||
@item --align
|
||||
align globals
|
||||
|
||||
@item --base-address=ADDRESS
|
||||
@item --base-address=ADRRESS
|
||||
use BaseAddress ADDRESS [0x1000000]
|
||||
|
||||
@item -c
|
||||
|
@ -1002,7 +946,7 @@ specify LANGUAGE of the following input files
|
|||
* MesCC Environment Variables:: There's no NIX like POSIX.
|
||||
@end menu
|
||||
|
||||
@node MesCC Environment Variables
|
||||
@node MesCC Environment Variables, , Invoking mescc, Invoking mescc
|
||||
@subsection MesCC Environment Variables
|
||||
|
||||
@table @env
|
||||
|
@ -1031,7 +975,7 @@ during the parsing phase.
|
|||
|
||||
@end table
|
||||
|
||||
@node Invoking mesar
|
||||
@node Invoking mesar, , Invoking mescc, Bootstrapping
|
||||
@section Invoking mesar
|
||||
|
||||
@example
|
||||
|
@ -1061,7 +1005,7 @@ display version and exit
|
|||
@end table
|
||||
|
||||
@c *********************************************************************
|
||||
@node Contributing
|
||||
@node Contributing, Acknowledgments, Bootstrapping, Top
|
||||
@chapter Contributing
|
||||
|
||||
@menu
|
||||
|
@ -1073,7 +1017,7 @@ display version and exit
|
|||
* Submitting Patches:: Share your work.
|
||||
@end menu
|
||||
|
||||
@node Building from Git
|
||||
@node Building from Git, Running Mes From the Source Tree, Contributing, Contributing
|
||||
@section Building from Git
|
||||
|
||||
If you want to hack GNU Mes itself, it is recommended to use the latest
|
||||
|
@ -1089,26 +1033,15 @@ all the dependencies and appropriate environment variables are set up to
|
|||
hack on Mes:
|
||||
|
||||
@example
|
||||
guix shell
|
||||
guix environment -l .guix.scm
|
||||
@end example
|
||||
|
||||
If you are unable to use Guix when building Mes from a Git checkout,
|
||||
the following are the required packages in addition to those mentioned
|
||||
in the installation instructions (@pxref{Requirements}).
|
||||
|
||||
@itemize
|
||||
@item @url{https://gnu.org/software/help2man/, GNU Help2man};
|
||||
@item @url{https://gnu.org/software/texinfo/, GNU Texinfo};
|
||||
@item @url{https://www.graphviz.org/, Graphviz};
|
||||
@item @url{https://www.perl.org/, Perl}.
|
||||
@end itemize
|
||||
|
||||
Finally, you have to invoke @code{make check} to run tests
|
||||
(@pxref{Running the Test Suites}). If anything fails, take a look at
|
||||
installation instructions (@pxref{Installation}) or send a message to
|
||||
the @email{bug-mes@@gnu.org} mailing list.
|
||||
|
||||
@node Running Mes From the Source Tree
|
||||
@node Running Mes From the Source Tree, Porting GNU Mes, Building from Git, Contributing
|
||||
@section Running Mes From the Source Tree
|
||||
|
||||
First, you need to have an environment with all the dependencies
|
||||
|
@ -1116,15 +1049,15 @@ available (@pxref{Building from Git}), and then simply prefix each
|
|||
command by @command{./pre-inst-env} (the @file{pre-inst-env} script
|
||||
lives in the top build tree of Mes).
|
||||
|
||||
@node Porting GNU Mes
|
||||
@node Porting GNU Mes, The Perfect Setup, Running Mes From the Source Tree, Contributing
|
||||
@section Porting GNU Mes
|
||||
|
||||
Mes is supported for x86-linux and armhf-linux. A 64 bit (x86_64-linux)
|
||||
is almost done, only a few bugs remain. The Guix bootstrap for
|
||||
x86_64-linux uses mes for x86-lunix and that is not expected to change.
|
||||
Likewise, aarch64-linux uses mes for armhf-linux.
|
||||
Mes was written for x86-linux. A 64 bit (x86_64) is almost done, only a
|
||||
few bugs remain. The Guix bootstrap for x86_64 uses x86 mes and that is
|
||||
not expected to change.
|
||||
|
||||
A port to GNU/Hurd (x86-gnu) is underway.
|
||||
An ARM (armv4/armv7l) linux port is underway. A port to GNU/Hurd
|
||||
(x86-gnu) is also underway.
|
||||
|
||||
Initial scaffold, built by @file{build-aux/build-scaffold.sh}:
|
||||
@example
|
||||
|
@ -1149,14 +1082,14 @@ Porting MesCC:
|
|||
@file{mes/module/mescc/i386/info.mes}
|
||||
@end example
|
||||
|
||||
@node The Perfect Setup
|
||||
@node The Perfect Setup, Coding Style, Porting GNU Mes, Contributing
|
||||
@section The Perfect Setup
|
||||
|
||||
The Perfect Setup to hack on Mes is basically the perfect setup used
|
||||
for Guile hacking (@pxref{Using Guile in Emacs,,, guile, Guile Reference
|
||||
Manual}). First, you need more than an editor, you need
|
||||
@url{https://www.gnu.org/software/emacs, Emacs}, empowered by the
|
||||
wonderful @url{https://nongnu.org/geiser/, Geiser}.
|
||||
@url{http://www.gnu.org/software/emacs, Emacs}, empowered by the
|
||||
wonderful @url{http://nongnu.org/geiser/, Geiser}.
|
||||
|
||||
Geiser allows for interactive and incremental development from within
|
||||
Emacs: code compilation and evaluation from within buffers, access to
|
||||
|
@ -1164,7 +1097,7 @@ on-line documentation (docstrings), context-sensitive completion,
|
|||
@kbd{M-.} to jump to an object definition, a REPL to try out your code,
|
||||
and more (@pxref{Introduction,,, geiser, Geiser User Manual}).
|
||||
|
||||
@node Coding Style
|
||||
@node Coding Style, Submitting Patches, The Perfect Setup, Contributing
|
||||
@section Coding Style
|
||||
|
||||
In general our code follows the GNU Coding Standards (@pxref{Top,,,
|
||||
|
@ -1181,7 +1114,7 @@ Scheme code in Mes is written in a purely functional style.
|
|||
@cindex coding style
|
||||
When writing Scheme code, we follow common wisdom among Scheme
|
||||
programmers. In general, we follow the
|
||||
@url{https://mumble.net/~campbell/scheme/style.txt, Riastradh's Lisp
|
||||
@url{http://mumble.net/~campbell/scheme/style.txt, Riastradh's Lisp
|
||||
Style Rules}. This document happens to describe the conventions mostly
|
||||
used in Guile’s code too. It is very thoughtful and well written, so
|
||||
please do read it.
|
||||
|
@ -1200,13 +1133,13 @@ Additionally, in Mes we prefer to format @code{if} statements like this
|
|||
else))
|
||||
@end example
|
||||
|
||||
@node Submitting Patches
|
||||
@node Submitting Patches, , Coding Style, Contributing
|
||||
@section Submitting Patches
|
||||
|
||||
Development is done using the Git distributed version control system.
|
||||
Thus, access to the repository is not strictly necessary. We welcome
|
||||
contributions in the form of patches as produced by @code{git
|
||||
format-patch} sent to the @email{bug-mes@@gnu.org} mailing list.
|
||||
format-patch} sent to the @email{guix-patches@@gnu.org} mailing list.
|
||||
|
||||
Please write commit logs in the ChangeLog format (@pxref{Change Logs,,,
|
||||
standards, GNU Coding Standards}); you can check the commit history for
|
||||
|
@ -1243,14 +1176,14 @@ It will be ready sooner if you help.
|
|||
@end quotation
|
||||
|
||||
@cindex contact, irc, mailing list
|
||||
Join us on @code{#bootstrappable} on the Libera Chat IRC network or on
|
||||
@email{bug-mes@@gnu.org} to share your experience---good or bad.
|
||||
Join us on @code{#bootstrappable} on the Freenode IRC network or on
|
||||
@email{guix-devel@@gnu.org} to share your experience---good or bad.
|
||||
|
||||
@cindex bug, bug report, reporting a bug
|
||||
Please send bug reports with full details to @email{bug-mes@@gnu.org}.
|
||||
|
||||
@c *********************************************************************
|
||||
@node Acknowledgments
|
||||
@node Acknowledgments, Resources, Contributing, Top
|
||||
@chapter Acknowledgments
|
||||
|
||||
We would like to thank the following people for their help: Jeremiah
|
||||
|
@ -1262,7 +1195,7 @@ LISP-1.5 and Alan Kay for their inspiring comment on
|
|||
@url{https://queue.acm.org/detail.cfm?id=1039523, Page 13}.
|
||||
|
||||
@c *********************************************************************
|
||||
@node Resources
|
||||
@node Resources, GNU Free Documentation License, Acknowledgments, Top
|
||||
@chapter Resources
|
||||
|
||||
@itemize
|
||||
|
@ -1286,8 +1219,8 @@ collection of small/bootstrappable compilers, operating systems,
|
|||
anything you need.
|
||||
|
||||
@item
|
||||
@url{irc.libera.chat, #bootstrappable} The bootstrapping community home
|
||||
at the Libera Chat IRC network.
|
||||
@url{irc.freenode.net, #bootstrappable} The bootstrapping community home
|
||||
at the freenode IRC network.
|
||||
|
||||
@item
|
||||
@file{guix-devel@@gnu.org} The Guix mailing list, where it all started.
|
||||
|
@ -1296,17 +1229,17 @@ at the Libera Chat IRC network.
|
|||
@end itemize
|
||||
|
||||
@c *********************************************************************
|
||||
@node GNU Free Documentation License
|
||||
@node GNU Free Documentation License, Concept Index, Resources, Top
|
||||
@appendix GNU Free Documentation License
|
||||
@cindex license, GNU Free Documentation License
|
||||
@include fdl-1.3.texi
|
||||
|
||||
@c *********************************************************************
|
||||
@node Concept Index
|
||||
@node Concept Index, Programming Index, GNU Free Documentation License, Top
|
||||
@unnumbered Concept Index
|
||||
@printindex cp
|
||||
|
||||
@node Programming Index
|
||||
@node Programming Index, , Concept Index, Top
|
||||
@unnumbered Programming Index
|
||||
@syncodeindex tp fn
|
||||
@syncodeindex vr fn
|
||||
|
|
After Width: | Height: | Size: 8.5 KiB |
|
@ -0,0 +1 @@
|
|||
LISP-1.5-page-13-bottom.png
|
After Width: | Height: | Size: 16 KiB |
After Width: | Height: | Size: 17 KiB |
|
@ -0,0 +1,55 @@
|
|||
-*- org -*-
|
||||
#+TITLE: Talk @Fosdem 2017
|
||||
|
||||
Copyright © 2017 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.
|
||||
|
||||
This talk is
|
||||
Copyright © 2017 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
|
||||
Permission is granted to copy, distribute and/or modify this talk
|
||||
under the terms of the GNU Free Documentation License, Version 1.3 or
|
||||
any later version published by the Free Software Foundation; with no
|
||||
Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A
|
||||
copy of the license is included in doc/fdl-1.3.texi, included in the
|
||||
manual in the section entitled ``GNU Free Documentation License''.
|
||||
|
||||
beamercolorthemeX.sty
|
||||
beamerthemeX.sty
|
||||
fosdem.org
|
||||
fosdem.pdf
|
||||
|
||||
egg.jpeg
|
||||
egg.png
|
||||
egg.xcf
|
||||
fsb-logo-guile-guix-gnu.png
|
||||
fsb-logo-guile-guix-gnu.xcf
|
||||
fsb-logo-guile-guix-mes.png
|
||||
fsb-logo-guile-guix-mes.xcf
|
||||
fsb-logo.png
|
||||
mes.png
|
||||
mes.xcf
|
||||
Permission is granted to copy, distribute and/or modify
|
||||
these works under the terms of the Creative Commons
|
||||
Attribution-ShareAlike 4.0 International License.
|
||||
|
||||
GuixSD.png
|
||||
Copyright © 2015 Luis Felipe López Acevedo
|
||||
Permission is granted to copy, distribute and/or modify
|
||||
this work under the terms of the Creative Commons
|
||||
Attribution-ShareAlike 4.0 International License.
|
||||
|
||||
LISP-1.5-page-13.pdf
|
||||
One page from
|
||||
http://www.softwarepreservation.org/projects/LISP/book/LISP%25201.5%2520Programmers%2520Manual.pdf
|
||||
MIT Press: Reproduction in whole or in part is permitted for any
|
||||
purpose of the of the United States Government.
|
||||
|
||||
Generated files:
|
||||
bootstrap-graph.png
|
||||
guix-build-bootstrap-tarballs.log
|
||||
LISP-1.5-page-13.png
|
||||
LISP-1.5-page-13-bottom.png
|
|
@ -0,0 +1,27 @@
|
|||
% GNU Mes --- Maxwell Equations of Software
|
||||
% Copyright © 2017 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
%
|
||||
% This file is part of GNU Mes.
|
||||
%
|
||||
% GNU Mes is free software; you can redistribute it and/or modify it
|
||||
% under the terms of the GNU General Public License as published by
|
||||
% the Free Software Foundation; either version 3 of the License, or (at
|
||||
% your option) any later version.
|
||||
%
|
||||
% GNU Mes is distributed in the hope that it will be useful, but
|
||||
% WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
% GNU General Public License for more details.
|
||||
%
|
||||
% You should have received a copy of the GNU General Public License
|
||||
% along with GNU Mes. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
\mode<presentation>
|
||||
|
||||
\usecolortheme{spruce}
|
||||
\setbeamercolor*{structure}{fg=blue!25!white}
|
||||
\setbeamercolor*{structure}{fg=MSUgreen!80!white}
|
||||
\setbeamercolor{block title}{use=structure,fg=white,bg=structure.fg!75!black}
|
||||
|
||||
\mode
|
||||
<all>
|
|
@ -0,0 +1,36 @@
|
|||
% GNU Mes --- Maxwell Equations of Software
|
||||
% Copyright © 2017 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
%
|
||||
% This file is part of GNU Mes.
|
||||
%
|
||||
% GNU Mes is free software; you can redistribute it and/or modify it
|
||||
% under the terms of the GNU General Public License as published by
|
||||
% the Free Software Foundation; either version 3 of the License, or (at
|
||||
% your option) any later version.
|
||||
%
|
||||
% GNU Mes is distributed in the hope that it will be useful, but
|
||||
% WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
% GNU General Public License for more details.
|
||||
%
|
||||
% You should have received a copy of the GNU General Public License
|
||||
% along with GNU Mes. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
\mode<presentation>
|
||||
|
||||
\setbeamertemplate{navigation symbols}{}
|
||||
|
||||
\newif\ifbeamer@secheader
|
||||
\beamer@secheaderfalse
|
||||
|
||||
\DeclareOptionBeamer{secheader}{\beamer@secheadertrue}
|
||||
\ProcessOptionsBeamer
|
||||
|
||||
\usecolortheme{X}
|
||||
\useinnertheme[shadow]{rounded}
|
||||
\useoutertheme{infolines}
|
||||
|
||||
\ifbeamer@secheader\else\setbeamertemplate{headline}[default]\fi
|
||||
|
||||
\mode
|
||||
<all>
|
After Width: | Height: | Size: 156 KiB |
After Width: | Height: | Size: 15 KiB |
After Width: | Height: | Size: 69 KiB |
|
@ -0,0 +1,662 @@
|
|||
#+TITLE: GNU Mes
|
||||
#+TITLE: \smaller[2]{Maxwell Equations of Software}
|
||||
#+DATE:2017-02-05
|
||||
#+EMAIL: janneke@gnu.org
|
||||
#+AUTHOR: janneke@gnu.org
|
||||
#+COPYRIGHT: Jan (janneke) Nieuwenhuizen <janneke@gn.org>
|
||||
#+LICENSE: GNU Free Documentation License, version 1.3 or later.
|
||||
#+LATEX_HEADER:\institute{FOSDEM'17}
|
||||
#+LATEX_HEADER:\def\ahref#1#2{\htmladdnormallink{#2}{#1}}
|
||||
#+OPTIONS: H:2
|
||||
#+LATEX_CLASS: beamer
|
||||
#+LATEX_CLASS_OPTIONS: [presentation]
|
||||
#+LATEX_HEADER: \usepackage{relsize}
|
||||
#+LATEX_HEADER: \usepackage{hyperref}
|
||||
#+latex_header: \mode<beamer>{\usetheme{X}}
|
||||
#+BEAMER_THEME: X
|
||||
#+BEAMER_FRAME_LEVEL: 2
|
||||
#+COLUMNS: %45ITEM %10BEAMER_ENV(Env) %10BEAMER_ACT(Act) %4BEAMER_COL(Col) %8BEAMER_OPT(Opt)
|
||||
|
||||
* Mes, WHAT?
|
||||
|
||||
# ** TEST
|
||||
# - @@beamer:<1->@@ Item 1
|
||||
# - @@beamer:<2->@@ Item 2
|
||||
|
||||
# GNU LilyPond, Verum
|
||||
# Depression: France, Netherlands, US: about 20%; 10x more than 50 years ago
|
||||
|
||||
** Mes: Full Source Bootstrapping
|
||||
|
||||
*** Bootstrapping :B_block:BMCOL:
|
||||
:PROPERTIES:
|
||||
:BEAMER_COL: 0.6
|
||||
:END:
|
||||
* Where do compilers come from?
|
||||
* Who compiled the compiler?
|
||||
* Chicken and Egg
|
||||
*** WTF :B_block:BMCOL:
|
||||
#+LATEX:\includegraphics[width=0.4\textwidth]{mes.png}
|
||||
:PROPERTIES:
|
||||
:BEAMER_COL: 0.3
|
||||
:xBEAMER_ACT: <2->
|
||||
:xBEAMER_ENV: block
|
||||
:END:
|
||||
|
||||
*** mes: A tiny Scheme interpreter in Hex [or simple C?]
|
||||
:PROPERTIES:
|
||||
:BEAMER_ACT: <2->
|
||||
:END:
|
||||
|
||||
*** mescc: A C compiler in Scheme, executed by Mes
|
||||
:PROPERTIES:
|
||||
:BEAMER_ACT: <3->
|
||||
:END:
|
||||
* Mes + CC =
|
||||
#+xATTR_LATEX: :=\linewidth
|
||||
#+xLATEX:\includegraphics[width=0.25\textwidth]{fsb-logo.png}
|
||||
#+LATEX:\rightskip=-3cm\includegraphics[width=0.2\textwidth]{fsb-logo-guile-guix-mes.png}
|
||||
|
||||
* Mes, what NOT?
|
||||
:PROPERTIES:
|
||||
:xBEAMER_ENV: note
|
||||
:END:
|
||||
|
||||
** Mes is a strategy
|
||||
* NOT a goal in itself -- only a means or proof of concept
|
||||
* NOT a general purpose Scheme -- close to R6RS
|
||||
* NOT an alternative for Guile -- reuse Guile modules
|
||||
|
||||
* Mes, WHY?
|
||||
|
||||
** Inspiration: what do you want?
|
||||
|
||||
*** Meaning, Autonomy, Co-Creation, Self-Realization
|
||||
:PROPERTIES:
|
||||
:BEAMER_ACT: <2->
|
||||
:END:
|
||||
* Discovering, Hacking, Motivating, Playing
|
||||
|
||||
*** A planet of enlightened beings
|
||||
:PROPERTIES:
|
||||
:BEAMER_ACT: <3->
|
||||
:END:
|
||||
# * Awakening of consciousness
|
||||
* Look inward
|
||||
* Be happy
|
||||
* Be helpful
|
||||
*** A world where all software is free
|
||||
:PROPERTIES:
|
||||
:BEAMER_ACT: <4->
|
||||
:END:
|
||||
* Support \ahref{https://gnu.org}{GNU}
|
||||
* Create free software
|
||||
# * Be patient, be wise
|
||||
|
||||
** Inspiration: when do you want it?
|
||||
|
||||
*** NOW!!!
|
||||
:PROPERTIES:
|
||||
:BEAMER_ACT: <2->
|
||||
:END:
|
||||
|
||||
** Inspiration
|
||||
|
||||
*** To finally run GNU
|
||||
* GuixSD: GNU in the flesh
|
||||
:PROPERTIES:
|
||||
# :BEAMER_ACT: <1->
|
||||
:END:
|
||||
|
||||
# * Michael Nielsen: \ahref{http://www.michaelnielsen.org/ddi/lisp-as-the-maxwells-equations-of-software}{Lisp as the Maxwell's Equations of Software}
|
||||
|
||||
# *** recap the 4 freedoms
|
||||
# :PROPERTIES:
|
||||
# :BEAMER_ACT: <3->
|
||||
# :END:
|
||||
|
||||
** 1941: The \ahref{https://en.wikipedia.org/wiki/Four_Freedoms}{Four Freedoms}
|
||||
:PROPERTIES:
|
||||
:BEAMER_ENV: note
|
||||
:END:
|
||||
*** for all people on our planet
|
||||
|
||||
* Freedom of speech
|
||||
* Freedom of worship
|
||||
* Freedom from want
|
||||
* Freedom from fear
|
||||
|
||||
-- Franklin D. Roosevelt
|
||||
|
||||
** 1984 Four Software Freedoms: GNU GPL
|
||||
:PROPERTIES:
|
||||
:xBEAMER_ENV: note
|
||||
:END:
|
||||
*** The freedom to
|
||||
|
||||
* 0 run the program as you wish, for any purpose
|
||||
* 1 study how the program works, and change it if you wish
|
||||
* 2 redistribute copies so you can help your neighbor
|
||||
* 3 share copies of your modified versions with others
|
||||
|
||||
-- Richard M. Stallman
|
||||
|
||||
# 1: Access to the source code is a precondition for this.
|
||||
|
||||
# 3: By doing this you can give the whole community a chance to benefit
|
||||
# from your changes. Access to the source code is a precondition for
|
||||
# this.
|
||||
|
||||
** 2013 Debian's \ahref{https://reproducible-builds.org}{reproducible-builds.org}
|
||||
|
||||
*** Verifiable path: source -> binary
|
||||
Reproducible builds are a set of software development practices that
|
||||
create a verifiable path from human readable source code to the binary
|
||||
code used by computers.
|
||||
|
||||
*** Does this binary come from the given source?
|
||||
* Always different binary...dunno?
|
||||
* Same binary
|
||||
* Always good, always bad?
|
||||
|
||||
** 2015 GuixSD \ahref{https://www.gnu.org/software/guix/news/reproducible-builds-a-means-to-an-end.html}{Reproducible builds: a means to an end}
|
||||
|
||||
# GNU Guix is committed to improving the freedom and autonomy of
|
||||
# computer users. This obviously manifests in the fact that GuixSD is a
|
||||
# fully free distro, and this is what GNU stands for. All the packages
|
||||
# in Guix are built from source, including things like firmware where
|
||||
# there is an unfortunate tendency to use pre-built binaries; that way,
|
||||
# users can know what software they run. On the technical side, Guix
|
||||
# also tries hard to empower users by making the whole system as
|
||||
# hackable as possible, in a uniform way—making Freedom #1 practical, à
|
||||
# la Emacs.
|
||||
|
||||
*** A technical means to an end
|
||||
* guarantee user autonomy and safety
|
||||
* GNU+GuixSD: fully free distro
|
||||
* NixOS: fully isolated build environment
|
||||
* NixOS: full list of dependencies
|
||||
* reproducible builds: bit-for-bit identical binaries
|
||||
|
||||
-- Ludovic Courtès
|
||||
|
||||
** 2016 From GuixSD to Mes: The bootstrap binaries
|
||||
|
||||
*** GuixSD ... source
|
||||
* source/binary transparency
|
||||
* all is built from source
|
||||
* *EVERYTHING*
|
||||
* starting from the ... *bootstrap binaries*
|
||||
|
||||
|
||||
The distribution is fully “bootstrapped” and “self-contained”: each
|
||||
package is built based solely on other packages in the distribution.
|
||||
|
||||
The root of this dependency graph is a small set of “bootstrap
|
||||
binaries”, provided by the ‘(gnu packages bootstrap)’ module. For more
|
||||
information on bootstrapping, *note Bootstrapping::.
|
||||
|
||||
|
||||
[2010]: Eelco Dolstra, Andres Löh, and Nicolas Pierron described
|
||||
sources of non-determinism in their 2010 JFP paper about NixOS
|
||||
|
||||
|
||||
** GuixSD bootstrap graph
|
||||
|
||||
#+LATEX:\includegraphics[width=0.8\textwidth]{bootstrap-graph.png}
|
||||
|
||||
|
||||
** GuixSD bootstrap tarballs
|
||||
#+BEGIN_SRC bash
|
||||
$ du -schx $(readlink $(guix build bootstrap-tarballs)/*)
|
||||
2.1M /gnu/store/mzk1bc3pfrrf4qnfs3zkj5ch83srnvpx-binutils-static-stripped-tarball-2.27/binutils-static-stripped-2.27-x86_64-linux.tar.xz
|
||||
16M /gnu/store/jddviycivycfhaqahqff6n18y9w46gpz-gcc-stripped-tarball-4.9.4/gcc-stripped-4.9.4-x86_64-linux.tar.xz
|
||||
1.7M /gnu/store/x5zrmh820yc054w00cy00iixwghmly2y-glibc-stripped-tarball-2.24/glibc-stripped-2.24-x86_64-linux.tar.xz
|
||||
3.1M /gnu/store/znsf5d7xbqkp4rrjgzsklmwmms8m5i3m-guile-static-stripped-tarball-2.0.12/guile-static-stripped-2.0.12-x86_64-linux.tar.xz
|
||||
5.7M /gnu/store/myfikfgx74dzlm3lc217kchxnckri5qq-static-binaries-tarball-0/static-binaries-0-x86_64-linux.tar.xz
|
||||
28M total
|
||||
$ for i in $(readlink $(guix build bootstrap-tarballs)/*);\
|
||||
do sudo tar xf $i; done
|
||||
$ du -schx *
|
||||
125M bin
|
||||
13M include
|
||||
18M lib
|
||||
43M libexec
|
||||
4.3M share
|
||||
202M total
|
||||
#+END_SRC
|
||||
|
||||
|
||||
** Inspiration
|
||||
|
||||
*** To finally run GNU
|
||||
:PROPERTIES:
|
||||
:BEAMER_ACT: <1->
|
||||
:END:
|
||||
* GuixSD: GNU in the flesh
|
||||
*** Bootstrap binaries: source all the way down?
|
||||
:PROPERTIES:
|
||||
:BEAMER_ACT: <1->
|
||||
:END:
|
||||
* OriansJ: \ahref{https://github.com/oriansj/stage0}{self-hosting hex assembler}
|
||||
*** The computer revolution hasn't happened yet
|
||||
:PROPERTIES:
|
||||
:BEAMER_ACT: <2->
|
||||
:END:
|
||||
* Alan Kay
|
||||
The computer revolution is very new, and all of the good ideas have
|
||||
not been universally implemented
|
||||
|
||||
** Bootstrapping: Chicken and Egg
|
||||
|
||||
#+LATEX:\includegraphics[width=0.3\textwidth]{egg.png}
|
||||
|
||||
** Inspiration
|
||||
|
||||
*** To finally run GNU
|
||||
:PROPERTIES:
|
||||
:BEAMER_ACT: <1->
|
||||
:END:
|
||||
* GuixSD: GNU in the flesh
|
||||
*** Bootstrap binaries: source all the way down?
|
||||
:PROPERTIES:
|
||||
:BEAMER_ACT: <1->
|
||||
:END:
|
||||
* OriansJ: \ahref{https://github.com/oriansj/stage0}{self-hosting hex assembler}
|
||||
*** The computer revolution hasn't happened yet
|
||||
:PROPERTIES:
|
||||
:BEAMER_ACT: <1->
|
||||
:END:
|
||||
* Alan Kay
|
||||
The computer revolution is very new, and all of the good ideas have
|
||||
not been universally implemented
|
||||
*** \ahref{http://queue.acm.org/detail.cfm?id=1039523}{LISP as the Maxwell's Equations of Software}
|
||||
:PROPERTIES:
|
||||
:BEAMER_ACT: <1->
|
||||
:END:
|
||||
That was the big revelation to me when I [..] finally understood that
|
||||
the half page of code on the bottom of page 13 of the Lisp 1.5 manual
|
||||
was Lisp in itself. These were “Maxwell’s Equations of Software!”
|
||||
|
||||
* \ahref{http://www.softwarepreservation.org/projects/LISP/book/LISP\%25201.5\%2520Programmers\%2520Manual.pdf}{LISP-1.5}: page 13
|
||||
|
||||
|
||||
** Chicken and Egg
|
||||
|
||||
* the shortest path from hex to gcc
|
||||
* using Maxwell's Equations of Software
|
||||
|
||||
** Bootstrapping: Chicken and Egg
|
||||
|
||||
#+LATEX:\includegraphics[width=0.3\textwidth]{mes.png}
|
||||
|
||||
|
||||
* Mes: HOW?
|
||||
|
||||
** LISP-1.5 John McCarthy: page 13
|
||||
|
||||
# convert -density 150 -quality 100 -flatten -sharpen 0x1.0 LISP-1.5-page-13.pdf LISP-1.5-page-13.png
|
||||
#+BEGIN_COMMENT
|
||||
[[file:LISP-1-5-page-13-bottom.png][LISP-1.5 page 13 bottom]]
|
||||
#+END_COMMENT
|
||||
|
||||
#+ATTR_LATEX: :width=\linewidth
|
||||
#+LATEX:\includegraphics[width=\textwidth]{LISP-1-5-page-13-bottom.png}
|
||||
|
||||
** Eval/Apply
|
||||
* core
|
||||
* apply
|
||||
* eval
|
||||
* helpers
|
||||
* assoc
|
||||
* pairlis
|
||||
* evcon
|
||||
* evlis
|
||||
* primitives
|
||||
* atom
|
||||
* car
|
||||
* cdr
|
||||
* cons
|
||||
* eq
|
||||
|
||||
** LISP-1.5 in Guile Scheme: APPLY
|
||||
|
||||
#+BEGIN_SRC scheme
|
||||
(define (apply fn x a)
|
||||
(cond
|
||||
((atom fn)
|
||||
(cond
|
||||
((eq fn CAR) (caar x))
|
||||
((eq fn CDR) (cdar x))
|
||||
((eq fn CONS) (cons (car x) (cadr x)))
|
||||
((eq fn ATOM) (atom (car x)))
|
||||
((eq fn EQ) (eq (car x) (cadr x)))
|
||||
(#t (apply (eval fn a) x a))))
|
||||
((eq (car fn) LAMBDA)
|
||||
(eval (caddr fn) (pairlis (cadr fn) x a)))
|
||||
((eq (car fn) LABEL)
|
||||
(apply (caddr fn) x (cons (cons (cadr fn)
|
||||
(caddr fn))
|
||||
a)))))
|
||||
#+END_SRC
|
||||
|
||||
** LISP-1.5 in Guile Scheme: EVAL
|
||||
|
||||
#+BEGIN_SRC scheme
|
||||
(define (eval e a)
|
||||
(cond
|
||||
((atom e) (cdr (assoc e a)))
|
||||
((atom (car e))
|
||||
(cond ((eq (car e) QUOTE) (cadr e))
|
||||
((eq (car e) COND) (evcon (cdr e) a))
|
||||
(#t (apply (car e)
|
||||
(evlis (cdr e) a) a))))
|
||||
(#t (apply (car e) (evlis (cdr e) a) a))))
|
||||
#+END_SRC
|
||||
|
||||
** LISP-1.5 in Scheme: ASSOC, PAIRLIS, EVCON, EVLIS
|
||||
|
||||
#+BEGIN_SRC scheme
|
||||
(define (assoc x a)
|
||||
(cond ((eq (caar a) x) (car a))
|
||||
(#t (assoc x (cdr a)))))
|
||||
|
||||
(define (pairlis x y a)
|
||||
(cond ((null x) a)
|
||||
(#t (cons (cons (car x) (car y))
|
||||
(pairlis (cdr x) (cdr y) a)))))
|
||||
|
||||
(define (evcon c a)
|
||||
(cond ((eval (caar c) a) (eval (cadar c) a))
|
||||
(#t (evcon (cdr c) a))))
|
||||
|
||||
(define (evlis m a)
|
||||
(cond ((null m) NIL)
|
||||
(#t (cons (eval (car m) a) (evlis (cdr m) a)))))
|
||||
#+END_SRC
|
||||
|
||||
|
||||
** LISP-1.5 in C
|
||||
|
||||
* closures
|
||||
* symbols
|
||||
* specials? =()= =#t= =#f= =*unspecified*= =*undefined*=
|
||||
* macros
|
||||
* syntax-rules
|
||||
* records
|
||||
* modules/importing
|
||||
|
||||
** Garbage/Jam Collector
|
||||
|
||||
*** Abelson & Sussman
|
||||
With a real computer we will eventually run out of free
|
||||
space in which to construct new pairs.(1)
|
||||
|
||||
*** footnote(1)
|
||||
|
||||
This may not be true eventually, because memories may get large
|
||||
enough so that it would be impossible to run out of free memory in the
|
||||
lifetime of the computer. For example, there are about {3\cdot10^{13}}
|
||||
microseconds in a year, so if we were to ‘cons’ once per microsecond we
|
||||
would need about 10^{15} cells of memory to build a machine that could
|
||||
operate for 30 years without running out of memory.
|
||||
|
||||
|
||||
** C parser: roll your own LALR
|
||||
|
||||
*** Lalr
|
||||
* minimal ANSI-C parser
|
||||
|
||||
=int main (){puts ("Hello, world!");return 0;}=
|
||||
|
||||
** C parser: Nyacc
|
||||
*** Pros
|
||||
* full C99 parser
|
||||
* ...including C pre-processor
|
||||
* perspective of building complete C compiler in Guile
|
||||
* tsunami of enthusiasm and contributors!
|
||||
|
||||
** C parser: Nyacc
|
||||
|
||||
*** Cons: more TODO for Mes
|
||||
* keywords
|
||||
* =define*=, =lambda*=
|
||||
* optargs
|
||||
* exeptions, =catch=, =throw=
|
||||
* =call/cc=
|
||||
* fluids, =with-fluid=
|
||||
* =syntax-case=
|
||||
* André van Tonder's 2006-2007 streak in 14 "commits"
|
||||
* psyntax: another bootstrap loop?!
|
||||
* R7RS's Ellipsis
|
||||
* Guile-1.8
|
||||
* =#;=-comments
|
||||
* =#||#=-comments
|
||||
|
||||
** C parser: Nyacc
|
||||
|
||||
*** Cons: more TODO for Mes
|
||||
|
||||
* Cond supports ==>=
|
||||
* Bugfixes
|
||||
* Cond now evaluates its test clauses only once
|
||||
* Append can also handle one argument
|
||||
* For-each now supports 2 list arguments
|
||||
* Map now supports 3 list arguments
|
||||
* Backslash in string is supported
|
||||
* Closure is not a pair
|
||||
* All standard characters are supported
|
||||
|
||||
* 36 new functions
|
||||
#+BEGIN_SRC scheme
|
||||
1+, 1-, abs, and=>, append-reverse, ash, char<\=?, char<?,
|
||||
char>=?, char>?, even?, filter, delete, delq, vector-copy,
|
||||
fold, fold-right, getenv, iota, keyword->symbol list-head,
|
||||
list-tail, negative?, odd?, positive?, remove!, remove,
|
||||
string->number, string-copy, string-prefix?, string=,
|
||||
string=?, symbol->keyword symbol-append, symbol-prefix?,
|
||||
unless, write, zero?
|
||||
#+END_SRC
|
||||
|
||||
* Mes: WHERE?
|
||||
|
||||
|
||||
** Timeline
|
||||
|
||||
*** June 19: \ahref{https://lists.gnu.org/archive/html/guile-user/2016-06/msg00061.html}{on bootstrapping: introducing Mes}
|
||||
# https://gnunet.org/bot/log/guile/2016-05-19
|
||||
* LISP-1.5 in Scheme and in C
|
||||
*** September 25: \ahref{https://lists.gnu.org/archive/html/guile-user/2016-09/msg00061.html}{on bootstrapping: 2nd status report on Mes}
|
||||
# https://gnunet.org/bot/log/guile/2016-09-25
|
||||
* Scheme primitives in C, closures, macros, 97 tests, LALR
|
||||
* Produce ELF binary from
|
||||
#+BEGIN_SRC C
|
||||
int main ()
|
||||
{
|
||||
int i;
|
||||
puts ("Hi Mes!\n");
|
||||
for (i = 0; i < 4; ++i)
|
||||
puts (" Hello, world!\n");
|
||||
return 1;
|
||||
}
|
||||
#+END_SRC
|
||||
* in 1'20"
|
||||
|
||||
** Timeline
|
||||
|
||||
*** October 23: 0.1 [not announced]
|
||||
* =let-syntax=, =match=
|
||||
* compile main.c in 2s (was 1'20")
|
||||
* add REPL
|
||||
|
||||
*** November 21: 0.2 [not announced]
|
||||
* psyntax integration, =syntax-case=, =load=
|
||||
|
||||
*** December 12: \ahref{https://lists.gnu.org/archive/html/guile-user/2016-12/msg00008.html}{on bootstrapping: first Mes 0.3 released}
|
||||
# https://gnunet.org/bot/log/guile/2016-12-12
|
||||
* Garbage Collector/Jam Scraper
|
||||
|
||||
*** December 25: \ahref{https://lists.gnu.org/archive/html/guile-user/2016-12/msg00041.html}{Mes 0.4 released}
|
||||
# https://gnunet.org/bot/log/guile/2016-12-25
|
||||
* run Nyacc, PEG, reduced core
|
||||
|
||||
** Status
|
||||
|
||||
*** core C prototype: 1150 lines
|
||||
*** non-essential C sources:
|
||||
#+BEGIN_SRC bash
|
||||
210 lib.c
|
||||
157 math.c
|
||||
126 posix.c
|
||||
134 reader.c
|
||||
627 total
|
||||
#+END_SRC
|
||||
|
||||
** Status
|
||||
*** tiny-mes.c: 270 lines
|
||||
* compiles with mescc
|
||||
* i386-lib: =i386:exit=, =i3886:open=, =i386:read=, =i386:write=
|
||||
* tiny-libc: =getchar=, =putchar=, =puts=, =strcmp=, =strlen=
|
||||
* runs
|
||||
#+BEGIN_SRC bash
|
||||
Hello tiny-mes!
|
||||
reading: module/mes/hack-32.mo
|
||||
MES *GOT MES*
|
||||
(#\A(#\B))
|
||||
#+END_SRC
|
||||
|
||||
** Status
|
||||
|
||||
*** mini-mes.c: 800 lines
|
||||
* 12kB binary
|
||||
* 2500 lines assembly
|
||||
* runs with gcc
|
||||
#+BEGIN_SRC bash
|
||||
Hello mini-mes!
|
||||
reading: module/mes/hack-32.mo
|
||||
MES *GOT MES*
|
||||
cells read: 19
|
||||
symbols: 1
|
||||
program[10]: (cons(0(1)))
|
||||
(0 . 1)
|
||||
#+END_SRC
|
||||
* compiles with mescc
|
||||
* 83 statements skipped
|
||||
|
||||
** Status
|
||||
|
||||
*** current Guix package
|
||||
|
||||
#+BEGIN_SRC bash
|
||||
01:16:51 janneke@dundal:~/src/mes
|
||||
$ guix package -f guix.scm
|
||||
The following package will be upgraded:
|
||||
mes 0.4.f84e97fc -> 0.4.f84e97fc /gnu/store/2fsy1cd24pnwkv7a1zd0anzk3zz8ysdn-mes-0.4.f84e97fc
|
||||
|
||||
#+END_SRC
|
||||
|
||||
|
||||
|
||||
** Misc
|
||||
:PROPERTIES:
|
||||
:BEAMER_ENV: note
|
||||
:END:
|
||||
|
||||
civodul
|
||||
|
||||
Impressive!
|
||||
|
||||
Is it a goal to try interpret a language as close as possible to that of
|
||||
Guile, and have the same libraries? I guess that could help in the
|
||||
future: we could use (system base lalr), nyacc, etc.
|
||||
|
||||
Also, currently there’s approximately 2K lines of C. How do you plan to
|
||||
make sure that it doesn’t grow over time, or even that it shrinks? :-)
|
||||
|
||||
This all sounds very promising, thanks a lot!
|
||||
|
||||
arnebab
|
||||
|
||||
This is really cool! Thank you for your work!
|
||||
|
||||
> How do you compile the interpreter?
|
||||
|
||||
paroneayea/cwebber
|
||||
First, I'm really excited you're making progress on Mes!
|
||||
|
||||
> Second, Scheme48 did something similar to this, called "Pre-Scheme",
|
||||
which is how they bootstrapped Scheme48 iirc. Have you heard of it or
|
||||
looked at it?
|
||||
|
||||
https://en.wikipedia.org/wiki/PreScheme
|
||||
|
||||
* PreScheme in Scheme48
|
||||
* \ahref{http://canonical.org/~kragen/sw/urscheme/}{Ur-Scheme}
|
||||
R5RS to x86 Assembly
|
||||
|
||||
** What's next?
|
||||
|
||||
* psyntax
|
||||
* source or binary?
|
||||
* alternative syntax-case?
|
||||
* rewrite Nyacc without syntax-case, R7RS-ellipsis?
|
||||
* call/cc vs eval/apply/evlis?
|
||||
* merge with Guile?
|
||||
* compile Guile or compile Gcc?
|
||||
* prototype? in C
|
||||
* move from C to Hex?
|
||||
* move from C to [Pre]Scheme
|
||||
|
||||
** Thanks
|
||||
*** Thanks :B_block:BMCOL:
|
||||
:PROPERTIES:
|
||||
:BEAMER_COL: 0.48
|
||||
:BEAMER_ENV: block
|
||||
:END:
|
||||
* John McCarthy
|
||||
* Richard Stallman
|
||||
* Eelco Dolstra
|
||||
* Ludovic Courtès
|
||||
* Rutger van Beusekom
|
||||
* Christopher A. Webber
|
||||
*** Thanks everyone else :B_block:BMCOL:
|
||||
:PROPERTIES:
|
||||
:BEAMER_COL: 0.48
|
||||
:xBEAMER_ACT: <2->
|
||||
:BEAMER_ENV: block
|
||||
:END:
|
||||
* LISP-1.5
|
||||
* GNU
|
||||
* NixOS
|
||||
* Debian reproducible builds
|
||||
* GuixSD
|
||||
* FOSDEM
|
||||
*** Connect
|
||||
* irc freenode.net [[irc://guix@freenode.net][#guix]] [[irc://guile@freenode.net][#guile]]
|
||||
* mail [[mailto://guile-user@gnu.org][guile-user@gnu.org]]
|
||||
* git [[https://gitlab.com/janneke/mes][git@gitlab.com:janneke/mes.git]]
|
||||
|
||||
# * Copying
|
||||
# :PROPERTIES:
|
||||
# :COPYING: t
|
||||
# :END:
|
||||
|
||||
# Copyright \copy 2017 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
|
||||
# C-c C-e l b (org-beamer-export-to-latex)
|
||||
# C-c C-e l P (org-beamer-export-to-pdf)
|
||||
|
||||
* Legalese
|
||||
:PROPERTIES:
|
||||
:COPYING: t
|
||||
:END:
|
||||
|
||||
Copyright \copy 2017 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
|
||||
#+BEGIN_QUOTE
|
||||
Permission is granted to copy, distribute and/or modify this
|
||||
document under the terms of the GNU Free Documentation License,
|
||||
Version 1.3 or any later version published by the Free Software
|
||||
Foundation; with no Invariant Sections, with no Front-Cover Texts,
|
||||
and with no Back-Cover Texts.
|
||||
#+END_QUOTE
|
After Width: | Height: | Size: 300 KiB |
After Width: | Height: | Size: 222 KiB |
After Width: | Height: | Size: 222 KiB |
|
@ -0,0 +1,44 @@
|
|||
11:12:26 janneke@dundal:~/src/mes/doc
|
||||
$ guix build bootstrap-tarballs
|
||||
substitute: updating list of substitutes from 'http://mirror.hydra.gnu.org'... 100.0%
|
||||
The following files will be downloaded:
|
||||
/gnu/store/6bym1yf3x500dhzc3z8lqk0frnd5qcka-bootstrap-tarballs-0
|
||||
/gnu/store/jddviycivycfhaqahqff6n18y9w46gpz-gcc-stripped-tarball-4.9.4
|
||||
/gnu/store/myfikfgx74dzlm3lc217kchxnckri5qq-static-binaries-tarball-0
|
||||
/gnu/store/mzk1bc3pfrrf4qnfs3zkj5ch83srnvpx-binutils-static-stripped-tarball-2.27
|
||||
/gnu/store/x5zrmh820yc054w00cy00iixwghmly2y-glibc-stripped-tarball-2.24
|
||||
/gnu/store/znsf5d7xbqkp4rrjgzsklmwmms8m5i3m-guile-static-stripped-tarball-2.0.12
|
||||
@ substituter-started /gnu/store/mzk1bc3pfrrf4qnfs3zkj5ch83srnvpx-binutils-static-stripped-tarball-2.27 /gnu/store/9hhljacc22jppmjx57xc7c46by10y8gh-guix-0.12.0-4.d9da/libexec/guix/substitute
|
||||
Downloading http://mirror.hydra.gnu.org/nar/mzk1bc3pfrrf4qnfs3zkj5ch83srnvpx-binutils-static-stripped-tarball-2.27 (2.0MiB installed)...
|
||||
binutils-static-stripped-tarball-2.27 3.5MiB/s 00:01 | 2.0MiB transferred
|
||||
|
||||
@ substituter-succeeded /gnu/store/mzk1bc3pfrrf4qnfs3zkj5ch83srnvpx-binutils-static-stripped-tarball-2.27
|
||||
@ substituter-started /gnu/store/jddviycivycfhaqahqff6n18y9w46gpz-gcc-stripped-tarball-4.9.4 /gnu/store/9hhljacc22jppmjx57xc7c46by10y8gh-guix-0.12.0-4.d9da/libexec/guix/substitute
|
||||
Downloading http://mirror.hydra.gnu.org/nar/jddviycivycfhaqahqff6n18y9w46gpz-gcc-stripped-tarball-4.9.4 (15.5MiB installed)...
|
||||
gcc-stripped-tarball-4.9.4 4.0MiB/s 00:04 | 15.5MiB transferred
|
||||
|
||||
@ substituter-succeeded /gnu/store/jddviycivycfhaqahqff6n18y9w46gpz-gcc-stripped-tarball-4.9.4
|
||||
@ substituter-started /gnu/store/x5zrmh820yc054w00cy00iixwghmly2y-glibc-stripped-tarball-2.24 /gnu/store/9hhljacc22jppmjx57xc7c46by10y8gh-guix-0.12.0-4.d9da/libexec/guix/substitute
|
||||
Downloading http://mirror.hydra.gnu.org/nar/x5zrmh820yc054w00cy00iixwghmly2y-glibc-stripped-tarball-2.24 (1.6MiB installed)...
|
||||
glibc-stripped-tarball-2.24 697KiB/s 00:02 | 1.6MiB transferred
|
||||
|
||||
@ substituter-succeeded /gnu/store/x5zrmh820yc054w00cy00iixwghmly2y-glibc-stripped-tarball-2.24
|
||||
@ substituter-started /gnu/store/znsf5d7xbqkp4rrjgzsklmwmms8m5i3m-guile-static-stripped-tarball-2.0.12 /gnu/store/9hhljacc22jppmjx57xc7c46by10y8gh-guix-0.12.0-4.d9da/libexec/guix/substitute
|
||||
Downloading http://mirror.hydra.gnu.org/nar/znsf5d7xbqkp4rrjgzsklmwmms8m5i3m-guile-static-stripped-tarball-2.0.12 (3.1MiB installed)...
|
||||
guile-static-stripped-tarball-2.0.12 3.2MiB/s 00:01 | 3.1MiB transferred
|
||||
|
||||
@ substituter-succeeded /gnu/store/znsf5d7xbqkp4rrjgzsklmwmms8m5i3m-guile-static-stripped-tarball-2.0.12
|
||||
@ substituter-started /gnu/store/myfikfgx74dzlm3lc217kchxnckri5qq-static-binaries-tarball-0 /gnu/store/9hhljacc22jppmjx57xc7c46by10y8gh-guix-0.12.0-4.d9da/libexec/guix/substitute
|
||||
Downloading http://mirror.hydra.gnu.org/nar/myfikfgx74dzlm3lc217kchxnckri5qq-static-binaries-tarball-0 (5.7MiB installed)...
|
||||
static-binaries-tarball-0 4.1MiB/s 00:01 | 5.7MiB transferred
|
||||
|
||||
@ substituter-succeeded /gnu/store/myfikfgx74dzlm3lc217kchxnckri5qq-static-binaries-tarball-0
|
||||
@ substituter-started /gnu/store/6bym1yf3x500dhzc3z8lqk0frnd5qcka-bootstrap-tarballs-0 /gnu/store/9hhljacc22jppmjx57xc7c46by10y8gh-guix-0.12.0-4.d9da/libexec/guix/substitute
|
||||
Downloading http://mirror.hydra.gnu.org/nar/6bym1yf3x500dhzc3z8lqk0frnd5qcka-bootstrap-tarballs-0 (2KiB installed)...
|
||||
bootstrap-tarballs-0 385KiB/s 00:00 | 520B transferred
|
||||
|
||||
@ substituter-succeeded /gnu/store/6bym1yf3x500dhzc3z8lqk0frnd5qcka-bootstrap-tarballs-0
|
||||
/gnu/store/6bym1yf3x500dhzc3z8lqk0frnd5qcka-bootstrap-tarballs-0
|
||||
12:05:09 janneke@dundal:~/src/mes/doc
|
||||
$ 12:05:09 janneke@dundal:~/src/mes/doc
|
||||
$
|
After Width: | Height: | Size: 96 KiB |
After Width: | Height: | Size: 7.3 KiB |
|
@ -0,0 +1 @@
|
|||
../fosdem17/LISP-1-5-page-13-bottom.png
|
|
@ -0,0 +1,27 @@
|
|||
% GNU Mes --- Maxwell Equations of Software
|
||||
% Copyright © 2017 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
%
|
||||
% This file is part of GNU Mes.
|
||||
%
|
||||
% GNU Mes is free software; you can redistribute it and/or modify it
|
||||
% under the terms of the GNU General Public License as published by
|
||||
% the Free Software Foundation; either version 3 of the License, or (at
|
||||
% your option) any later version.
|
||||
%
|
||||
% GNU Mes is distributed in the hope that it will be useful, but
|
||||
% WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
% GNU General Public License for more details.
|
||||
%
|
||||
% You should have received a copy of the GNU General Public License
|
||||
% along with GNU Mes. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
\mode<presentation>
|
||||
|
||||
\usecolortheme{spruce}
|
||||
\setbeamercolor*{structure}{fg=blue!25!white}
|
||||
\setbeamercolor*{structure}{fg=MSUgreen!80!white}
|
||||
\setbeamercolor{block title}{use=structure,fg=white,bg=structure.fg!75!black}
|
||||
|
||||
\mode
|
||||
<all>
|
|
@ -0,0 +1,36 @@
|
|||
% GNU Mes --- Maxwell Equations of Software
|
||||
% Copyright © 2017 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
%
|
||||
% This file is part of GNU Mes.
|
||||
%
|
||||
% GNU Mes is free software; you can redistribute it and/or modify it
|
||||
% under the terms of the GNU General Public License as published by
|
||||
% the Free Software Foundation; either version 3 of the License, or (at
|
||||
% your option) any later version.
|
||||
%
|
||||
% GNU Mes is distributed in the hope that it will be useful, but
|
||||
% WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
% GNU General Public License for more details.
|
||||
%
|
||||
% You should have received a copy of the GNU General Public License
|
||||
% along with GNU Mes. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
\mode<presentation>
|
||||
|
||||
\setbeamertemplate{navigation symbols}{}
|
||||
|
||||
\newif\ifbeamer@secheader
|
||||
\beamer@secheaderfalse
|
||||
|
||||
\DeclareOptionBeamer{secheader}{\beamer@secheadertrue}
|
||||
\ProcessOptionsBeamer
|
||||
|
||||
\usecolortheme{X}
|
||||
\useinnertheme[shadow]{rounded}
|
||||
\useoutertheme{infolines}
|
||||
|
||||
\ifbeamer@secheader\else\setbeamertemplate{headline}[default]\fi
|
||||
|
||||
\mode
|
||||
<all>
|
After Width: | Height: | Size: 551 KiB |
After Width: | Height: | Size: 936 KiB |
|
@ -0,0 +1 @@
|
|||
../fosdem17/bootstrap-graph.png
|
After Width: | Height: | Size: 73 KiB |
After Width: | Height: | Size: 1.7 KiB |
|
@ -0,0 +1 @@
|
|||
../fosdem17/egg.png
|
After Width: | Height: | Size: 16 KiB |
|
@ -0,0 +1 @@
|
|||
../fosdem17/fsb-logo-guile-guix-mes.png
|
|
@ -0,0 +1,92 @@
|
|||
digraph "Guix bag" {
|
||||
|
||||
node[width=1,height=0.25];
|
||||
edge [height=0.25];
|
||||
|
||||
dpi=75
|
||||
# "/gnu/store/gz3agxnnlgkafw2c8jnvk2hqmlh85pkc-guile-bootstrap-2.0.drv" [fontcolor = red]
|
||||
|
||||
//HANDCRAFTED UNTIL HERE TO BE ABLE TO CUSTOMIZE
|
||||
|
||||
"/gnu/store/mywrsxmbsz9k87z755mnymmpdjv0jvf1-gcc-mesboot0-2.95.3.drv" [label = "gcc-mesboot0@2.95.3", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/mywrsxmbsz9k87z755mnymmpdjv0jvf1-gcc-mesboot0-2.95.3.drv" -> "/gnu/store/fh33abhfvsdgdrg54m86yhmkihfp1g2j-binutils-mesboot0-2.20.1a.drv" [color = darkgoldenrod];
|
||||
"/gnu/store/mywrsxmbsz9k87z755mnymmpdjv0jvf1-gcc-mesboot0-2.95.3.drv" -> "/gnu/store/52nz2cbswm4n91707gy8945h2s4jgvfb-gcc-core-mesboot-2.95.3.drv" [color = darkgoldenrod];
|
||||
"/gnu/store/mywrsxmbsz9k87z755mnymmpdjv0jvf1-gcc-mesboot0-2.95.3.drv" -> "/gnu/store/rn88dllv6vh4mxwbr4v9wjmnl4ml3xs2-glibc-mesboot0-2.2.5.drv" [color = darkgoldenrod];
|
||||
"/gnu/store/mywrsxmbsz9k87z755mnymmpdjv0jvf1-gcc-mesboot0-2.95.3.drv" -> "/gnu/store/00rjhpbkzk86s4pksjg934l310iaxxjr-bootstrap-binaries-0.drv" [color = darkgoldenrod];
|
||||
"/gnu/store/mywrsxmbsz9k87z755mnymmpdjv0jvf1-gcc-mesboot0-2.95.3.drv" -> "/gnu/store/qf1x4bvxg8ihbgmv57yyiwkj5y8zzmk0-diffutils-mesboot-2.7.drv" [color = darkgoldenrod];
|
||||
"/gnu/store/mywrsxmbsz9k87z755mnymmpdjv0jvf1-gcc-mesboot0-2.95.3.drv" -> "/gnu/store/q8d60ln0dxjvqd2ymi1g6xyk3046m23n-linux-libre-headers-bootstrap-0.drv" [color = darkgoldenrod];
|
||||
"/gnu/store/mywrsxmbsz9k87z755mnymmpdjv0jvf1-gcc-mesboot0-2.95.3.drv" -> "/gnu/store/vys62fkr9p3qfp9mc36456ffbpz24n60-make-mesboot0-3.80.drv" [color = darkgoldenrod];
|
||||
"/gnu/store/fh33abhfvsdgdrg54m86yhmkihfp1g2j-binutils-mesboot0-2.20.1a.drv" [label = "binutils-mesboot0@2.20.1a", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/fh33abhfvsdgdrg54m86yhmkihfp1g2j-binutils-mesboot0-2.20.1a.drv" -> "/gnu/store/7lcpxky7sn4c9c86ywri6y3x2d4681iv-tcc-boot-0.9.27.drv" [color = peachpuff4];
|
||||
"/gnu/store/fh33abhfvsdgdrg54m86yhmkihfp1g2j-binutils-mesboot0-2.20.1a.drv" -> "/gnu/store/00rjhpbkzk86s4pksjg934l310iaxxjr-bootstrap-binaries-0.drv" [color = peachpuff4];
|
||||
"/gnu/store/fh33abhfvsdgdrg54m86yhmkihfp1g2j-binutils-mesboot0-2.20.1a.drv" -> "/gnu/store/qf1x4bvxg8ihbgmv57yyiwkj5y8zzmk0-diffutils-mesboot-2.7.drv" [color = peachpuff4];
|
||||
"/gnu/store/fh33abhfvsdgdrg54m86yhmkihfp1g2j-binutils-mesboot0-2.20.1a.drv" -> "/gnu/store/vys62fkr9p3qfp9mc36456ffbpz24n60-make-mesboot0-3.80.drv" [color = peachpuff4];
|
||||
"/gnu/store/7lcpxky7sn4c9c86ywri6y3x2d4681iv-tcc-boot-0.9.27.drv" [label = "tcc-boot@0.9.27", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/7lcpxky7sn4c9c86ywri6y3x2d4681iv-tcc-boot-0.9.27.drv" -> "/gnu/store/pa9s0y0dx6a60a72434syb1zfxgmqilr-mes-boot-0.19.drv" [color = red];
|
||||
"/gnu/store/7lcpxky7sn4c9c86ywri6y3x2d4681iv-tcc-boot-0.9.27.drv" -> "/gnu/store/kd9ly1185dn9z1mbkn0wd2r3fcv1bkw5-tcc-boot0-0.9.26-5.c7b3f59.drv" [color = red];
|
||||
"/gnu/store/7lcpxky7sn4c9c86ywri6y3x2d4681iv-tcc-boot-0.9.27.drv" -> "/gnu/store/00rjhpbkzk86s4pksjg934l310iaxxjr-bootstrap-binaries-0.drv" [color = red];
|
||||
"/gnu/store/pa9s0y0dx6a60a72434syb1zfxgmqilr-mes-boot-0.19.drv" [label = "mes-boot@0.19", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/pa9s0y0dx6a60a72434syb1zfxgmqilr-mes-boot-0.19.drv" -> "/gnu/store/gd83makzwnb2aq1x0hylfsi8gaxln5js-bootstrap-mescc-tools-0.5.2.drv" [color = darkseagreen];
|
||||
"/gnu/store/pa9s0y0dx6a60a72434syb1zfxgmqilr-mes-boot-0.19.drv" -> "/gnu/store/00rjhpbkzk86s4pksjg934l310iaxxjr-bootstrap-binaries-0.drv" [color = darkseagreen];
|
||||
"/gnu/store/pa9s0y0dx6a60a72434syb1zfxgmqilr-mes-boot-0.19.drv" -> "/gnu/store/629yzay882kh1yhpqddps2psfhpjrk2q-bootstrap-mes-0.19.drv" [color = darkseagreen];
|
||||
# "/gnu/store/pa9s0y0dx6a60a72434syb1zfxgmqilr-mes-boot-0.19.drv" -> "/gnu/store/gz3agxnnlgkafw2c8jnvk2hqmlh85pkc-guile-bootstrap-2.0.drv" [color = darkseagreen];
|
||||
"/gnu/store/gd83makzwnb2aq1x0hylfsi8gaxln5js-bootstrap-mescc-tools-0.5.2.drv" [label = "bootstrap-mescc-tools@0.5.2", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/00rjhpbkzk86s4pksjg934l310iaxxjr-bootstrap-binaries-0.drv" [label = "bootstrap-binaries@0", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/629yzay882kh1yhpqddps2psfhpjrk2q-bootstrap-mes-0.19.drv" [label = "bootstrap-mes@0.19", shape = box, fontname = Helvetica];
|
||||
# "/gnu/store/gz3agxnnlgkafw2c8jnvk2hqmlh85pkc-guile-bootstrap-2.0.drv" [label = "guile-bootstrap@2.0", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/kd9ly1185dn9z1mbkn0wd2r3fcv1bkw5-tcc-boot0-0.9.26-5.c7b3f59.drv" [label = "tcc-boot0@0.9.26-5.c7b3f59", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/kd9ly1185dn9z1mbkn0wd2r3fcv1bkw5-tcc-boot0-0.9.26-5.c7b3f59.drv" -> "/gnu/store/pa9s0y0dx6a60a72434syb1zfxgmqilr-mes-boot-0.19.drv" [color = dimgrey];
|
||||
"/gnu/store/kd9ly1185dn9z1mbkn0wd2r3fcv1bkw5-tcc-boot0-0.9.26-5.c7b3f59.drv" -> "/gnu/store/gd83makzwnb2aq1x0hylfsi8gaxln5js-bootstrap-mescc-tools-0.5.2.drv" [color = dimgrey];
|
||||
"/gnu/store/kd9ly1185dn9z1mbkn0wd2r3fcv1bkw5-tcc-boot0-0.9.26-5.c7b3f59.drv" -> "/gnu/store/00rjhpbkzk86s4pksjg934l310iaxxjr-bootstrap-binaries-0.drv" [color = dimgrey];
|
||||
"/gnu/store/kd9ly1185dn9z1mbkn0wd2r3fcv1bkw5-tcc-boot0-0.9.26-5.c7b3f59.drv" -> "/gnu/store/629yzay882kh1yhpqddps2psfhpjrk2q-bootstrap-mes-0.19.drv" [color = dimgrey];
|
||||
# "/gnu/store/kd9ly1185dn9z1mbkn0wd2r3fcv1bkw5-tcc-boot0-0.9.26-5.c7b3f59.drv" -> "/gnu/store/gz3agxnnlgkafw2c8jnvk2hqmlh85pkc-guile-bootstrap-2.0.drv" [color = dimgrey];
|
||||
"/gnu/store/qf1x4bvxg8ihbgmv57yyiwkj5y8zzmk0-diffutils-mesboot-2.7.drv" [label = "diffutils-mesboot@2.7", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/qf1x4bvxg8ihbgmv57yyiwkj5y8zzmk0-diffutils-mesboot-2.7.drv" -> "/gnu/store/pa9s0y0dx6a60a72434syb1zfxgmqilr-mes-boot-0.19.drv" [color = blue];
|
||||
"/gnu/store/qf1x4bvxg8ihbgmv57yyiwkj5y8zzmk0-diffutils-mesboot-2.7.drv" -> "/gnu/store/7lcpxky7sn4c9c86ywri6y3x2d4681iv-tcc-boot-0.9.27.drv" [color = blue];
|
||||
"/gnu/store/qf1x4bvxg8ihbgmv57yyiwkj5y8zzmk0-diffutils-mesboot-2.7.drv" -> "/gnu/store/00rjhpbkzk86s4pksjg934l310iaxxjr-bootstrap-binaries-0.drv" [color = blue];
|
||||
"/gnu/store/qf1x4bvxg8ihbgmv57yyiwkj5y8zzmk0-diffutils-mesboot-2.7.drv" -> "/gnu/store/vys62fkr9p3qfp9mc36456ffbpz24n60-make-mesboot0-3.80.drv" [color = blue];
|
||||
"/gnu/store/vys62fkr9p3qfp9mc36456ffbpz24n60-make-mesboot0-3.80.drv" [label = "make-mesboot0@3.80", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/vys62fkr9p3qfp9mc36456ffbpz24n60-make-mesboot0-3.80.drv" -> "/gnu/store/7lcpxky7sn4c9c86ywri6y3x2d4681iv-tcc-boot-0.9.27.drv" [color = blue];
|
||||
"/gnu/store/vys62fkr9p3qfp9mc36456ffbpz24n60-make-mesboot0-3.80.drv" -> "/gnu/store/00rjhpbkzk86s4pksjg934l310iaxxjr-bootstrap-binaries-0.drv" [color = blue];
|
||||
"/gnu/store/52nz2cbswm4n91707gy8945h2s4jgvfb-gcc-core-mesboot-2.95.3.drv" [label = "gcc-core-mesboot@2.95.3", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/52nz2cbswm4n91707gy8945h2s4jgvfb-gcc-core-mesboot-2.95.3.drv" -> "/gnu/store/fh33abhfvsdgdrg54m86yhmkihfp1g2j-binutils-mesboot0-2.20.1a.drv" [color = darkseagreen];
|
||||
"/gnu/store/52nz2cbswm4n91707gy8945h2s4jgvfb-gcc-core-mesboot-2.95.3.drv" -> "/gnu/store/7lcpxky7sn4c9c86ywri6y3x2d4681iv-tcc-boot-0.9.27.drv" [color = darkseagreen];
|
||||
"/gnu/store/52nz2cbswm4n91707gy8945h2s4jgvfb-gcc-core-mesboot-2.95.3.drv" -> "/gnu/store/00rjhpbkzk86s4pksjg934l310iaxxjr-bootstrap-binaries-0.drv" [color = darkseagreen];
|
||||
"/gnu/store/52nz2cbswm4n91707gy8945h2s4jgvfb-gcc-core-mesboot-2.95.3.drv" -> "/gnu/store/qf1x4bvxg8ihbgmv57yyiwkj5y8zzmk0-diffutils-mesboot-2.7.drv" [color = darkseagreen];
|
||||
"/gnu/store/52nz2cbswm4n91707gy8945h2s4jgvfb-gcc-core-mesboot-2.95.3.drv" -> "/gnu/store/vys62fkr9p3qfp9mc36456ffbpz24n60-make-mesboot0-3.80.drv" [color = darkseagreen];
|
||||
"/gnu/store/rn88dllv6vh4mxwbr4v9wjmnl4ml3xs2-glibc-mesboot0-2.2.5.drv" [label = "glibc-mesboot0@2.2.5", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/rn88dllv6vh4mxwbr4v9wjmnl4ml3xs2-glibc-mesboot0-2.2.5.drv" -> "/gnu/store/fh33abhfvsdgdrg54m86yhmkihfp1g2j-binutils-mesboot0-2.20.1a.drv" [color = blue];
|
||||
"/gnu/store/rn88dllv6vh4mxwbr4v9wjmnl4ml3xs2-glibc-mesboot0-2.2.5.drv" -> "/gnu/store/52nz2cbswm4n91707gy8945h2s4jgvfb-gcc-core-mesboot-2.95.3.drv" [color = blue];
|
||||
"/gnu/store/rn88dllv6vh4mxwbr4v9wjmnl4ml3xs2-glibc-mesboot0-2.2.5.drv" -> "/gnu/store/00rjhpbkzk86s4pksjg934l310iaxxjr-bootstrap-binaries-0.drv" [color = blue];
|
||||
"/gnu/store/rn88dllv6vh4mxwbr4v9wjmnl4ml3xs2-glibc-mesboot0-2.2.5.drv" -> "/gnu/store/qf1x4bvxg8ihbgmv57yyiwkj5y8zzmk0-diffutils-mesboot-2.7.drv" [color = blue];
|
||||
"/gnu/store/rn88dllv6vh4mxwbr4v9wjmnl4ml3xs2-glibc-mesboot0-2.2.5.drv" -> "/gnu/store/kd7b9sba79s1l7hjdhav51gvci5ws4jy-mesboot-headers-0.19.drv" [color = blue];
|
||||
"/gnu/store/rn88dllv6vh4mxwbr4v9wjmnl4ml3xs2-glibc-mesboot0-2.2.5.drv" -> "/gnu/store/vys62fkr9p3qfp9mc36456ffbpz24n60-make-mesboot0-3.80.drv" [color = blue];
|
||||
"/gnu/store/kd7b9sba79s1l7hjdhav51gvci5ws4jy-mesboot-headers-0.19.drv" [label = "mesboot-headers@0.19", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/kd7b9sba79s1l7hjdhav51gvci5ws4jy-mesboot-headers-0.19.drv" -> "/gnu/store/00rjhpbkzk86s4pksjg934l310iaxxjr-bootstrap-binaries-0.drv" [color = cyan3];
|
||||
"/gnu/store/kd7b9sba79s1l7hjdhav51gvci5ws4jy-mesboot-headers-0.19.drv" -> "/gnu/store/q8d60ln0dxjvqd2ymi1g6xyk3046m23n-linux-libre-headers-bootstrap-0.drv" [color = cyan3];
|
||||
"/gnu/store/q8d60ln0dxjvqd2ymi1g6xyk3046m23n-linux-libre-headers-bootstrap-0.drv" [label = "linux-libre-headers-bootstrap@0", shape = box, fontname = Helvetica];
|
||||
|
||||
// HANDCRAFTED FROM HERE TO MAKE THE STATIC BOOTSTRAP BINARIES VISIBLE
|
||||
|
||||
bash [fontname = Helvetica]
|
||||
bzip2 [fontname = Helvetica]
|
||||
coreutils [fontname = Helvetica]
|
||||
gawk [fontname = Helvetica]
|
||||
grep [fontname = Helvetica]
|
||||
gzip [fontname = Helvetica]
|
||||
patch [fontname = Helevtica]
|
||||
sed [fontname = Helvetica]
|
||||
tar [fontname = Helvetica]
|
||||
xz [fontname = Helevtica]
|
||||
|
||||
"/gnu/store/00rjhpbkzk86s4pksjg934l310iaxxjr-bootstrap-binaries-0.drv" -> bash
|
||||
"/gnu/store/00rjhpbkzk86s4pksjg934l310iaxxjr-bootstrap-binaries-0.drv" -> bzip2
|
||||
"/gnu/store/00rjhpbkzk86s4pksjg934l310iaxxjr-bootstrap-binaries-0.drv" -> coreutils
|
||||
"/gnu/store/00rjhpbkzk86s4pksjg934l310iaxxjr-bootstrap-binaries-0.drv" -> gawk
|
||||
"/gnu/store/00rjhpbkzk86s4pksjg934l310iaxxjr-bootstrap-binaries-0.drv" -> grep
|
||||
"/gnu/store/00rjhpbkzk86s4pksjg934l310iaxxjr-bootstrap-binaries-0.drv" -> gzip
|
||||
"/gnu/store/00rjhpbkzk86s4pksjg934l310iaxxjr-bootstrap-binaries-0.drv" -> patch
|
||||
"/gnu/store/00rjhpbkzk86s4pksjg934l310iaxxjr-bootstrap-binaries-0.drv" -> sed
|
||||
"/gnu/store/00rjhpbkzk86s4pksjg934l310iaxxjr-bootstrap-binaries-0.drv" -> tar
|
||||
"/gnu/store/00rjhpbkzk86s4pksjg934l310iaxxjr-bootstrap-binaries-0.drv" -> xz
|
||||
}
|
After Width: | Height: | Size: 153 KiB |
After Width: | Height: | Size: 11 KiB |
After Width: | Height: | Size: 389 KiB |
|
@ -0,0 +1 @@
|
|||
../fosdem17/mes.png
|
|
@ -0,0 +1,107 @@
|
|||
digraph {
|
||||
node[shape=box,width=1,height=0.25];
|
||||
edge [height=0.25];
|
||||
|
||||
"hex0-monitor" [label = "hex0 Monitor", color = black, shape = box];
|
||||
"hex0-assembler" [label = "hex0 Assembler", color = black, shape = box];
|
||||
"SET" [label = "SET editor", color = cyan3, shape = box];
|
||||
# "hex1-assembler" [label = "hex1 Assembler", color = black, shape = box];
|
||||
# "hex2-assembler" [label = "hex2 Assembler", color = black, shape = box];
|
||||
# "M1-Macro" [label = "M1 Macro assembler", color = black, shape = box];
|
||||
# "cat" [label = "cat", color = cyan3, shape = box];
|
||||
# "Slow_Lisp" [label = "Slow Lisp", color = green3, shape = box];
|
||||
# "Stage0-FORTH" [label = "Stage0 FORTH", color = green3, shape = box];
|
||||
# "cc_x86" [label = "cc_x86", color = black, shape = box];
|
||||
# "M2-Planet" [label = "M2-PLanet", color = black, shape = box];
|
||||
# "M2-Moon" [label = "M2-Moon", color = red1, shape = box];
|
||||
# "mescc-tools-seed" [label = "mescc-tools-seed", color = black, shape = box];
|
||||
# "?" [label = "?", color = red1, shape = box];
|
||||
# "bootstrap-binaries" [label = "bootstrap-binaries", color=red1, shape = box];
|
||||
# "mescc-tools" [label = "mescc-tools", color = black, shape = box];
|
||||
# "Mes C Lib.M2" [label = "Mes C Lib.M2", color = red1, shape = box];
|
||||
# "mes.M2" [label = "mes.M2", color = red1, shape = box];
|
||||
# "mescc" [label = "mescc", color = black, shape = box];
|
||||
# "Mes C Lib +tcc" [label = "Mes C Lib +tcc", color = black, shape = box];
|
||||
# "tcc" [label = "tcc", color = black, shape = box];
|
||||
# "Mes C Lib +GNU" [label = "Mes C Lib +GNU", color = black, shape = box];
|
||||
# "gcc-core 2.95.3" [label = "gcc-core 2.95.3", color = black, shape = box];
|
||||
# "glibc 2.2.5" [label = "glibc 2.2.5", color = black, shape = box];
|
||||
# "gcc 2.95.3" [label = "gcc 2.95.3", color = black, shape = box];
|
||||
# "glibc 2.16" [label = "glibc 2.16", color = black, shape = box];
|
||||
# "gcc 4.7.4" [label = "gcc 4.7.4", color = black, shape = box];
|
||||
|
||||
"SET" -> "hex0-monitor" [color = cyan3];
|
||||
"hex0-assembler" -> "hex0-monitor" [color = black];
|
||||
"hex1-assembler" -> "hex0-assembler" [color = black];
|
||||
# "hex2-assembler" -> "hex1-assembler" [color = black];
|
||||
# "M1-Macro" -> "hex2-assembler" [color = black];
|
||||
# "cat" -> "M1-Macro" [color = cyan3];
|
||||
# "Slow_Lisp" -> "M1-Macro" [color = green3];
|
||||
# "Stage0-FORTH" -> "M1-Macro" [color = green3];
|
||||
# "cc_x86" -> "M1-Macro" [color = black];
|
||||
# "M2-Planet" -> "cc_x86" [color = black];
|
||||
# "M2-Moon" -> "M1-Macro" [color = red1];
|
||||
|
||||
# "mescc-tools-seed" -> "cc_x86" [color = black];
|
||||
# "mescc-tools" -> "mescc-tools-seed" [color = black];
|
||||
# "mescc-tools" -> "M2-Planet" [color = black];
|
||||
|
||||
# "Mes C Lib.M2" -> "mescc-tools" [color = red1];
|
||||
# "Mes C Lib.M2" -> "M2-Planet" [color = red1];
|
||||
|
||||
# "mes.M2" -> "mescc-tools" [color = red1];
|
||||
# "mes.M2" -> "Mes C Lib.M2" [color = red1];
|
||||
# "mes.M2" -> "M2-Planet" [color = red1];
|
||||
# "mescc" -> "mes.M2" [color = black];
|
||||
|
||||
# "Mes C Lib +tcc" -> "mes.M2" [color = red1];
|
||||
|
||||
# "tcc" -> "Mes C Lib +tcc" [color = black];
|
||||
# "tcc" -> "bootstrap-binaries" [color = black];
|
||||
# "tcc" -> "mescc" [color = black];
|
||||
|
||||
# "gcc-core 2.95.3" -> "Mes C Lib +GNU " [color = black];
|
||||
# "gcc-core 2.95.3" -> "bootstrap-binaries" [color = black];
|
||||
# "gcc-core 2.95.3" -> "tcc" [color = black];
|
||||
|
||||
# "make" -> "Mes C Lib +GNU" [color = black];
|
||||
# "make" -> "tcc" [color = black];
|
||||
# "make" -> "bootstrap-binaries" [color = black];
|
||||
|
||||
# "glibc 2.2.5" -> "gcc-core 2.95.3" [color = black];
|
||||
# "glibc 2.2.5" -> "binutils" [color = black];
|
||||
# "glibc 2.2.5" -> "Mes C Lib +GNU" [color = black];
|
||||
# "glibc 2.2.5" -> "make" [color = black];
|
||||
# "glibc 2.2.5" -> "bootstrap-binaries" [color = black];
|
||||
|
||||
# "gcc 2.95.3" -> "gcc-core 2.95.3" [color = black];
|
||||
# "gcc 2.95.3" -> "binutils" [color = black];
|
||||
# "gcc 2.95.3" -> "glibc 2.2.5" [color = black];
|
||||
# "gcc 2.95.3" -> "make" [color = black];
|
||||
# "gcc 2.95.3" -> "bootstrap-binaries" [color = black];
|
||||
|
||||
# "glibc 2.16" -> "glibc 2.2.5" [color = black];
|
||||
# "glibc 2.16" -> "binutils" [color = black];
|
||||
# "glibc 2.16" -> "gcc 2.95.3" [color = black];
|
||||
# "glibc 2.16" -> "make" [color = black];
|
||||
# "glibc 2.16" -> "bootstrap-binaries" [color = black];
|
||||
|
||||
# "gcc 4.7.4" -> "glibc 2.16" [color = black];
|
||||
# "gcc 4.7.4" -> "binutils" [color = black];
|
||||
# "gcc 4.7.4" -> "gcc 2.95.3" [color = black];
|
||||
# "gcc 4.7.4" -> "make" [color = black];
|
||||
# "gcc 4.7.4" -> "bootstrap-binaries" [color = black];
|
||||
|
||||
node [shape=plaintext]
|
||||
subgraph cluster_01 {
|
||||
key [label=<<table border="0" cellpadding="2" cellspacing="0" cellborder="0">
|
||||
<tr><td align="left"><font color="black">black</font></td><td align="left">done, essential</td></tr>
|
||||
<tr><td align="left"><font color="cyan3">cyan</font></td><td align="left">done, optional</td></tr>
|
||||
<!--
|
||||
<tr><td align="left"><font color="green3">green</font></td><td align="left">done, undecided</td></tr>
|
||||
<tr><td align="left"><font color="red1">red</font></td><td align="left">in progress, essential</td></tr>
|
||||
<tr><td align="left"><font color="orange">orange</font></td><td align="left">in progress, undecided</td></tr>
|
||||
!-->
|
||||
</table>>]
|
||||
}
|
||||
}
|
After Width: | Height: | Size: 15 KiB |
|
@ -0,0 +1,103 @@
|
|||
digraph {
|
||||
node[shape=box,width=1,height=0.25];
|
||||
edge [height=0.25];
|
||||
|
||||
# "hex0-monitor" [label = "hex0 Monitor", color = black, shape = box];
|
||||
# "hex0-assembler" [label = "hex0 Assembler", color = black, shape = box];
|
||||
# "SET" [label = "SET editor", color = black, shape = box];
|
||||
"hex1-assembler" [label = "hex1 Assembler", color = black, shape = box];
|
||||
"hex2-assembler" [label = "hex2 Assembler", color = black, shape = box];
|
||||
"M1-Macro" [label = "M1 Macro assembler", color = black, shape = box];
|
||||
"cat" [label = "cat", color = cyan3, shape = box];
|
||||
"Slow_Lisp" [label = "Slow Lisp", color = green3, shape = box];
|
||||
"Stage0-FORTH" [label = "Stage0 FORTH", color = green3, shape = box];
|
||||
"cc_x86" [label = "cc_x86", color = black, shape = box];
|
||||
"M2-Planet" [label = "M2-PLanet", color = black, shape = box];
|
||||
"M2-Moon" [label = "M2-Moon", color = orange, shape = box];
|
||||
# "mescc-tools-seed" [label = "mescc-tools-seed", color = black, shape = box];
|
||||
# "?" [label = "?", color = red1, shape = box];
|
||||
# "bootstrap-binaries" [label = "bootstrap-binaries", color=red1, shape = box];
|
||||
# "mescc-tools" [label = "mescc-tools", color = black, shape = box];
|
||||
# "Mes C Lib.M2" [label = "Mes C Lib.M2", color = red1, shape = box];
|
||||
# "mes.M2" [label = "mes.M2", color = red1, shape = box];
|
||||
# "mescc" [label = "mescc", color = black, shape = box];
|
||||
# "Mes C Lib +tcc" [label = "Mes C Lib +tcc", color = black, shape = box];
|
||||
# "tcc" [label = "tcc", color = black, shape = box];
|
||||
# "Mes C Lib +GNU" [label = "Mes C Lib +GNU", color = black, shape = box];
|
||||
# "gcc-core 2.95.3" [label = "gcc-core 2.95.3", color = black, shape = box];
|
||||
# "glibc 2.2.5" [label = "glibc 2.2.5", color = black, shape = box];
|
||||
# "gcc 2.95.3" [label = "gcc 2.95.3", color = black, shape = box];
|
||||
# "glibc 2.16" [label = "glibc 2.16", color = black, shape = box];
|
||||
# "gcc 4.7.4" [label = "gcc 4.7.4", color = black, shape = box];
|
||||
|
||||
# "SET" -> "hex0-monitor" [color = cyan3];
|
||||
# "hex0-assembler" -> "hex0-monitor" [color = black];
|
||||
# "hex1-assembler" -> "hex0-assembler" [color = black];
|
||||
"hex2-assembler" -> "hex1-assembler" [color = black];
|
||||
"M1-Macro" -> "hex2-assembler" [color = black];
|
||||
"cat" -> "M1-Macro" [color = cyan3];
|
||||
"Slow_Lisp" -> "M1-Macro" [color = green3];
|
||||
"Stage0-FORTH" -> "M1-Macro" [color = green3];
|
||||
"cc_x86" -> "M1-Macro" [color = black];
|
||||
"M2-Planet" -> "cc_x86" [color = black];
|
||||
"M2-Moon" -> "M1-Macro" [color = orange];
|
||||
|
||||
# "mescc-tools-seed" -> "cc_x86" [color = black];
|
||||
# "mescc-tools" -> "mescc-tools-seed" [color = black];
|
||||
# "mescc-tools" -> "M2-Planet" [color = black];
|
||||
|
||||
# "mes.M2" -> "mescc-tools" [color = red1];
|
||||
# "mes.M2" -> "Mes C Lib.M2" [color = red1];
|
||||
# "mes.M2" -> "M2-Planet" [color = red1];
|
||||
# "mescc" -> "mes.M2" [color = black];
|
||||
|
||||
# "Mes C Lib +tcc" -> "mes.M2" [color = red1];
|
||||
|
||||
# "tcc" -> "Mes C Lib +tcc" [color = black];
|
||||
# "tcc" -> "bootstrap-binaries" [color = black];
|
||||
# "tcc" -> "mescc" [color = black];
|
||||
|
||||
# "gcc-core 2.95.3" -> "Mes C Lib +GNU " [color = black];
|
||||
# "gcc-core 2.95.3" -> "bootstrap-binaries" [color = black];
|
||||
# "gcc-core 2.95.3" -> "tcc" [color = black];
|
||||
|
||||
# "make" -> "Mes C Lib +GNU" [color = black];
|
||||
# "make" -> "tcc" [color = black];
|
||||
# "make" -> "bootstrap-binaries" [color = black];
|
||||
|
||||
# "glibc 2.2.5" -> "gcc-core 2.95.3" [color = black];
|
||||
# "glibc 2.2.5" -> "binutils" [color = black];
|
||||
# "glibc 2.2.5" -> "Mes C Lib +GNU" [color = black];
|
||||
# "glibc 2.2.5" -> "make" [color = black];
|
||||
# "glibc 2.2.5" -> "bootstrap-binaries" [color = black];
|
||||
|
||||
# "gcc 2.95.3" -> "gcc-core 2.95.3" [color = black];
|
||||
# "gcc 2.95.3" -> "binutils" [color = black];
|
||||
# "gcc 2.95.3" -> "glibc 2.2.5" [color = black];
|
||||
# "gcc 2.95.3" -> "make" [color = black];
|
||||
# "gcc 2.95.3" -> "bootstrap-binaries" [color = black];
|
||||
|
||||
# "glibc 2.16" -> "glibc 2.2.5" [color = black];
|
||||
# "glibc 2.16" -> "binutils" [color = black];
|
||||
# "glibc 2.16" -> "gcc 2.95.3" [color = black];
|
||||
# "glibc 2.16" -> "make" [color = black];
|
||||
# "glibc 2.16" -> "bootstrap-binaries" [color = black];
|
||||
|
||||
# "gcc 4.7.4" -> "glibc 2.16" [color = black];
|
||||
# "gcc 4.7.4" -> "binutils" [color = black];
|
||||
# "gcc 4.7.4" -> "gcc 2.95.3" [color = black];
|
||||
# "gcc 4.7.4" -> "make" [color = black];
|
||||
# "gcc 4.7.4" -> "bootstrap-binaries" [color = black];
|
||||
|
||||
node [shape=plaintext]
|
||||
subgraph cluster_01 {
|
||||
key [label=<<table border="0" cellpadding="2" cellspacing="0" cellborder="0">
|
||||
<tr><td align="left"><font color="black">black</font></td><td align="left">done, essential</td></tr>
|
||||
<tr><td align="left"><font color="cyan3">cyan</font></td><td align="left">done, optional</td></tr>
|
||||
<tr><td align="left"><font color="green3">green</font></td><td align="left">done, undecided</td></tr>
|
||||
<!-- <tr><td align="left"><font color="red1">red</font></td><td align="left">in progress, essential</td></tr>
|
||||
!-->
|
||||
<tr><td align="left"><font color="orange">orange</font></td><td align="left">in progress, undecided</td></tr>
|
||||
</table>>]
|
||||
}
|
||||
}
|
After Width: | Height: | Size: 36 KiB |
|
@ -0,0 +1,108 @@
|
|||
digraph {
|
||||
node[shape=box,width=1,height=0.25];
|
||||
edge [height=0.25];
|
||||
|
||||
# "hex0-monitor" [label = "hex0 Monitor", color = black, shape = box];
|
||||
# "hex0-assembler" [label = "hex0 Assembler", color = black, shape = box];
|
||||
# "SET" [label = "SET editor", color = cyan3, shape = box];
|
||||
# "hex1-assembler" [label = "hex1 Assembler", color = black, shape = box];
|
||||
# "hex2-assembler" [label = "hex2 Assembler", color = black, shape = box];
|
||||
# "M1-Macro" [label = "M1 Macro assembler", color = black, shape = box];
|
||||
# "cat" [label = "cat", color = cyan3, shape = box];
|
||||
# "Slow_Lisp" [label = "Slow Lisp", color = green3, shape = box];
|
||||
# "Stage0-FORTH" [label = "Stage0 FORTH", color = green3, shape = box];
|
||||
"cc_x86" [label = "cc_x86", color = black, shape = box];
|
||||
"M2-Planet" [label = "M2-PLanet", color = black, shape = box];
|
||||
"M2-Moon" [label = "M2-Moon", color = orange, shape = box];
|
||||
# "mescc-tools-seed" [label = "mescc-tools-seed", color = black, shape = box];
|
||||
# "?" [label = "?", color = red1, shape = box];
|
||||
# "bootstrap-binaries" [label = "bootstrap-binaries", color=red1, shape = box];
|
||||
"mescc-tools" [label = "mescc-tools", color = black, shape = box];
|
||||
"Mes C Lib.M2" [label = "Mes C Lib.M2", color = red1, shape = box];
|
||||
"mes.M2" [label = "mes.M2", color = red1, shape = box];
|
||||
# "mescc" [label = "mescc", color = black, shape = box];
|
||||
# "Mes C Lib +tcc" [label = "Mes C Lib +tcc", color = black, shape = box];
|
||||
# "tcc" [label = "tcc", color = black, shape = box];
|
||||
# "Mes C Lib +GNU" [label = "Mes C Lib +GNU", color = black, shape = box];
|
||||
# "gcc-core 2.95.3" [label = "gcc-core 2.95.3", color = black, shape = box];
|
||||
# "glibc 2.2.5" [label = "glibc 2.2.5", color = black, shape = box];
|
||||
# "gcc 2.95.3" [label = "gcc 2.95.3", color = black, shape = box];
|
||||
# "glibc 2.16" [label = "glibc 2.16", color = black, shape = box];
|
||||
# "gcc 4.7.4" [label = "gcc 4.7.4", color = black, shape = box];
|
||||
|
||||
# "SET" -> "hex0-monitor" [color = cyan3];
|
||||
# "hex0-assembler" -> "hex0-monitor" [color = black];
|
||||
# "hex1-assembler" -> "hex0-assembler" [color = black];
|
||||
# "hex2-assembler" -> "hex1-assembler" [color = black];
|
||||
# "M1-Macro" -> "hex2-assembler" [color = black];
|
||||
# "cat" -> "M1-Macro" [color = cyan3];
|
||||
# "Slow_Lisp" -> "M1-Macro" [color = green3];
|
||||
# "Stage0-FORTH" -> "M1-Macro" [color = green3];
|
||||
"cc_x86" -> "M1-Macro" [color = black];
|
||||
"M2-Planet" -> "cc_x86" [color = black];
|
||||
"M2-Moon" -> "M1-Macro" [color = orange];
|
||||
|
||||
# "mescc-tools-seed" -> "cc_x86" [color = black];
|
||||
# "mescc-tools" -> "mescc-tools-seed" [color = black];
|
||||
"mescc-tools" -> "M2-Planet" [color = black];
|
||||
|
||||
"Mes C Lib.M2" -> "mescc-tools" [color = red1];
|
||||
"Mes C Lib.M2" -> "M2-Planet" [color = red1];
|
||||
|
||||
"mes.M2" -> "mescc-tools" [color = red1];
|
||||
"mes.M2" -> "Mes C Lib.M2" [color = red1];
|
||||
"mes.M2" -> "M2-Planet" [color = red1];
|
||||
"mescc" -> "mes.M2" [color = black];
|
||||
|
||||
# "Mes C Lib +tcc" -> "mes.M2" [color = red1];
|
||||
|
||||
# "tcc" -> "Mes C Lib +tcc" [color = black];
|
||||
# "tcc" -> "bootstrap-binaries" [color = black];
|
||||
# "tcc" -> "mescc" [color = black];
|
||||
|
||||
# "gcc-core 2.95.3" -> "Mes C Lib +GNU " [color = black];
|
||||
# "gcc-core 2.95.3" -> "bootstrap-binaries" [color = black];
|
||||
# "gcc-core 2.95.3" -> "tcc" [color = black];
|
||||
|
||||
# "make" -> "Mes C Lib +GNU" [color = black];
|
||||
# "make" -> "tcc" [color = black];
|
||||
# "make" -> "bootstrap-binaries" [color = black];
|
||||
|
||||
# "glibc 2.2.5" -> "gcc-core 2.95.3" [color = black];
|
||||
# "glibc 2.2.5" -> "binutils" [color = black];
|
||||
# "glibc 2.2.5" -> "Mes C Lib +GNU" [color = black];
|
||||
# "glibc 2.2.5" -> "make" [color = black];
|
||||
# "glibc 2.2.5" -> "bootstrap-binaries" [color = black];
|
||||
|
||||
# "gcc 2.95.3" -> "gcc-core 2.95.3" [color = black];
|
||||
# "gcc 2.95.3" -> "binutils" [color = black];
|
||||
# "gcc 2.95.3" -> "glibc 2.2.5" [color = black];
|
||||
# "gcc 2.95.3" -> "make" [color = black];
|
||||
# "gcc 2.95.3" -> "bootstrap-binaries" [color = black];
|
||||
|
||||
# "glibc 2.16" -> "glibc 2.2.5" [color = black];
|
||||
# "glibc 2.16" -> "binutils" [color = black];
|
||||
# "glibc 2.16" -> "gcc 2.95.3" [color = black];
|
||||
# "glibc 2.16" -> "make" [color = black];
|
||||
# "glibc 2.16" -> "bootstrap-binaries" [color = black];
|
||||
|
||||
# "gcc 4.7.4" -> "glibc 2.16" [color = black];
|
||||
# "gcc 4.7.4" -> "binutils" [color = black];
|
||||
# "gcc 4.7.4" -> "gcc 2.95.3" [color = black];
|
||||
# "gcc 4.7.4" -> "make" [color = black];
|
||||
# "gcc 4.7.4" -> "bootstrap-binaries" [color = black];
|
||||
|
||||
|
||||
node [shape=plaintext]
|
||||
subgraph cluster_01 {
|
||||
key [label=<<table border="0" cellpadding="2" cellspacing="0" cellborder="0">
|
||||
<tr><td align="left"><font color="black">black</font></td><td align="left">done, essential</td></tr>
|
||||
<!--
|
||||
<tr><td align="left"><font color="cyan3">cyan</font></td><td align="left">done, optional</td></tr>
|
||||
<tr><td align="left"><font color="green3">green</font></td><td align="left">done, undecided</td></tr>
|
||||
!-->
|
||||
<tr><td align="left"><font color="red1">red</font></td><td align="left">in progress, essential</td></tr>
|
||||
<tr><td align="left"><font color="orange">orange</font></td><td align="left">in progress, undecided</td></tr>
|
||||
</table>>]
|
||||
}
|
||||
}
|
After Width: | Height: | Size: 33 KiB |
|
@ -0,0 +1,109 @@
|
|||
digraph {
|
||||
node[shape=box,width=1,height=0.25];
|
||||
edge [height=0.25];
|
||||
|
||||
# "hex0-monitor" [label = "hex0 Monitor", shape = box];
|
||||
# "hex0-assembler" [label = "hex0 Assembler", shape = box];
|
||||
# "SET" [label = "SET editor", shape = box];
|
||||
# "hex1-assembler" [label = "hex1 Assembler", shape = box];
|
||||
# "hex2-assembler" [label = "hex2 Assembler", shape = box];
|
||||
# "M1-Macro" [label = "M1 Macro assembler", shape = box];
|
||||
# "cat" [label = "cat", shape = box];
|
||||
# "Slow_Lisp" [label = "Slow Lisp", shape = box];
|
||||
# "Stage0-FORTH" [label = "Stage0 FORTH", shape = box];
|
||||
# "cc_x86" [label = "cc_x86", shape = box];
|
||||
# "M2-Planet" [label = "M2-PLanet", shape = box];
|
||||
# "M2-Moon" [label = "M2-Moon", color = red1, shape = box];
|
||||
# "mescc-tools-seed" [label = "mescc-tools-seed", shape = box];
|
||||
"?" [label = "?", color = red1, shape = box];
|
||||
"bootstrap-binaries" [label = "bootstrap-binaries", color = red1, shape = box];
|
||||
"mescc-tools" [label = "mescc-tools", shape = box];
|
||||
"Mes C Lib.M2" [label = "Mes C Lib.M2", color = red1, shape = box];
|
||||
"mes.M2" [label = "mes.M2", color = red1, shape = box];
|
||||
"mescc" [label = "mescc", shape = box];
|
||||
"Mes C Lib +tcc" [label = "Mes C Lib +tcc", color = red1, shape = box];
|
||||
"tcc" [label = "tcc", shape = box];
|
||||
"Mes C Lib +GNU" [label = "Mes C Lib +GNU", shape = box];
|
||||
"gcc-core 2.95.3" [label = "gcc-core 2.95.3", shape = box];
|
||||
# "glibc 2.2.5" [label = "glibc 2.2.5", shape = box];
|
||||
# "gcc 2.95.3" [label = "gcc 2.95.3", shape = box];
|
||||
# "glibc 2.16" [label = "glibc 2.16", shape = box];
|
||||
# "gcc 4.7.4" [label = "gcc 4.7.4", shape = box];
|
||||
|
||||
# "SET" -> "hex0-monitor" [color = cyan];
|
||||
# "hex0-assembler" -> "hex0-monitor" [color = black];
|
||||
# "hex1-assembler" -> "hex0-assembler" [color = black];
|
||||
# "hex2-assembler" -> "hex1-assembler" [color = black];
|
||||
# "M1-Macro" -> "hex2-assembler" [color = black];
|
||||
# "cat" -> "M1-Macro" [color = cyan];
|
||||
# "Slow_Lisp" -> "M1-Macro" [color = green2];
|
||||
# "Stage0-FORTH" -> "M1-Macro" [color = green2];
|
||||
# "cc_x86" -> "M1-Macro" [color = black];
|
||||
# "M2-Planet" -> "cc_x86" [color = black];
|
||||
# "M2-Moon" -> "M1-Macro" [color = red1];
|
||||
# "mescc-tools-seed" -> "cc_x86" [color = black];
|
||||
# "mescc-tools" -> "mescc-tools-seed" [color = black];
|
||||
# "mescc-tools" -> "M2-Planet" [color = black];
|
||||
"bootstrap-binaries" -> "?" [color = red1];
|
||||
|
||||
"mes.M2" -> "bootstrap-binaries" [color = black];
|
||||
"mes.M2" -> "mescc-tools" [color = red1];
|
||||
"mes.M2" -> "Mes C Lib.M2" [color = red1];
|
||||
"mes.M2" -> "M2-Planet" [color = red1];
|
||||
"mescc" -> "mes.M2" [color = black];
|
||||
|
||||
"Mes C Lib +tcc" -> "mes.M2" [color = red1];
|
||||
|
||||
"tcc" -> "Mes C Lib +tcc" [color = black];
|
||||
"tcc" -> "bootstrap-binaries" [color = black];
|
||||
"tcc" -> "mescc" [color = black];
|
||||
|
||||
"Mes C Lib +GNU" -> "tcc" [color = black];
|
||||
|
||||
"gcc-core 2.95.3" -> "Mes C Lib +GNU" [color = black];
|
||||
"gcc-core 2.95.3" -> "bootstrap-binaries" [color = black];
|
||||
"gcc-core 2.95.3" -> "tcc" [color = black];
|
||||
|
||||
# "make" -> "Mes C Lib +GNU" [color = black];
|
||||
# "make" -> "tcc" [color = black];
|
||||
# "make" -> "bootstrap-binaries" [color = black];
|
||||
|
||||
# "glibc 2.2.5" -> "gcc-core 2.95.3" [color = black];
|
||||
# "glibc 2.2.5" -> "binutils" [color = black];
|
||||
# "glibc 2.2.5" -> "Mes C Lib +GNU" [color = black];
|
||||
# "glibc 2.2.5" -> "make" [color = black];
|
||||
# "glibc 2.2.5" -> "bootstrap-binaries" [color = black];
|
||||
|
||||
# "gcc 2.95.3" -> "gcc-core 2.95.3" [color = black];
|
||||
# "gcc 2.95.3" -> "binutils" [color = black];
|
||||
# "gcc 2.95.3" -> "glibc 2.2.5" [color = black];
|
||||
# "gcc 2.95.3" -> "make" [color = black];
|
||||
# "gcc 2.95.3" -> "bootstrap-binaries" [color = black];
|
||||
|
||||
# "glibc 2.16" -> "glibc 2.2.5" [color = black];
|
||||
# "glibc 2.16" -> "binutils" [color = black];
|
||||
# "glibc 2.16" -> "gcc 2.95.3" [color = black];
|
||||
# "glibc 2.16" -> "make" [color = black];
|
||||
# "glibc 2.16" -> "bootstrap-binaries" [color = black];
|
||||
|
||||
# "gcc 4.7.4" -> "glibc 2.16" [color = black];
|
||||
# "gcc 4.7.4" -> "binutils" [color = black];
|
||||
# "gcc 4.7.4" -> "gcc 2.95.3" [color = black];
|
||||
# "gcc 4.7.4" -> "make" [color = black];
|
||||
# "gcc 4.7.4" -> "bootstrap-binaries" [color = black];
|
||||
|
||||
node [shape=plaintext]
|
||||
subgraph cluster_01 {
|
||||
key [label=<<table border="0" cellpadding="2" cellspacing="0" cellborder="0">
|
||||
<tr><td align="left"><font color="black">black</font></td><td align="left">done, essential</td></tr>
|
||||
<!--
|
||||
<tr><td align="left"><font color="cyan3">cyan</font></td><td align="left">done, optional</td></tr>
|
||||
<tr><td align="left"><font color="green3">green</font></td><td align="left">done, undecided</td></tr>
|
||||
!-->
|
||||
<tr><td align="left"><font color="red1">red</font></td><td align="left">in progress, essential</td></tr>
|
||||
<!--
|
||||
<tr><td align="left"><font color="orange">orange</font></td><td align="left">in progress, undecided</td></tr>
|
||||
!-->
|
||||
</table>>]
|
||||
}
|
||||
}
|
After Width: | Height: | Size: 37 KiB |
|
@ -0,0 +1,111 @@
|
|||
digraph {
|
||||
node[shape=box,width=1,height=0.25];
|
||||
edge [height=0.25];
|
||||
|
||||
# "hex0-monitor" [label = "hex0 Monitor", shape = box];
|
||||
# "hex0-assembler" [label = "hex0 Assembler", shape = box];
|
||||
# "SET" [label = "SET editor", shape = box];
|
||||
# "hex1-assembler" [label = "hex1 Assembler", shape = box];
|
||||
# "hex2-assembler" [label = "hex2 Assembler", shape = box];
|
||||
# "M1-Macro" [label = "M1 Macro assembler", shape = box];
|
||||
# "cat" [label = "cat", shape = box];
|
||||
# "Slow_Lisp" [label = "Slow Lisp", shape = box];
|
||||
# "Stage0-FORTH" [label = "Stage0 FORTH", shape = box];
|
||||
# "cc_x86" [label = "cc_x86", shape = box];
|
||||
# "M2-Planet" [label = "M2-PLanet", shape = box];
|
||||
# "M2-Moon" [label = "M2-Moon", color = red1, shape = box];
|
||||
# "mescc-tools-seed" [label = "mescc-tools-seed", shape = box];
|
||||
"?" [label = "?", color = red1, shape = box];
|
||||
"bootstrap-binaries" [label = "bootstrap-binaries", color=red1, shape = box];
|
||||
# "mescc-tools" [label = "mescc-tools", shape = box];
|
||||
# "Mes C Lib.M2" [label = "Mes C Lib.M2", color = red1, shape = box];
|
||||
# "mes.M2" [label = "mes.M2", color = red1, shape = box];
|
||||
# "mescc" [label = "mescc", shape = box];
|
||||
# "Mes C Lib +tcc" [label = "Mes C Lib +tcc", color = red1, shape = box];
|
||||
"tcc" [label = "tcc", shape = box];
|
||||
"Mes C Lib +GNU" [label = "Mes C Lib +GNU", shape = box];
|
||||
"gcc-core 2.95.3" [label = "gcc-core 2.95.3", shape = box];
|
||||
"glibc 2.2.5" [label = "glibc 2.2.5", shape = box];
|
||||
"gcc 2.95.3" [label = "gcc 2.95.3", shape = box];
|
||||
"glibc 2.16" [label = "glibc 2.16", shape = box];
|
||||
"gcc 4.7.4" [label = "gcc 4.7.4", shape = box];
|
||||
|
||||
# "SET" -> "hex0-monitor" [color = cyan];
|
||||
# "hex0-assembler" -> "hex0-monitor" [color = black];
|
||||
# "hex1-assembler" -> "hex0-assembler" [color = black];
|
||||
# "hex2-assembler" -> "hex1-assembler" [color = black];
|
||||
# "M1-Macro" -> "hex2-assembler" [color = black];
|
||||
# "cat" -> "M1-Macro" [color = cyan];
|
||||
# "Slow_Lisp" -> "M1-Macro" [color = green2];
|
||||
# "Stage0-FORTH" -> "M1-Macro" [color = green2];
|
||||
# "cc_x86" -> "M1-Macro" [color = black];
|
||||
# "M2-Planet" -> "cc_x86" [color = black];
|
||||
# "M2-Moon" -> "M1-Macro" [color = red1];
|
||||
# "mescc-tools-seed" -> "cc_x86" [color = black];
|
||||
# "mescc-tools" -> "mescc-tools-seed" [color = black];
|
||||
# "mescc-tools" -> "M2-Planet" [color = black];
|
||||
"bootstrap-binaries" -> "?" [color = red1];
|
||||
|
||||
# "mes.M2" -> "bootstrap-binaries" [color = black];
|
||||
# "mes.M2" -> "mescc-tools" [color = red1];
|
||||
# "mes.M2" -> "Mes C Lib.M2" [color = red1];
|
||||
# "mes.M2" -> "M2-Planet" [color = red1];
|
||||
# "mescc" -> "mes.M2" [color = black];
|
||||
|
||||
# "Mes C Lib +tcc" -> "mes.M2" [color = red1];
|
||||
|
||||
# "tcc" -> "Mes C Lib +tcc" [color = black];
|
||||
# "tcc" -> "bootstrap-binaries" [color = black];
|
||||
# "tcc" -> "mescc" [color = black];
|
||||
|
||||
"gcc-core 2.95.3" -> "Mes C Lib +GNU" [color = black];
|
||||
"gcc-core 2.95.3" -> "tcc" [color = black];
|
||||
"gcc-core 2.95.3" -> "bootstrap-binaries" [color = black];
|
||||
|
||||
"binutils" -> "Mes C Lib +GNU" [color = black];
|
||||
"binutils" -> "tcc" [color = black];
|
||||
"binutils" -> "bootstrap-binaries" [color = black];
|
||||
|
||||
"make" -> "Mes C Lib +GNU" [color = black];
|
||||
"make" -> "tcc" [color = black];
|
||||
"make" -> "bootstrap-binaries" [color = black];
|
||||
|
||||
"glibc 2.2.5" -> "gcc-core 2.95.3" [color = black];
|
||||
"glibc 2.2.5" -> "binutils" [color = black];
|
||||
"glibc 2.2.5" -> "Mes C Lib +GNU" [color = black];
|
||||
"glibc 2.2.5" -> "make" [color = black];
|
||||
"glibc 2.2.5" -> "bootstrap-binaries" [color = black];
|
||||
|
||||
"gcc 2.95.3" -> "gcc-core 2.95.3" [color = black];
|
||||
"gcc 2.95.3" -> "binutils" [color = black];
|
||||
"gcc 2.95.3" -> "glibc 2.2.5" [color = black];
|
||||
"gcc 2.95.3" -> "make" [color = black];
|
||||
"gcc 2.95.3" -> "bootstrap-binaries" [color = black];
|
||||
|
||||
"glibc 2.16" -> "glibc 2.2.5" [color = black];
|
||||
"glibc 2.16" -> "binutils" [color = black];
|
||||
"glibc 2.16" -> "gcc 2.95.3" [color = black];
|
||||
"glibc 2.16" -> "make" [color = black];
|
||||
"glibc 2.16" -> "bootstrap-binaries" [color = black];
|
||||
|
||||
"gcc 4.7.4" -> "glibc 2.16" [color = black];
|
||||
"gcc 4.7.4" -> "binutils" [color = black];
|
||||
"gcc 4.7.4" -> "gcc 2.95.3" [color = black];
|
||||
"gcc 4.7.4" -> "make" [color = black];
|
||||
"gcc 4.7.4" -> "bootstrap-binaries" [color = black];
|
||||
|
||||
node [shape=plaintext]
|
||||
subgraph cluster_01 {
|
||||
key [label=<<table border="0" cellpadding="2" cellspacing="0" cellborder="0">
|
||||
<tr><td align="left"><font color="black">black</font></td><td align="left">done, essential</td></tr>
|
||||
<!--
|
||||
<tr><td align="left"><font color="cyan3">cyan</font></td><td align="left">done, optional</td></tr>
|
||||
<tr><td align="left"><font color="green3">green</font></td><td align="left">done, undecided</td></tr>
|
||||
!-->
|
||||
<tr><td align="left"><font color="red1">red</font></td><td align="left">in progress, essential</td></tr>
|
||||
<!--
|
||||
<tr><td align="left"><font color="orange">orange</font></td><td align="left">in progress, undecided</td></tr>
|
||||
!-->
|
||||
</table>>]
|
||||
}
|
||||
}
|
After Width: | Height: | Size: 69 KiB |
After Width: | Height: | Size: 19 KiB |
After Width: | Height: | Size: 891 KiB |
After Width: | Height: | Size: 814 KiB |
After Width: | Height: | Size: 7.3 KiB |
After Width: | Height: | Size: 16 KiB |
After Width: | Height: | Size: 16 KiB |