Compare commits
207 Commits
Author | SHA1 | Date |
---|---|---|
|
a3d16dcbff | |
|
6c1787fc99 | |
|
93f8f84710 | |
|
7598bbb083 | |
|
9c32a88c75 | |
|
8439519475 | |
|
16a19c5f69 | |
|
abd8ca216f | |
|
af853585ed | |
|
453246ebaf | |
|
8ca7058f7c | |
|
e14dfd8686 | |
|
468df4d363 | |
|
aeff8698cc | |
|
c5ae795773 | |
|
dbb97d786e | |
|
b56c5fd3d5 | |
|
b7857f11ec | |
|
1733b0186f | |
|
898190df5f | |
|
6720641493 | |
|
70c12c70b3 | |
|
477eee6e02 | |
|
71dad67103 | |
|
486e67ac02 | |
|
5c46bebd3d | |
|
68f8805f9d | |
|
ea1a31e12e | |
|
13cd0393ae | |
|
934ff3e7c5 | |
|
305a104ab0 | |
|
977d0fd3a7 | |
|
4e1de0de94 | |
|
762cf51a6a | |
|
600524e8d9 | |
|
b7bb734d89 | |
|
4affaafd17 | |
|
aff93403da | |
|
b5d5dba3fa | |
|
1d0e07c394 | |
|
673cf8f114 | |
|
9c2c95299e | |
|
d89836e9aa | |
|
c7406e7ac4 | |
|
f13ce3806a | |
|
12bf2f02be | |
|
d88789c969 | |
|
7329e92678 | |
|
27b32b8873 | |
|
7fe0c3b625 | |
|
eaac052167 | |
|
e5ee32f7dc | |
|
7a7a1e9791 | |
|
a64fd493f9 | |
|
c31ff8fa18 | |
|
bffc1b22d1 | |
|
45552d4822 | |
|
20b4f15751 | |
|
661cc9ed3b | |
|
682dc4b700 | |
|
553ccb4e1f | |
|
9f67b34d28 | |
|
558aceca68 | |
|
969876cdfc | |
|
e47ceb9544 | |
|
f4a74037aa | |
|
ec6a803b7b | |
|
52a0bc9c62 | |
|
7129959318 | |
|
74668e9138 | |
|
844e3fe9cb | |
|
aaf5d67fcd | |
|
3c19883873 | |
|
40c207a6af | |
|
da106c2ed8 | |
|
e21ee56574 | |
|
339b2cea40 | |
|
af354fc449 | |
|
e42c2ede12 | |
|
136ea63d27 | |
|
4fbdb05004 | |
|
4e0d9e1ac7 | |
|
c28605aec5 | |
|
ccb27b9705 | |
|
70ed273469 | |
|
18c416f307 | |
|
c187ccf197 | |
|
5e08960a42 | |
|
c2464bf24a | |
|
322e308ab1 | |
|
5e6b3a9662 | |
|
269959a816 | |
|
430667bd5e | |
|
fbd8bfe240 | |
|
e8a01aba29 | |
|
d07cc02f1f | |
|
691a992830 | |
|
f512623c08 | |
|
1aa60b94e5 | |
|
51a3cee8d1 | |
|
1c69559575 | |
|
182b568097 | |
|
766344d72e | |
|
0683302270 | |
|
9284df5ba3 | |
|
55b41ba11c | |
|
ec0380e702 | |
|
5abf71249c | |
|
bd6d933099 | |
|
986b3973bb | |
|
fe22f638ae | |
|
2ec586b773 | |
|
39cfcb11eb | |
|
d12c55581f | |
|
5df5c1987f | |
|
b00d100910 | |
|
b5c0369a3b | |
|
460ff0ebf5 | |
|
f29a6e4fc8 | |
|
4f39d09c25 | |
|
5209d82c1e | |
|
dc42ee180c | |
|
84386312ef | |
|
663adaf27f | |
|
4de45663b4 | |
|
7b0462b3a3 | |
|
02f8c37101 | |
|
249d33f750 | |
|
877283096f | |
|
8e1a455074 | |
|
8be4f26a74 | |
|
02494e0803 | |
|
75ead8fd95 | |
|
88011f4bf4 | |
|
571ec85112 | |
|
43f5c970a4 | |
|
1fbeb8395e | |
|
05513ae492 | |
|
3b4f1599f0 | |
|
7fbaf941e9 | |
|
bb0d074e1e | |
|
abc564ad49 | |
|
3ac200f6d3 | |
|
5ffb27f555 | |
|
84308146f4 | |
|
945b238a6a | |
|
e62009b02d | |
|
fcc4e483af | |
|
9c1a950cc6 | |
|
6f513dd2d7 | |
|
145d277a8b | |
|
4a6b3f990c | |
|
06ca28aafb | |
|
748a856b50 | |
|
e0ac5588ae | |
|
d5321636ef | |
|
64635bd1e1 | |
|
3bd3e5edfe | |
|
9b0e04c0e3 | |
|
42a18b3425 | |
|
0dbfe669fa | |
|
9d92e839c8 | |
|
57cd02ed0d | |
|
dacc55711c | |
|
a8f1b63519 | |
|
dae845aad4 | |
|
5c45d7d9de | |
|
8458e3680d | |
|
6c64b2fc0f | |
|
b77845ae9a | |
|
191de698a7 | |
|
fb4b8bb58c | |
|
99a9ab7411 | |
|
733b927c4c | |
|
299a9ea369 | |
|
8c85bccd56 | |
|
614c9146ba | |
|
612714b26b | |
|
d2d3844738 | |
|
54fca6cad9 | |
|
2c3e96bcfc | |
|
9553e33379 | |
|
8062b7cd21 | |
|
ae3e50f5b3 | |
|
5eaefeac38 | |
|
74e0ed606c | |
|
def9c6c330 | |
|
f0c1f4c4d2 | |
|
15d860d334 | |
|
4e092fdedd | |
|
68fc0e6ec6 | |
|
8fb2ab4439 | |
|
a810bc50e0 | |
|
f478ab3805 | |
|
6a8f67efa2 | |
|
ddfb34a40d | |
|
40e0cb11b9 | |
|
c340ca3e27 | |
|
e2da1c5c7b | |
|
9694354633 | |
|
cb79d8ffb1 | |
|
0727fd39cc | |
|
62205a9925 | |
|
80e08cf1ef | |
|
04c058fe5e | |
|
a288598a06 | |
|
a8e2cc86e9 |
|
@ -1,5 +1,5 @@
|
||||||
;;; GNU Mes --- Maxwell Equations of Software
|
;;; 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.
|
;;; This file is part of GNU Mes.
|
||||||
;;;
|
;;;
|
||||||
|
@ -35,14 +35,6 @@
|
||||||
.
|
.
|
||||||
((geiser-active-implementations . (guile))
|
((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
|
;; Guix package
|
||||||
(eval . (put 'package 'scheme-indent-function 0))
|
(eval . (put 'package 'scheme-indent-function 0))
|
||||||
(eval . (put 'origin 'scheme-indent-function 0))
|
(eval . (put 'origin 'scheme-indent-function 0))
|
||||||
|
@ -58,7 +50,6 @@
|
||||||
|
|
||||||
(eval
|
(eval
|
||||||
.
|
.
|
||||||
|
|
||||||
(progn
|
(progn
|
||||||
(defun prefix-dir-locals-dir (elt)
|
(defun prefix-dir-locals-dir (elt)
|
||||||
(concat (locate-dominating-file buffer-file-name ".dir-locals.el") 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/>.
|
|
||||||
|
|
||||||
*-
|
*-
|
||||||
*~
|
*~
|
||||||
.#*
|
.#*
|
||||||
|
@ -135,7 +117,6 @@
|
||||||
/doc/images/gcc-mesboot-graph.pdf
|
/doc/images/gcc-mesboot-graph.pdf
|
||||||
/doc/web/
|
/doc/web/
|
||||||
/config.sh
|
/config.sh
|
||||||
/include/arch
|
|
||||||
/include/mes/config.h
|
/include/mes/config.h
|
||||||
/gcc-lib
|
/gcc-lib
|
||||||
/mescc-lib
|
/mescc-lib
|
||||||
|
|
12
AUTHORS
12
AUTHORS
|
@ -13,8 +13,6 @@ Additions and fixes throughout
|
||||||
Jeremiah Orians <jeremiah@pdp10.guru>
|
Jeremiah Orians <jeremiah@pdp10.guru>
|
||||||
lib/stdio/fopen.c (first simple version of fopen)
|
lib/stdio/fopen.c (first simple version of fopen)
|
||||||
scaffold/tests/98-fopen.c
|
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>
|
Han-Wen Nienhuys <hanwen@xs4all.nl>
|
||||||
lib/string/memmem.c (_memmem, memmem)
|
lib/string/memmem.c (_memmem, memmem)
|
||||||
|
@ -34,9 +32,6 @@ Nathalie Kopaczewski <natkopa@gmail.com>
|
||||||
Fast long devision
|
Fast long devision
|
||||||
lib/div.c (__mesabi_log2i)
|
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
|
List of imported files
|
||||||
|
|
||||||
D A Gwyn
|
D A Gwyn
|
||||||
|
@ -61,6 +56,9 @@ module/mes/getopt-long.scm
|
||||||
Optargs from Guile
|
Optargs from Guile
|
||||||
mes/module/mes/optargs.scm
|
mes/module/mes/optargs.scm
|
||||||
|
|
||||||
|
PEG from Guile
|
||||||
|
mes/module/mes/peg/
|
||||||
|
|
||||||
Pmatch from Guile
|
Pmatch from Guile
|
||||||
mes/module/system/base/pmatch.scm
|
mes/module/system/base/pmatch.scm
|
||||||
|
|
||||||
|
@ -86,10 +84,6 @@ lib/mach/msg.c
|
||||||
lib/mach/mach-init.c
|
lib/mach/mach-init.c
|
||||||
lib/mach/*.S
|
lib/mach/*.S
|
||||||
|
|
||||||
M2-Planet dependencies
|
|
||||||
lib/m2/x86/x86_defs.M1
|
|
||||||
lib/m2/x86/ELF-x86.hex2
|
|
||||||
|
|
||||||
* legalese
|
* legalese
|
||||||
Copyright © 2016,2017,2018,2019,2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
Copyright © 2016,2017,2018,2019,2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||||
|
|
||||||
|
|
|
@ -160,5 +160,5 @@ be source.
|
||||||
|
|
||||||
* Contact
|
* Contact
|
||||||
** bug-mes@gnu.org
|
** bug-mes@gnu.org
|
||||||
** #bootstrappable, #guix on libera.chat
|
** #bootstrappable, #guix on freenode
|
||||||
** bootstrappable.org
|
** bootstrappable.org
|
||||||
|
|
8
COPYING
8
COPYING
|
@ -1,7 +1,7 @@
|
||||||
GNU GENERAL PUBLIC LICENSE
|
GNU GENERAL PUBLIC LICENSE
|
||||||
Version 3, 29 June 2007
|
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
|
Everyone is permitted to copy and distribute verbatim copies
|
||||||
of this license document, but changing it is not allowed.
|
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.
|
GNU General Public License for more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
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.
|
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,
|
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.
|
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
|
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
|
The GNU General Public License does not permit incorporating your program
|
||||||
into proprietary programs. If your program is a subroutine library, you
|
into proprietary programs. If your program is a subroutine library, you
|
||||||
may consider it more useful to permit linking proprietary applications with
|
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
|
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
|
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>.
|
||||||
|
|
56
HACKING
56
HACKING
|
@ -2,11 +2,10 @@
|
||||||
#+TITLE: Hacking GNU Mes
|
#+TITLE: Hacking GNU Mes
|
||||||
|
|
||||||
* SETUP
|
* SETUP
|
||||||
guix shell #64 bit + 32bit
|
guix environment -l guix.scm #64 bit + 32bit
|
||||||
|
|
||||||
CC=i686-unknown-linux-gnu-gcc ./configure
|
CC=i686-unknown-linux-gnu-gcc ./configure
|
||||||
CC=arm-unknown-linux-gnueabihf-gcc ./configure
|
CC=arm-unknown-linux-gnu-gcc ./configure
|
||||||
|
|
||||||
or
|
or
|
||||||
./configure
|
./configure
|
||||||
|
|
||||||
|
@ -50,23 +49,6 @@ Configure to compile with Tiny CC
|
||||||
- bytes read
|
- bytes read
|
||||||
6) globals
|
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
|
* Bugs
|
||||||
** mes: performance, Mes is now 2-10x slower than Guile.
|
** mes: performance, Mes is now 2-10x slower than Guile.
|
||||||
** mes/mescc lack support for fork/exec on the Hurd.
|
** mes/mescc lack support for fork/exec on the Hurd.
|
||||||
|
@ -130,30 +112,30 @@ x/s *((char **)($rsp+8))
|
||||||
|
|
||||||
** C parser/compiler
|
** C parser/compiler
|
||||||
*** [[https://savannah.gnu.org/projects/nyacc][nyacc]]
|
*** [[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://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]]
|
*** [[https://groups.google.com/forum/#!topic/comp.lang.lisp/VPuX0VsjTTE][C intepreter in LISP/Scheme/Python]]
|
||||||
|
|
||||||
** C assembler/linker
|
** 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
|
*** ELF
|
||||||
7f 45 4c 46
|
7f 45 4c 46
|
||||||
*** [[https://www.muppetlabs.com/~breadbox/software/tiny/][Small ELF programs]]
|
*** [[http://www.muppetlabs.com/~breadbox/software/tiny/][Small ELF programs]]
|
||||||
*** [[https://www.cirosantilli.com/elf-hello-world/][Elf hello world]]
|
*** [[http://www.cirosantilli.com/elf-hello-world/][Elf hello world]]
|
||||||
** SC - c as s-expressions
|
** SC - c as s-expressions
|
||||||
sc: https://sph.mn/content/3d3
|
sc: http://sph.mn/content/3d3
|
||||||
** RNRS
|
** 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-349.pdf][Scheme - Report on Scheme]]
|
||||||
*** [[ftp://publications.ai.mit.edu/ai-publications/pdf/AIM-452.pdf][RRS - Revised Report on Scheme]]
|
*** [[ftp://publications.ai.mit.edu/ai-publications/pdf/AIM-452.pdf][RRS - Revised Report on Scheme]]
|
||||||
|
|
||||||
** tiny schemes
|
** 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
|
http://www.stripedgazelle.org/joey/dreamos.html
|
||||||
https://armpit.sourceforge.net/
|
http://armpit.sourceforge.net/
|
||||||
https://common-lisp.net/project/movitz/movitz.html
|
http://common-lisp.net/project/movitz/movitz.html
|
||||||
|
|
||||||
<civodul> janneke: https://github.com/namin/inc looks interesting [15:18]
|
<civodul> janneke: https://github.com/namin/inc looks interesting [15:18]
|
||||||
** Orians Jeremiah
|
** Orians Jeremiah
|
||||||
|
@ -170,13 +152,13 @@ https://common-lisp.net/project/movitz/movitz.html
|
||||||
<janneke> OriansJ: i looked a few times and saw 'LISP empty', so thanks for
|
<janneke> OriansJ: i looked a few times and saw 'LISP empty', so thanks for
|
||||||
the pointer! [00:24]
|
the pointer! [00:24]
|
||||||
<civodul> OriansJ, janneke: from that page, there's also:
|
<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
|
** 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
|
https://github.com/rswier/c4/blob/master/c4.c
|
||||||
** Compilers for free
|
** Compilers for free
|
||||||
https://codon.com/compilers-for-free
|
http://codon.com/compilers-for-free
|
||||||
** Small lisps
|
** Small lisps
|
||||||
*** [[https://www.mirrorservice.org/sites/www.bitsavers.org/bits/TI/Explorer/zeta-c/][ZETA-C]]
|
*** [[https://www.mirrorservice.org/sites/www.bitsavers.org/bits/TI/Explorer/zeta-c/][ZETA-C]]
|
||||||
** Small C compilers
|
** Small C compilers
|
||||||
|
@ -188,10 +170,10 @@ simple as possible.
|
||||||
*** pcc
|
*** pcc
|
||||||
*** early GCC?
|
*** early GCC?
|
||||||
https://miyuki.github.io/2017/10/04/gcc-archaeology-1.html
|
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 |>
|
<rain1> it may be possible to compile like this: mes |> ack |> pcc |> tcc |>
|
||||||
gcc 4.7.4 |> gcc later version... up to modern
|
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 Bootstrapping Wiki: https://bootstrapping.miraheze.org/wiki/Main_Page
|
||||||
** rain1's hex86
|
** rain1's hex86
|
||||||
https://notabug.org/rain1/hex86/src/master/tests/hex0b3.hex86
|
https://notabug.org/rain1/hex86/src/master/tests/hex0b3.hex86
|
||||||
|
@ -202,7 +184,7 @@ https://notabug.org/rain1/hex86/src/master/tests/hex0b3.hex86
|
||||||
** linux syscalls: https://fedora.juszkiewicz.com.pl/syscalls.html
|
** linux syscalls: https://fedora.juszkiewicz.com.pl/syscalls.html
|
||||||
* legalese
|
* 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,
|
Copying and distribution of this file, with or without modification,
|
||||||
are permitted in any medium without royalty provided the copyright
|
are permitted in any medium without royalty provided the copyright
|
||||||
|
|
26
INSTALL
26
INSTALL
|
@ -1,7 +1,7 @@
|
||||||
-*- org -*-
|
-*- org -*-
|
||||||
#+TITLE: Building and Installing GNU Mes
|
#+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,
|
Copying and distribution of this file, with or without modification,
|
||||||
are permitted in any medium without royalty provided the copyright
|
are permitted in any medium without royalty provided the copyright
|
||||||
|
@ -20,20 +20,19 @@ similar way.
|
||||||
** Prerequisites
|
** Prerequisites
|
||||||
*** Guix
|
*** Guix
|
||||||
#+BEGIN_SRC bash
|
#+BEGIN_SRC bash
|
||||||
guix shell #64 bit + 32bit
|
guix environment -l guix.scm #64 bit + 32bit
|
||||||
guix shell --system=i686-linux #32 bit only
|
guix environment --system=i686-linux -l guix.scm #32 bit only
|
||||||
guix shell --system=armhf-linux #32 bit only
|
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
|
||||||
*** Other GNU/Linux
|
*** Other GNU/Linux
|
||||||
- [[https://savannah.gnu.org/projects/mescc-tools/][mescc-tools]], 1.4.0 is known to work.
|
- [[https://savannah.gnu.org/projects/mescc-tools/][mescc-tools]], 0.6.1 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]], 0.93.0 is known to work.
|
||||||
- [[https://savannah.gnu.org/projects/nyacc][Nyacc]], 1.00.2 is known to work.
|
- GNU Gcc, 4.9.3 is known to work.
|
||||||
- GNU Gcc, 7.5.0 is known to work.
|
- GNU Guile, version 2.0.12 or is know to work.
|
||||||
- GNU Guile, version 3.0.4 is know to work.
|
- SH, /bin/sh, GNU Bash 4.3 is known to work.
|
||||||
- SH, /bin/sh, GNU Bash 5.0.16 is known to work.
|
|
||||||
- GNU coreutils
|
- 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
|
** 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
|
https://git.savannah.gnu.org/cgit/guix.git/tree/gnu/packages/commencement.scm
|
||||||
|
|
||||||
** Prerequisites
|
** Prerequisites
|
||||||
- [[https://savannah.gnu.org/projects/mescc-tools/][mescc-tools]], 1.4.0 is known to work.
|
- [[https://savannah.gnu.org/projects/mescc-tools/][mescc-tools]], 0.6.1 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]], 0.93.0 is known to work.
|
||||||
- [[https://savannah.gnu.org/projects/nyacc][Nyacc]], 1.00.2 is known to work.
|
|
||||||
|
|
||||||
** Build it
|
** Build it
|
||||||
|
|
||||||
|
|
74
NEWS
74
NEWS
|
@ -2,7 +2,7 @@
|
||||||
#+TITLE: GNU Mes NEWS – history of user-visible changes
|
#+TITLE: GNU Mes NEWS – history of user-visible changes
|
||||||
#+STARTUP: content hidestars
|
#+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,
|
Copying and distribution of this file, with or without modification,
|
||||||
are permitted in any medium without royalty provided the copyright
|
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.
|
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
|
* Changes in 0.22 since 0.21
|
||||||
** Core
|
** Core
|
||||||
*** Mes now builds reproducibly with MesCC, cross distribution
|
*** Mes now builds reproducibly with MesCC, cross distribution
|
||||||
|
|
4
PORTING
4
PORTING
|
@ -22,7 +22,7 @@ to your config.scm and run guix system reconfigure.
|
||||||
|
|
||||||
For example (note: ARM is no longer a 'port', see HACKING)
|
For example (note: ARM is no longer a 'port', see HACKING)
|
||||||
#+BEGIN_SRC bash
|
#+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 findutils gawk gcc-toolchain@7 grep git guile@2.2 gzip help2man make mescc-tools nyacc openssh-sans-x pkg-config sed tar texinfo
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
|
||||||
** Try it
|
** Try it
|
||||||
|
@ -75,7 +75,7 @@ a Reduced Binary seed, thus significantly reducing the Trusted Computing
|
||||||
Base (TCB), strategic decisions about the build process can start.
|
Base (TCB), strategic decisions about the build process can start.
|
||||||
|
|
||||||
* Legalese
|
* 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,
|
Copying and distribution of this file, with or without modification,
|
||||||
are permitted in any medium without royalty provided the copyright
|
are permitted in any medium without royalty provided the copyright
|
||||||
|
|
24
README
24
README
|
@ -6,32 +6,29 @@
|
||||||
[[https://www.gnu.org/software/mes][GNU Mes]] is a Scheme interpreter and C compiler for bootstrapping the GNU
|
[[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
|
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
|
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
|
[[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
|
||||||
help create a full-source bootstrap as part of the [[https://bootstrappable.org][bootstrappable builds]]
|
create a full source bootstrap as part of the [[http://bootstrappable.org][bootstrappable builds]]
|
||||||
effort for UNIX-like operating systems.
|
effort for UNIX-like operating systems.
|
||||||
|
|
||||||
The Scheme interpreter is written in ~5,000 LOC of simple C, and the C
|
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
|
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]].
|
now be bootstrapped by [[https://github.com/oriansj/m2-planet][M2-Planet]] and [[https://savannah.nongnu.org/projects/mescc-tools][Mescc-Tools]].
|
||||||
|
|
||||||
Mes has a Garbage Collector, a library of loadable Scheme modules--
|
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
|
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
|
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.
|
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
|
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,
|
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
|
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
|
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.
|
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
|
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]].
|
General Public Licence version 3 or later. See the file [[file:COPYING][COPYING]].
|
||||||
|
|
||||||
|
@ -67,7 +64,7 @@ General Public Licence version 3 or later. See the file [[file:COPYING][COPYING
|
||||||
|
|
||||||
* Links
|
* Links
|
||||||
[0] https://www.gnu.org/software/mes
|
[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
|
[2] https://www.gnu.org/software/guix
|
||||||
[3] https://bootstrappable.org
|
[3] https://bootstrappable.org
|
||||||
[4] https://github.com/oriansj/m2-planet
|
[4] https://github.com/oriansj/m2-planet
|
||||||
|
@ -76,14 +73,11 @@ General Public Licence version 3 or later. See the file [[file:COPYING][COPYING
|
||||||
[7] https://www.cs.indiana.edu/chezscheme/syntax-case/old-psyntax.html
|
[7] https://www.cs.indiana.edu/chezscheme/syntax-case/old-psyntax.html
|
||||||
[8] https://www.nongnu.org/nyacc
|
[8] https://www.nongnu.org/nyacc
|
||||||
[9] https://gitlab.com/janneke/tinycc
|
[9] https://gitlab.com/janneke/tinycc
|
||||||
[10] [[https://www.softwarepreservation.org/projects/LISP/book/LISP%201.5%20Programmers%20Manual.pdf]]
|
[10] [[http://www.softwarepreservation.org/projects/LISP/book/LISP%201.5%20Programmers%20Manual.pdf]]
|
||||||
[11] https://savannah.nongnu.org/projects/stage0
|
[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
|
|
||||||
|
|
||||||
* Legalese
|
* 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,
|
Copying and distribution of this file, with or without modification,
|
||||||
are permitted in any medium without royalty provided the copyright
|
are permitted in any medium without royalty provided the copyright
|
||||||
|
|
53
ROADMAP
53
ROADMAP
|
@ -1,7 +1,7 @@
|
||||||
-*- org -*-
|
-*- org -*-
|
||||||
#+TITLE: Tentative GNU Mes Road Map
|
#+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,
|
Copying and distribution of this file, with or without modification,
|
||||||
are permitted in any medium without royalty provided the copyright
|
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.
|
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
|
You're welcome to discuss this road map on bug-mes@gnu.org or #bootstrappable
|
||||||
on Libera Chat!
|
on Freenode!
|
||||||
|
|
||||||
* TODO
|
* TODO
|
||||||
** release 0.x, unsorted
|
** release 0.x, unsorted
|
||||||
- Full Guile module support.
|
- Merge the Scheme-only bootstrap which uses Gash and Gash Core
|
||||||
- Run Gash and Gash-Utils on Mes.
|
Utilities to remove from bootstrap-binary seed : Awk, Bash, Core
|
||||||
- Remove Guile as a dependency for the Guix Full Source Bootstrap.
|
Utilities, Grep, Gzip, Sed, Tar.
|
||||||
- Integrate Full Source bootstrap for ARM on GNU Guix;
|
- Introduce the Reduced Binaries Seed bootstrap to NixOS (Debian,
|
||||||
see branch wip-aarch64-bootstrap.
|
Arch, Gentoo, ...?)
|
||||||
- Integrate Reduced Binary Seed bootstrap for ARM on GNU Guix;
|
- Full Source Bootstrap: compile mes.c using M2-Planet. Jeremiah
|
||||||
see branch wip-arm-bootstrap.
|
branched-out from mes; see https://github.com/oriansj/mes-m2, also see the
|
||||||
- Introduce the Reduced Binary Seed bootstrap to NixOS (Debian,
|
branches: wip-full-source-bootstrap, wip-m2-merge and wip-m2.
|
||||||
Arch, Gentoo, ...?).
|
- Full Guile-compatible module support: define-module, define-public,
|
||||||
- Full Guile-compatible module support; see branch wip-module.
|
export, use-modules, ...
|
||||||
- RISC-V support: Mes C Library and MesCC.
|
- ARMv7/AArch64 support: Mes C Library and MesCC.
|
||||||
- AArch64 support: Mes C Library and MesCC.
|
- Simplify eval-apply and other core functionality (see mes-m2).
|
||||||
- Simplify eval-apply and other core functionality
|
|
||||||
+ See https://github.com/oriansj/mes-m2 fork/rewrite of mes.
|
|
||||||
- Support native x86_64 bootstrap.
|
- Support native x86_64 bootstrap.
|
||||||
- Simplify MesCC ``MesCC should optimize ease of convincing us of its
|
- Simplify MesCC ``MesCC should optimize ease of convincing us of its
|
||||||
correctness''.
|
correctness''
|
||||||
- Switch to Autotools for development build (bootstrap builds use
|
- tcc: remove or upstream patches from tcc-boot.
|
||||||
kaem.run and bootstrap.sh); see branch wip-auto.
|
- tcc: build 0.9.27 directly instead of via 0.9.26, see tinycc
|
||||||
** after release 1.0
|
** after release 1.0
|
||||||
- Build Guix packages using Mes: run or simplify (guix build utils),
|
- Build Guix packages using Mes: run or simplify (guix build utils),
|
||||||
(guix build gnu-build-system).
|
(guix build gnu-build-system).
|
||||||
|
@ -50,12 +48,9 @@ on Libera Chat!
|
||||||
- Bootstrap support for the Hurd. Most needed now are fork and exec.
|
- Bootstrap support for the Hurd. Most needed now are fork and exec.
|
||||||
- Replace the initial gcc-2.95.3 with gcc-4.6.4.
|
- Replace the initial gcc-2.95.3 with gcc-4.6.4.
|
||||||
- FreeBSD, *BSD?
|
- FreeBSD, *BSD?
|
||||||
- Tiny CC:
|
wip-bootstrappable@0.9.27 branch
|
||||||
+ remove or upstream patches from tcc-boot,
|
- Skip tcc: Build gcc using MesCC.
|
||||||
+ build 0.9.27 directly instead of via 0.9.26; see tinycc branch
|
- better garbage collector.
|
||||||
wip-bootstrappable@0.9.27
|
|
||||||
- Skip Tiny CC: Build gcc using MesCC.
|
|
||||||
- Better garbage collector.
|
|
||||||
- mes/mescc: proper docstrings, api reference documentation.
|
- mes/mescc: proper docstrings, api reference documentation.
|
||||||
- mes/mescc: bootstrap a minimal Guile?
|
- mes/mescc: bootstrap a minimal Guile?
|
||||||
+ libguile/{eval,init,list,strings,values,..}.
|
+ libguile/{eval,init,list,strings,values,..}.
|
||||||
|
@ -66,14 +61,6 @@ on Libera Chat!
|
||||||
https://srfi.schemers.org/srfi-72/srfi-72.html, or
|
https://srfi.schemers.org/srfi-72/srfi-72.html, or
|
||||||
+ ... drop it?
|
+ ... drop it?
|
||||||
* DONE
|
* 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
|
- 0.22 GNU Mes now builds reproducibly cross-platform, runs on the
|
||||||
Hurd and has better support for other distributions and kernels.
|
Hurd and has better support for other distributions and kernels.
|
||||||
- 0.21 GNU Mes now supports a Scheme-only bootstrap and is packaged in
|
- 0.21 GNU Mes now supports a Scheme-only bootstrap and is packaged in
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
# GNU Mes --- Maxwell Equations of Software
|
# 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.
|
# This file is part of GNU Mes.
|
||||||
#
|
#
|
||||||
|
@ -85,26 +85,17 @@ PHONY_TARGETS:=\
|
||||||
|
|
||||||
.PHONY: $(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
|
default: all
|
||||||
|
|
||||||
all: doc
|
all: doc
|
||||||
|
|
||||||
doc: build
|
doc: build
|
||||||
|
|
||||||
build: | $(ARCH_HEADERS)
|
build:
|
||||||
$(SHELL) build.sh
|
$(SHELL) build.sh
|
||||||
|
|
||||||
src/${program_prefix}mes: build
|
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:
|
clean:
|
||||||
rm -f *.o *.s bin/mes bin/mes-gcc bin/mes-mescc
|
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}
|
rm -f mes.{aux,cp,cps,fn,info,log,tmp,toc,vr,vrs}
|
||||||
|
@ -270,16 +261,6 @@ WEB_IMAGES:=\
|
||||||
web: info $(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"
|
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
|
### dist
|
||||||
COMMIT=$(shell test -e ${srcdest}.git && (cd ${srcdir} && git describe --dirty 2>/dev/null) || cat ${srcdest}.tarball-version)
|
COMMIT=$(shell test -e ${srcdest}.git && (cd ${srcdir} && git describe --dirty 2>/dev/null) || cat ${srcdest}.tarball-version)
|
||||||
TARBALL_VERSION=$(COMMIT:v%=%)
|
TARBALL_VERSION=$(COMMIT:v%=%)
|
||||||
|
@ -301,10 +282,7 @@ GIT_LS_FILES:=find
|
||||||
MTIME:=0
|
MTIME:=0
|
||||||
endif
|
endif
|
||||||
|
|
||||||
check-signature:
|
dist: $(TARBALL)
|
||||||
git show HEAD --show-signature |grep 'gpg: Good signature'
|
|
||||||
|
|
||||||
dist: check-signature $(TARBALL)
|
|
||||||
|
|
||||||
sign-dist: $(TARBALL)
|
sign-dist: $(TARBALL)
|
||||||
gpg -a --output $(TARBALL).sig --detach-sig $(TARBALL)
|
gpg -a --output $(TARBALL).sig --detach-sig $(TARBALL)
|
||||||
|
@ -332,10 +310,8 @@ $(TARBALL): .tarball-version | generate-ChangeLog
|
||||||
ifdef GUIX
|
ifdef GUIX
|
||||||
update-hash: $(TARBALL)
|
update-hash: $(TARBALL)
|
||||||
$(GUIX) download file://$(PWD)/$<
|
$(GUIX) download file://$(PWD)/$<
|
||||||
sed -i \
|
sed -i -e 's,(base32 #!mes!# "[^"]*"),(base32 #!mes!# "$(shell $(GUIX) hash $<)"),' guix/git/mes.scm
|
||||||
-e 's,version #!mes!# "[^"]*"),version #!mes!# "$(VERSION)"),' \
|
|
||||||
-e 's,(base32 #!mes!# "[^"]*"),(base32 #!mes!# "$(shell $(GUIX) hash $<)"),' \
|
|
||||||
guix/git/mes.scm
|
|
||||||
else
|
else
|
||||||
$(warning update-hash: no guix)
|
$(warning update-hash: no guix)
|
||||||
endif
|
endif
|
||||||
|
@ -345,72 +321,35 @@ tag:
|
||||||
|
|
||||||
# Release process
|
# Release process
|
||||||
# 0. Prepare git, see history:
|
# 0. Prepare git, see history:
|
||||||
# - doc: Release update (NEWS, etc.)
|
# - doc: Release update
|
||||||
# - Generate announcement
|
# + NEWS, etc.
|
||||||
# + touch mes-0.23.tar.gz
|
# + doc/announce/ANNOUNCE-0.22, using xxx for checksums
|
||||||
# + make gen-announce VERSION=0.23
|
# - Release 0.22
|
||||||
# + Update and commit doc/announce/ANNOUNCE-0.23,
|
# 1. make tag VERSION=0.22
|
||||||
# using xxx (32,40) for checksums
|
# 2. make sign-dist
|
||||||
# - create "Release 0.23" commit (see Release 0.22).
|
# 3. make release
|
||||||
# + configure
|
# - Update doc/announce/ANNOUNCE-0.22
|
||||||
# + 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: Post-release update.
|
# - doc: Post-release update.
|
||||||
# - build-aux/GNUMakefile.in: gen-announce: update previous-version
|
# 4. verify bootstrap
|
||||||
# 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
|
|
||||||
|
|
||||||
guix-build:
|
guix-build:
|
||||||
./pre-inst-env $(GUIX) build mes@$(VERSION) --with-source=$(TARBALL)
|
./pre-inst-env $(GUIX) build mes@$(VERSION) --with-source=$(TARBALL)
|
||||||
|
|
||||||
release: check-signature update-hash
|
release: update-hash | gen-announce guix-build
|
||||||
git commit -m 'guix: mes: Update to $(VERSION).' \
|
|
||||||
-m '* guix/git/mes.scm (mes)[source]: Update to $(VERSION).' \
|
|
||||||
guix/git/mes.scm
|
|
||||||
|
|
||||||
GPG_KEY_ID:=1A858392E331EAFDB8C27FFBF3C1A0D9C1D65273
|
GPG_KEY_ID:=1A858392E331EAFDB8C27FFBF3C1A0D9C1D65273
|
||||||
GEN_ANNOUNCE=$(GNULIB)/build-aux/announce-gen
|
GEN_ANNOUNCE=$(GNULIB)/build-aux/announce-gen
|
||||||
GNULIB=../../gnulib
|
GNULIB=../../gnulib
|
||||||
gen-announce:
|
gen-announce:
|
||||||
$(GEN_ANNOUNCE) \
|
$(GEN_ANNOUNCE)\
|
||||||
--release-type=beta \
|
--release-type=beta\
|
||||||
--package-name=mes \
|
--package-name=mes\
|
||||||
--previous-version='0.24.1' \
|
--previous-version='0.21 '\
|
||||||
--current-version=$(VERSION) \
|
--current-version=$(VERSION)\
|
||||||
--gpg-key-id=$(GPG_KEY_ID) \
|
--gpg-key-id=$(GPG_KEY_ID)\
|
||||||
--url-directory=https://ftp.gnu.org/gnu/mes \
|
--url-directory=https://ftp.gnu.org/gnu/mes\
|
||||||
--news=NEWS \
|
--news=NEWS\
|
||||||
> doc/announce/ANNOUNCE-$(VERSION)
|
> 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)
|
|
||||||
|
|
||||||
installdirs: mkinstalldirs
|
installdirs: mkinstalldirs
|
||||||
mkdir -p\
|
mkdir -p\
|
||||||
|
|
|
@ -50,7 +50,7 @@ srcdest=../${srcdest}
|
||||||
ln -sf ${srcdest}mes .
|
ln -sf ${srcdest}mes .
|
||||||
ln -sf ${srcdest}module .
|
ln -sf ${srcdest}module .
|
||||||
ln -sf ${srcdest}src .
|
ln -sf ${srcdest}src .
|
||||||
AM_CPPFLAGS="-D HAVE_CONFIG_H=1 -I ${srcdest}include -I ../include -I include"
|
AM_CPPFLAGS="-D HAVE_CONFIG_H=1 -I ${srcdest}include -I ${srcdest}include/$mes_kernel/$mes_cpu"
|
||||||
AM_CFLAGS="-L ${srcdest}lib"
|
AM_CFLAGS="-L ${srcdest}lib"
|
||||||
|
|
||||||
mkdir -p $mes_cpu-mes
|
mkdir -p $mes_cpu-mes
|
||||||
|
@ -108,7 +108,7 @@ $AR crD $mes_cpu-mes/libc+tcc.a $objects
|
||||||
|
|
||||||
cd ..
|
cd ..
|
||||||
srcdest=
|
srcdest=
|
||||||
AM_CPPFLAGS="-D HAVE_CONFIG_H=1 -I ${srcdest}include -I ../include -I include"
|
CPPFLAGS="-D HAVE_CONFIG_H=1 -I ${srcdest}include -I ${srcdest}include/$mes_kernel/$mes_cpu"
|
||||||
AM_CFLAGS="-L ${srcdest}lib"
|
AM_CFLAGS="-L ${srcdest}lib"
|
||||||
|
|
||||||
objects=
|
objects=
|
||||||
|
|
|
@ -64,6 +64,16 @@ if test -e libc+tcc.s; then
|
||||||
cp libc+tcc.s $mes_cpu-mes
|
cp libc+tcc.s $mes_cpu-mes
|
||||||
fi
|
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
|
archive libtcc1.a $libtcc1_SOURCES
|
||||||
cp libtcc1.a $mes_cpu-mes
|
cp libtcc1.a $mes_cpu-mes
|
||||||
if test -e libtcc1.s; then
|
if test -e libtcc1.s; then
|
||||||
|
@ -75,13 +85,3 @@ cp libgetopt.a $mes_cpu-mes
|
||||||
if test -e libgetopt.s; then
|
if test -e libgetopt.s; then
|
||||||
cp libgetopt.s $mes_cpu-mes
|
cp libgetopt.s $mes_cpu-mes
|
||||||
fi
|
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
|
#! /bin/sh
|
||||||
|
|
||||||
# GNU Mes --- Maxwell Equations of Software
|
# 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.
|
# This file is part of GNU Mes.
|
||||||
#
|
#
|
||||||
|
@ -47,8 +47,5 @@ then
|
||||||
# See <https://www.openwall.com/lists/musl/2018/05/09/1>.
|
# See <https://www.openwall.com/lists/musl/2018/05/09/1>.
|
||||||
LIBS="${LIBS} -lgcc -lc"
|
LIBS="${LIBS} -lgcc -lc"
|
||||||
fi
|
fi
|
||||||
if [ "$compiler" = "mescc" ]; then
|
|
||||||
LIBS="${LIBS} -lc -lmescc"
|
|
||||||
fi
|
|
||||||
link bin/mes-$compiler
|
link bin/mes-$compiler
|
||||||
cp bin/mes-$compiler bin/mes
|
cp bin/mes-$compiler bin/mes
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#! /bin/sh
|
#! /bin/sh
|
||||||
|
|
||||||
# GNU Mes --- Maxwell Equations of Software
|
# 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.
|
# This file is part of GNU Mes.
|
||||||
#
|
#
|
||||||
|
@ -29,7 +29,6 @@ fi
|
||||||
|
|
||||||
. ./config.sh
|
. ./config.sh
|
||||||
. ${srcdest}build-aux/trace.sh
|
. ${srcdest}build-aux/trace.sh
|
||||||
. ${srcdest}build-aux/cflags.sh
|
|
||||||
|
|
||||||
if $courageous; then
|
if $courageous; then
|
||||||
set +e
|
set +e
|
||||||
|
@ -43,6 +42,25 @@ else
|
||||||
}
|
}
|
||||||
fi
|
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\
|
trace "CCLD ${srcdest}lib/$mes_kernel/$mes_cpu-mes-$compiler/exit-42.S" $CC\
|
||||||
-nostdlib\
|
-nostdlib\
|
||||||
-g\
|
-g\
|
||||||
|
@ -61,11 +79,12 @@ else
|
||||||
fi
|
fi
|
||||||
|
|
||||||
trace "HEX2 ${srcdest}lib/$mes_kernel/$mes_cpu-mes/elf$mes_bits-0exit-42.hex2" $HEX2\
|
trace "HEX2 ${srcdest}lib/$mes_kernel/$mes_cpu-mes/elf$mes_bits-0exit-42.hex2" $HEX2\
|
||||||
--little-endian\
|
--LittleEndian\
|
||||||
$stage0_cpu_flag\
|
$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-0header.hex2\
|
||||||
-f ${srcdest}lib/$mes_kernel/$mes_cpu-mes/elf$mes_bits-0exit-42.hex2\
|
-f ${srcdest}lib/$mes_kernel/$mes_cpu-mes/elf$mes_bits-0exit-42.hex2\
|
||||||
|
--exec_enable\
|
||||||
-o 0exit-42
|
-o 0exit-42
|
||||||
|
|
||||||
trace "TEST 0exit-42"
|
trace "TEST 0exit-42"
|
||||||
|
@ -74,12 +93,13 @@ trace "TEST 0exit-42"
|
||||||
[ $r = 42 ]
|
[ $r = 42 ]
|
||||||
|
|
||||||
trace "HEX2 ${srcdest}lib/$mes_kernel/$mes_cpu-mes/elf$mes_bits-body-exit-42.hex2" $HEX2\
|
trace "HEX2 ${srcdest}lib/$mes_kernel/$mes_cpu-mes/elf$mes_bits-body-exit-42.hex2" $HEX2\
|
||||||
--little-endian\
|
--LittleEndian\
|
||||||
$stage0_cpu_flag\
|
$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-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-body-exit-42.hex2\
|
||||||
-f ${srcdest}lib/$mes_kernel/$mes_cpu-mes/elf$mes_bits-footer-single-main.hex2\
|
-f ${srcdest}lib/$mes_kernel/$mes_cpu-mes/elf$mes_bits-footer-single-main.hex2\
|
||||||
|
--exec_enable\
|
||||||
-o body-exit-42
|
-o body-exit-42
|
||||||
|
|
||||||
trace "TEST body-exit-42"
|
trace "TEST body-exit-42"
|
||||||
|
@ -100,11 +120,12 @@ trace "TEST hello-mes"
|
||||||
[ $r = 0 ]
|
[ $r = 0 ]
|
||||||
|
|
||||||
trace "HEX2 ${srcdest}lib/$mes_kernel/$mes_cpu-mes/elf$mes_bits-0hello-mes.hex2" $HEX2\
|
trace "HEX2 ${srcdest}lib/$mes_kernel/$mes_cpu-mes/elf$mes_bits-0hello-mes.hex2" $HEX2\
|
||||||
--little-endian\
|
--LittleEndian\
|
||||||
$stage0_cpu_flag\
|
$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-0header.hex2\
|
||||||
-f ${srcdest}lib/$mes_kernel/$mes_cpu-mes/elf$mes_bits-0hello-mes.hex2\
|
-f ${srcdest}lib/$mes_kernel/$mes_cpu-mes/elf$mes_bits-0hello-mes.hex2\
|
||||||
|
--exec_enable\
|
||||||
-o 0hello-mes
|
-o 0hello-mes
|
||||||
|
|
||||||
trace "TEST 0hello-mes"
|
trace "TEST 0hello-mes"
|
||||||
|
@ -113,12 +134,13 @@ trace "TEST 0hello-mes"
|
||||||
[ $r = 0 ]
|
[ $r = 0 ]
|
||||||
|
|
||||||
trace "HEX2 ${srcdest}lib/$mes_kernel/$mes_cpu-mes/elf$mes_bits-body-hello-mes.hex2" $HEX2\
|
trace "HEX2 ${srcdest}lib/$mes_kernel/$mes_cpu-mes/elf$mes_bits-body-hello-mes.hex2" $HEX2\
|
||||||
--little-endian\
|
--LittleEndian\
|
||||||
$stage0_cpu_flag\
|
$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-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-body-hello-mes.hex2\
|
||||||
-f ${srcdest}lib/$mes_kernel/$mes_cpu-mes/elf$mes_bits-footer-single-main.hex2\
|
-f ${srcdest}lib/$mes_kernel/$mes_cpu-mes/elf$mes_bits-footer-single-main.hex2\
|
||||||
|
--exec_enable\
|
||||||
-o body-hello-mes
|
-o body-hello-mes
|
||||||
|
|
||||||
trace "TEST body-hello-mes"
|
trace "TEST body-hello-mes"
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#! /bin/sh
|
#! /bin/sh
|
||||||
|
|
||||||
# GNU Mes --- Maxwell Equations of Software
|
# 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.
|
# This file is part of GNU Mes.
|
||||||
#
|
#
|
||||||
|
@ -66,8 +66,9 @@ fi
|
||||||
AM_CPPFLAGS="
|
AM_CPPFLAGS="
|
||||||
-D HAVE_CONFIG_H=1
|
-D HAVE_CONFIG_H=1
|
||||||
-I ${srcdest}lib
|
-I ${srcdest}lib
|
||||||
|
-I include
|
||||||
-I ${srcdest}include
|
-I ${srcdest}include
|
||||||
-I ../include
|
-I ${srcdest}include/$mes_kernel/$mes_cpu
|
||||||
"
|
"
|
||||||
if test $mes_kernel = gnu; then
|
if test $mes_kernel = gnu; then
|
||||||
AM_CPPFLAGS="$AM_CPPFLAGS
|
AM_CPPFLAGS="$AM_CPPFLAGS
|
||||||
|
@ -92,17 +93,16 @@ fi
|
||||||
AM_CPPFLAGS="
|
AM_CPPFLAGS="
|
||||||
-D HAVE_CONFIG_H=1
|
-D HAVE_CONFIG_H=1
|
||||||
-I ${srcdest}lib
|
-I ${srcdest}lib
|
||||||
-I ${srcdest}include
|
|
||||||
-I ../include
|
|
||||||
-I include
|
-I include
|
||||||
|
-I ${srcdest}include
|
||||||
|
-I ${srcdest}include/$mes_kernel/$mes_cpu
|
||||||
"
|
"
|
||||||
if test "$compiler" != bootstrap; then
|
if test "$compiler" != bootstrap; then
|
||||||
${SHELL} ${srcdest}build-aux/build-mes.sh
|
${SHELL} ${srcdest}build-aux/build-mes.sh
|
||||||
fi
|
fi
|
||||||
)
|
)
|
||||||
|
|
||||||
if test -n "$M2_PLANET" && (test "$mes_cpu" == "x86" \
|
if test -n "$M2_PLANET"; then
|
||||||
|| test "$mes_cpu" == "arm"); then
|
|
||||||
(
|
(
|
||||||
. ${srcdest}build-aux/trace.sh
|
. ${srcdest}build-aux/trace.sh
|
||||||
if [ -z "$V" -o "$V" = 0 ]; then
|
if [ -z "$V" -o "$V" = 0 ]; then
|
||||||
|
@ -136,9 +136,9 @@ fi
|
||||||
AM_CPPFLAGS="
|
AM_CPPFLAGS="
|
||||||
-D HAVE_CONFIG_H=1
|
-D HAVE_CONFIG_H=1
|
||||||
-I ${srcdest}lib
|
-I ${srcdest}lib
|
||||||
-I ${srcdest}include
|
|
||||||
-I ../include
|
|
||||||
-I include
|
-I include
|
||||||
|
-I ${srcdest}include
|
||||||
|
-I ${srcdest}include/$mes_kernel/$mes_cpu
|
||||||
"
|
"
|
||||||
compiler=mescc
|
compiler=mescc
|
||||||
AR=${MESAR-"${srcdest}pre-inst-env mesar"}
|
AR=${MESAR-"${srcdest}pre-inst-env mesar"}
|
||||||
|
@ -150,7 +150,6 @@ fi
|
||||||
${SHELL} ${srcdest}build-aux/build-lib.sh
|
${SHELL} ${srcdest}build-aux/build-lib.sh
|
||||||
${SHELL} ${srcdest}build-aux/build-source-lib.sh
|
${SHELL} ${srcdest}build-aux/build-source-lib.sh
|
||||||
if $bootstrap; then
|
if $bootstrap; then
|
||||||
rm -f globals.* # FIXME: avoid name clash with globals from lib
|
|
||||||
${SHELL} ${srcdest}build-aux/build-mes.sh
|
${SHELL} ${srcdest}build-aux/build-mes.sh
|
||||||
cp -f bin/mes-mescc ../bin
|
cp -f bin/mes-mescc ../bin
|
||||||
cp -f bin/mes ../bin
|
cp -f bin/mes ../bin
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
# GNU Mes --- Maxwell Equations of Software
|
# GNU Mes --- Maxwell Equations of Software
|
||||||
# Copyright © 2018,2019,2020,2022 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
# Copyright © 2018,2019,2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||||
#
|
#
|
||||||
# This file is part of GNU Mes.
|
# This file is part of GNU Mes.
|
||||||
#
|
#
|
||||||
|
@ -16,25 +16,6 @@
|
||||||
# You should have received a copy of the GNU General Public License
|
# You should have received a copy of the GNU General Public License
|
||||||
# along with GNU Mes. If not, see <http://www.gnu.org/licenses/>.
|
# 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="
|
AM_CPPFLAGS="
|
||||||
-D HAVE_CONFIG_H=1
|
-D HAVE_CONFIG_H=1
|
||||||
-I ${srcdest}include
|
-I ${srcdest}include
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#! /bin/sh
|
#! /bin/sh
|
||||||
|
|
||||||
# GNU Mes --- Maxwell Equations of Software
|
# GNU Mes --- Maxwell Equations of Software
|
||||||
# Copyright © 2017,2018,2019,2020,2022 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
# Copyright © 2017,2018,2019,2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||||
#
|
#
|
||||||
# This file is part of GNU Mes.
|
# This file is part of GNU Mes.
|
||||||
#
|
#
|
||||||
|
@ -117,7 +117,6 @@ lib/tests/scaffold/54-argv.c
|
||||||
lib/tests/scaffold/55-char-array.c
|
lib/tests/scaffold/55-char-array.c
|
||||||
lib/tests/scaffold/60-math.c
|
lib/tests/scaffold/60-math.c
|
||||||
lib/tests/scaffold/60-math-itoa.c
|
lib/tests/scaffold/60-math-itoa.c
|
||||||
lib/tests/scaffold/60-math-modulo.c
|
|
||||||
lib/tests/scaffold/61-array.c
|
lib/tests/scaffold/61-array.c
|
||||||
lib/tests/scaffold/62-array.c
|
lib/tests/scaffold/62-array.c
|
||||||
lib/tests/scaffold/63-struct.c
|
lib/tests/scaffold/63-struct.c
|
||||||
|
|
|
@ -101,10 +101,8 @@ export V
|
||||||
export colors
|
export colors
|
||||||
export compiler
|
export compiler
|
||||||
export courageous
|
export courageous
|
||||||
export mes_cpu
|
|
||||||
export srcdest
|
export srcdest
|
||||||
export srcdir
|
export srcdir
|
||||||
export stage0_cpu
|
|
||||||
export GUILE_AUTO_COMPILE
|
export GUILE_AUTO_COMPILE
|
||||||
export MES_PREFIX
|
export MES_PREFIX
|
||||||
export TESTS
|
export TESTS
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#! /bin/sh
|
#! /bin/sh
|
||||||
|
|
||||||
# GNU Mes --- Maxwell Equations of Software
|
# GNU Mes --- Maxwell Equations of Software
|
||||||
# Copyright © 2019,2020,2021 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
# Copyright © 2019, 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||||
#
|
#
|
||||||
# This file is part of GNU Mes.
|
# This file is part of GNU Mes.
|
||||||
#
|
#
|
||||||
|
@ -107,7 +107,6 @@ lib/mes/ntoab.c
|
||||||
lib/mes/oputc.c
|
lib/mes/oputc.c
|
||||||
lib/mes/ultoa.c
|
lib/mes/ultoa.c
|
||||||
lib/mes/utoa.c
|
lib/mes/utoa.c
|
||||||
lib/stub/__raise.c
|
|
||||||
"
|
"
|
||||||
|
|
||||||
if test $mes_libc = mes; then
|
if test $mes_libc = mes; then
|
||||||
|
@ -158,6 +157,7 @@ lib/stdio/putc.c
|
||||||
lib/stdio/putchar.c
|
lib/stdio/putchar.c
|
||||||
lib/stdio/ungetc.c
|
lib/stdio/ungetc.c
|
||||||
lib/stdlib/free.c
|
lib/stdlib/free.c
|
||||||
|
lib/stdlib/malloc.c
|
||||||
lib/stdlib/realloc.c
|
lib/stdlib/realloc.c
|
||||||
lib/string/memchr.c
|
lib/string/memchr.c
|
||||||
lib/string/memcmp.c
|
lib/string/memcmp.c
|
||||||
|
@ -189,7 +189,7 @@ lib/stub/execve.c
|
||||||
lib/stub/fork.c
|
lib/stub/fork.c
|
||||||
lib/stub/_getcwd.c
|
lib/stub/_getcwd.c
|
||||||
lib/stub/gettimeofday.c
|
lib/stub/gettimeofday.c
|
||||||
lib/stub/ioctl3.c
|
lib/stub/ioctl.c
|
||||||
lib/stub/time.c
|
lib/stub/time.c
|
||||||
lib/stub/unlink.c
|
lib/stub/unlink.c
|
||||||
lib/stub/waitpid.c
|
lib/stub/waitpid.c
|
||||||
|
@ -209,9 +209,8 @@ lib/linux/fork.c
|
||||||
lib/linux/fsync.c
|
lib/linux/fsync.c
|
||||||
lib/linux/_getcwd.c
|
lib/linux/_getcwd.c
|
||||||
lib/linux/gettimeofday.c
|
lib/linux/gettimeofday.c
|
||||||
lib/linux/ioctl3.c
|
lib/linux/ioctl.c
|
||||||
lib/linux/_open3.c
|
lib/linux/_open3.c
|
||||||
lib/linux/malloc.c
|
|
||||||
lib/linux/_read.c
|
lib/linux/_read.c
|
||||||
lib/linux/time.c
|
lib/linux/time.c
|
||||||
lib/linux/unlink.c
|
lib/linux/unlink.c
|
||||||
|
@ -414,7 +413,6 @@ lib/linux/getgid.c
|
||||||
lib/linux/getppid.c
|
lib/linux/getppid.c
|
||||||
lib/linux/getrusage.c
|
lib/linux/getrusage.c
|
||||||
lib/linux/getuid.c
|
lib/linux/getuid.c
|
||||||
lib/linux/ioctl.c
|
|
||||||
lib/linux/link.c
|
lib/linux/link.c
|
||||||
lib/linux/lstat.c
|
lib/linux/lstat.c
|
||||||
lib/linux/mkdir.c
|
lib/linux/mkdir.c
|
||||||
|
@ -439,7 +437,6 @@ src/core.c
|
||||||
src/display.c
|
src/display.c
|
||||||
src/eval-apply.c
|
src/eval-apply.c
|
||||||
src/gc.c
|
src/gc.c
|
||||||
src/globals.c
|
|
||||||
src/hash.c
|
src/hash.c
|
||||||
src/lib.c
|
src/lib.c
|
||||||
src/math.c
|
src/math.c
|
||||||
|
|
|
@ -50,7 +50,6 @@ export mes_cpu
|
||||||
export mes_bits
|
export mes_bits
|
||||||
export mes_libc
|
export mes_libc
|
||||||
export mes_kernel
|
export mes_kernel
|
||||||
export stage0_cpu
|
|
||||||
|
|
||||||
ifdef V
|
ifdef V
|
||||||
export V
|
export V
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#! @SHELL@
|
#! @SHELL@
|
||||||
|
|
||||||
# GNU Mes --- Maxwell Equations of Software
|
# 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.
|
# This file is part of GNU Mes.
|
||||||
#
|
#
|
||||||
|
@ -99,7 +99,6 @@ mkdir -p $DESTDIR$includedir
|
||||||
mkdir -p $DESTDIR$libdir
|
mkdir -p $DESTDIR$libdir
|
||||||
mkdir -p $DESTDIR$pkgdatadir
|
mkdir -p $DESTDIR$pkgdatadir
|
||||||
tar -cf- -C ${srcdir}/include . | tar -${v}xf- -C $DESTDIR$includedir
|
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_cpu-mes | tar -${v}xf- -C $DESTDIR$libdir
|
||||||
tar -cf- -C ${srcdir}/lib $mes_kernel/$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
|
if test -z "$srcdest"; then
|
||||||
|
|
|
@ -4,8 +4,7 @@ MES_ARENA=100000000 exec ${SCHEME-guile} -L . --no-auto-compile -e '(configure)'
|
||||||
!#
|
!#
|
||||||
|
|
||||||
;;; GNU Mes --- Maxwell Equations of Software
|
;;; GNU Mes --- Maxwell Equations of Software
|
||||||
;;; Copyright © 2016,2017,2018,2019,2020,2021,2022,2023 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
;;; Copyright © 2016,2017,2018,2019,2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||||
;;; Copyright © 2020 Vagrant Cascadian <vagrant@reproducible-builds.org>
|
|
||||||
;;;
|
;;;
|
||||||
;;; configure: This file is part of GNU Mes.
|
;;; 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 "mes")
|
||||||
(define PACKAGE-NAME "GNU Mes")
|
(define PACKAGE-NAME "GNU Mes")
|
||||||
(define PACKAGE-BUGREPORT "bug-mes@gnu.org")
|
(define PACKAGE-BUGREPORT "bug-mes@gnu.org")
|
||||||
(define VERSION "0.24.2")
|
(define VERSION "0.22")
|
||||||
|
|
||||||
(cond-expand
|
(cond-expand
|
||||||
(guile)
|
(guile)
|
||||||
|
@ -322,14 +321,14 @@ MES_ARENA=100000000 exec ${SCHEME-guile} -L . --no-auto-compile -e '(configure)'
|
||||||
(enable-silent-rules)
|
(enable-silent-rules)
|
||||||
(with-system-libc)
|
(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-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)))
|
(getopt-long args option-spec)))
|
||||||
|
|
||||||
|
@ -454,14 +453,14 @@ Some influential environment variables:
|
||||||
(deps (fold (lambda (program results)
|
(deps (fold (lambda (program results)
|
||||||
(cons (check-program-version program) results))
|
(cons (check-program-version program) results))
|
||||||
'()
|
'()
|
||||||
(list (make-dep "hex2" #:version '(1 4 0))
|
(list (make-dep "kaem" #:version '(0 6) #:optional? #t)
|
||||||
(make-dep "M1" #:version '(1 4 0))
|
(make-dep "M2-Planet" #:version '(0 1 3) #:optional? #t)
|
||||||
(make-dep "blood-elf" #:version '(2 0 0))
|
(make-dep "hex2")
|
||||||
(make-dep "kaem" #:version '(1 0 0) #:optional? #t)
|
(make-dep "M1")
|
||||||
(make-dep "M2-Planet" #:version '(1 9 0) #:optional? #t)
|
(make-dep "blood-elf")
|
||||||
(make-dep "diff" #:optional? #t)
|
(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 "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 "mes" #:version '(0 20) #:optional? #t)
|
||||||
(make-dep "guix" #:version '() #:optional? #t)
|
(make-dep "guix" #:version '() #:optional? #t)
|
||||||
(make-dep "ar" #:version '(2 10) #:optional? #t)
|
(make-dep "ar" #:version '(2 10) #:optional? #t)
|
||||||
(make-dep "sh" #:optional? #t)
|
(make-dep "sh" #:optional? #t)
|
||||||
|
@ -482,7 +481,7 @@ Some influential environment variables:
|
||||||
(guile (file-name "guile" deps))
|
(guile (file-name "guile" deps))
|
||||||
;; See https://bugs.gnu.org/43831; use -O1 with Guile-3
|
;; See https://bugs.gnu.org/43831; use -O1 with Guile-3
|
||||||
(guild-optimize (let ((guile-version (and=> (find-dep "guile" deps) dependency-version-found)))
|
(guild-optimize (let ((guile-version (and=> (find-dep "guile" deps) dependency-version-found)))
|
||||||
(and guile-version (tuple< '(2 9) guile-version) "-O1")))
|
(and guile-version (tuple< '(2) 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 (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)
|
||||||
deps))
|
deps))
|
||||||
|
@ -494,7 +493,6 @@ Some influential environment variables:
|
||||||
(file-name "cc" deps)
|
(file-name "cc" deps)
|
||||||
(file-name "cc-v" deps)
|
(file-name "cc-v" deps)
|
||||||
(file-name "mescc" deps)))
|
(file-name "mescc" deps)))
|
||||||
(m2-planet (file-name "M2-Planet" deps))
|
|
||||||
(deps (if cc
|
(deps (if cc
|
||||||
(cons* (check-header-c cc (make-dep "limits.h"))
|
(cons* (check-header-c cc (make-dep "limits.h"))
|
||||||
(check-header-c cc (make-dep "stdio.h" #:optional? #t))
|
(check-header-c cc (make-dep "stdio.h" #:optional? #t))
|
||||||
|
@ -630,7 +628,7 @@ See \"Porting GNU Mes\" in the manual, or try --with-courage\n" mes-system)
|
||||||
|
|
||||||
("@AR@" . ,(or (file-name "ar" deps) ""))
|
("@AR@" . ,(or (file-name "ar" deps) ""))
|
||||||
("@BASH@" . ,bash)
|
("@BASH@" . ,bash)
|
||||||
("@CC@" . ,(or cc ""))
|
("@CC@" . ,cc)
|
||||||
("@DIFF@" . ,(or (file-name "diff" deps) (string-append abs-top-builddir "/pre-inst-env diff.scm")))
|
("@DIFF@" . ,(or (file-name "diff" deps) (string-append abs-top-builddir "/pre-inst-env diff.scm")))
|
||||||
("@DOT@" . ,(or (file-name "dot" deps) ""))
|
("@DOT@" . ,(or (file-name "dot" deps) ""))
|
||||||
("@GIT@" . ,(or (file-name "git" deps) ""))
|
("@GIT@" . ,(or (file-name "git" deps) ""))
|
||||||
|
@ -707,13 +705,6 @@ See \"Porting GNU Mes\" in the manual, or try --with-courage\n" mes-system)
|
||||||
#define MES_VERSION \"" VERSION "\"
|
#define MES_VERSION \"" VERSION "\"
|
||||||
")))))
|
")))))
|
||||||
(substitute (string-append srcdest "build-aux/config.make.in") pairs #:target ".config.make"))
|
(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)))
|
(let ((make (and=> (file-name "make" deps) basename)))
|
||||||
(display (string-append "
|
(display (string-append "
|
||||||
|
|
20
configure.sh
20
configure.sh
|
@ -1,7 +1,7 @@
|
||||||
#! /bin/sh
|
#! /bin/sh
|
||||||
|
|
||||||
# GNU Mes --- Maxwell Equations of Software
|
# 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.
|
# This file is part of GNU Mes.
|
||||||
#
|
#
|
||||||
|
@ -20,7 +20,7 @@
|
||||||
|
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
VERSION=0.24.2
|
VERSION=0.22
|
||||||
srcdir=${srcdir-$(dirname $0)}
|
srcdir=${srcdir-$(dirname $0)}
|
||||||
srcdest=
|
srcdest=
|
||||||
if test "$srcdir" != "."; then
|
if test "$srcdir" != "."; then
|
||||||
|
@ -77,8 +77,8 @@ GUILE=${GUILE-$(command -v guile)} || true
|
||||||
HEX2=${HEX2-$(command -v hex2)}
|
HEX2=${HEX2-$(command -v hex2)}
|
||||||
LDPFLAGS=${LDFLAGS-}
|
LDPFLAGS=${LDFLAGS-}
|
||||||
M1=${M1-$(command -v M1)}
|
M1=${M1-$(command -v M1)}
|
||||||
M2_PLANET=${M2_PLANET-$(command -v M2-Planet)} || true
|
M2_PLANET=${M1-$(command -v M2-Planet)}
|
||||||
KAEM=${KAEM-$(command -v kaem)} || true
|
KAEM=${KAEM-$(command -v kaem)}
|
||||||
MES_FOR_BUILD=${MES_FOR_BUILD-$(command -v mes || command -v guile || echo mes)}
|
MES_FOR_BUILD=${MES_FOR_BUILD-$(command -v mes || command -v guile || echo mes)}
|
||||||
GIT=${GIT-$(command -v git)} || true
|
GIT=${GIT-$(command -v git)} || true
|
||||||
PERL=${PERL-$(command -v perl)} || true
|
PERL=${PERL-$(command -v perl)} || true
|
||||||
|
@ -221,13 +221,7 @@ elif $CC --version | grep tcc; then
|
||||||
compiler=gcc
|
compiler=gcc
|
||||||
else
|
else
|
||||||
compiler=mescc
|
compiler=mescc
|
||||||
if ! $CC --version; then
|
AR=${AR-$PWD/scripts/mesar}
|
||||||
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}
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
AR=${AR-$(command -v ar)} || true
|
AR=${AR-$(command -v ar)} || true
|
||||||
|
@ -271,10 +265,6 @@ cat >> include/mes/config.h <<EOF
|
||||||
#define MES_VERSION "$VERSION"
|
#define MES_VERSION "$VERSION"
|
||||||
EOF
|
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
|
cat <<EOF
|
||||||
GNU Mes is configured for
|
GNU Mes is configured for
|
||||||
compiler: $compiler
|
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
|
@display
|
||||||
Copyright @copyright{} 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc.
|
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
|
Everyone is permitted to copy and distribute verbatim copies
|
||||||
of this license document, but changing it is not allowed.
|
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
|
of the GNU Free Documentation License from time to time. Such new
|
||||||
versions will be similar in spirit to the present version, but may
|
versions will be similar in spirit to the present version, but may
|
||||||
differ in detail to address new problems or concerns. See
|
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.
|
Each version of the License is given a distinguishing version number.
|
||||||
If the Document specifies that a particular numbered version of this
|
If the Document specifies that a particular numbered version of this
|
||||||
|
|
|
@ -1,107 +1,123 @@
|
||||||
digraph "Guix bag" {
|
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/q8f5yjxp0kcdn2mwqf83bvhal71cnr71-gcc-mesboot-4.9.4.drv" [label = "gcc-mesboot@4.9.4", shape = box, fontname = Helvetica];
|
||||||
"/gnu/store/3va8hfvfyp6dbwqk3036kb25wbp0f81z-gcc-core-mesboot0-2.95.3.drv" -> "/gnu/store/8ghnzf9idpmva8l4n8fyvvgqlln4rddi-binutils-mesboot0-2.14.drv" [color = red];
|
"/gnu/store/q8f5yjxp0kcdn2mwqf83bvhal71cnr71-gcc-mesboot-4.9.4.drv" -> "/gnu/store/2lpg626q4x8v7hgqajywpq1rc8y72hzx-binutils-mesboot-2.20.1a.drv" [color = magenta];
|
||||||
"/gnu/store/3va8hfvfyp6dbwqk3036kb25wbp0f81z-gcc-core-mesboot0-2.95.3.drv" -> "/gnu/store/yx5dz5gi00q8h5i138h59j1jmbhr3qa4-bash-mesboot0-2.05b.drv" [color = red];
|
"/gnu/store/q8f5yjxp0kcdn2mwqf83bvhal71cnr71-gcc-mesboot-4.9.4.drv" -> "/gnu/store/7v6fpp5msmjbhmprikrfcj047016gd54-gcc-mesboot1-wrapper-4.7.4.drv" [color = magenta];
|
||||||
"/gnu/store/3va8hfvfyp6dbwqk3036kb25wbp0f81z-gcc-core-mesboot0-2.95.3.drv" -> "/gnu/store/yy8bxckakx5f4rpvqfggrfy21y7bn53g-bzip2-mesboot-1.0.8.drv" [color = red];
|
"/gnu/store/q8f5yjxp0kcdn2mwqf83bvhal71cnr71-gcc-mesboot-4.9.4.drv" -> "/gnu/store/7pllq0crksfkr7856y1pawcy4scc7l4q-gcc-mesboot1-4.7.4.drv" [color = magenta];
|
||||||
"/gnu/store/3va8hfvfyp6dbwqk3036kb25wbp0f81z-gcc-core-mesboot0-2.95.3.drv" -> "/gnu/store/qyphha8i1pylf10pm76400kq5d07zsvr-gzip-mesboot-1.2.4.drv" [color = red];
|
"/gnu/store/q8f5yjxp0kcdn2mwqf83bvhal71cnr71-gcc-mesboot-4.9.4.drv" -> "/gnu/store/lp6fycqqd8adndlfylh4mlihm0qakxzw-glibc-mesboot-2.16.0.drv" [color = magenta];
|
||||||
"/gnu/store/3va8hfvfyp6dbwqk3036kb25wbp0f81z-gcc-core-mesboot0-2.95.3.drv" -> "/gnu/store/vn42sjmbh0zr9wn9lnbsdrxlh1zihx50-patch-mesboot-2.5.9.drv" [color = red];
|
"/gnu/store/q8f5yjxp0kcdn2mwqf83bvhal71cnr71-gcc-mesboot-4.9.4.drv" -> "/gnu/store/7wqw4023spvggi15vcxyxvivxa4rmmv8-bootstrap-binaries-0.drv" [color = magenta];
|
||||||
"/gnu/store/3va8hfvfyp6dbwqk3036kb25wbp0f81z-gcc-core-mesboot0-2.95.3.drv" -> "/gnu/store/16w6l2c80hh98kfykal9hpbm93cscbcg-sed-mesboot0-1.18.drv" [color = red];
|
"/gnu/store/q8f5yjxp0kcdn2mwqf83bvhal71cnr71-gcc-mesboot-4.9.4.drv" -> "/gnu/store/7wqw4023spvggi15vcxyxvivxa4rmmv8-bootstrap-binaries-0.drv" [color = magenta];
|
||||||
"/gnu/store/3va8hfvfyp6dbwqk3036kb25wbp0f81z-gcc-core-mesboot0-2.95.3.drv" -> "/gnu/store/yl8gsvanaj8wgngmgc4an06g5ybadad2-gash-utils-boot-0.1.0.drv" [color = red];
|
"/gnu/store/q8f5yjxp0kcdn2mwqf83bvhal71cnr71-gcc-mesboot-4.9.4.drv" -> "/gnu/store/r50fj43103526ga6pi2f9jkk4gvaav7m-diffutils-mesboot-2.7.drv" [color = magenta];
|
||||||
"/gnu/store/3va8hfvfyp6dbwqk3036kb25wbp0f81z-gcc-core-mesboot0-2.95.3.drv" -> "/gnu/store/h1m81zsyi3l4yd9r7pd3ffanb61pszxy-tcc-boot-0.9.27.drv" [color = red];
|
"/gnu/store/q8f5yjxp0kcdn2mwqf83bvhal71cnr71-gcc-mesboot-4.9.4.drv" -> "/gnu/store/r0z9bix88pz0wf6sgcn9185iwcsdracs-linux-libre-headers-bootstrap-0.drv" [color = magenta];
|
||||||
"/gnu/store/3va8hfvfyp6dbwqk3036kb25wbp0f81z-gcc-core-mesboot0-2.95.3.drv" -> "/gnu/store/hlm2wxhh0irfjnds4i86imdqi13iwj81-make-mesboot0-3.80.drv" [color = red];
|
"/gnu/store/q8f5yjxp0kcdn2mwqf83bvhal71cnr71-gcc-mesboot-4.9.4.drv" -> "/gnu/store/5ad88jy4a1gpbslzdiksk7zjyh28wzkr-make-mesboot-3.82.drv" [color = magenta];
|
||||||
"/gnu/store/3va8hfvfyp6dbwqk3036kb25wbp0f81z-gcc-core-mesboot0-2.95.3.drv" -> "/gnu/store/jrf5jckbwk949npav1p62vgcg95lr4mx-gash-boot-0.2.0.drv" [color = red];
|
"/gnu/store/2lpg626q4x8v7hgqajywpq1rc8y72hzx-binutils-mesboot-2.20.1a.drv" [label = "binutils-mesboot@2.20.1a", shape = box, fontname = Helvetica];
|
||||||
"/gnu/store/3va8hfvfyp6dbwqk3036kb25wbp0f81z-gcc-core-mesboot0-2.95.3.drv" -> "/gnu/store/yl8gsvanaj8wgngmgc4an06g5ybadad2-gash-utils-boot-0.1.0.drv" [color = red];
|
"/gnu/store/2lpg626q4x8v7hgqajywpq1rc8y72hzx-binutils-mesboot-2.20.1a.drv" -> "/gnu/store/x9shp86cz9f4rb5xvhs37zzxg1ngi4dr-binutils-mesboot0-2.20.1a.drv" [color = magenta];
|
||||||
"/gnu/store/3va8hfvfyp6dbwqk3036kb25wbp0f81z-gcc-core-mesboot0-2.95.3.drv" -> "/gnu/store/w77kjhmj4c4sncndnh0kvf0jfpwpradm-bootar-1a.drv" [color = red];
|
"/gnu/store/2lpg626q4x8v7hgqajywpq1rc8y72hzx-binutils-mesboot-2.20.1a.drv" -> "/gnu/store/2633565gzh4jqh7c5zf6i0iy9yxqigcv-glibc-mesboot0-2.2.5.drv" [color = magenta];
|
||||||
"/gnu/store/3va8hfvfyp6dbwqk3036kb25wbp0f81z-gcc-core-mesboot0-2.95.3.drv" -> "/gnu/store/qs4086i9b9q0b74l4wjqgzbdc3c0f58f-guile-bootstrap-2.0.drv" [color = red];
|
"/gnu/store/2lpg626q4x8v7hgqajywpq1rc8y72hzx-binutils-mesboot-2.20.1a.drv" -> "/gnu/store/slnyk8gbnvfwy1m1was8myivpss58idd-gcc-mesboot0-2.95.3.drv" [color = magenta];
|
||||||
"/gnu/store/8ghnzf9idpmva8l4n8fyvvgqlln4rddi-binutils-mesboot0-2.14.drv" [label = "binutils-mesboot0@2.14", shape = box, fontname = sans];
|
"/gnu/store/2lpg626q4x8v7hgqajywpq1rc8y72hzx-binutils-mesboot-2.20.1a.drv" -> "/gnu/store/7wqw4023spvggi15vcxyxvivxa4rmmv8-bootstrap-binaries-0.drv" [color = magenta];
|
||||||
"/gnu/store/8ghnzf9idpmva8l4n8fyvvgqlln4rddi-binutils-mesboot0-2.14.drv" -> "/gnu/store/yx5dz5gi00q8h5i138h59j1jmbhr3qa4-bash-mesboot0-2.05b.drv" [color = cyan3];
|
"/gnu/store/2lpg626q4x8v7hgqajywpq1rc8y72hzx-binutils-mesboot-2.20.1a.drv" -> "/gnu/store/7wqw4023spvggi15vcxyxvivxa4rmmv8-bootstrap-binaries-0.drv" [color = magenta];
|
||||||
"/gnu/store/8ghnzf9idpmva8l4n8fyvvgqlln4rddi-binutils-mesboot0-2.14.drv" -> "/gnu/store/yy8bxckakx5f4rpvqfggrfy21y7bn53g-bzip2-mesboot-1.0.8.drv" [color = cyan3];
|
"/gnu/store/2lpg626q4x8v7hgqajywpq1rc8y72hzx-binutils-mesboot-2.20.1a.drv" -> "/gnu/store/r50fj43103526ga6pi2f9jkk4gvaav7m-diffutils-mesboot-2.7.drv" [color = magenta];
|
||||||
"/gnu/store/8ghnzf9idpmva8l4n8fyvvgqlln4rddi-binutils-mesboot0-2.14.drv" -> "/gnu/store/qyphha8i1pylf10pm76400kq5d07zsvr-gzip-mesboot-1.2.4.drv" [color = cyan3];
|
"/gnu/store/2lpg626q4x8v7hgqajywpq1rc8y72hzx-binutils-mesboot-2.20.1a.drv" -> "/gnu/store/r0z9bix88pz0wf6sgcn9185iwcsdracs-linux-libre-headers-bootstrap-0.drv" [color = magenta];
|
||||||
"/gnu/store/8ghnzf9idpmva8l4n8fyvvgqlln4rddi-binutils-mesboot0-2.14.drv" -> "/gnu/store/vn42sjmbh0zr9wn9lnbsdrxlh1zihx50-patch-mesboot-2.5.9.drv" [color = cyan3];
|
"/gnu/store/2lpg626q4x8v7hgqajywpq1rc8y72hzx-binutils-mesboot-2.20.1a.drv" -> "/gnu/store/57da9mdiqhyn72m8wv00pdvzqi2ng4xb-make-mesboot0-3.80.drv" [color = magenta];
|
||||||
"/gnu/store/8ghnzf9idpmva8l4n8fyvvgqlln4rddi-binutils-mesboot0-2.14.drv" -> "/gnu/store/16w6l2c80hh98kfykal9hpbm93cscbcg-sed-mesboot0-1.18.drv" [color = cyan3];
|
"/gnu/store/x9shp86cz9f4rb5xvhs37zzxg1ngi4dr-binutils-mesboot0-2.20.1a.drv" [label = "binutils-mesboot0@2.20.1a", shape = box, fontname = Helvetica];
|
||||||
"/gnu/store/8ghnzf9idpmva8l4n8fyvvgqlln4rddi-binutils-mesboot0-2.14.drv" -> "/gnu/store/yl8gsvanaj8wgngmgc4an06g5ybadad2-gash-utils-boot-0.1.0.drv" [color = cyan3];
|
"/gnu/store/x9shp86cz9f4rb5xvhs37zzxg1ngi4dr-binutils-mesboot0-2.20.1a.drv" -> "/gnu/store/fglx0fz62bygkdxxg878j7x9pfl37zhh-tcc-boot-0.9.27.drv" [color = red];
|
||||||
"/gnu/store/8ghnzf9idpmva8l4n8fyvvgqlln4rddi-binutils-mesboot0-2.14.drv" -> "/gnu/store/h1m81zsyi3l4yd9r7pd3ffanb61pszxy-tcc-boot-0.9.27.drv" [color = cyan3];
|
"/gnu/store/x9shp86cz9f4rb5xvhs37zzxg1ngi4dr-binutils-mesboot0-2.20.1a.drv" -> "/gnu/store/7wqw4023spvggi15vcxyxvivxa4rmmv8-bootstrap-binaries-0.drv" [color = red];
|
||||||
"/gnu/store/8ghnzf9idpmva8l4n8fyvvgqlln4rddi-binutils-mesboot0-2.14.drv" -> "/gnu/store/hlm2wxhh0irfjnds4i86imdqi13iwj81-make-mesboot0-3.80.drv" [color = cyan3];
|
"/gnu/store/x9shp86cz9f4rb5xvhs37zzxg1ngi4dr-binutils-mesboot0-2.20.1a.drv" -> "/gnu/store/7wqw4023spvggi15vcxyxvivxa4rmmv8-bootstrap-binaries-0.drv" [color = red];
|
||||||
"/gnu/store/8ghnzf9idpmva8l4n8fyvvgqlln4rddi-binutils-mesboot0-2.14.drv" -> "/gnu/store/jrf5jckbwk949npav1p62vgcg95lr4mx-gash-boot-0.2.0.drv" [color = cyan3];
|
"/gnu/store/x9shp86cz9f4rb5xvhs37zzxg1ngi4dr-binutils-mesboot0-2.20.1a.drv" -> "/gnu/store/r50fj43103526ga6pi2f9jkk4gvaav7m-diffutils-mesboot-2.7.drv" [color = red];
|
||||||
"/gnu/store/8ghnzf9idpmva8l4n8fyvvgqlln4rddi-binutils-mesboot0-2.14.drv" -> "/gnu/store/yl8gsvanaj8wgngmgc4an06g5ybadad2-gash-utils-boot-0.1.0.drv" [color = cyan3];
|
"/gnu/store/x9shp86cz9f4rb5xvhs37zzxg1ngi4dr-binutils-mesboot0-2.20.1a.drv" -> "/gnu/store/57da9mdiqhyn72m8wv00pdvzqi2ng4xb-make-mesboot0-3.80.drv" [color = red];
|
||||||
"/gnu/store/8ghnzf9idpmva8l4n8fyvvgqlln4rddi-binutils-mesboot0-2.14.drv" -> "/gnu/store/w77kjhmj4c4sncndnh0kvf0jfpwpradm-bootar-1a.drv" [color = cyan3];
|
"/gnu/store/fglx0fz62bygkdxxg878j7x9pfl37zhh-tcc-boot-0.9.27.drv" [label = "tcc-boot@0.9.27", shape = box, fontname = Helvetica];
|
||||||
"/gnu/store/8ghnzf9idpmva8l4n8fyvvgqlln4rddi-binutils-mesboot0-2.14.drv" -> "/gnu/store/qs4086i9b9q0b74l4wjqgzbdc3c0f58f-guile-bootstrap-2.0.drv" [color = cyan3];
|
"/gnu/store/fglx0fz62bygkdxxg878j7x9pfl37zhh-tcc-boot-0.9.27.drv" -> "/gnu/store/mw6swkryp89aml4jzac5lm8kmcv5k6gy-mes-boot-0.19.drv" [color = dimgrey];
|
||||||
"/gnu/store/yx5dz5gi00q8h5i138h59j1jmbhr3qa4-bash-mesboot0-2.05b.drv" [label = "bash-mesboot0@2.05b", shape = box, fontname = sans];
|
"/gnu/store/fglx0fz62bygkdxxg878j7x9pfl37zhh-tcc-boot-0.9.27.drv" -> "/gnu/store/nvhjn6b5hi4mj7wnjxrmj0dmdigq9m2z-tcc-boot0-0.9.26-6.c004e9a.drv" [color = dimgrey];
|
||||||
"/gnu/store/yx5dz5gi00q8h5i138h59j1jmbhr3qa4-bash-mesboot0-2.05b.drv" -> "/gnu/store/hlm2wxhh0irfjnds4i86imdqi13iwj81-make-mesboot0-3.80.drv" [color = darkgoldenrod];
|
"/gnu/store/fglx0fz62bygkdxxg878j7x9pfl37zhh-tcc-boot-0.9.27.drv" -> "/gnu/store/7wqw4023spvggi15vcxyxvivxa4rmmv8-bootstrap-binaries-0.drv" [color = dimgrey];
|
||||||
"/gnu/store/yx5dz5gi00q8h5i138h59j1jmbhr3qa4-bash-mesboot0-2.05b.drv" -> "/gnu/store/0izhx7j1n6lcpcbvy9i9pyjkzjpbxrcj-tcc-boot0-0.9.26-1103-g6e62e0e.drv" [color = darkgoldenrod];
|
"/gnu/store/mw6swkryp89aml4jzac5lm8kmcv5k6gy-mes-boot-0.19.drv" [label = "mes-boot@0.19", shape = box, fontname = Helvetica];
|
||||||
"/gnu/store/yx5dz5gi00q8h5i138h59j1jmbhr3qa4-bash-mesboot0-2.05b.drv" -> "/gnu/store/jrf5jckbwk949npav1p62vgcg95lr4mx-gash-boot-0.2.0.drv" [color = darkgoldenrod];
|
"/gnu/store/mw6swkryp89aml4jzac5lm8kmcv5k6gy-mes-boot-0.19.drv" -> "/gnu/store/msykyiih9lwrd86x00vs00i8s5ipjks4-bootstrap-mescc-tools-0.5.2.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/mw6swkryp89aml4jzac5lm8kmcv5k6gy-mes-boot-0.19.drv" -> "/gnu/store/7wqw4023spvggi15vcxyxvivxa4rmmv8-bootstrap-binaries-0.drv" [color = darkgoldenrod];
|
||||||
"/gnu/store/yx5dz5gi00q8h5i138h59j1jmbhr3qa4-bash-mesboot0-2.05b.drv" -> "/gnu/store/w77kjhmj4c4sncndnh0kvf0jfpwpradm-bootar-1a.drv" [color = darkgoldenrod];
|
"/gnu/store/mw6swkryp89aml4jzac5lm8kmcv5k6gy-mes-boot-0.19.drv" -> "/gnu/store/cfw60j3987wrvb26f2bpbw5l5q6q53fj-bootstrap-mes-0.drv" [color = darkgoldenrod];
|
||||||
"/gnu/store/yx5dz5gi00q8h5i138h59j1jmbhr3qa4-bash-mesboot0-2.05b.drv" -> "/gnu/store/qs4086i9b9q0b74l4wjqgzbdc3c0f58f-guile-bootstrap-2.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/hlm2wxhh0irfjnds4i86imdqi13iwj81-make-mesboot0-3.80.drv" [label = "make-mesboot0@3.80", shape = box, fontname = sans];
|
"/gnu/store/7wqw4023spvggi15vcxyxvivxa4rmmv8-bootstrap-binaries-0.drv" [label = "bootstrap-binaries@0", shape = box, fontname = Helvetica];
|
||||||
"/gnu/store/hlm2wxhh0irfjnds4i86imdqi13iwj81-make-mesboot0-3.80.drv" -> "/gnu/store/0izhx7j1n6lcpcbvy9i9pyjkzjpbxrcj-tcc-boot0-0.9.26-1103-g6e62e0e.drv" [color = magenta];
|
"/gnu/store/cfw60j3987wrvb26f2bpbw5l5q6q53fj-bootstrap-mes-0.drv" [label = "bootstrap-mes@0", shape = box, fontname = Helvetica];
|
||||||
"/gnu/store/hlm2wxhh0irfjnds4i86imdqi13iwj81-make-mesboot0-3.80.drv" -> "/gnu/store/jrf5jckbwk949npav1p62vgcg95lr4mx-gash-boot-0.2.0.drv" [color = magenta];
|
"/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/hlm2wxhh0irfjnds4i86imdqi13iwj81-make-mesboot0-3.80.drv" -> "/gnu/store/yl8gsvanaj8wgngmgc4an06g5ybadad2-gash-utils-boot-0.1.0.drv" [color = magenta];
|
"/gnu/store/nvhjn6b5hi4mj7wnjxrmj0dmdigq9m2z-tcc-boot0-0.9.26-6.c004e9a.drv" -> "/gnu/store/mw6swkryp89aml4jzac5lm8kmcv5k6gy-mes-boot-0.19.drv" [color = magenta];
|
||||||
"/gnu/store/hlm2wxhh0irfjnds4i86imdqi13iwj81-make-mesboot0-3.80.drv" -> "/gnu/store/w77kjhmj4c4sncndnh0kvf0jfpwpradm-bootar-1a.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/hlm2wxhh0irfjnds4i86imdqi13iwj81-make-mesboot0-3.80.drv" -> "/gnu/store/qs4086i9b9q0b74l4wjqgzbdc3c0f58f-guile-bootstrap-2.0.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/0izhx7j1n6lcpcbvy9i9pyjkzjpbxrcj-tcc-boot0-0.9.26-1103-g6e62e0e.drv" [label = "tcc-boot0@0.9.26-1103-g6e62e0e", shape = box, fontname = sans];
|
"/gnu/store/nvhjn6b5hi4mj7wnjxrmj0dmdigq9m2z-tcc-boot0-0.9.26-6.c004e9a.drv" -> "/gnu/store/cfw60j3987wrvb26f2bpbw5l5q6q53fj-bootstrap-mes-0.drv" [color = magenta];
|
||||||
"/gnu/store/0izhx7j1n6lcpcbvy9i9pyjkzjpbxrcj-tcc-boot0-0.9.26-1103-g6e62e0e.drv" -> "/gnu/store/iny72b5k1f531xv7fr2i31j4gqknjv2l-mes-boot-0.22.drv" [color = darkseagreen];
|
"/gnu/store/r50fj43103526ga6pi2f9jkk4gvaav7m-diffutils-mesboot-2.7.drv" [label = "diffutils-mesboot@2.7", shape = box, fontname = Helvetica];
|
||||||
"/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/r50fj43103526ga6pi2f9jkk4gvaav7m-diffutils-mesboot-2.7.drv" -> "/gnu/store/mw6swkryp89aml4jzac5lm8kmcv5k6gy-mes-boot-0.19.drv" [color = peachpuff4];
|
||||||
"/gnu/store/0izhx7j1n6lcpcbvy9i9pyjkzjpbxrcj-tcc-boot0-0.9.26-1103-g6e62e0e.drv" -> "/gnu/store/jrf5jckbwk949npav1p62vgcg95lr4mx-gash-boot-0.2.0.drv" [color = darkseagreen];
|
"/gnu/store/r50fj43103526ga6pi2f9jkk4gvaav7m-diffutils-mesboot-2.7.drv" -> "/gnu/store/fglx0fz62bygkdxxg878j7x9pfl37zhh-tcc-boot-0.9.27.drv" [color = peachpuff4];
|
||||||
"/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/r50fj43103526ga6pi2f9jkk4gvaav7m-diffutils-mesboot-2.7.drv" -> "/gnu/store/7wqw4023spvggi15vcxyxvivxa4rmmv8-bootstrap-binaries-0.drv" [color = peachpuff4];
|
||||||
"/gnu/store/0izhx7j1n6lcpcbvy9i9pyjkzjpbxrcj-tcc-boot0-0.9.26-1103-g6e62e0e.drv" -> "/gnu/store/w77kjhmj4c4sncndnh0kvf0jfpwpradm-bootar-1a.drv" [color = darkseagreen];
|
"/gnu/store/r50fj43103526ga6pi2f9jkk4gvaav7m-diffutils-mesboot-2.7.drv" -> "/gnu/store/7wqw4023spvggi15vcxyxvivxa4rmmv8-bootstrap-binaries-0.drv" [color = peachpuff4];
|
||||||
"/gnu/store/0izhx7j1n6lcpcbvy9i9pyjkzjpbxrcj-tcc-boot0-0.9.26-1103-g6e62e0e.drv" -> "/gnu/store/qs4086i9b9q0b74l4wjqgzbdc3c0f58f-guile-bootstrap-2.0.drv" [color = darkseagreen];
|
"/gnu/store/r50fj43103526ga6pi2f9jkk4gvaav7m-diffutils-mesboot-2.7.drv" -> "/gnu/store/57da9mdiqhyn72m8wv00pdvzqi2ng4xb-make-mesboot0-3.80.drv" [color = peachpuff4];
|
||||||
"/gnu/store/iny72b5k1f531xv7fr2i31j4gqknjv2l-mes-boot-0.22.drv" [label = "mes-boot@0.22", shape = box, fontname = sans];
|
"/gnu/store/57da9mdiqhyn72m8wv00pdvzqi2ng4xb-make-mesboot0-3.80.drv" [label = "make-mesboot0@3.80", shape = box, fontname = Helvetica];
|
||||||
"/gnu/store/iny72b5k1f531xv7fr2i31j4gqknjv2l-mes-boot-0.22.drv" -> "/gnu/store/xdhz4v7icrfwdbq1j5j052id8l04arms-bootstrap-mes-rewired-0.19.drv" [color = peachpuff4];
|
"/gnu/store/57da9mdiqhyn72m8wv00pdvzqi2ng4xb-make-mesboot0-3.80.drv" -> "/gnu/store/fglx0fz62bygkdxxg878j7x9pfl37zhh-tcc-boot-0.9.27.drv" [color = dimgrey];
|
||||||
"/gnu/store/iny72b5k1f531xv7fr2i31j4gqknjv2l-mes-boot-0.22.drv" -> "/gnu/store/a6nbjivhxp65wqj5s8rz0fnmwzqxmhry-bootstrap-mescc-tools-0.5.2.drv" [color = peachpuff4];
|
"/gnu/store/57da9mdiqhyn72m8wv00pdvzqi2ng4xb-make-mesboot0-3.80.drv" -> "/gnu/store/7wqw4023spvggi15vcxyxvivxa4rmmv8-bootstrap-binaries-0.drv" [color = dimgrey];
|
||||||
"/gnu/store/iny72b5k1f531xv7fr2i31j4gqknjv2l-mes-boot-0.22.drv" -> "/gnu/store/jrf5jckbwk949npav1p62vgcg95lr4mx-gash-boot-0.2.0.drv" [color = peachpuff4];
|
"/gnu/store/57da9mdiqhyn72m8wv00pdvzqi2ng4xb-make-mesboot0-3.80.drv" -> "/gnu/store/7wqw4023spvggi15vcxyxvivxa4rmmv8-bootstrap-binaries-0.drv" [color = dimgrey];
|
||||||
"/gnu/store/iny72b5k1f531xv7fr2i31j4gqknjv2l-mes-boot-0.22.drv" -> "/gnu/store/yl8gsvanaj8wgngmgc4an06g5ybadad2-gash-utils-boot-0.1.0.drv" [color = peachpuff4];
|
"/gnu/store/2633565gzh4jqh7c5zf6i0iy9yxqigcv-glibc-mesboot0-2.2.5.drv" [label = "glibc-mesboot0@2.2.5", shape = box, fontname = Helvetica];
|
||||||
"/gnu/store/iny72b5k1f531xv7fr2i31j4gqknjv2l-mes-boot-0.22.drv" -> "/gnu/store/w77kjhmj4c4sncndnh0kvf0jfpwpradm-bootar-1a.drv" [color = peachpuff4];
|
"/gnu/store/2633565gzh4jqh7c5zf6i0iy9yxqigcv-glibc-mesboot0-2.2.5.drv" -> "/gnu/store/x9shp86cz9f4rb5xvhs37zzxg1ngi4dr-binutils-mesboot0-2.20.1a.drv" [color = red];
|
||||||
"/gnu/store/iny72b5k1f531xv7fr2i31j4gqknjv2l-mes-boot-0.22.drv" -> "/gnu/store/qs4086i9b9q0b74l4wjqgzbdc3c0f58f-guile-bootstrap-2.0.drv" [color = peachpuff4];
|
"/gnu/store/2633565gzh4jqh7c5zf6i0iy9yxqigcv-glibc-mesboot0-2.2.5.drv" -> "/gnu/store/kcyh6k46ijm9nsq1as26rr0aq7rkx4f7-gcc-core-mesboot-2.95.3.drv" [color = red];
|
||||||
"/gnu/store/xdhz4v7icrfwdbq1j5j052id8l04arms-bootstrap-mes-rewired-0.19.drv" [label = "bootstrap-mes-rewired@0.19", shape = box, fontname = sans];
|
"/gnu/store/2633565gzh4jqh7c5zf6i0iy9yxqigcv-glibc-mesboot0-2.2.5.drv" -> "/gnu/store/7wqw4023spvggi15vcxyxvivxa4rmmv8-bootstrap-binaries-0.drv" [color = red];
|
||||||
"/gnu/store/xdhz4v7icrfwdbq1j5j052id8l04arms-bootstrap-mes-rewired-0.19.drv" -> "/gnu/store/r7bbw2ywmgqp6m5a1hp0fs4lhc51w3sq-bootstrap-mes-0.drv" [color = cyan3];
|
"/gnu/store/2633565gzh4jqh7c5zf6i0iy9yxqigcv-glibc-mesboot0-2.2.5.drv" -> "/gnu/store/7wqw4023spvggi15vcxyxvivxa4rmmv8-bootstrap-binaries-0.drv" [color = red];
|
||||||
"/gnu/store/xdhz4v7icrfwdbq1j5j052id8l04arms-bootstrap-mes-rewired-0.19.drv" -> "/gnu/store/jrf5jckbwk949npav1p62vgcg95lr4mx-gash-boot-0.2.0.drv" [color = cyan3];
|
"/gnu/store/2633565gzh4jqh7c5zf6i0iy9yxqigcv-glibc-mesboot0-2.2.5.drv" -> "/gnu/store/r50fj43103526ga6pi2f9jkk4gvaav7m-diffutils-mesboot-2.7.drv" [color = red];
|
||||||
"/gnu/store/r7bbw2ywmgqp6m5a1hp0fs4lhc51w3sq-bootstrap-mes-0.drv" [label = "bootstrap-mes@0", shape = box, fontname = sans];
|
"/gnu/store/2633565gzh4jqh7c5zf6i0iy9yxqigcv-glibc-mesboot0-2.2.5.drv" -> "/gnu/store/hnxdqmhjdvh1ra9ar4lxl25xf6a7bhzz-mesboot-headers-0.19.drv" [color = red];
|
||||||
"/gnu/store/jrf5jckbwk949npav1p62vgcg95lr4mx-gash-boot-0.2.0.drv" [label = "gash-boot@0.2.0", shape = box, fontname = sans];
|
"/gnu/store/2633565gzh4jqh7c5zf6i0iy9yxqigcv-glibc-mesboot0-2.2.5.drv" -> "/gnu/store/57da9mdiqhyn72m8wv00pdvzqi2ng4xb-make-mesboot0-3.80.drv" [color = red];
|
||||||
"/gnu/store/jrf5jckbwk949npav1p62vgcg95lr4mx-gash-boot-0.2.0.drv" -> "/gnu/store/w77kjhmj4c4sncndnh0kvf0jfpwpradm-bootar-1a.drv" [color = darkviolet];
|
"/gnu/store/kcyh6k46ijm9nsq1as26rr0aq7rkx4f7-gcc-core-mesboot-2.95.3.drv" [label = "gcc-core-mesboot@2.95.3", shape = box, fontname = Helvetica];
|
||||||
"/gnu/store/jrf5jckbwk949npav1p62vgcg95lr4mx-gash-boot-0.2.0.drv" -> "/gnu/store/qs4086i9b9q0b74l4wjqgzbdc3c0f58f-guile-bootstrap-2.0.drv" [color = darkviolet];
|
"/gnu/store/kcyh6k46ijm9nsq1as26rr0aq7rkx4f7-gcc-core-mesboot-2.95.3.drv" -> "/gnu/store/x9shp86cz9f4rb5xvhs37zzxg1ngi4dr-binutils-mesboot0-2.20.1a.drv" [color = dimgrey];
|
||||||
"/gnu/store/w77kjhmj4c4sncndnh0kvf0jfpwpradm-bootar-1a.drv" [label = "bootar@1a", shape = box, fontname = sans];
|
"/gnu/store/kcyh6k46ijm9nsq1as26rr0aq7rkx4f7-gcc-core-mesboot-2.95.3.drv" -> "/gnu/store/fglx0fz62bygkdxxg878j7x9pfl37zhh-tcc-boot-0.9.27.drv" [color = dimgrey];
|
||||||
"/gnu/store/w77kjhmj4c4sncndnh0kvf0jfpwpradm-bootar-1a.drv" -> "/gnu/store/qs4086i9b9q0b74l4wjqgzbdc3c0f58f-guile-bootstrap-2.0.drv" [color = blue];
|
"/gnu/store/kcyh6k46ijm9nsq1as26rr0aq7rkx4f7-gcc-core-mesboot-2.95.3.drv" -> "/gnu/store/7wqw4023spvggi15vcxyxvivxa4rmmv8-bootstrap-binaries-0.drv" [color = dimgrey];
|
||||||
"/gnu/store/qs4086i9b9q0b74l4wjqgzbdc3c0f58f-guile-bootstrap-2.0.drv" [label = "guile-bootstrap@2.0", shape = box, fontname = sans];
|
"/gnu/store/kcyh6k46ijm9nsq1as26rr0aq7rkx4f7-gcc-core-mesboot-2.95.3.drv" -> "/gnu/store/7wqw4023spvggi15vcxyxvivxa4rmmv8-bootstrap-binaries-0.drv" [color = dimgrey];
|
||||||
"/gnu/store/a6nbjivhxp65wqj5s8rz0fnmwzqxmhry-bootstrap-mescc-tools-0.5.2.drv" [label = "bootstrap-mescc-tools@0.5.2", shape = box, fontname = sans];
|
"/gnu/store/kcyh6k46ijm9nsq1as26rr0aq7rkx4f7-gcc-core-mesboot-2.95.3.drv" -> "/gnu/store/r50fj43103526ga6pi2f9jkk4gvaav7m-diffutils-mesboot-2.7.drv" [color = dimgrey];
|
||||||
"/gnu/store/yl8gsvanaj8wgngmgc4an06g5ybadad2-gash-utils-boot-0.1.0.drv" [label = "gash-utils-boot@0.1.0", shape = box, fontname = sans];
|
"/gnu/store/kcyh6k46ijm9nsq1as26rr0aq7rkx4f7-gcc-core-mesboot-2.95.3.drv" -> "/gnu/store/57da9mdiqhyn72m8wv00pdvzqi2ng4xb-make-mesboot0-3.80.drv" [color = dimgrey];
|
||||||
"/gnu/store/yl8gsvanaj8wgngmgc4an06g5ybadad2-gash-utils-boot-0.1.0.drv" -> "/gnu/store/w77kjhmj4c4sncndnh0kvf0jfpwpradm-bootar-1a.drv" [color = blue];
|
"/gnu/store/hnxdqmhjdvh1ra9ar4lxl25xf6a7bhzz-mesboot-headers-0.19.drv" [label = "mesboot-headers@0.19", shape = box, fontname = Helvetica];
|
||||||
"/gnu/store/yl8gsvanaj8wgngmgc4an06g5ybadad2-gash-utils-boot-0.1.0.drv" -> "/gnu/store/jrf5jckbwk949npav1p62vgcg95lr4mx-gash-boot-0.2.0.drv" [color = blue];
|
"/gnu/store/hnxdqmhjdvh1ra9ar4lxl25xf6a7bhzz-mesboot-headers-0.19.drv" -> "/gnu/store/7wqw4023spvggi15vcxyxvivxa4rmmv8-bootstrap-binaries-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/hnxdqmhjdvh1ra9ar4lxl25xf6a7bhzz-mesboot-headers-0.19.drv" -> "/gnu/store/r0z9bix88pz0wf6sgcn9185iwcsdracs-linux-libre-headers-bootstrap-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/r0z9bix88pz0wf6sgcn9185iwcsdracs-linux-libre-headers-bootstrap-0.drv" [label = "linux-libre-headers-bootstrap@0", shape = box, fontname = Helvetica];
|
||||||
"/gnu/store/yy8bxckakx5f4rpvqfggrfy21y7bn53g-bzip2-mesboot-1.0.8.drv" -> "/gnu/store/hlm2wxhh0irfjnds4i86imdqi13iwj81-make-mesboot0-3.80.drv" [color = blue];
|
"/gnu/store/slnyk8gbnvfwy1m1was8myivpss58idd-gcc-mesboot0-2.95.3.drv" [label = "gcc-mesboot0@2.95.3", shape = box, fontname = Helvetica];
|
||||||
"/gnu/store/yy8bxckakx5f4rpvqfggrfy21y7bn53g-bzip2-mesboot-1.0.8.drv" -> "/gnu/store/0izhx7j1n6lcpcbvy9i9pyjkzjpbxrcj-tcc-boot0-0.9.26-1103-g6e62e0e.drv" [color = blue];
|
"/gnu/store/slnyk8gbnvfwy1m1was8myivpss58idd-gcc-mesboot0-2.95.3.drv" -> "/gnu/store/x9shp86cz9f4rb5xvhs37zzxg1ngi4dr-binutils-mesboot0-2.20.1a.drv" [color = darkseagreen];
|
||||||
"/gnu/store/yy8bxckakx5f4rpvqfggrfy21y7bn53g-bzip2-mesboot-1.0.8.drv" -> "/gnu/store/jrf5jckbwk949npav1p62vgcg95lr4mx-gash-boot-0.2.0.drv" [color = blue];
|
"/gnu/store/slnyk8gbnvfwy1m1was8myivpss58idd-gcc-mesboot0-2.95.3.drv" -> "/gnu/store/kcyh6k46ijm9nsq1as26rr0aq7rkx4f7-gcc-core-mesboot-2.95.3.drv" [color = darkseagreen];
|
||||||
"/gnu/store/yy8bxckakx5f4rpvqfggrfy21y7bn53g-bzip2-mesboot-1.0.8.drv" -> "/gnu/store/yl8gsvanaj8wgngmgc4an06g5ybadad2-gash-utils-boot-0.1.0.drv" [color = blue];
|
"/gnu/store/slnyk8gbnvfwy1m1was8myivpss58idd-gcc-mesboot0-2.95.3.drv" -> "/gnu/store/2633565gzh4jqh7c5zf6i0iy9yxqigcv-glibc-mesboot0-2.2.5.drv" [color = darkseagreen];
|
||||||
"/gnu/store/yy8bxckakx5f4rpvqfggrfy21y7bn53g-bzip2-mesboot-1.0.8.drv" -> "/gnu/store/w77kjhmj4c4sncndnh0kvf0jfpwpradm-bootar-1a.drv" [color = blue];
|
"/gnu/store/slnyk8gbnvfwy1m1was8myivpss58idd-gcc-mesboot0-2.95.3.drv" -> "/gnu/store/7wqw4023spvggi15vcxyxvivxa4rmmv8-bootstrap-binaries-0.drv" [color = darkseagreen];
|
||||||
"/gnu/store/yy8bxckakx5f4rpvqfggrfy21y7bn53g-bzip2-mesboot-1.0.8.drv" -> "/gnu/store/qs4086i9b9q0b74l4wjqgzbdc3c0f58f-guile-bootstrap-2.0.drv" [color = blue];
|
"/gnu/store/slnyk8gbnvfwy1m1was8myivpss58idd-gcc-mesboot0-2.95.3.drv" -> "/gnu/store/7wqw4023spvggi15vcxyxvivxa4rmmv8-bootstrap-binaries-0.drv" [color = darkseagreen];
|
||||||
"/gnu/store/qyphha8i1pylf10pm76400kq5d07zsvr-gzip-mesboot-1.2.4.drv" [label = "gzip-mesboot@1.2.4", shape = box, fontname = sans];
|
"/gnu/store/slnyk8gbnvfwy1m1was8myivpss58idd-gcc-mesboot0-2.95.3.drv" -> "/gnu/store/r50fj43103526ga6pi2f9jkk4gvaav7m-diffutils-mesboot-2.7.drv" [color = darkseagreen];
|
||||||
"/gnu/store/qyphha8i1pylf10pm76400kq5d07zsvr-gzip-mesboot-1.2.4.drv" -> "/gnu/store/0izhx7j1n6lcpcbvy9i9pyjkzjpbxrcj-tcc-boot0-0.9.26-1103-g6e62e0e.drv" [color = red];
|
"/gnu/store/slnyk8gbnvfwy1m1was8myivpss58idd-gcc-mesboot0-2.95.3.drv" -> "/gnu/store/r0z9bix88pz0wf6sgcn9185iwcsdracs-linux-libre-headers-bootstrap-0.drv" [color = darkseagreen];
|
||||||
"/gnu/store/qyphha8i1pylf10pm76400kq5d07zsvr-gzip-mesboot-1.2.4.drv" -> "/gnu/store/jrf5jckbwk949npav1p62vgcg95lr4mx-gash-boot-0.2.0.drv" [color = red];
|
"/gnu/store/slnyk8gbnvfwy1m1was8myivpss58idd-gcc-mesboot0-2.95.3.drv" -> "/gnu/store/57da9mdiqhyn72m8wv00pdvzqi2ng4xb-make-mesboot0-3.80.drv" [color = darkseagreen];
|
||||||
"/gnu/store/qyphha8i1pylf10pm76400kq5d07zsvr-gzip-mesboot-1.2.4.drv" -> "/gnu/store/yl8gsvanaj8wgngmgc4an06g5ybadad2-gash-utils-boot-0.1.0.drv" [color = red];
|
"/gnu/store/7v6fpp5msmjbhmprikrfcj047016gd54-gcc-mesboot1-wrapper-4.7.4.drv" [label = "gcc-mesboot1-wrapper@4.7.4", shape = box, fontname = Helvetica];
|
||||||
"/gnu/store/qyphha8i1pylf10pm76400kq5d07zsvr-gzip-mesboot-1.2.4.drv" -> "/gnu/store/w77kjhmj4c4sncndnh0kvf0jfpwpradm-bootar-1a.drv" [color = red];
|
"/gnu/store/7v6fpp5msmjbhmprikrfcj047016gd54-gcc-mesboot1-wrapper-4.7.4.drv" -> "/gnu/store/7wqw4023spvggi15vcxyxvivxa4rmmv8-bootstrap-binaries-0.drv" [color = red];
|
||||||
"/gnu/store/qyphha8i1pylf10pm76400kq5d07zsvr-gzip-mesboot-1.2.4.drv" -> "/gnu/store/qs4086i9b9q0b74l4wjqgzbdc3c0f58f-guile-bootstrap-2.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/vn42sjmbh0zr9wn9lnbsdrxlh1zihx50-patch-mesboot-2.5.9.drv" [label = "patch-mesboot@2.5.9", shape = box, fontname = sans];
|
"/gnu/store/7v6fpp5msmjbhmprikrfcj047016gd54-gcc-mesboot1-wrapper-4.7.4.drv" -> "/gnu/store/7pllq0crksfkr7856y1pawcy4scc7l4q-gcc-mesboot1-4.7.4.drv" [color = red];
|
||||||
"/gnu/store/vn42sjmbh0zr9wn9lnbsdrxlh1zihx50-patch-mesboot-2.5.9.drv" -> "/gnu/store/hlm2wxhh0irfjnds4i86imdqi13iwj81-make-mesboot0-3.80.drv" [color = darkseagreen];
|
"/gnu/store/lp6fycqqd8adndlfylh4mlihm0qakxzw-glibc-mesboot-2.16.0.drv" [label = "glibc-mesboot@2.16.0", shape = box, fontname = Helvetica];
|
||||||
"/gnu/store/vn42sjmbh0zr9wn9lnbsdrxlh1zihx50-patch-mesboot-2.5.9.drv" -> "/gnu/store/0izhx7j1n6lcpcbvy9i9pyjkzjpbxrcj-tcc-boot0-0.9.26-1103-g6e62e0e.drv" [color = darkseagreen];
|
"/gnu/store/lp6fycqqd8adndlfylh4mlihm0qakxzw-glibc-mesboot-2.16.0.drv" -> "/gnu/store/2lpg626q4x8v7hgqajywpq1rc8y72hzx-binutils-mesboot-2.20.1a.drv" [color = magenta];
|
||||||
"/gnu/store/vn42sjmbh0zr9wn9lnbsdrxlh1zihx50-patch-mesboot-2.5.9.drv" -> "/gnu/store/jrf5jckbwk949npav1p62vgcg95lr4mx-gash-boot-0.2.0.drv" [color = darkseagreen];
|
"/gnu/store/lp6fycqqd8adndlfylh4mlihm0qakxzw-glibc-mesboot-2.16.0.drv" -> "/gnu/store/2633565gzh4jqh7c5zf6i0iy9yxqigcv-glibc-mesboot0-2.2.5.drv" [color = magenta];
|
||||||
"/gnu/store/vn42sjmbh0zr9wn9lnbsdrxlh1zihx50-patch-mesboot-2.5.9.drv" -> "/gnu/store/yl8gsvanaj8wgngmgc4an06g5ybadad2-gash-utils-boot-0.1.0.drv" [color = darkseagreen];
|
"/gnu/store/lp6fycqqd8adndlfylh4mlihm0qakxzw-glibc-mesboot-2.16.0.drv" -> "/gnu/store/p9sl13frcs2wdcddkh20hc51l7lpavza-glibc-headers-mesboot-2.16.0.drv" [color = magenta];
|
||||||
"/gnu/store/vn42sjmbh0zr9wn9lnbsdrxlh1zihx50-patch-mesboot-2.5.9.drv" -> "/gnu/store/w77kjhmj4c4sncndnh0kvf0jfpwpradm-bootar-1a.drv" [color = darkseagreen];
|
"/gnu/store/lp6fycqqd8adndlfylh4mlihm0qakxzw-glibc-mesboot-2.16.0.drv" -> "/gnu/store/7pllq0crksfkr7856y1pawcy4scc7l4q-gcc-mesboot1-4.7.4.drv" [color = magenta];
|
||||||
"/gnu/store/vn42sjmbh0zr9wn9lnbsdrxlh1zihx50-patch-mesboot-2.5.9.drv" -> "/gnu/store/qs4086i9b9q0b74l4wjqgzbdc3c0f58f-guile-bootstrap-2.0.drv" [color = darkseagreen];
|
"/gnu/store/lp6fycqqd8adndlfylh4mlihm0qakxzw-glibc-mesboot-2.16.0.drv" -> "/gnu/store/7wqw4023spvggi15vcxyxvivxa4rmmv8-bootstrap-binaries-0.drv" [color = magenta];
|
||||||
"/gnu/store/16w6l2c80hh98kfykal9hpbm93cscbcg-sed-mesboot0-1.18.drv" [label = "sed-mesboot0@1.18", shape = box, fontname = sans];
|
"/gnu/store/lp6fycqqd8adndlfylh4mlihm0qakxzw-glibc-mesboot-2.16.0.drv" -> "/gnu/store/7wqw4023spvggi15vcxyxvivxa4rmmv8-bootstrap-binaries-0.drv" [color = magenta];
|
||||||
"/gnu/store/16w6l2c80hh98kfykal9hpbm93cscbcg-sed-mesboot0-1.18.drv" -> "/gnu/store/hlm2wxhh0irfjnds4i86imdqi13iwj81-make-mesboot0-3.80.drv" [color = darkgoldenrod];
|
"/gnu/store/lp6fycqqd8adndlfylh4mlihm0qakxzw-glibc-mesboot-2.16.0.drv" -> "/gnu/store/r50fj43103526ga6pi2f9jkk4gvaav7m-diffutils-mesboot-2.7.drv" [color = magenta];
|
||||||
"/gnu/store/16w6l2c80hh98kfykal9hpbm93cscbcg-sed-mesboot0-1.18.drv" -> "/gnu/store/0izhx7j1n6lcpcbvy9i9pyjkzjpbxrcj-tcc-boot0-0.9.26-1103-g6e62e0e.drv" [color = darkgoldenrod];
|
"/gnu/store/lp6fycqqd8adndlfylh4mlihm0qakxzw-glibc-mesboot-2.16.0.drv" -> "/gnu/store/r0z9bix88pz0wf6sgcn9185iwcsdracs-linux-libre-headers-bootstrap-0.drv" [color = magenta];
|
||||||
"/gnu/store/16w6l2c80hh98kfykal9hpbm93cscbcg-sed-mesboot0-1.18.drv" -> "/gnu/store/jrf5jckbwk949npav1p62vgcg95lr4mx-gash-boot-0.2.0.drv" [color = darkgoldenrod];
|
"/gnu/store/lp6fycqqd8adndlfylh4mlihm0qakxzw-glibc-mesboot-2.16.0.drv" -> "/gnu/store/5ad88jy4a1gpbslzdiksk7zjyh28wzkr-make-mesboot-3.82.drv" [color = magenta];
|
||||||
"/gnu/store/16w6l2c80hh98kfykal9hpbm93cscbcg-sed-mesboot0-1.18.drv" -> "/gnu/store/yl8gsvanaj8wgngmgc4an06g5ybadad2-gash-utils-boot-0.1.0.drv" [color = darkgoldenrod];
|
"/gnu/store/p9sl13frcs2wdcddkh20hc51l7lpavza-glibc-headers-mesboot-2.16.0.drv" [label = "glibc-headers-mesboot@2.16.0", shape = box, fontname = Helvetica];
|
||||||
"/gnu/store/16w6l2c80hh98kfykal9hpbm93cscbcg-sed-mesboot0-1.18.drv" -> "/gnu/store/w77kjhmj4c4sncndnh0kvf0jfpwpradm-bootar-1a.drv" [color = darkgoldenrod];
|
"/gnu/store/p9sl13frcs2wdcddkh20hc51l7lpavza-glibc-headers-mesboot-2.16.0.drv" -> "/gnu/store/2lpg626q4x8v7hgqajywpq1rc8y72hzx-binutils-mesboot-2.20.1a.drv" [color = darkgoldenrod];
|
||||||
"/gnu/store/16w6l2c80hh98kfykal9hpbm93cscbcg-sed-mesboot0-1.18.drv" -> "/gnu/store/qs4086i9b9q0b74l4wjqgzbdc3c0f58f-guile-bootstrap-2.0.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/h1m81zsyi3l4yd9r7pd3ffanb61pszxy-tcc-boot-0.9.27.drv" [label = "tcc-boot@0.9.27", shape = box, fontname = sans];
|
"/gnu/store/p9sl13frcs2wdcddkh20hc51l7lpavza-glibc-headers-mesboot-2.16.0.drv" -> "/gnu/store/7pllq0crksfkr7856y1pawcy4scc7l4q-gcc-mesboot1-4.7.4.drv" [color = darkgoldenrod];
|
||||||
"/gnu/store/h1m81zsyi3l4yd9r7pd3ffanb61pszxy-tcc-boot-0.9.27.drv" -> "/gnu/store/yy8bxckakx5f4rpvqfggrfy21y7bn53g-bzip2-mesboot-1.0.8.drv" [color = blue];
|
"/gnu/store/p9sl13frcs2wdcddkh20hc51l7lpavza-glibc-headers-mesboot-2.16.0.drv" -> "/gnu/store/hnxdqmhjdvh1ra9ar4lxl25xf6a7bhzz-mesboot-headers-0.19.drv" [color = darkgoldenrod];
|
||||||
"/gnu/store/h1m81zsyi3l4yd9r7pd3ffanb61pszxy-tcc-boot-0.9.27.drv" -> "/gnu/store/hlm2wxhh0irfjnds4i86imdqi13iwj81-make-mesboot0-3.80.drv" [color = blue];
|
"/gnu/store/p9sl13frcs2wdcddkh20hc51l7lpavza-glibc-headers-mesboot-2.16.0.drv" -> "/gnu/store/7wqw4023spvggi15vcxyxvivxa4rmmv8-bootstrap-binaries-0.drv" [color = darkgoldenrod];
|
||||||
"/gnu/store/h1m81zsyi3l4yd9r7pd3ffanb61pszxy-tcc-boot-0.9.27.drv" -> "/gnu/store/0izhx7j1n6lcpcbvy9i9pyjkzjpbxrcj-tcc-boot0-0.9.26-1103-g6e62e0e.drv" [color = blue];
|
"/gnu/store/p9sl13frcs2wdcddkh20hc51l7lpavza-glibc-headers-mesboot-2.16.0.drv" -> "/gnu/store/7wqw4023spvggi15vcxyxvivxa4rmmv8-bootstrap-binaries-0.drv" [color = darkgoldenrod];
|
||||||
"/gnu/store/h1m81zsyi3l4yd9r7pd3ffanb61pszxy-tcc-boot-0.9.27.drv" -> "/gnu/store/jrf5jckbwk949npav1p62vgcg95lr4mx-gash-boot-0.2.0.drv" [color = blue];
|
"/gnu/store/p9sl13frcs2wdcddkh20hc51l7lpavza-glibc-headers-mesboot-2.16.0.drv" -> "/gnu/store/r50fj43103526ga6pi2f9jkk4gvaav7m-diffutils-mesboot-2.7.drv" [color = darkgoldenrod];
|
||||||
"/gnu/store/h1m81zsyi3l4yd9r7pd3ffanb61pszxy-tcc-boot-0.9.27.drv" -> "/gnu/store/yl8gsvanaj8wgngmgc4an06g5ybadad2-gash-utils-boot-0.1.0.drv" [color = blue];
|
"/gnu/store/p9sl13frcs2wdcddkh20hc51l7lpavza-glibc-headers-mesboot-2.16.0.drv" -> "/gnu/store/r0z9bix88pz0wf6sgcn9185iwcsdracs-linux-libre-headers-bootstrap-0.drv" [color = darkgoldenrod];
|
||||||
"/gnu/store/h1m81zsyi3l4yd9r7pd3ffanb61pszxy-tcc-boot-0.9.27.drv" -> "/gnu/store/w77kjhmj4c4sncndnh0kvf0jfpwpradm-bootar-1a.drv" [color = blue];
|
"/gnu/store/p9sl13frcs2wdcddkh20hc51l7lpavza-glibc-headers-mesboot-2.16.0.drv" -> "/gnu/store/5ad88jy4a1gpbslzdiksk7zjyh28wzkr-make-mesboot-3.82.drv" [color = darkgoldenrod];
|
||||||
"/gnu/store/h1m81zsyi3l4yd9r7pd3ffanb61pszxy-tcc-boot-0.9.27.drv" -> "/gnu/store/qs4086i9b9q0b74l4wjqgzbdc3c0f58f-guile-bootstrap-2.0.drv" [color = blue];
|
"/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];
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
234
doc/mes.texi
234
doc/mes.texi
|
@ -13,7 +13,7 @@
|
||||||
@set OPENPGP-SIGNING-KEY-ID 1A858392E331EAFDB8C27FFBF3C1A0D9C1D65273
|
@set OPENPGP-SIGNING-KEY-ID 1A858392E331EAFDB8C27FFBF3C1A0D9C1D65273
|
||||||
|
|
||||||
@copying
|
@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
|
Permission is granted to copy, distribute and/or modify this document
|
||||||
under the terms of the GNU Free Documentation License, Version 1.3 or
|
under the terms of the GNU Free Documentation License, Version 1.3 or
|
||||||
|
@ -48,7 +48,7 @@ Edition @value{EDITION} @*
|
||||||
@contents
|
@contents
|
||||||
|
|
||||||
@c *********************************************************************
|
@c *********************************************************************
|
||||||
@node Top
|
@node Top, Introduction, (dir), (dir)
|
||||||
@top GNU Mes
|
@top GNU Mes
|
||||||
|
|
||||||
This document describes GNU Mes version @value{VERSION}, a bootstrappable
|
This document describes GNU Mes version @value{VERSION}, a bootstrappable
|
||||||
|
@ -72,19 +72,12 @@ Software Freedom
|
||||||
|
|
||||||
* Reproducible Builds:: Reproducibility and free software.
|
* Reproducible Builds:: Reproducibility and free software.
|
||||||
* Bootstrappable Builds:: The freedom to build a software without binary seed.
|
* Bootstrappable Builds:: The freedom to build a software without binary seed.
|
||||||
* Reduced Binary Seed Bootstrap:: Guix reduces bootstrap binaries with 50%.
|
* Full Source Bootstrap:: Software dependencies worthy of GNU.
|
||||||
* Scheme-only Bootsrap:: Guix reduced bootstrap binaries to 25%.
|
|
||||||
* Full Source Bootstrap:: A bootstrap worthy of GNU.
|
|
||||||
* LISP as Maxwell's Equations of Software:: Auditable elegance.
|
* 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
|
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.
|
* Bootstrap Requirements:: Software needed to bootstrap Mes.
|
||||||
* Running the Test Suites:: Testing Mes.
|
* Running the Test Suites:: Testing Mes.
|
||||||
|
|
||||||
|
@ -116,7 +109,7 @@ Contributing
|
||||||
@end menu
|
@end menu
|
||||||
|
|
||||||
@c *********************************************************************
|
@c *********************************************************************
|
||||||
@node Introduction
|
@node Introduction, Installation, Top, Top
|
||||||
@chapter Introduction
|
@chapter Introduction
|
||||||
|
|
||||||
@quotation
|
@quotation
|
||||||
|
@ -194,17 +187,15 @@ Freedom 1.
|
||||||
@menu
|
@menu
|
||||||
* Reproducible Builds:: Reproducibility and free software.
|
* Reproducible Builds:: Reproducibility and free software.
|
||||||
* Bootstrappable Builds:: The freedom to build a software without binary seed.
|
* Bootstrappable Builds:: The freedom to build a software without binary seed.
|
||||||
* Reduced Binary Seed Bootstrap:: Guix reduces bootstrap binaries with 50%.
|
* Full Source Bootstrap:: Software dependencies worthy of GNU.
|
||||||
* Scheme-only Bootsrap:: Guix reduced bootstrap binaries to 25%.
|
|
||||||
* Full Source Bootstrap:: A bootstrap worthy of GNU.
|
|
||||||
* LISP as Maxwell's Equations of Software:: Auditable elegance.
|
* LISP as Maxwell's Equations of Software:: Auditable elegance.
|
||||||
@end menu
|
@end menu
|
||||||
|
|
||||||
@node Reproducible Builds
|
@node Reproducible Builds, Bootstrappable Builds, Introduction, Introduction
|
||||||
@section Reproducible Builds
|
@section Reproducible Builds
|
||||||
|
|
||||||
The current Reproducible Builds effort incubated in the Debian
|
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
|
organized by Lunar. Quoting the Reproducible Builds
|
||||||
website@footnote{@url{https://reproducible-builds.org/,Reproducible
|
website@footnote{@url{https://reproducible-builds.org/,Reproducible
|
||||||
Builds}}
|
Builds}}
|
||||||
|
@ -249,7 +240,7 @@ packages could be rebuild bit-identical from source.
|
||||||
@author Martin Uecker
|
@author Martin Uecker
|
||||||
@end quotation
|
@end quotation
|
||||||
|
|
||||||
@node Bootstrappable Builds
|
@node Bootstrappable Builds, Full Source Bootstrap, Reproducible Builds, Introduction
|
||||||
@section Bootstrappable Builds
|
@section Bootstrappable Builds
|
||||||
|
|
||||||
Software distributions that take reproducible builds seriously are
|
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
|
@emph{bootstrap binary seed}. Bootstrap binaries are the initial binary
|
||||||
seeds that are used to start building the distribution.
|
seeds that are used to start building the distribution.
|
||||||
|
|
||||||
The GNU Guix operating system (@pxref{Top,,, guix, The GNU Guix
|
The GNU Guix operating system, version 1.0 had a relatively small
|
||||||
Manual}), version 1.0 had a relatively small closure of bootstrap binary
|
closure of bootstrap binary seed: GNU binutils, GNU gcc, GNU Libc, GNU
|
||||||
seed: GNU binutils, GNU gcc, GNU Libc, GNU Guile, and ``Static
|
Guile, and ``Static binaries'' (think: bash, bzip2, coreutils, gawk,
|
||||||
binaries'' (think: bash, bzip2, coreutils, gawk, grep, gzip, patch, sed,
|
grep, gzip, patch, sed, tar, xz).
|
||||||
tar, xz).
|
|
||||||
|
|
||||||
@example
|
@example
|
||||||
$ du -schx $(readlink $(guix build bootstrap-tarballs)/*)
|
$ du -schx $(readlink $(guix build bootstrap-tarballs)/*)
|
||||||
|
@ -298,9 +288,6 @@ $ du -schx *
|
||||||
252M total
|
252M total
|
||||||
@end example
|
@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
|
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
|
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/}}.
|
@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
|
code was practically non-auditable, which makes it hard to establish
|
||||||
what source code produced them.
|
what source code produced them.
|
||||||
|
|
||||||
@node Scheme-only Bootsrap
|
@node Full Source Bootstrap, , Bootstrappable Builds, Introduction
|
||||||
@section Scheme-only Bootstrap
|
@section Full Source Bootstrap
|
||||||
|
|
||||||
The next step that Guix has taken is to replace the shell and all its
|
There is an obvious solution: we cannot allow any binary seeds in our
|
||||||
utilities with implementations in Guile Scheme, the @emph{Scheme-only
|
software stack. Not even in the bootstrap binary seed. Maybe that is a
|
||||||
bootstrap}. This second halving of the boostrap binaries reduced their
|
bit too strong: we want to have the absolute minimum of binary seeds and
|
||||||
size to 25% @footnote{See
|
all binary seeds need to be inspectable and must be reviewed. How big
|
||||||
@url{https://guix.gnu.org/en/blog/2020/guix-further-reduces-bootstrap-seed-to-25/}}.
|
would the absolute minimal set be?
|
||||||
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.
|
|
||||||
|
|
||||||
@node Full Source Bootstrap
|
@subsection The Magical Self-Hosting Hex Assembler
|
||||||
@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
|
|
||||||
|
|
||||||
June 2016 I learnt about
|
June 2016 I learnt about
|
||||||
@url{https://github.com/oriansj/stage0/,Stage0}. Jeremiah Orians
|
@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
|
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
|
tricky to fully trust@footnote{ Ken Thompson's 1984 Turing award
|
||||||
acceptance speech
|
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
|
Reflections on Trusting Tust}.} a computer that was bootstrapped in this
|
||||||
way.
|
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
|
seemed to be an impossible dream is suddenly starting to look like
|
||||||
``just a couple years of work''.
|
``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
|
@node LISP as Maxwell's Equations of Software
|
||||||
@section LISP as Maxwell's Equations of Software
|
@section LISP as Maxwell's Equations of Software
|
||||||
|
|
||||||
As fate would have it, I stumbled upon this
|
As fate would have it, I stumbled upon this
|
||||||
@url{https://queue.acm.org/detail.cfm?id=1039523, interview with Alan
|
@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
|
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:
|
LISP-1.5} manual:
|
||||||
|
|
||||||
@quotation
|
@quotation
|
||||||
|
@ -526,7 +480,7 @@ It is our sincerest hope to bring back this level of quality and
|
||||||
elegance..
|
elegance..
|
||||||
|
|
||||||
@c *********************************************************************
|
@c *********************************************************************
|
||||||
@node Installation
|
@node Installation, Bootstrapping, Introduction, Top
|
||||||
@chapter Installation
|
@chapter Installation
|
||||||
|
|
||||||
@cindex installing Mes
|
@cindex installing Mes
|
||||||
|
@ -537,13 +491,13 @@ to use it.
|
||||||
|
|
||||||
|
|
||||||
@menu
|
@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.
|
* Bootstrap Requirements:: Software needed to bootstrap Mes.
|
||||||
* Running the Test Suites:: Testing Mes.
|
* Running the Test Suites:: Testing Mes.
|
||||||
@end menu
|
@end menu
|
||||||
|
|
||||||
@node Requirements
|
@node Regular Requirements, Bootstrap Requirements, Installation, Installation
|
||||||
@section Requirements
|
@section Regular Requirements
|
||||||
|
|
||||||
This section lists requirements when building Mes from source. The
|
This section lists requirements when building Mes from source. The
|
||||||
build procedure for Mes is the same as for other GNU software, and is
|
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:
|
GNU Mes depends on the following packages:
|
||||||
|
|
||||||
@itemize
|
@itemize
|
||||||
@item @url{https://gnu.org/software/guile/, GNU Guile}, version 2.0.13 or
|
@item @url{http://gnu.org/software/guile/, GNU Guile}, version 2.0.13 or
|
||||||
later, including 2.2.x and 3.0.x,
|
later, including 2.2.x;
|
||||||
@item @url{https://www.gnu.org/software/make/, GNU Make}.
|
@item @url{http://www.gnu.org/software/make/, GNU Make}.
|
||||||
@item @url{https://savannah.gnu.org/projects/nyacc/, NYACC}, version 1.00.2,
|
@item @url{https://savannah.gnu.org/projects/nyacc/, NYACC}, 0.93.0 or later, including 0.99.0.
|
||||||
@item @url{https://gcc.gnu.org, GCC's gcc}, version 2.95.3 or later, including 10.2.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 1.4.0,
|
@item @url{https://savannah.gnu.org/projects/mescc-tools/, mescc-tools}, version 0.6.1 or later,
|
||||||
@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.
|
|
||||||
@end itemize
|
@end itemize
|
||||||
|
|
||||||
@cindex Guile, compatibility
|
@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
|
Scheme code between both. Currently Mes only supports the minimal
|
||||||
subset of R5RS and Guile extensions to run MesCC.
|
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
|
@section Bootstrap Requirements
|
||||||
|
|
||||||
This section lists requirements when building Mes as a bootstrap
|
This section lists requirements when building Mes as a bootstrap
|
||||||
|
@ -594,12 +541,11 @@ Bootstrapping Mes depends on the following packages:
|
||||||
|
|
||||||
@itemize
|
@itemize
|
||||||
@item a POSIX-compatible shell
|
@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/mescc-tools/, mescc-tools}, version 0.6.1 or later.
|
||||||
@item @url{https://github.com/oriansj/m2-planet/, M2-Planet}, version 1.9.0.
|
@item @url{https://savannah.gnu.org/projects/nyacc/, NYACC}, 0.93.0 or later, including 0.99.0.
|
||||||
@item @url{https://savannah.gnu.org/projects/nyacc/, NYACC}, version 1.00.2,
|
|
||||||
@end itemize
|
@end itemize
|
||||||
|
|
||||||
@node Running the Test Suites
|
@node Running the Test Suites, , Bootstrap Requirements, Installation
|
||||||
@section Running the Test Suites
|
@section Running the Test Suites
|
||||||
|
|
||||||
@cindex 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
|
build-aux/test.sh scaffold/tests/00-exit-0
|
||||||
@end example
|
@end example
|
||||||
|
|
||||||
@node Bootstrapping
|
@node Bootstrapping, Contributing, Installation, Top
|
||||||
@chapter Bootstrapping
|
@chapter Bootstrapping
|
||||||
|
|
||||||
@quotation
|
@quotation
|
||||||
|
@ -687,14 +633,14 @@ responsibility.
|
||||||
* Invoking mesar::
|
* Invoking mesar::
|
||||||
@end menu
|
@end menu
|
||||||
|
|
||||||
@node The Mes Bootstrap Process
|
@node The Mes Bootstrap Process, Invoking mes, Bootstrapping, Bootstrapping
|
||||||
@section The Mes Bootstrap Process
|
@section The Mes Bootstrap Process
|
||||||
|
|
||||||
The Reduced Binary Seed bootstrap currently adopted by Guix@footnote{See
|
The Reduced Binary Seed bootstrap currently adopted by Guix@footnote{See
|
||||||
@file{gnu/packages/commencement.scm} in the @var{master} branch in Guix
|
@file{gnu/packages/commencement.scm} in the @var{master} branch in Guix
|
||||||
git
|
git
|
||||||
@url{https://git.savannah.gnu.org/cgit/guix.git/tree/gnu/packages/commencement.scm}}.
|
@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 and armhf-linux.
|
In its intiial form it is only available for x86-linux.
|
||||||
|
|
||||||
Currently, it goes like this:
|
Currently, it goes like this:
|
||||||
|
|
||||||
|
@ -733,23 +679,19 @@ Currently, it goes like this:
|
||||||
^
|
^
|
||||||
|
|
|
|
||||||
*
|
*
|
||||||
gash-boot, gash-utils-boot
|
bootstrap-mescc-tools, bootstrap-mes (~10MB)
|
||||||
^
|
bootstrap-bash, bootstrap-coreutils&co, bootstrap-guile (~120MB)
|
||||||
|
|
|
||||||
*
|
|
||||||
bootstrap-mescc-tools, bootstrap-mes (~12 MiB)
|
|
||||||
bootstrap-guile (~48 MiB)
|
|
||||||
@end verbatim
|
@end verbatim
|
||||||
|
|
||||||
@c This graph is generated from wip-bootstrap, doing:
|
@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
|
@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.
|
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
|
Work is ongoing to remove these binary seeds that were intentionally
|
||||||
injected by our own doing as temporary shortcut
|
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)
|
bootstrap-mescc-tools (seed), bootstrap-mes (seed)
|
||||||
@end example
|
@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
|
seeds) are taken for granted
|
||||||
|
|
||||||
@example
|
@example
|
||||||
bootstrap-guile
|
bootstrap-guile, bash, bzip2, coreutils, gawk, grep, gzip, patch, sed,
|
||||||
|
tar, xz
|
||||||
@end example
|
@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
|
@section Invoking mes
|
||||||
|
|
||||||
@cindex repl
|
@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.
|
* Environment Variables:: If the bits won't change, change their habitat.
|
||||||
@end menu
|
@end menu
|
||||||
|
|
||||||
@node Environment Variables
|
@node Environment Variables, , Invoking mes, Invoking mes
|
||||||
@subsection Environment Variables
|
@subsection Environment Variables
|
||||||
@cindex environment variables
|
@cindex environment variables
|
||||||
@cindex shell
|
@cindex shell
|
||||||
|
@ -920,7 +865,7 @@ Mes uses @var{@strong{GUILE}_LOAD_PATH} for compatibility with Guile.
|
||||||
|
|
||||||
@end table
|
@end table
|
||||||
|
|
||||||
@node Invoking mescc
|
@node Invoking mescc, Invoking mesar, Invoking mes, Bootstrapping
|
||||||
@section Invoking mescc
|
@section Invoking mescc
|
||||||
|
|
||||||
@example
|
@example
|
||||||
|
@ -935,7 +880,7 @@ The @var{option}s can be among the following:
|
||||||
align @var{symbol}, the default is @code{functions}; other valid values
|
align @var{symbol}, the default is @code{functions}; other valid values
|
||||||
are: @code{globals}.
|
are: @code{globals}.
|
||||||
|
|
||||||
@item --base-address=ADDRESS
|
@item --base-address=ADRRESS
|
||||||
use BaseAddress ADDRESS [0x1000000]
|
use BaseAddress ADDRESS [0x1000000]
|
||||||
|
|
||||||
@item -c
|
@item -c
|
||||||
|
@ -1002,7 +947,7 @@ specify LANGUAGE of the following input files
|
||||||
* MesCC Environment Variables:: There's no NIX like POSIX.
|
* MesCC Environment Variables:: There's no NIX like POSIX.
|
||||||
@end menu
|
@end menu
|
||||||
|
|
||||||
@node MesCC Environment Variables
|
@node MesCC Environment Variables, , Invoking mescc, Invoking mescc
|
||||||
@subsection MesCC Environment Variables
|
@subsection MesCC Environment Variables
|
||||||
|
|
||||||
@table @env
|
@table @env
|
||||||
|
@ -1031,7 +976,7 @@ during the parsing phase.
|
||||||
|
|
||||||
@end table
|
@end table
|
||||||
|
|
||||||
@node Invoking mesar
|
@node Invoking mesar, , Invoking mescc, Bootstrapping
|
||||||
@section Invoking mesar
|
@section Invoking mesar
|
||||||
|
|
||||||
@example
|
@example
|
||||||
|
@ -1061,7 +1006,7 @@ display version and exit
|
||||||
@end table
|
@end table
|
||||||
|
|
||||||
@c *********************************************************************
|
@c *********************************************************************
|
||||||
@node Contributing
|
@node Contributing, Acknowledgments, Bootstrapping, Top
|
||||||
@chapter Contributing
|
@chapter Contributing
|
||||||
|
|
||||||
@menu
|
@menu
|
||||||
|
@ -1073,7 +1018,7 @@ display version and exit
|
||||||
* Submitting Patches:: Share your work.
|
* Submitting Patches:: Share your work.
|
||||||
@end menu
|
@end menu
|
||||||
|
|
||||||
@node Building from Git
|
@node Building from Git, Running Mes From the Source Tree, Contributing, Contributing
|
||||||
@section Building from Git
|
@section Building from Git
|
||||||
|
|
||||||
If you want to hack GNU Mes itself, it is recommended to use the latest
|
If you want to hack GNU Mes itself, it is recommended to use the latest
|
||||||
|
@ -1089,26 +1034,15 @@ all the dependencies and appropriate environment variables are set up to
|
||||||
hack on Mes:
|
hack on Mes:
|
||||||
|
|
||||||
@example
|
@example
|
||||||
guix shell
|
guix environment -l .guix.scm
|
||||||
@end example
|
@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
|
Finally, you have to invoke @code{make check} to run tests
|
||||||
(@pxref{Running the Test Suites}). If anything fails, take a look at
|
(@pxref{Running the Test Suites}). If anything fails, take a look at
|
||||||
installation instructions (@pxref{Installation}) or send a message to
|
installation instructions (@pxref{Installation}) or send a message to
|
||||||
the @email{bug-mes@@gnu.org} mailing list.
|
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
|
@section Running Mes From the Source Tree
|
||||||
|
|
||||||
First, you need to have an environment with all the dependencies
|
First, you need to have an environment with all the dependencies
|
||||||
|
@ -1116,15 +1050,15 @@ available (@pxref{Building from Git}), and then simply prefix each
|
||||||
command by @command{./pre-inst-env} (the @file{pre-inst-env} script
|
command by @command{./pre-inst-env} (the @file{pre-inst-env} script
|
||||||
lives in the top build tree of Mes).
|
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
|
@section Porting GNU Mes
|
||||||
|
|
||||||
Mes is supported for x86-linux and armhf-linux. A 64 bit (x86_64-linux)
|
Mes was written for x86-linux. A 64 bit (x86_64) is almost done, only a
|
||||||
is almost done, only a few bugs remain. The Guix bootstrap for
|
few bugs remain. The Guix bootstrap for x86_64 uses x86 mes and that is
|
||||||
x86_64-linux uses mes for x86-lunix and that is not expected to change.
|
not expected to change.
|
||||||
Likewise, aarch64-linux uses mes for armhf-linux.
|
|
||||||
|
|
||||||
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}:
|
Initial scaffold, built by @file{build-aux/build-scaffold.sh}:
|
||||||
@example
|
@example
|
||||||
|
@ -1149,14 +1083,14 @@ Porting MesCC:
|
||||||
@file{mes/module/mescc/i386/info.mes}
|
@file{mes/module/mescc/i386/info.mes}
|
||||||
@end example
|
@end example
|
||||||
|
|
||||||
@node The Perfect Setup
|
@node The Perfect Setup, Coding Style, Porting GNU Mes, Contributing
|
||||||
@section The Perfect Setup
|
@section The Perfect Setup
|
||||||
|
|
||||||
The Perfect Setup to hack on Mes is basically the perfect setup used
|
The Perfect Setup to hack on Mes is basically the perfect setup used
|
||||||
for Guile hacking (@pxref{Using Guile in Emacs,,, guile, Guile Reference
|
for Guile hacking (@pxref{Using Guile in Emacs,,, guile, Guile Reference
|
||||||
Manual}). First, you need more than an editor, you need
|
Manual}). First, you need more than an editor, you need
|
||||||
@url{https://www.gnu.org/software/emacs, Emacs}, empowered by the
|
@url{http://www.gnu.org/software/emacs, Emacs}, empowered by the
|
||||||
wonderful @url{https://nongnu.org/geiser/, Geiser}.
|
wonderful @url{http://nongnu.org/geiser/, Geiser}.
|
||||||
|
|
||||||
Geiser allows for interactive and incremental development from within
|
Geiser allows for interactive and incremental development from within
|
||||||
Emacs: code compilation and evaluation from within buffers, access to
|
Emacs: code compilation and evaluation from within buffers, access to
|
||||||
|
@ -1164,7 +1098,7 @@ on-line documentation (docstrings), context-sensitive completion,
|
||||||
@kbd{M-.} to jump to an object definition, a REPL to try out your code,
|
@kbd{M-.} to jump to an object definition, a REPL to try out your code,
|
||||||
and more (@pxref{Introduction,,, geiser, Geiser User Manual}).
|
and more (@pxref{Introduction,,, geiser, Geiser User Manual}).
|
||||||
|
|
||||||
@node Coding Style
|
@node Coding Style, Submitting Patches, The Perfect Setup, Contributing
|
||||||
@section Coding Style
|
@section Coding Style
|
||||||
|
|
||||||
In general our code follows the GNU Coding Standards (@pxref{Top,,,
|
In general our code follows the GNU Coding Standards (@pxref{Top,,,
|
||||||
|
@ -1181,7 +1115,7 @@ Scheme code in Mes is written in a purely functional style.
|
||||||
@cindex coding style
|
@cindex coding style
|
||||||
When writing Scheme code, we follow common wisdom among Scheme
|
When writing Scheme code, we follow common wisdom among Scheme
|
||||||
programmers. In general, we follow the
|
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
|
Style Rules}. This document happens to describe the conventions mostly
|
||||||
used in Guile’s code too. It is very thoughtful and well written, so
|
used in Guile’s code too. It is very thoughtful and well written, so
|
||||||
please do read it.
|
please do read it.
|
||||||
|
@ -1200,13 +1134,13 @@ Additionally, in Mes we prefer to format @code{if} statements like this
|
||||||
else))
|
else))
|
||||||
@end example
|
@end example
|
||||||
|
|
||||||
@node Submitting Patches
|
@node Submitting Patches, , Coding Style, Contributing
|
||||||
@section Submitting Patches
|
@section Submitting Patches
|
||||||
|
|
||||||
Development is done using the Git distributed version control system.
|
Development is done using the Git distributed version control system.
|
||||||
Thus, access to the repository is not strictly necessary. We welcome
|
Thus, access to the repository is not strictly necessary. We welcome
|
||||||
contributions in the form of patches as produced by @code{git
|
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,,,
|
Please write commit logs in the ChangeLog format (@pxref{Change Logs,,,
|
||||||
standards, GNU Coding Standards}); you can check the commit history for
|
standards, GNU Coding Standards}); you can check the commit history for
|
||||||
|
@ -1243,14 +1177,14 @@ It will be ready sooner if you help.
|
||||||
@end quotation
|
@end quotation
|
||||||
|
|
||||||
@cindex contact, irc, mailing list
|
@cindex contact, irc, mailing list
|
||||||
Join us on @code{#bootstrappable} on the Libera Chat IRC network or on
|
Join us on @code{#bootstrappable} on the Freenode IRC network or on
|
||||||
@email{bug-mes@@gnu.org} to share your experience---good or bad.
|
@email{guix-devel@@gnu.org} to share your experience---good or bad.
|
||||||
|
|
||||||
@cindex bug, bug report, reporting a bug
|
@cindex bug, bug report, reporting a bug
|
||||||
Please send bug reports with full details to @email{bug-mes@@gnu.org}.
|
Please send bug reports with full details to @email{bug-mes@@gnu.org}.
|
||||||
|
|
||||||
@c *********************************************************************
|
@c *********************************************************************
|
||||||
@node Acknowledgments
|
@node Acknowledgments, Resources, Contributing, Top
|
||||||
@chapter Acknowledgments
|
@chapter Acknowledgments
|
||||||
|
|
||||||
We would like to thank the following people for their help: Jeremiah
|
We would like to thank the following people for their help: Jeremiah
|
||||||
|
@ -1262,7 +1196,7 @@ LISP-1.5 and Alan Kay for their inspiring comment on
|
||||||
@url{https://queue.acm.org/detail.cfm?id=1039523, Page 13}.
|
@url{https://queue.acm.org/detail.cfm?id=1039523, Page 13}.
|
||||||
|
|
||||||
@c *********************************************************************
|
@c *********************************************************************
|
||||||
@node Resources
|
@node Resources, GNU Free Documentation License, Acknowledgments, Top
|
||||||
@chapter Resources
|
@chapter Resources
|
||||||
|
|
||||||
@itemize
|
@itemize
|
||||||
|
@ -1286,8 +1220,8 @@ collection of small/bootstrappable compilers, operating systems,
|
||||||
anything you need.
|
anything you need.
|
||||||
|
|
||||||
@item
|
@item
|
||||||
@url{irc.libera.chat, #bootstrappable} The bootstrapping community home
|
@url{irc.freenode.net, #bootstrappable} The bootstrapping community home
|
||||||
at the Libera Chat IRC network.
|
at the freenode IRC network.
|
||||||
|
|
||||||
@item
|
@item
|
||||||
@file{guix-devel@@gnu.org} The Guix mailing list, where it all started.
|
@file{guix-devel@@gnu.org} The Guix mailing list, where it all started.
|
||||||
|
@ -1296,17 +1230,17 @@ at the Libera Chat IRC network.
|
||||||
@end itemize
|
@end itemize
|
||||||
|
|
||||||
@c *********************************************************************
|
@c *********************************************************************
|
||||||
@node GNU Free Documentation License
|
@node GNU Free Documentation License, Concept Index, Resources, Top
|
||||||
@appendix GNU Free Documentation License
|
@appendix GNU Free Documentation License
|
||||||
@cindex license, GNU Free Documentation License
|
@cindex license, GNU Free Documentation License
|
||||||
@include fdl-1.3.texi
|
@include fdl-1.3.texi
|
||||||
|
|
||||||
@c *********************************************************************
|
@c *********************************************************************
|
||||||
@node Concept Index
|
@node Concept Index, Programming Index, GNU Free Documentation License, Top
|
||||||
@unnumbered Concept Index
|
@unnumbered Concept Index
|
||||||
@printindex cp
|
@printindex cp
|
||||||
|
|
||||||
@node Programming Index
|
@node Programming Index, , Concept Index, Top
|
||||||
@unnumbered Programming Index
|
@unnumbered Programming Index
|
||||||
@syncodeindex tp fn
|
@syncodeindex tp fn
|
||||||
@syncodeindex vr fn
|
@syncodeindex vr fn
|
||||||
|
|
4
guix.scm
4
guix.scm
|
@ -1,7 +1,7 @@
|
||||||
;;; guix.scm -- Guix package definition
|
;;; guix.scm -- Guix package definition
|
||||||
|
|
||||||
;;; GNU Mes --- Maxwell Equations of Software
|
;;; 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.
|
;;; This file is part of GNU Mes.
|
||||||
;;;
|
;;;
|
||||||
|
@ -30,7 +30,7 @@
|
||||||
;;
|
;;
|
||||||
;; To use as the basis for a development environment, run:
|
;; To use as the basis for a development environment, run:
|
||||||
;;
|
;;
|
||||||
;; guix time-machine --commit=ffb616b69dced25b840f2e5178062072d89623eb -- shell
|
;; guix environment -l guix.scm
|
||||||
;;
|
;;
|
||||||
;;; Code:
|
;;; Code:
|
||||||
|
|
||||||
|
|
139
guix/git/mes.scm
139
guix/git/mes.scm
|
@ -1,5 +1,5 @@
|
||||||
;;; GNU Mes --- Maxwell Equations of Software
|
;;; GNU Mes --- Maxwell Equations of Software
|
||||||
;;; Copyright © 2016,2017,2018,2019,2020,2021,2022 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
;;; Copyright © 2016,2017,2018,2019,2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Mes.
|
;;; This file is part of GNU Mes.
|
||||||
;;;
|
;;;
|
||||||
|
@ -54,27 +54,32 @@
|
||||||
(define-public mescc-tools
|
(define-public mescc-tools
|
||||||
(package
|
(package
|
||||||
(name "mescc-tools")
|
(name "mescc-tools")
|
||||||
(version "1.4.0")
|
(version "1.1.0")
|
||||||
(source (origin
|
(source
|
||||||
(method git-fetch)
|
(origin
|
||||||
(uri (git-reference
|
(method url-fetch)
|
||||||
(url "https://git.savannah.nongnu.org/r/mescc-tools.git")
|
(uri (string-append
|
||||||
(commit (string-append "Release_" version))
|
"http://git.savannah.nongnu.org/cgit/mescc-tools.git/snapshot/"
|
||||||
(recursive? #t))) ;for M2libc
|
name "-Release_" version
|
||||||
(file-name (git-file-name name version))
|
".tar.gz"))
|
||||||
(sha256
|
(file-name (string-append name "-" version ".tar.gz"))
|
||||||
(base32
|
(sha256
|
||||||
"0z2ni2qn2np1walcaqlxz8sinzb78d4hiq9glddzf26wxc226hs4"))))
|
(base32
|
||||||
|
"12cjryqfd6m6j807pvhk7i4vr2q0jiibpfrpnq5s67iq9l4rrc6b"))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(supported-systems
|
(supported-systems
|
||||||
'("aarch64-linux" "armhf-linux" "i686-linux" "x86_64-linux"))
|
'("aarch64-linux" "armhf-linux" "i686-linux" "x86_64-linux"))
|
||||||
(native-inputs (list which))
|
|
||||||
(arguments
|
(arguments
|
||||||
`(#:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out"))
|
`(#:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out"))
|
||||||
(string-append "CC=" ,(cc-for-target)))
|
(string-append "CC=" ,(cc-for-target)))
|
||||||
#:test-target "test"
|
#:test-target "test"
|
||||||
#:phases (modify-phases %standard-phases
|
#:phases (modify-phases %standard-phases
|
||||||
(delete 'configure))))
|
(delete 'configure)
|
||||||
|
(add-after 'unpack 'patch-prefix
|
||||||
|
(lambda _
|
||||||
|
(substitute* "sha256.sh"
|
||||||
|
(("\\$\\(which sha256sum\\)") (which "sha256sum")))
|
||||||
|
#t)))))
|
||||||
(synopsis "Tools for the full source bootstrapping process")
|
(synopsis "Tools for the full source bootstrapping process")
|
||||||
(description
|
(description
|
||||||
"Mescc-tools is a collection of tools for use in a full source
|
"Mescc-tools is a collection of tools for use in a full source
|
||||||
|
@ -87,18 +92,19 @@ get_machine.")
|
||||||
(define-public m2-planet
|
(define-public m2-planet
|
||||||
(package
|
(package
|
||||||
(name "m2-planet")
|
(name "m2-planet")
|
||||||
(version "1.9.0")
|
(version "1.7.0")
|
||||||
(source (origin
|
(source
|
||||||
(method git-fetch)
|
(origin
|
||||||
(uri (git-reference
|
(method git-fetch)
|
||||||
(url "https://github.com/oriansj/m2-planet")
|
(uri (git-reference
|
||||||
(commit (string-append "Release_" version))
|
(url "https://github.com/oriansj/m2-planet.git")
|
||||||
(recursive? #t))) ;for M2libc
|
(commit (string-append "Release_" version))))
|
||||||
(file-name (git-file-name name version))
|
(file-name (string-append name "-" version ".tar.gz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"0cgvvq91cbxxm93k8ayyvhpaf3c2lv10qw4wyqwn3hc1qb1cfyvr"))))
|
"052j63xv44zqy7jndjw36jpyciz00p11d78w2rhy539qa5vdzad7"))))
|
||||||
(native-inputs (list mescc-tools))
|
(native-inputs
|
||||||
|
`(("mescc-tools" ,mescc-tools)))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
`(#:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out"))
|
`(#:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out"))
|
||||||
|
@ -106,13 +112,18 @@ get_machine.")
|
||||||
#:tests? #f
|
#:tests? #f
|
||||||
#:phases (modify-phases %standard-phases
|
#:phases (modify-phases %standard-phases
|
||||||
(delete 'bootstrap)
|
(delete 'bootstrap)
|
||||||
(delete 'configure))))
|
(delete 'configure)
|
||||||
|
(add-after 'unpack 'patch-prefix
|
||||||
|
(lambda _
|
||||||
|
(substitute* "sha256.sh"
|
||||||
|
(("\\$\\(which sha256sum\\)") (which "sha256sum")))
|
||||||
|
#t)))))
|
||||||
(synopsis "The PLAtform NEutral Transpiler")
|
(synopsis "The PLAtform NEutral Transpiler")
|
||||||
(description
|
(description
|
||||||
"M2-Planet, The PLAtform NEutral Transpiler, when combined with
|
"M2-Planet, The PLAtform NEutral Transpiler, when combined with
|
||||||
mescc-tools compiles a subset of the C language into working binaries
|
mescc-tools compiles a subset of the C language into working binaries
|
||||||
with introspective steps inbetween.")
|
with introspective steps inbetween.")
|
||||||
(home-page "https://github.com/oriansj/m2-planet")
|
(home-page "https://savannah.nongnu.org/projects/mescc-tools")
|
||||||
(license gpl3+)))
|
(license gpl3+)))
|
||||||
|
|
||||||
(define-public nyacc-0.99
|
(define-public nyacc-0.99
|
||||||
|
@ -142,8 +153,10 @@ with introspective steps inbetween.")
|
||||||
"DOCDIR = @prefix@/share/doc/$(PACKAGE_TARNAME)\n"))
|
"DOCDIR = @prefix@/share/doc/$(PACKAGE_TARNAME)\n"))
|
||||||
#t))))
|
#t))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(native-inputs (list pkg-config))
|
(native-inputs
|
||||||
(inputs (list guile-2.2))
|
`(("pkg-config" ,pkg-config)))
|
||||||
|
(inputs
|
||||||
|
`(("guile" ,guile-2.2)))
|
||||||
(synopsis "LALR(1) Parser Generator in Guile")
|
(synopsis "LALR(1) Parser Generator in Guile")
|
||||||
(description
|
(description
|
||||||
"NYACC is an LALR(1) parser generator implemented in Guile.
|
"NYACC is an LALR(1) parser generator implemented in Guile.
|
||||||
|
@ -178,55 +191,49 @@ extensive examples, including parsers for the Javascript and C99 languages.")
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"065ksalfllbdrzl12dz9d9dcxrv97wqxblslngsc6kajvnvlyvpk"))))
|
"065ksalfllbdrzl12dz9d9dcxrv97wqxblslngsc6kajvnvlyvpk"))))
|
||||||
(inputs (list guile-3.0))))
|
(inputs
|
||||||
|
`(("guile" ,guile-3.0)))))
|
||||||
|
|
||||||
(define-public mes
|
(define-public mes
|
||||||
(package
|
(package
|
||||||
(name "mes")
|
(name "mes")
|
||||||
(version #!mes!# "0.24.2")
|
(version "0.22")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append
|
(uri (string-append
|
||||||
"https://ftp.gnu.org/pub/gnu/mes/mes-" version ".tar.gz"))
|
"https://ftp.gnu.org/pub/gnu/mes/mes-" version ".tar.gz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32 #!mes!# "0vp8v88zszh1imm3dvdfi3m8cywshdj7xcrsq4cgmss69s2y1nkx"))))
|
(base32 #!mes!# "04pajp8v31na34ls4730ig5f6miiplhdvkmsb9ls1b8bbmw2vb4n"))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(supported-systems '("aarch64-linux" "armhf-linux" "i686-linux" "x86_64-linux"))
|
(supported-systems '("aarch64-linux" "armhf-linux" "i686-linux" "x86_64-linux"))
|
||||||
(propagated-inputs (list mescc-tools nyacc))
|
(propagated-inputs
|
||||||
|
`(("mescc-tools" ,mescc-tools)
|
||||||
|
("nyacc" ,nyacc)))
|
||||||
(native-inputs
|
(native-inputs
|
||||||
(append
|
`(("guile" ,guile-3.0-latest)
|
||||||
(list guile-3.0)
|
,@(cond ((string-prefix? "x86_64-linux" (or (%current-target-system)
|
||||||
(let ((target-system (or (%current-target-system)
|
(%current-system)))
|
||||||
(%current-system))))
|
;; Use cross-compiler rather than #:system "i686-linux" to get
|
||||||
(cond
|
;; MesCC 64 bit .go files installed ready for use with Guile.
|
||||||
((string-prefix? "x86_64-linux" target-system)
|
(let ((triplet "i686-unknown-linux-gnu"))
|
||||||
;; Use cross-compiler rather than #:system "i686-linux" to get
|
`(("i686-linux-binutils" ,(cross-binutils triplet))
|
||||||
;; MesCC 64 bit .go files installed ready for use with Guile.
|
("i686-linux-gcc" ,(cross-gcc triplet)))))
|
||||||
(list (cross-binutils "i686-unknown-linux-gnu")
|
((string-prefix? "aarch64-linux" (or (%current-target-system)
|
||||||
(cross-gcc "i686-unknown-linux-gnu")))
|
(%current-system)))
|
||||||
((string-prefix? "aarch64-linux" target-system)
|
;; Use cross-compiler rather than #:system "armhf-linux" to get
|
||||||
;; Use cross-compiler rather than #:system "armhf-linux" to get
|
;; MesCC 64 bit .go files installed ready for use with Guile.
|
||||||
;; MesCC 64 bit .go files installed ready for use with Guile.
|
(let ((triplet "arm-linux-gnueabihf"))
|
||||||
(let ((triplet "arm-linux-gnueabihf"))
|
`(("arm-linux-binutils" ,(cross-binutils triplet))
|
||||||
(list (cross-binutils triplet) (cross-gcc triplet))))
|
("arm-linux-gcc" ,(cross-gcc triplet)))))
|
||||||
(else
|
(else
|
||||||
'())))
|
'()))
|
||||||
(list graphviz help2man m2-planet
|
("graphviz" ,graphviz)
|
||||||
perl ;build-aux/gitlog-to-changelog
|
("help2man" ,help2man)
|
||||||
texinfo)))
|
("m2-planet" ,m2-planet)
|
||||||
|
("perl" ,perl) ; build-aux/gitlog-to-changelog
|
||||||
|
("texinfo" ,texinfo)))
|
||||||
(arguments
|
(arguments
|
||||||
`(#:strip-binaries? #f)) ; binutil's strip b0rkes MesCC/M1/hex2 binaries
|
`(#:strip-binaries? #f)) ; binutil's strip b0rkes MesCC/M1/hex2 binaries
|
||||||
(native-search-paths
|
|
||||||
(list (search-path-specification
|
|
||||||
(variable "C_INCLUDE_PATH")
|
|
||||||
(files '("include")))
|
|
||||||
(search-path-specification
|
|
||||||
(variable "LIBRARY_PATH")
|
|
||||||
(files '("lib")))
|
|
||||||
(search-path-specification
|
|
||||||
(variable "MES_PREFIX")
|
|
||||||
(separator #f)
|
|
||||||
(files '("")))))
|
|
||||||
(synopsis "Scheme interpreter and C compiler for full source bootstrapping")
|
(synopsis "Scheme interpreter and C compiler for full source bootstrapping")
|
||||||
(description
|
(description
|
||||||
"GNU Mes--Maxwell Equations of Software--brings the Reduced Binary Seed
|
"GNU Mes--Maxwell Equations of Software--brings the Reduced Binary Seed
|
||||||
|
@ -238,7 +245,7 @@ Guile.")
|
||||||
(license gpl3+)))
|
(license gpl3+)))
|
||||||
|
|
||||||
(define-public mes.git
|
(define-public mes.git
|
||||||
(let ((version #!mes!# "0.24.2")
|
(let ((version "0.22")
|
||||||
(revision "0")
|
(revision "0")
|
||||||
(commit (read-string (open-pipe "git show HEAD | head -1 | cut -d ' ' -f 2" OPEN_READ))))
|
(commit (read-string (open-pipe "git show HEAD | head -1 | cut -d ' ' -f 2" OPEN_READ))))
|
||||||
(package
|
(package
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/* -*-comment-start: "//";comment-end:""-*-
|
/* -*-comment-start: "//";comment-end:""-*-
|
||||||
* GNU Mes --- Maxwell Equations of Software
|
* GNU Mes --- Maxwell Equations of Software
|
||||||
* Copyright © 2017,2022 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
* Copyright © 2017 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||||
*
|
*
|
||||||
* This file is part of GNU Mes.
|
* This file is part of GNU Mes.
|
||||||
*
|
*
|
||||||
|
@ -27,9 +27,8 @@
|
||||||
#undef __MES_ASSERT_H
|
#undef __MES_ASSERT_H
|
||||||
#include_next <assert.h>
|
#include_next <assert.h>
|
||||||
#else // ! SYSTEM_LIBC
|
#else // ! SYSTEM_LIBC
|
||||||
#define assert(x) ((x) ? (void)0 : __assert_fail (#x, 0, 0, 0))
|
#define assert(x) ((x) ? (void)0 : __assert_fail (#x))
|
||||||
void __assert_fail (char const *s, char const *file, unsigned line,
|
void __assert_fail (char *s);
|
||||||
char const *function);
|
|
||||||
#endif // ! SYSTEM_LIBC
|
#endif // ! SYSTEM_LIBC
|
||||||
|
|
||||||
#endif // __MES_ASSERT_H
|
#endif // __MES_ASSERT_H
|
||||||
|
|
|
@ -1,25 +0,0 @@
|
||||||
/* -*-comment-start: "//";comment-end:""-*-
|
|
||||||
* GNU Mes --- Maxwell Equations of Software
|
|
||||||
* Copyright © 2017,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/>.
|
|
||||||
*/
|
|
||||||
#ifndef __MES_GNU_X86_KERNEL_STAT_H
|
|
||||||
#define __MES_GNU_X86_KERNEL_STAT_H 1
|
|
||||||
|
|
||||||
#include <arch/syscall.h>
|
|
||||||
|
|
||||||
#endif // __MES_GNU_X86_KERNEL_STAT_H
|
|
|
@ -1,79 +0,0 @@
|
||||||
/* -*-comment-start: "//";comment-end:""-*-
|
|
||||||
* GNU Mes --- Maxwell Equations of Software
|
|
||||||
* Copyright © 2017,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/>.
|
|
||||||
*/
|
|
||||||
#ifndef __MES_LINUX_ARM_KERNEL_STAT_H
|
|
||||||
#define __MES_LINUX_ARM_KERNEL_STAT_H 1
|
|
||||||
|
|
||||||
// https://github.com/torvalds/linux/blob/master/arch/arm/include/uapi/asm/stat.h
|
|
||||||
|
|
||||||
#include <arch/syscall.h>
|
|
||||||
|
|
||||||
#if __SIZEOF_LONG_LONG__ != 8
|
|
||||||
|
|
||||||
// *INDENT-OFF*
|
|
||||||
struct stat
|
|
||||||
{
|
|
||||||
unsigned long st_dev;
|
|
||||||
unsigned long st_ino;
|
|
||||||
unsigned short st_mode;
|
|
||||||
unsigned short st_nlink;
|
|
||||||
unsigned short st_uid;
|
|
||||||
unsigned short st_gid;
|
|
||||||
unsigned long st_rdev;
|
|
||||||
unsigned long st_size;
|
|
||||||
unsigned long st_blksize;
|
|
||||||
unsigned long st_blocks;
|
|
||||||
unsigned long st_atime;
|
|
||||||
unsigned long st_atime_usec;
|
|
||||||
unsigned long st_mtime;
|
|
||||||
unsigned long st_mtime_usec;
|
|
||||||
unsigned long st_ctime;
|
|
||||||
unsigned long st_ctime_usec;
|
|
||||||
unsigned long __pad0;
|
|
||||||
unsigned long __pad1;
|
|
||||||
};
|
|
||||||
|
|
||||||
#else // __SIZEOF_LONG_LONG__ == 8
|
|
||||||
|
|
||||||
struct stat
|
|
||||||
{
|
|
||||||
unsigned long long st_dev;
|
|
||||||
unsigned char __pad0[4];
|
|
||||||
unsigned long __st_ino;
|
|
||||||
unsigned int st_mode;
|
|
||||||
unsigned int st_nlink;
|
|
||||||
unsigned long st_uid;
|
|
||||||
unsigned long st_gid;
|
|
||||||
unsigned long long st_rdev;
|
|
||||||
unsigned char __pad3[4];
|
|
||||||
long long st_size;
|
|
||||||
unsigned long st_blksize;
|
|
||||||
unsigned long long st_blocks;
|
|
||||||
unsigned long st_atime;
|
|
||||||
unsigned long st_atime_nsec;
|
|
||||||
unsigned long st_mtime;
|
|
||||||
unsigned int st_mtime_nsec;
|
|
||||||
unsigned long st_ctime;
|
|
||||||
unsigned long st_ctime_nsec;
|
|
||||||
unsigned long long st_ino;
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif // __SIZEOF_LONG_LONG__ == 8
|
|
||||||
|
|
||||||
#endif // __MES_LINUX_ARM_KERNEL_STAT_H
|
|
|
@ -1,6 +1,6 @@
|
||||||
/* -*-comment-start: "//";comment-end:""-*-
|
/* -*-comment-start: "//";comment-end:""-*-
|
||||||
* GNU Mes --- Maxwell Equations of Software
|
* GNU Mes --- Maxwell Equations of Software
|
||||||
* Copyright © 2018,2022 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
* Copyright © 2018 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||||
* Copyright © 2020 Danny Milosavljevic <dannym@scratchpost.org>
|
* Copyright © 2020 Danny Milosavljevic <dannym@scratchpost.org>
|
||||||
*
|
*
|
||||||
* This file is part of GNU Mes.
|
* This file is part of GNU Mes.
|
||||||
|
@ -23,58 +23,29 @@
|
||||||
|
|
||||||
/* See https://github.com/torvalds/linux/blob/v4.19/arch/arm/tools/syscall.tbl */
|
/* See https://github.com/torvalds/linux/blob/v4.19/arch/arm/tools/syscall.tbl */
|
||||||
|
|
||||||
/* libc-mini */
|
// libc
|
||||||
#ifndef SYS_exit
|
|
||||||
// CONSTANT SYS_exit 0x01
|
|
||||||
#define SYS_exit 0x01
|
|
||||||
#endif
|
|
||||||
#ifndef SYS_write
|
|
||||||
// CONSTANT SYS_write 0x04
|
|
||||||
#define SYS_write 0x04
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* libc */
|
|
||||||
// CONSTANT SYS_fork 0x02
|
|
||||||
#define SYS_fork 0x02
|
#define SYS_fork 0x02
|
||||||
// CONSTANT SYS_read 0x03
|
|
||||||
#define SYS_read 0x03
|
#define SYS_read 0x03
|
||||||
// CONSTANT SYS_open 0x05
|
|
||||||
#define SYS_open 0x05
|
#define SYS_open 0x05
|
||||||
//#define SYS_waitpid
|
//#define SYS_waitpid
|
||||||
// CONSTANT SYS_wait4 0x72
|
|
||||||
#define SYS_wait4 0x72
|
#define SYS_wait4 0x72
|
||||||
// CONSTANT SYS_execve 0x0b
|
|
||||||
#define SYS_execve 0x0b
|
#define SYS_execve 0x0b
|
||||||
// CONSTANT SYS_chmod 0x0f
|
|
||||||
#define SYS_chmod 0x0f
|
#define SYS_chmod 0x0f
|
||||||
// CONSTANT SYS_access 0x21
|
|
||||||
#define SYS_access 0x21
|
#define SYS_access 0x21
|
||||||
// CONSTANT SYS_brk 0x2d
|
|
||||||
#define SYS_brk 0x2d
|
#define SYS_brk 0x2d
|
||||||
// CONSTANT SYS_ioctl 0x36
|
|
||||||
#define SYS_ioctl 0x36
|
#define SYS_ioctl 0x36
|
||||||
// CONSTANT SYS_fsync 0x76
|
|
||||||
#define SYS_fsync 0x76
|
#define SYS_fsync 0x76
|
||||||
// CONSTANT SYS_getcwd 0xb7
|
|
||||||
#define SYS_getcwd 0xb7
|
|
||||||
// CONSTANT SYS_dup 0x29
|
|
||||||
#define SYS_dup 0x29
|
|
||||||
// CONSTANT SYS_dup2 0x3f
|
|
||||||
#define SYS_dup2 0x3f
|
|
||||||
// CONSTANT SYS_unlink 0x0a
|
|
||||||
#define SYS_unlink 0x0a
|
|
||||||
// CONSTANT SYS_gettimeofday 0x4e
|
|
||||||
#define SYS_gettimeofday 0x4e
|
|
||||||
// CONSTANT SYS_clock_gettime 0x107
|
|
||||||
#define SYS_clock_gettime 0x107
|
|
||||||
|
|
||||||
/* libc+tcc */
|
// libc+tcc
|
||||||
#define SYS_close 0x06
|
#define SYS_close 0x06
|
||||||
#define SYS_lseek 0x13
|
#define SYS_lseek 0x13
|
||||||
|
#define SYS_unlink 0x0a
|
||||||
#define SYS_rmdir 0x28
|
#define SYS_rmdir 0x28
|
||||||
|
#define SYS_gettimeofday 0x4e
|
||||||
#define SYS_stat 0x6a
|
#define SYS_stat 0x6a
|
||||||
|
#define SYS_getcwd 0xb7
|
||||||
|
|
||||||
/* libc+gnu */
|
// libc+gnu
|
||||||
#define SYS_chdir 0x0c
|
#define SYS_chdir 0x0c
|
||||||
#define SYS_link 0x09
|
#define SYS_link 0x09
|
||||||
#define SYS_getpid 0x14
|
#define SYS_getpid 0x14
|
||||||
|
@ -82,50 +53,34 @@
|
||||||
#define SYS_kill 0x25
|
#define SYS_kill 0x25
|
||||||
#define SYS_rename 0x26
|
#define SYS_rename 0x26
|
||||||
#define SYS_mkdir 0x27
|
#define SYS_mkdir 0x27
|
||||||
|
#define SYS_dup 0x29
|
||||||
#define SYS_pipe 0x2a
|
#define SYS_pipe 0x2a
|
||||||
#define SYS_getgid 0x2f
|
#define SYS_getgid 0x2f
|
||||||
#define SYS_rt_sigaction 0xae
|
#define SYS_rt_sigaction 0xae
|
||||||
#define SYS_rt_sigreturn 0xad
|
#define SYS_rt_sigreturn 0xad
|
||||||
#define SYS_fcntl 0x37
|
#define SYS_fcntl 0x37
|
||||||
|
#define SYS_dup2 0x3f
|
||||||
#define SYS_getrusage 0x4d
|
#define SYS_getrusage 0x4d
|
||||||
#define SYS_lstat 0x6b
|
#define SYS_lstat 0x6b
|
||||||
#define SYS_setitimer 0x68
|
#define SYS_setitimer 0x68
|
||||||
#define SYS_fstat 0x6c
|
#define SYS_fstat 0x6c
|
||||||
#define SYS_nanosleep 0xa2
|
#define SYS_nanosleep 0xa2
|
||||||
#define SYS_getdents 0x8d
|
#define SYS_getdents 0x8d
|
||||||
|
#define SYS_clock_gettime 0x107
|
||||||
|
|
||||||
/* bash */
|
// bash
|
||||||
#define SYS_setuid 0x17
|
#define SYS_setuid 0x17
|
||||||
#define SYS_setgid 0x2e
|
#define SYS_setgid 0x2e
|
||||||
#define SYS_geteuid 0x31
|
#define SYS_geteuid 0x31
|
||||||
#define SYS_getegid 0x32
|
#define SYS_getegid 0x32
|
||||||
#define SYS_getppid 0x40
|
#define SYS_getppid 0x40
|
||||||
|
|
||||||
/* make+WITH_GLIBC */
|
// make+WITH_GLIBC
|
||||||
#define SYS_rt_sigprocmask 0xaf
|
#define SYS_rt_sigprocmask 0xaf
|
||||||
|
|
||||||
/* tar */
|
// tar
|
||||||
#define SYS_symlink 0x53
|
#define SYS_symlink 0x53
|
||||||
#define SYS_readlink 0x55
|
#define SYS_readlink 0x55
|
||||||
#define SYS_mknod 0x0e
|
#define SYS_mknod 0x0e
|
||||||
|
|
||||||
#if __SIZEOF_LONG_LONG__ == 8
|
#endif // __MES_LINUX_ARM_SYSCALL_H
|
||||||
|
|
||||||
#define SYS_stat64 0xc3
|
|
||||||
#define SYS_lstat64 0xc4
|
|
||||||
#define SYS_fstat64 0xc5
|
|
||||||
#define SYS_fcntl64 0xdd
|
|
||||||
#define SYS_getdents64 0xdc
|
|
||||||
|
|
||||||
#undef SYS_stat
|
|
||||||
#define SYS_stat SYS_stat64
|
|
||||||
|
|
||||||
#undef SYS_lstat
|
|
||||||
#define SYS_lstat SYS_lstat64
|
|
||||||
|
|
||||||
#undef SYS_fstat
|
|
||||||
#define SYS_fstat SYS_fstat64
|
|
||||||
|
|
||||||
#endif // __SIZEOF_LONG_LONG__ == 8
|
|
||||||
|
|
||||||
#endif /* __MES_LINUX_ARM_SYSCALL_H */
|
|
||||||
|
|
|
@ -1,47 +0,0 @@
|
||||||
/* -*-comment-start: "//";comment-end:""-*-
|
|
||||||
* GNU Mes --- Maxwell Equations of Software
|
|
||||||
* Copyright © 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/>.
|
|
||||||
*/
|
|
||||||
#ifndef __LINUX_M2_KERNEL_STAT_H
|
|
||||||
#define __LINUX_M2_KERNEL_STAT_H
|
|
||||||
|
|
||||||
/* https://github.com/torvalds/linux/blob/master/arch/x86/include/uapi/asm/stat.h */
|
|
||||||
|
|
||||||
/* *INDENT-OFF* */
|
|
||||||
struct stat
|
|
||||||
{
|
|
||||||
unsigned st_dev;
|
|
||||||
unsigned st_ino;
|
|
||||||
char st_mode[2];
|
|
||||||
char st_nlink[2];
|
|
||||||
char st_uid[2];
|
|
||||||
char st_gid[2];
|
|
||||||
unsigned st_rdev;
|
|
||||||
unsigned st_size;
|
|
||||||
unsigned st_blksize;
|
|
||||||
unsigned st_blocks;
|
|
||||||
unsigned st_atime;
|
|
||||||
unsigned st_atime_usec;
|
|
||||||
unsigned st_mtime;
|
|
||||||
unsigned st_mtime_usec;
|
|
||||||
unsigned st_ctime;
|
|
||||||
unsigned st_ctime_usec;
|
|
||||||
unsigned __pad0;
|
|
||||||
unsigned __pad1;
|
|
||||||
};
|
|
||||||
#endif /* __LINUX_M2_KERNEL_STAT_H */
|
|
|
@ -1,79 +0,0 @@
|
||||||
/* -*-comment-start: "//";comment-end:""-*-
|
|
||||||
* GNU Mes --- Maxwell Equations of Software
|
|
||||||
* Copyright © 2017,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/>.
|
|
||||||
*/
|
|
||||||
#ifndef __MES_LINUX_X86_KERNEL_STAT_H
|
|
||||||
#define __MES_LINUX_X86_KERNEL_STAT_H 1
|
|
||||||
|
|
||||||
// https://github.com/torvalds/linux/blob/master/arch/x86/include/uapi/asm/stat.h
|
|
||||||
|
|
||||||
#include <arch/syscall.h>
|
|
||||||
|
|
||||||
#if __SIZEOF_LONG_LONG__ != 8
|
|
||||||
|
|
||||||
// *INDENT-OFF*
|
|
||||||
struct stat
|
|
||||||
{
|
|
||||||
unsigned long st_dev;
|
|
||||||
unsigned long st_ino;
|
|
||||||
unsigned short st_mode;
|
|
||||||
unsigned short st_nlink;
|
|
||||||
unsigned short st_uid;
|
|
||||||
unsigned short st_gid;
|
|
||||||
unsigned long st_rdev;
|
|
||||||
unsigned long st_size;
|
|
||||||
unsigned long st_blksize;
|
|
||||||
unsigned long st_blocks;
|
|
||||||
unsigned long st_atime;
|
|
||||||
unsigned long st_atime_usec;
|
|
||||||
unsigned long st_mtime;
|
|
||||||
unsigned long st_mtime_usec;
|
|
||||||
unsigned long st_ctime;
|
|
||||||
unsigned long st_ctime_usec;
|
|
||||||
unsigned long __pad0;
|
|
||||||
unsigned long __pad1;
|
|
||||||
};
|
|
||||||
|
|
||||||
#else // __SIZEOF_LONG_LONG__ == 8
|
|
||||||
|
|
||||||
struct stat
|
|
||||||
{
|
|
||||||
unsigned long long st_dev;
|
|
||||||
unsigned char __pad0[4];
|
|
||||||
unsigned long __st_ino;
|
|
||||||
unsigned int st_mode;
|
|
||||||
unsigned int st_nlink;
|
|
||||||
unsigned long st_uid;
|
|
||||||
unsigned long st_gid;
|
|
||||||
unsigned long long st_rdev;
|
|
||||||
unsigned char __pad3[4];
|
|
||||||
long long st_size;
|
|
||||||
unsigned long st_blksize;
|
|
||||||
unsigned long long st_blocks;
|
|
||||||
unsigned long st_atime;
|
|
||||||
unsigned long st_atime_nsec;
|
|
||||||
unsigned long st_mtime;
|
|
||||||
unsigned int st_mtime_nsec;
|
|
||||||
unsigned long st_ctime;
|
|
||||||
unsigned long st_ctime_nsec;
|
|
||||||
unsigned long long st_ino;
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif // __SIZEOF_LONG_LONG__ == 8
|
|
||||||
|
|
||||||
#endif // __MES_LINUX_X86_KERNEL_STAT_H
|
|
|
@ -75,6 +75,7 @@
|
||||||
#define SYS_stat 0x6a
|
#define SYS_stat 0x6a
|
||||||
|
|
||||||
/* libc+gnu */
|
/* libc+gnu */
|
||||||
|
|
||||||
#define SYS_chdir 0x0c
|
#define SYS_chdir 0x0c
|
||||||
#define SYS_link 0x09
|
#define SYS_link 0x09
|
||||||
#define SYS_getpid 0x14
|
#define SYS_getpid 0x14
|
||||||
|
@ -111,23 +112,4 @@
|
||||||
#define SYS_readlink 0x55
|
#define SYS_readlink 0x55
|
||||||
#define SYS_mknod 0x0e
|
#define SYS_mknod 0x0e
|
||||||
|
|
||||||
#if __SIZEOF_LONG_LONG__ == 8
|
|
||||||
|
|
||||||
#define SYS_stat64 0xc3
|
|
||||||
#define SYS_lstat64 0xc4
|
|
||||||
#define SYS_fstat64 0xc5
|
|
||||||
#define SYS_fcntl64 0xdd
|
|
||||||
#define SYS_getdents64 0xdc
|
|
||||||
|
|
||||||
#undef SYS_stat
|
|
||||||
#define SYS_stat SYS_stat64
|
|
||||||
|
|
||||||
#undef SYS_lstat
|
|
||||||
#define SYS_lstat SYS_lstat64
|
|
||||||
|
|
||||||
#undef SYS_fstat
|
|
||||||
#define SYS_fstat SYS_fstat64
|
|
||||||
|
|
||||||
#endif // __SIZEOF_LONG_LONG__ == 8
|
|
||||||
|
|
||||||
#endif /* __MES_LINUX_X86_SYSCALL_H */
|
#endif /* __MES_LINUX_X86_SYSCALL_H */
|
||||||
|
|
|
@ -1,51 +0,0 @@
|
||||||
/* -*-comment-start: "//";comment-end:""-*-
|
|
||||||
* GNU Mes --- Maxwell Equations of Software
|
|
||||||
* Copyright © 2017,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/>.
|
|
||||||
*/
|
|
||||||
#ifndef __MES_LINUX_X86_64_KERNEL_STAT_H
|
|
||||||
#define __MES_LINUX_X86_64_KERNEL_STAT_H 1
|
|
||||||
|
|
||||||
// https://github.com/torvalds/linux/blob/master/arch/x86/include/uapi/asm/stat.h
|
|
||||||
|
|
||||||
// *INDENT-OFF*
|
|
||||||
struct stat
|
|
||||||
{
|
|
||||||
unsigned long st_dev;
|
|
||||||
unsigned long st_ino;
|
|
||||||
unsigned long st_nlink;
|
|
||||||
unsigned int st_mode;
|
|
||||||
unsigned int st_uid;
|
|
||||||
unsigned int st_gid;
|
|
||||||
unsigned int __pad0;
|
|
||||||
unsigned long st_rdev;
|
|
||||||
unsigned long st_size;
|
|
||||||
unsigned long st_atime;
|
|
||||||
unsigned long st_atime_nsec;
|
|
||||||
unsigned long st_mtime;
|
|
||||||
unsigned long st_mtime_nsec;
|
|
||||||
unsigned long st_ctime;
|
|
||||||
unsigned long st_ctime_nsec;
|
|
||||||
unsigned long st_blksize;
|
|
||||||
long st_blocks;
|
|
||||||
unsigned long __pad1;
|
|
||||||
unsigned long __pad2;
|
|
||||||
unsigned long __pad3;
|
|
||||||
unsigned long __pad4;
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif // __MES_LINUX_X86_64_KERNEL_STAT_H
|
|
|
@ -1,138 +0,0 @@
|
||||||
/* -*-comment-start: "//";comment-end:""-*-
|
|
||||||
* GNU Mes --- Maxwell Equations of Software
|
|
||||||
* Copyright © 2017,2022,2023 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/>.
|
|
||||||
*/
|
|
||||||
#ifndef __M2_TYPES_H
|
|
||||||
#define __M2_TYPES_H 1
|
|
||||||
|
|
||||||
/*
|
|
||||||
#ifndef __MES_CLOCK_T
|
|
||||||
#define __MES_CLOCK_T
|
|
||||||
#undef clock_t
|
|
||||||
typedef long clock_t;
|
|
||||||
#endif
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef __MES_DEV_T
|
|
||||||
#define __MES_DEV_T
|
|
||||||
#undef dev_t
|
|
||||||
typedef long dev_t;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*
|
|
||||||
#if !defined (__MES_FILE_T) && ! defined (_FILE_T)
|
|
||||||
#define __MES_FILE_T
|
|
||||||
#define _FILE_T
|
|
||||||
typedef long FILE;
|
|
||||||
#endif
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef __MES_GID_T
|
|
||||||
#define __MES_GID_T
|
|
||||||
#undef gid_t
|
|
||||||
typedef unsigned gid_t;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef __MES_INO_T
|
|
||||||
#define __MES_INO_T
|
|
||||||
#undef ino_t
|
|
||||||
typedef unsigned ino_t;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if __SIZEOF_LONG_LONG__ == 8
|
|
||||||
#ifndef __MES_INO64_T
|
|
||||||
#define __MES_INO64_T
|
|
||||||
#undef ino64_t
|
|
||||||
typedef unsigned ino64_t;
|
|
||||||
#endif
|
|
||||||
#endif // __SIZEOF_LONG_LONG__ == 8
|
|
||||||
|
|
||||||
#if !defined (__MES_INTPTR_T) && !defined (__intptr_t_defined)
|
|
||||||
#define __MES_INTPTR_T
|
|
||||||
#define __intptr_t_defined
|
|
||||||
#undef intptr_t
|
|
||||||
typedef long intptr_t;
|
|
||||||
#undef uintptr_t
|
|
||||||
typedef unsigned uintptr_t;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef __MES_OFF_T
|
|
||||||
#define __MES_OFF_T
|
|
||||||
#undef off_t
|
|
||||||
typedef long off_t;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if __SIZEOF_LONG_LONG__ == 8
|
|
||||||
#ifndef __MES_OFF64_T
|
|
||||||
#define __MES_OFF64_T
|
|
||||||
#undef off64_t
|
|
||||||
typedef unsigned off64_t;
|
|
||||||
#endif
|
|
||||||
#endif // __SIZEOF_LONG_LONG__ == 8
|
|
||||||
|
|
||||||
#ifndef __MES_PID_T
|
|
||||||
#define __MES_PID_T
|
|
||||||
#undef pid_t
|
|
||||||
typedef int pid_t;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef __PTRDIFF_T
|
|
||||||
#define __PTRDIFF_T
|
|
||||||
#ifndef __MES_PTRDIFF_T
|
|
||||||
#define __MES_PTRDIFF_T
|
|
||||||
#undef ptrdiff_t
|
|
||||||
typedef long ptrdiff_t;
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef __MES_SIGVAL_T
|
|
||||||
#define __MES_SIGVAL_T
|
|
||||||
#undef clock_t
|
|
||||||
typedef long sigval_t;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef __SIZE_T
|
|
||||||
#define __SIZE_T
|
|
||||||
#ifndef __MES_SIZE_T
|
|
||||||
#define __MES_SIZE_T
|
|
||||||
typedef unsigned size_t;
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef __MES_SSIZE_T
|
|
||||||
#define __MES_SSIZE_T
|
|
||||||
#undef ssize_t
|
|
||||||
typedef long ssize_t;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef __MES_UID_T
|
|
||||||
#define __MES_UID_T
|
|
||||||
#undef uid_t
|
|
||||||
typedef unsigned uid_t;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef __WCHAR_T
|
|
||||||
#define __WCHAR_T
|
|
||||||
#ifndef __MES_WCHAR_T
|
|
||||||
#define __MES_WCHAR_T
|
|
||||||
#undef wchar_t
|
|
||||||
typedef int wchar_t;
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif // __M2_TYPES_H
|
|
|
@ -1,6 +1,6 @@
|
||||||
/* -*-comment-start: "//";comment-end:""-*-
|
/* -*-comment-start: "//";comment-end:""-*-
|
||||||
* GNU Mes --- Maxwell Equations of Software
|
* GNU Mes --- Maxwell Equations of Software
|
||||||
* Copyright © 2016,2017,2018,2019,2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
* Copyright © 2016,2017,2018,2019 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||||
*
|
*
|
||||||
* This file is part of GNU Mes.
|
* This file is part of GNU Mes.
|
||||||
*
|
*
|
||||||
|
@ -57,7 +57,6 @@ struct scm *set_env_x (struct scm *x, struct scm *e, struct scm *a);
|
||||||
struct scm *add_formals (struct scm *formals, struct scm *x);
|
struct scm *add_formals (struct scm *formals, struct scm *x);
|
||||||
struct scm *eval_apply ();
|
struct scm *eval_apply ();
|
||||||
/* src/gc.c */
|
/* src/gc.c */
|
||||||
struct scm *gc_stats ();
|
|
||||||
struct scm *cons (struct scm *x, struct scm *y);
|
struct scm *cons (struct scm *x, struct scm *y);
|
||||||
struct scm *gc_check ();
|
struct scm *gc_check ();
|
||||||
struct scm *gc ();
|
struct scm *gc ();
|
||||||
|
@ -103,7 +102,6 @@ struct scm *module_variable (struct scm *module, struct scm *name);
|
||||||
struct scm *module_ref (struct scm *module, struct scm *name);
|
struct scm *module_ref (struct scm *module, struct scm *name);
|
||||||
struct scm *module_define_x (struct scm *module, struct scm *name, struct scm *value);
|
struct scm *module_define_x (struct scm *module, struct scm *name, struct scm *value);
|
||||||
/* src/posix.c */
|
/* src/posix.c */
|
||||||
struct scm *abort_ ();
|
|
||||||
struct scm *exit_ (struct scm *x);
|
struct scm *exit_ (struct scm *x);
|
||||||
struct scm *peek_byte ();
|
struct scm *peek_byte ();
|
||||||
struct scm *read_byte ();
|
struct scm *read_byte ();
|
||||||
|
|
|
@ -68,10 +68,10 @@
|
||||||
// CONSTANT STRUCT_PRINTER 1
|
// CONSTANT STRUCT_PRINTER 1
|
||||||
#define STRUCT_PRINTER 1
|
#define STRUCT_PRINTER 1
|
||||||
|
|
||||||
// CONSTANT GC_FRAME_SIZE 5
|
// CONSTANT FRAME_SIZE 5
|
||||||
#define GC_FRAME_SIZE 5
|
#define FRAME_SIZE 5
|
||||||
// CONSTANT GC_FRAME_PROCEDURE 4
|
// CONSTANT FRAME_PROCEDURE 4
|
||||||
#define GC_FRAME_PROCEDURE 4
|
#define FRAME_PROCEDURE 4
|
||||||
|
|
||||||
// CONSTANT STDIN 0
|
// CONSTANT STDIN 0
|
||||||
// CONSTANT STDOUT 1
|
// CONSTANT STDOUT 1
|
||||||
|
|
|
@ -23,12 +23,18 @@
|
||||||
|
|
||||||
#include <mes/lib-mini.h>
|
#include <mes/lib-mini.h>
|
||||||
|
|
||||||
char *cast_intp_to_charp (int const *i);
|
char* cast_intp_to_charp (int const *i);
|
||||||
char *cast_long_to_charp (long i);
|
char* cast_long_to_charp (long i);
|
||||||
long cast_charp_to_long (char const *);
|
long cast_charp_to_long (char const *);
|
||||||
long cast_int_to_long (int i);
|
long cast_int_to_long (int i);
|
||||||
long cast_voidp_to_long (void const *);
|
long cast_voidp_to_long (void const *);
|
||||||
|
|
||||||
|
// #define cast_intp_to_charp(x) ((char*) x)
|
||||||
|
// #define cast_long_to_charp(x) ((char*) x)
|
||||||
|
// #define cast_charp_to_long(x) ((long) x)
|
||||||
|
// #define cast_int_to_long(x) ((long) x)
|
||||||
|
// #define cast_voidp_to_long(x) ((long) x)
|
||||||
|
|
||||||
int __mes_debug ();
|
int __mes_debug ();
|
||||||
void __ungetc_init ();
|
void __ungetc_init ();
|
||||||
void __ungetc_clear (int filedes);
|
void __ungetc_clear (int filedes);
|
||||||
|
@ -49,8 +55,7 @@ char * fdgets (char *s, int count, int fd);
|
||||||
int fdputc (int c, int fd);
|
int fdputc (int c, int fd);
|
||||||
int fdputs (char const *s, int fd);
|
int fdputs (char const *s, int fd);
|
||||||
int fdungetc (int c, int fd);
|
int fdungetc (int c, int fd);
|
||||||
char *_getcwd (char *buffer, size_t size);
|
char * _getcwd (char *buffer, size_t size);
|
||||||
int ioctl3 (int filedes, size_t command, long data);
|
|
||||||
int isnumber (int c, int base);
|
int isnumber (int c, int base);
|
||||||
int mes_open (char const *file_name, int flags, int mask);
|
int mes_open (char const *file_name, int flags, int mask);
|
||||||
int _open2 (char const *file_name, int flags);
|
int _open2 (char const *file_name, int flags);
|
||||||
|
@ -67,8 +72,7 @@ extern void (*__call_at_exit) (void);
|
||||||
#define __FILEDES_MAX 512
|
#define __FILEDES_MAX 512
|
||||||
|
|
||||||
#if !SYSTEM_LIBC
|
#if !SYSTEM_LIBC
|
||||||
void __assert_fail (char const *s, char const *file, unsigned line,
|
void __assert_fail (char *s);
|
||||||
char const *function);
|
|
||||||
ssize_t __buffered_read (int filedes, void *buffer, size_t size);
|
ssize_t __buffered_read (int filedes, void *buffer, size_t size);
|
||||||
size_t __buffered_read_clear (int filedes);
|
size_t __buffered_read_clear (int filedes);
|
||||||
void _exit (int code);
|
void _exit (int code);
|
||||||
|
@ -85,6 +89,5 @@ unsigned long __mesabi_uldiv (unsigned long a, unsigned long b,
|
||||||
void *__memcpy (void *dest, void const *src, size_t n);
|
void *__memcpy (void *dest, void const *src, size_t n);
|
||||||
void *__memmove (void *dest, void const *src, size_t n);
|
void *__memmove (void *dest, void const *src, size_t n);
|
||||||
void *__memset (void *s, int c, size_t n);
|
void *__memset (void *s, int c, size_t n);
|
||||||
int __raise (int signal);
|
|
||||||
|
|
||||||
#endif //__MES_LIB_H
|
#endif //__MES_LIB_H
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/* -*-comment-start: "//";comment-end:""-*-
|
/* -*-comment-start: "//";comment-end:""-*-
|
||||||
* GNU Mes --- Maxwell Equations of Software
|
* GNU Mes --- Maxwell Equations of Software
|
||||||
* Copyright © 2016,2017,2018,2019,2020,2021 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
* Copyright © 2016,2017,2018,2019 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||||
*
|
*
|
||||||
* This file is part of GNU Mes.
|
* This file is part of GNU Mes.
|
||||||
*
|
*
|
||||||
|
@ -54,65 +54,68 @@ struct scm
|
||||||
};
|
};
|
||||||
|
|
||||||
/* mes */
|
/* mes */
|
||||||
extern char *g_datadir;
|
char *g_datadir;
|
||||||
extern int g_debug;
|
int g_debug;
|
||||||
extern char *g_buf;
|
char *g_buf;
|
||||||
extern int g_continuations;
|
int g_continuations;
|
||||||
extern struct scm *g_symbols;
|
struct scm *g_symbols;
|
||||||
extern struct scm *g_symbol_max;
|
struct scm *g_symbol_max;
|
||||||
extern int g_mini;
|
int g_mini;
|
||||||
|
|
||||||
/* a/env */
|
/* a/env */
|
||||||
extern struct scm *R0;
|
struct scm *R0;
|
||||||
/* param 1 */
|
/* param 1 */
|
||||||
extern struct scm *R1;
|
struct scm *R1;
|
||||||
/* save 2 */
|
/* save 2 */
|
||||||
extern struct scm *R2;
|
struct scm *R2;
|
||||||
/* continuation */
|
/* continuation */
|
||||||
extern struct scm *R3;
|
struct scm *R3;
|
||||||
/* current-module */
|
/* current-module */
|
||||||
extern struct scm *M0;
|
struct scm *M0;
|
||||||
/* macro */
|
/* macro */
|
||||||
extern struct scm *g_macros;
|
struct scm *g_macros;
|
||||||
extern struct scm *g_ports;
|
struct scm *g_ports;
|
||||||
|
|
||||||
/* gc */
|
/* gc */
|
||||||
extern size_t ARENA_SIZE;
|
long ARENA_SIZE;
|
||||||
extern size_t MAX_ARENA_SIZE;
|
long MAX_ARENA_SIZE;
|
||||||
extern size_t STACK_SIZE;
|
long STACK_SIZE;
|
||||||
extern size_t JAM_SIZE;
|
long JAM_SIZE;
|
||||||
extern size_t GC_SAFETY;
|
long GC_SAFETY;
|
||||||
extern size_t MAX_STRING;
|
long MAX_STRING;
|
||||||
extern char *g_arena;
|
char *g_arena;
|
||||||
extern struct scm *cell_arena;
|
struct scm *cell_arena;
|
||||||
extern struct scm *cell_zero;
|
struct scm *cell_zero;
|
||||||
|
|
||||||
extern struct scm *g_free;
|
struct scm *g_free;
|
||||||
extern struct scm *g_symbol;
|
struct scm *g_symbol;
|
||||||
|
|
||||||
extern struct scm **g_stack_array;
|
struct scm **g_stack_array;
|
||||||
extern struct scm *g_cells;
|
struct scm *g_cells;
|
||||||
extern struct scm *g_news;
|
struct scm *g_news;
|
||||||
extern long g_stack;
|
long g_stack;
|
||||||
extern size_t gc_count;
|
|
||||||
extern struct timespec *gc_start_time;
|
|
||||||
extern struct timespec *gc_end_time;
|
|
||||||
extern size_t gc_time;
|
|
||||||
|
|
||||||
extern char **__execl_c_argv;
|
char **__execl_c_argv;
|
||||||
extern char *__open_boot_buf;
|
char *__getcwd_buf;
|
||||||
extern char *__open_boot_file_name;
|
char *__open_boot_buf;
|
||||||
extern char *__setenv_buf;
|
char *__open_boot_file_name;
|
||||||
extern char *__reader_read_char_buf;
|
char *__setenv_buf;
|
||||||
extern struct timespec *g_start_time;
|
char *__reader_read_char_buf;
|
||||||
extern struct timeval *__gettimeofday_time;
|
struct timespec *g_start_time;
|
||||||
extern struct timespec *__get_internal_run_time_ts;
|
struct timeval *__gettimeofday_time;
|
||||||
|
struct timespec *__get_internal_run_time_ts;
|
||||||
|
|
||||||
struct scm *cast_charp_to_scmp (char const *i);
|
struct scm *cast_charp_to_scmp (char const *i);
|
||||||
struct scm **cast_charp_to_scmpp (char const *i);
|
struct scm ** cast_charp_to_scmpp (char const *i);
|
||||||
char *cast_voidp_to_charp (void const *i);
|
char* cast_voidp_to_charp (void const *i);
|
||||||
long cast_scmp_to_long (struct scm *i);
|
long cast_scmp_to_long (struct scm *i);
|
||||||
char *cast_scmp_to_charp (struct scm *i);
|
char* cast_scmp_to_charp (struct scm *i);
|
||||||
|
|
||||||
|
// #define cast_voidp_to_charp(x) ((char*) x)
|
||||||
|
// #define cast_charp_to_scmp(x) ((struct scm *) x)
|
||||||
|
// #define cast_charp_to_scmpp(x) ((struct scm **) x)
|
||||||
|
// #define cast_scmp_to_long(x) ((long) x)
|
||||||
|
// #define cast_scmp_to_charp(x) ((char*) x)
|
||||||
|
|
||||||
struct scm *alloc (long n);
|
struct scm *alloc (long n);
|
||||||
struct scm *apply (struct scm *f, struct scm *x, struct scm *a);
|
struct scm *apply (struct scm *f, struct scm *x, struct scm *a);
|
||||||
|
@ -153,6 +156,7 @@ struct scm *vector_ref_ (struct scm *x, long i);
|
||||||
struct scm *vector_set_x_ (struct scm *x, long i, struct scm *e);
|
struct scm *vector_set_x_ (struct scm *x, long i, struct scm *e);
|
||||||
FUNCTION builtin_function (struct scm *builtin);
|
FUNCTION builtin_function (struct scm *builtin);
|
||||||
char *cell_bytes (struct scm *x);
|
char *cell_bytes (struct scm *x);
|
||||||
|
char *news_bytes (struct scm *x);
|
||||||
int peekchar ();
|
int peekchar ();
|
||||||
int readchar ();
|
int readchar ();
|
||||||
int unreadchar ();
|
int unreadchar ();
|
||||||
|
@ -171,7 +175,6 @@ void gc_pop_frame ();
|
||||||
void gc_push_frame ();
|
void gc_push_frame ();
|
||||||
void gc_stats_ (char const* where);
|
void gc_stats_ (char const* where);
|
||||||
void init_symbols_ ();
|
void init_symbols_ ();
|
||||||
long seconds_and_nanoseconds_to_long (long s, long ns);
|
|
||||||
|
|
||||||
#include "mes/builtins.h"
|
#include "mes/builtins.h"
|
||||||
#include "mes/constants.h"
|
#include "mes/constants.h"
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/* -*-comment-start: "//";comment-end:""-*-
|
/* -*-comment-start: "//";comment-end:""-*-
|
||||||
* GNU Mes --- Maxwell Equations of Software
|
* GNU Mes --- Maxwell Equations of Software
|
||||||
* Copyright © 2016,2017,2018,2019,2021 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
* Copyright © 2016,2017,2018,2019 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||||
*
|
*
|
||||||
* This file is part of GNU Mes.
|
* This file is part of GNU Mes.
|
||||||
*
|
*
|
||||||
|
@ -21,121 +21,121 @@
|
||||||
#ifndef __MES_SYMBOLS_H
|
#ifndef __MES_SYMBOLS_H
|
||||||
#define __MES_SYMBOLS_H
|
#define __MES_SYMBOLS_H
|
||||||
|
|
||||||
extern struct scm *cell_nil;
|
struct scm *cell_nil;
|
||||||
extern struct scm *cell_f;
|
struct scm *cell_f;
|
||||||
extern struct scm *cell_t;
|
struct scm *cell_t;
|
||||||
extern struct scm *cell_dot;
|
struct scm *cell_dot;
|
||||||
extern struct scm *cell_arrow;
|
struct scm *cell_arrow;
|
||||||
extern struct scm *cell_undefined;
|
struct scm *cell_undefined;
|
||||||
extern struct scm *cell_unspecified;
|
struct scm *cell_unspecified;
|
||||||
extern struct scm *cell_closure;
|
struct scm *cell_closure;
|
||||||
extern struct scm *cell_circular;
|
struct scm *cell_circular;
|
||||||
|
|
||||||
extern struct scm *cell_vm_apply;
|
struct scm *cell_vm_apply;
|
||||||
extern struct scm *cell_vm_apply2;
|
struct scm *cell_vm_apply2;
|
||||||
extern struct scm *cell_vm_begin;
|
struct scm *cell_vm_begin;
|
||||||
extern struct scm *cell_vm_begin_eval;
|
struct scm *cell_vm_begin_eval;
|
||||||
extern struct scm *cell_vm_begin_expand;
|
struct scm *cell_vm_begin_expand;
|
||||||
extern struct scm *cell_vm_begin_expand_eval;
|
struct scm *cell_vm_begin_expand_eval;
|
||||||
extern struct scm *cell_vm_begin_expand_macro;
|
struct scm *cell_vm_begin_expand_macro;
|
||||||
extern struct scm *cell_vm_begin_expand_primitive_load;
|
struct scm *cell_vm_begin_expand_primitive_load;
|
||||||
extern struct scm *cell_vm_begin_primitive_load;
|
struct scm *cell_vm_begin_primitive_load;
|
||||||
extern struct scm *cell_vm_begin_read_input_file;
|
struct scm *cell_vm_begin_read_input_file;
|
||||||
extern struct scm *cell_vm_call_with_current_continuation2;
|
struct scm *cell_vm_call_with_current_continuation2;
|
||||||
extern struct scm *cell_vm_call_with_values2;
|
struct scm *cell_vm_call_with_values2;
|
||||||
extern struct scm *cell_vm_eval;
|
struct scm *cell_vm_eval;
|
||||||
extern struct scm *cell_vm_eval2;
|
struct scm *cell_vm_eval2;
|
||||||
extern struct scm *cell_vm_eval_check_func;
|
struct scm *cell_vm_eval_check_func;
|
||||||
extern struct scm *cell_vm_eval_define;
|
struct scm *cell_vm_eval_define;
|
||||||
extern struct scm *cell_vm_eval_macro_expand_eval;
|
struct scm *cell_vm_eval_macro_expand_eval;
|
||||||
extern struct scm *cell_vm_eval_macro_expand_expand;
|
struct scm *cell_vm_eval_macro_expand_expand;
|
||||||
extern struct scm *cell_vm_eval_pmatch_car;
|
struct scm *cell_vm_eval_pmatch_car;
|
||||||
extern struct scm *cell_vm_eval_pmatch_cdr;
|
struct scm *cell_vm_eval_pmatch_cdr;
|
||||||
extern struct scm *cell_vm_eval_set_x;
|
struct scm *cell_vm_eval_set_x;
|
||||||
extern struct scm *cell_vm_evlis;
|
struct scm *cell_vm_evlis;
|
||||||
extern struct scm *cell_vm_evlis2;
|
struct scm *cell_vm_evlis2;
|
||||||
extern struct scm *cell_vm_evlis3;
|
struct scm *cell_vm_evlis3;
|
||||||
extern struct scm *cell_vm_if;
|
struct scm *cell_vm_if;
|
||||||
extern struct scm *cell_vm_if_expr;
|
struct scm *cell_vm_if_expr;
|
||||||
extern struct scm *cell_vm_macro_expand;
|
struct scm *cell_vm_macro_expand;
|
||||||
extern struct scm *cell_vm_macro_expand_car;
|
struct scm *cell_vm_macro_expand_car;
|
||||||
extern struct scm *cell_vm_macro_expand_cdr;
|
struct scm *cell_vm_macro_expand_cdr;
|
||||||
extern struct scm *cell_vm_macro_expand_define;
|
struct scm *cell_vm_macro_expand_define;
|
||||||
extern struct scm *cell_vm_macro_expand_define_macro;
|
struct scm *cell_vm_macro_expand_define_macro;
|
||||||
extern struct scm *cell_vm_macro_expand_lambda;
|
struct scm *cell_vm_macro_expand_lambda;
|
||||||
extern struct scm *cell_vm_macro_expand_set_x;
|
struct scm *cell_vm_macro_expand_set_x;
|
||||||
extern struct scm *cell_vm_return;
|
struct scm *cell_vm_return;
|
||||||
|
|
||||||
extern struct scm *cell_symbol_lambda;
|
struct scm *cell_symbol_lambda;
|
||||||
extern struct scm *cell_symbol_begin;
|
struct scm *cell_symbol_begin;
|
||||||
extern struct scm *cell_symbol_if;
|
struct scm *cell_symbol_if;
|
||||||
extern struct scm *cell_symbol_quote;
|
struct scm *cell_symbol_quote;
|
||||||
extern struct scm *cell_symbol_define;
|
struct scm *cell_symbol_define;
|
||||||
extern struct scm *cell_symbol_define_macro;
|
struct scm *cell_symbol_define_macro;
|
||||||
extern struct scm *cell_symbol_quasiquote;
|
struct scm *cell_symbol_quasiquote;
|
||||||
extern struct scm *cell_symbol_unquote;
|
struct scm *cell_symbol_unquote;
|
||||||
extern struct scm *cell_symbol_unquote_splicing;
|
struct scm *cell_symbol_unquote_splicing;
|
||||||
extern struct scm *cell_symbol_syntax;
|
struct scm *cell_symbol_syntax;
|
||||||
extern struct scm *cell_symbol_quasisyntax;
|
struct scm *cell_symbol_quasisyntax;
|
||||||
extern struct scm *cell_symbol_unsyntax;
|
struct scm *cell_symbol_unsyntax;
|
||||||
extern struct scm *cell_symbol_unsyntax_splicing;
|
struct scm *cell_symbol_unsyntax_splicing;
|
||||||
extern struct scm *cell_symbol_set_x;
|
struct scm *cell_symbol_set_x;
|
||||||
extern struct scm *cell_symbol_sc_expand;
|
struct scm *cell_symbol_sc_expand;
|
||||||
extern struct scm *cell_symbol_macro_expand;
|
struct scm *cell_symbol_macro_expand;
|
||||||
extern struct scm *cell_symbol_portable_macro_expand;
|
struct scm *cell_symbol_portable_macro_expand;
|
||||||
extern struct scm *cell_symbol_sc_expander_alist;
|
struct scm *cell_symbol_sc_expander_alist;
|
||||||
extern struct scm *cell_symbol_call_with_values;
|
struct scm *cell_symbol_call_with_values;
|
||||||
extern struct scm *cell_symbol_call_with_current_continuation;
|
struct scm *cell_symbol_call_with_current_continuation;
|
||||||
extern struct scm *cell_symbol_boot_module;
|
struct scm *cell_symbol_boot_module;
|
||||||
extern struct scm *cell_symbol_current_module;
|
struct scm *cell_symbol_current_module;
|
||||||
extern struct scm *cell_symbol_primitive_load;
|
struct scm *cell_symbol_primitive_load;
|
||||||
extern struct scm *cell_symbol_car;
|
struct scm *cell_symbol_car;
|
||||||
extern struct scm *cell_symbol_cdr;
|
struct scm *cell_symbol_cdr;
|
||||||
extern struct scm *cell_symbol_not_a_number;
|
struct scm *cell_symbol_not_a_number;
|
||||||
extern struct scm *cell_symbol_not_a_pair;
|
struct scm *cell_symbol_not_a_pair;
|
||||||
extern struct scm *cell_symbol_system_error;
|
struct scm *cell_symbol_system_error;
|
||||||
extern struct scm *cell_symbol_throw;
|
struct scm *cell_symbol_throw;
|
||||||
extern struct scm *cell_symbol_unbound_variable;
|
struct scm *cell_symbol_unbound_variable;
|
||||||
extern struct scm *cell_symbol_wrong_number_of_args;
|
struct scm *cell_symbol_wrong_number_of_args;
|
||||||
extern struct scm *cell_symbol_wrong_type_arg;
|
struct scm *cell_symbol_wrong_type_arg;
|
||||||
extern struct scm *cell_symbol_buckets;
|
struct scm *cell_symbol_buckets;
|
||||||
extern struct scm *cell_symbol_builtin;
|
struct scm *cell_symbol_builtin;
|
||||||
extern struct scm *cell_symbol_frame;
|
struct scm *cell_symbol_frame;
|
||||||
extern struct scm *cell_symbol_hashq_table;
|
struct scm *cell_symbol_hashq_table;
|
||||||
extern struct scm *cell_symbol_module;
|
struct scm *cell_symbol_module;
|
||||||
extern struct scm *cell_symbol_procedure;
|
struct scm *cell_symbol_procedure;
|
||||||
extern struct scm *cell_symbol_record_type;
|
struct scm *cell_symbol_record_type;
|
||||||
extern struct scm *cell_symbol_size;
|
struct scm *cell_symbol_size;
|
||||||
extern struct scm *cell_symbol_stack;
|
struct scm *cell_symbol_stack;
|
||||||
extern struct scm *cell_symbol_argv;
|
struct scm *cell_symbol_argv;
|
||||||
extern struct scm *cell_symbol_mes_datadir;
|
struct scm *cell_symbol_mes_datadir;
|
||||||
extern struct scm *cell_symbol_mes_version;
|
struct scm *cell_symbol_mes_version;
|
||||||
extern struct scm *cell_symbol_internal_time_units_per_second;
|
struct scm *cell_symbol_internal_time_units_per_second;
|
||||||
extern struct scm *cell_symbol_compiler;
|
struct scm *cell_symbol_compiler;
|
||||||
extern struct scm *cell_symbol_arch;
|
struct scm *cell_symbol_arch;
|
||||||
extern struct scm *cell_symbol_pmatch_car;
|
struct scm *cell_symbol_pmatch_car;
|
||||||
extern struct scm *cell_symbol_pmatch_cdr;
|
struct scm *cell_symbol_pmatch_cdr;
|
||||||
extern struct scm *cell_type_bytes;
|
struct scm *cell_type_bytes;
|
||||||
extern struct scm *cell_type_char;
|
struct scm *cell_type_char;
|
||||||
extern struct scm *cell_type_closure;
|
struct scm *cell_type_closure;
|
||||||
extern struct scm *cell_type_continuation;
|
struct scm *cell_type_continuation;
|
||||||
extern struct scm *cell_type_function;
|
struct scm *cell_type_function;
|
||||||
extern struct scm *cell_type_keyword;
|
struct scm *cell_type_keyword;
|
||||||
extern struct scm *cell_type_macro;
|
struct scm *cell_type_macro;
|
||||||
extern struct scm *cell_type_number;
|
struct scm *cell_type_number;
|
||||||
extern struct scm *cell_type_pair;
|
struct scm *cell_type_pair;
|
||||||
extern struct scm *cell_type_port;
|
struct scm *cell_type_port;
|
||||||
extern struct scm *cell_type_ref;
|
struct scm *cell_type_ref;
|
||||||
extern struct scm *cell_type_special;
|
struct scm *cell_type_special;
|
||||||
extern struct scm *cell_type_string;
|
struct scm *cell_type_string;
|
||||||
extern struct scm *cell_type_struct;
|
struct scm *cell_type_struct;
|
||||||
extern struct scm *cell_type_symbol;
|
struct scm *cell_type_symbol;
|
||||||
extern struct scm *cell_type_values;
|
struct scm *cell_type_values;
|
||||||
extern struct scm *cell_type_variable;
|
struct scm *cell_type_variable;
|
||||||
extern struct scm *cell_type_vector;
|
struct scm *cell_type_vector;
|
||||||
extern struct scm *cell_type_broken_heart;
|
struct scm *cell_type_broken_heart;
|
||||||
extern struct scm *cell_symbol_program;
|
struct scm *cell_symbol_program;
|
||||||
extern struct scm *cell_symbol_test;
|
struct scm *cell_symbol_test;
|
||||||
|
|
||||||
// CONSTANT SYMBOL_MAX 114
|
// CONSTANT SYMBOL_MAX 114
|
||||||
#define SYMBOL_MAX 114
|
#define SYMBOL_MAX 114
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
/* -*-comment-start: "//";comment-end:""-*-
|
/* -*-comment-start: "//";comment-end:""-*-
|
||||||
* GNU Mes --- Maxwell Equations of Software
|
* GNU Mes --- Maxwell Equations of Software
|
||||||
* Copyright © 2017 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
* Copyright © 2017 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||||
* Copyright © 2021 Danny Milosavljevic <dannym@scratchpost.org>
|
|
||||||
*
|
*
|
||||||
* This file is part of GNU Mes.
|
* This file is part of GNU Mes.
|
||||||
*
|
*
|
||||||
|
@ -38,10 +37,6 @@
|
||||||
#endif // !__MESC__
|
#endif // !__MESC__
|
||||||
#endif // offsetof
|
#endif // offsetof
|
||||||
|
|
||||||
/* Note: on banana gcc, max_align_t is 16 Byte big instead! */
|
|
||||||
|
|
||||||
typedef double max_align_t;
|
|
||||||
|
|
||||||
#endif // ! SYSTEM_LIBC
|
#endif // ! SYSTEM_LIBC
|
||||||
|
|
||||||
#endif // __MES_STDDEF_H
|
#endif // __MES_STDDEF_H
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
/* -*-comment-start: "//";comment-end:""-*-
|
/* -*-comment-start: "//";comment-end:""-*-
|
||||||
* GNU Mes --- Maxwell Equations of Software
|
* GNU Mes --- Maxwell Equations of Software
|
||||||
* Copyright © 2017 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
* Copyright © 2017 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||||
* Copyright © 2022 Dor Askayo <dor.askayo@gmail.com>
|
|
||||||
*
|
*
|
||||||
* This file is part of GNU Mes.
|
* This file is part of GNU Mes.
|
||||||
*
|
*
|
||||||
|
@ -19,7 +18,7 @@
|
||||||
* along with GNU Mes. If not, see <http://www.gnu.org/licenses/>.
|
* along with GNU Mes. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
#ifndef __MES_SYS_STAT_H
|
#ifndef __MES_SYS_STAT_H
|
||||||
#define __MES_SYS_STAT_H 1
|
#define __MES_SYS_STAT_H 1lei
|
||||||
|
|
||||||
#if SYSTEM_LIBC
|
#if SYSTEM_LIBC
|
||||||
#undef __MES_SYS_STAT_H
|
#undef __MES_SYS_STAT_H
|
||||||
|
@ -29,13 +28,60 @@
|
||||||
|
|
||||||
#include <time.h>
|
#include <time.h>
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#include <arch/kernel-stat.h>
|
|
||||||
|
|
||||||
#ifndef __MES_MODE_T
|
#ifndef __MES_MODE_T
|
||||||
#define __MES_MODE_T
|
#define __MES_MODE_T
|
||||||
typedef int mode_t;
|
typedef int mode_t;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
// *INDENT-OFF*
|
||||||
|
#if __i386__ || __arm__
|
||||||
|
struct stat
|
||||||
|
{
|
||||||
|
unsigned long st_dev;
|
||||||
|
unsigned long st_ino;
|
||||||
|
unsigned short st_mode;
|
||||||
|
unsigned short st_nlink;
|
||||||
|
unsigned short st_uid;
|
||||||
|
unsigned short st_gid;
|
||||||
|
unsigned long st_rdev;
|
||||||
|
long st_size; /* Linux: unsigned long; glibc: off_t (i.e. signed) */
|
||||||
|
unsigned long st_blksize;
|
||||||
|
unsigned long st_blocks;
|
||||||
|
time_t st_atime; /* Linux: unsigned long; glibc: time_t */
|
||||||
|
unsigned long st_atime_usec;
|
||||||
|
time_t st_mtime; /* Linux: unsigned long; glibc: time_t */
|
||||||
|
unsigned long st_mtime_usec;
|
||||||
|
time_t st_ctime; /* Linux: unsigned long; glibc: time_t */
|
||||||
|
unsigned long st_ctime_usec;
|
||||||
|
unsigned long __foo0;
|
||||||
|
unsigned long __foo1;
|
||||||
|
};
|
||||||
|
#elif __x86_64__
|
||||||
|
struct stat
|
||||||
|
{
|
||||||
|
unsigned long st_dev;
|
||||||
|
unsigned long st_ino;
|
||||||
|
unsigned int st_mode;
|
||||||
|
unsigned int st_nlink;
|
||||||
|
unsigned int st_uid;
|
||||||
|
unsigned int st_gid;
|
||||||
|
unsigned long st_rdev;
|
||||||
|
long st_size;
|
||||||
|
unsigned long st_blksize;
|
||||||
|
unsigned long st_blocks;
|
||||||
|
time_t st_atime;
|
||||||
|
unsigned long st_atime_usec;
|
||||||
|
time_t st_mtime;
|
||||||
|
unsigned long st_mtime_usec;
|
||||||
|
time_t st_ctime;
|
||||||
|
unsigned long st_ctime_usec;
|
||||||
|
unsigned long __foo0;
|
||||||
|
unsigned long __foo1;
|
||||||
|
};
|
||||||
|
#endif
|
||||||
|
// *INDENT-ON*
|
||||||
|
|
||||||
int chmod (char const *file_name, mode_t mode);
|
int chmod (char const *file_name, mode_t mode);
|
||||||
int fstat (int filedes, struct stat *buf);
|
int fstat (int filedes, struct stat *buf);
|
||||||
int mkdir (char const *file_name, mode_t mode);
|
int mkdir (char const *file_name, mode_t mode);
|
||||||
|
@ -61,7 +107,7 @@ int stat (char const *file_name, struct stat *buf);
|
||||||
#define S_IWUSR 00200
|
#define S_IWUSR 00200
|
||||||
#define S_IRUSR 00400
|
#define S_IRUSR 00400
|
||||||
|
|
||||||
#define S_ISUID 04000
|
#define S_ISUID 0400
|
||||||
#define S_ISGID 02000
|
#define S_ISGID 02000
|
||||||
#define S_IXGRP 00010
|
#define S_IXGRP 00010
|
||||||
#define S_IXOTH 00001
|
#define S_IXOTH 00001
|
||||||
|
|
46
kaem.run
46
kaem.run
|
@ -1,5 +1,5 @@
|
||||||
#! /bin/sh
|
#! /bin/sh
|
||||||
# Copyright © 2019,2020,2022 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
# Copyright © 2019 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||||
#
|
#
|
||||||
# This file is part of GNU Mes.
|
# This file is part of GNU Mes.
|
||||||
#
|
#
|
||||||
|
@ -19,28 +19,22 @@
|
||||||
# Usage:
|
# Usage:
|
||||||
# kaem --verbose --strict
|
# kaem --verbose --strict
|
||||||
|
|
||||||
mes_cpu=${mes_cpu:-x86}
|
|
||||||
stage0_cpu=${stage0_cpu:-x86}
|
|
||||||
|
|
||||||
mkdir -p m2
|
mkdir -p m2
|
||||||
|
|
||||||
M2-Planet \
|
M2-Planet \
|
||||||
--bootstrap-mode \
|
|
||||||
--debug \
|
--debug \
|
||||||
--architecture ${stage0_cpu} \
|
--architecture x86 \
|
||||||
-f include/m2/lib.h \
|
-f include/m2/lib.h \
|
||||||
-f lib/linux/${mes_cpu}-mes-m2/crt1.c \
|
-f lib/linux/x86-mes-m2/crt1.c \
|
||||||
-f lib/linux/${mes_cpu}-mes-m2/_exit.c \
|
-f lib/linux/x86-mes-m2/mini.c \
|
||||||
-f lib/linux/${mes_cpu}-mes-m2/_write.c \
|
|
||||||
-f lib/mes/globals.c \
|
-f lib/mes/globals.c \
|
||||||
-f lib/m2/cast.c \
|
-f lib/m2/cast.c \
|
||||||
-f lib/m2/exit.c \
|
-f lib/m2/exit.c \
|
||||||
-f lib/mes/mini-write.c \
|
-f lib/mes/mini-write.c \
|
||||||
-f lib/linux/${mes_cpu}-mes-m2/syscall.c \
|
-f lib/linux/x86-mes-m2/syscall.c \
|
||||||
-f include/linux/${mes_cpu}/syscall.h \
|
-f include/linux/x86/syscall.h \
|
||||||
-f lib/stub/__raise.c \
|
|
||||||
-f lib/linux/brk.c \
|
-f lib/linux/brk.c \
|
||||||
-f lib/m2/malloc.c \
|
-f lib/stdlib/malloc.c \
|
||||||
-f lib/string/memset.c \
|
-f lib/string/memset.c \
|
||||||
-f lib/m2/read.c \
|
-f lib/m2/read.c \
|
||||||
-f lib/mes/fdgetc.c \
|
-f lib/mes/fdgetc.c \
|
||||||
|
@ -53,7 +47,6 @@ M2-Planet \
|
||||||
-f lib/mes/fdputc.c \
|
-f lib/mes/fdputc.c \
|
||||||
-f lib/mes/eputc.c \
|
-f lib/mes/eputc.c \
|
||||||
\
|
\
|
||||||
-f include/m2/types.h \
|
|
||||||
-f include/mes/mes.h \
|
-f include/mes/mes.h \
|
||||||
-f include/mes/builtins.h \
|
-f include/mes/builtins.h \
|
||||||
-f include/mes/constants.h \
|
-f include/mes/constants.h \
|
||||||
|
@ -82,10 +75,8 @@ M2-Planet \
|
||||||
-f lib/mes/fdungetc.c \
|
-f lib/mes/fdungetc.c \
|
||||||
-f lib/posix/setenv.c \
|
-f lib/posix/setenv.c \
|
||||||
-f lib/linux/access.c \
|
-f lib/linux/access.c \
|
||||||
-f include/linux/m2/kernel-stat.h \
|
|
||||||
-f include/sys/stat.h \
|
|
||||||
-f lib/m2/chmod.c \
|
-f lib/m2/chmod.c \
|
||||||
-f lib/linux/ioctl3.c \
|
-f lib/m2/ioctl.c \
|
||||||
-f lib/m2/isatty.c \
|
-f lib/m2/isatty.c \
|
||||||
-f lib/linux/fork.c \
|
-f lib/linux/fork.c \
|
||||||
-f lib/m2/execve.c \
|
-f lib/m2/execve.c \
|
||||||
|
@ -121,24 +112,25 @@ M2-Planet \
|
||||||
-f src/vector.c \
|
-f src/vector.c \
|
||||||
-o m2/mes.M1
|
-o m2/mes.M1
|
||||||
|
|
||||||
blood-elf --little-endian -f m2/mes.M1 -o m2/mes.blood-elf-M1
|
blood-elf -f m2/mes.M1 -o m2/mes.blood-elf-M1
|
||||||
|
|
||||||
M1 \
|
M1 \
|
||||||
--architecture ${stage0_cpu} \
|
--LittleEndian \
|
||||||
--little-endian \
|
--architecture x86 \
|
||||||
-f lib/m2/${mes_cpu}/${mes_cpu}_defs.M1 \
|
-f lib/m2/x86/x86_defs.M1 \
|
||||||
-f lib/${mes_cpu}-mes/${mes_cpu}.M1 \
|
-f lib/x86-mes/x86.M1 \
|
||||||
-f lib/linux/${mes_cpu}-mes-m2/crt1.M1 \
|
-f lib/linux/x86-mes-m2/crt1.M1 \
|
||||||
-f m2/mes.M1 \
|
-f m2/mes.M1 \
|
||||||
-f m2/mes.blood-elf-M1 \
|
-f m2/mes.blood-elf-M1 \
|
||||||
-o m2/mes.hex2
|
-o m2/mes.hex2
|
||||||
|
|
||||||
mkdir -p bin
|
mkdir -p bin
|
||||||
hex2 \
|
hex2 \
|
||||||
--architecture ${stage0_cpu} \
|
--LittleEndian \
|
||||||
--little-endian \
|
--architecture x86 \
|
||||||
--base-address 0x1000000 \
|
--BaseAddress 0x1000000 \
|
||||||
-f lib/m2/${mes_cpu}/ELF-${mes_cpu}.hex2 \
|
--exec_enable \
|
||||||
|
-f lib/linux/x86-mes/elf32-header.hex2 \
|
||||||
-f m2/mes.hex2 \
|
-f m2/mes.hex2 \
|
||||||
-o bin/mes-m2
|
-o bin/mes-m2
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
### GNU Mes --- Maxwell Equations of Software
|
### GNU Mes --- Maxwell Equations of Software
|
||||||
### Copyright © 2017,2018,2020,2022 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
### Copyright © 2017,2018,2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||||
### Copyright © 2019,2020 Danny Milosavljevic <dannym@scratchpost.org>
|
### Copyright © 2019,2020 Danny Milosavljevic <dannym@scratchpost.org>
|
||||||
###
|
###
|
||||||
### This file is part of GNU Mes.
|
### This file is part of GNU Mes.
|
||||||
|
@ -91,7 +91,6 @@ DEFINE mov____%r0,(%r1) 000081e5
|
||||||
DEFINE mov____%r1,%r0 0100a0e1
|
DEFINE mov____%r1,%r0 0100a0e1
|
||||||
DEFINE mov____%r1,%r2 0120a0e1
|
DEFINE mov____%r1,%r2 0120a0e1
|
||||||
DEFINE mov____%esp,%r0 0d00a0e1
|
DEFINE mov____%esp,%r0 0d00a0e1
|
||||||
DEFINE mov____%esp,%r3 0d30a0e1
|
|
||||||
|
|
||||||
# e59f9004 ldr r9, [pc, #4] ; <L1>
|
# e59f9004 ldr r9, [pc, #4] ; <L1>
|
||||||
# e5890000 str r0, [r9]
|
# e5890000 str r0, [r9]
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
/* -*-comment-start: "//";comment-end:""-*-
|
/* -*-comment-start: "//";comment-end:""-*-
|
||||||
* GNU Mes --- Maxwell Equations of Software
|
* GNU Mes --- Maxwell Equations of Software
|
||||||
* Copyright © 2016,2017,2018 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
* Copyright © 2016,2017,2018 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||||
* Copyright © 2023 Rick Masters <grick23@gmail.com>
|
|
||||||
*
|
*
|
||||||
* This file is part of GNU Mes.
|
* This file is part of GNU Mes.
|
||||||
*
|
*
|
||||||
|
|
|
@ -24,5 +24,5 @@
|
||||||
int
|
int
|
||||||
isxdigit (int c)
|
isxdigit (int c)
|
||||||
{
|
{
|
||||||
return isdigit (c) || (c >= 'a' && c <= 'f') || (c >= 'A' && c <= 'F');
|
return isdigit (c) || (c >= 'a' && c <= 'f');
|
||||||
}
|
}
|
||||||
|
|
|
@ -48,7 +48,7 @@ _start ()
|
||||||
asm (
|
asm (
|
||||||
"mov %%ebp,%%eax\n\t"
|
"mov %%ebp,%%eax\n\t"
|
||||||
"add $4,%%eax\n\t"
|
"add $4,%%eax\n\t"
|
||||||
"mov (%%eax),%%eax\n\t"
|
"movzbl (%%eax),%%eax\n\t"
|
||||||
"add $3,%%eax\n\t"
|
"add $3,%%eax\n\t"
|
||||||
"shl $2,%%eax\n\t"
|
"shl $2,%%eax\n\t"
|
||||||
"add %%ebp,%%eax\n\t"
|
"add %%ebp,%%eax\n\t"
|
||||||
|
@ -64,7 +64,7 @@ _start ()
|
||||||
|
|
||||||
"mov %ebp,%eax\n\t"
|
"mov %ebp,%eax\n\t"
|
||||||
"add $4,%eax\n\t"
|
"add $4,%eax\n\t"
|
||||||
"mov (%eax),%eax\n\t"
|
"movzbl (%eax),%eax\n\t"
|
||||||
"push %eax\n\t"
|
"push %eax\n\t"
|
||||||
|
|
||||||
"call main\n\t"
|
"call main\n\t"
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/* -*-comment-start: "//";comment-end:""-*-
|
/* -*-comment-start: "//";comment-end:""-*-
|
||||||
* GNU Mes --- Maxwell Equations of Software
|
* GNU Mes --- Maxwell Equations of Software
|
||||||
* Copyright © 2017,2018,2019,2021 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
* Copyright © 2017,2018,2019 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||||
*
|
*
|
||||||
* This file is part of GNU Mes.
|
* This file is part of GNU Mes.
|
||||||
*
|
*
|
||||||
|
@ -37,7 +37,7 @@ _start ()
|
||||||
asm ("mov____%ebp,%eax");
|
asm ("mov____%ebp,%eax");
|
||||||
asm ("add____$i8,%eax !4");
|
asm ("add____$i8,%eax !4");
|
||||||
|
|
||||||
asm ("mov____(%eax),%eax");
|
asm ("movzbl_(%eax),%eax");
|
||||||
asm ("add____$i8,%eax !3");
|
asm ("add____$i8,%eax !3");
|
||||||
|
|
||||||
asm ("shl____$i8,%eax !0x02");
|
asm ("shl____$i8,%eax !0x02");
|
||||||
|
@ -51,7 +51,7 @@ _start ()
|
||||||
|
|
||||||
asm ("mov____%ebp,%eax");
|
asm ("mov____%ebp,%eax");
|
||||||
asm ("add____$i8,%eax !4");
|
asm ("add____$i8,%eax !4");
|
||||||
asm ("mov____(%eax),%eax");
|
asm ("movzbl_(%eax),%eax");
|
||||||
asm ("push___%eax");
|
asm ("push___%eax");
|
||||||
|
|
||||||
main ();
|
main ();
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
/* -*-comment-start: "//";comment-end:""-*-
|
/* -*-comment-start: "//";comment-end:""-*-
|
||||||
* GNU Mes --- Maxwell Equations of Software
|
* GNU Mes --- Maxwell Equations of Software
|
||||||
* Copyright © 2017,2018,2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
* Copyright © 2017,2018,2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||||
* Copyright © 2021 Danny Milosavljevic <dannym@scratchpost.org>
|
|
||||||
*
|
*
|
||||||
* This file is part of GNU Mes.
|
* This file is part of GNU Mes.
|
||||||
*
|
*
|
||||||
|
@ -21,13 +20,8 @@
|
||||||
|
|
||||||
#include <mes/lib.h>
|
#include <mes/lib.h>
|
||||||
|
|
||||||
#if HAVE_LONG_LONG
|
double
|
||||||
long long
|
__divdi3 (double a, double b)
|
||||||
__divdi3 (long long a, long long b)
|
|
||||||
#else
|
|
||||||
long
|
|
||||||
__divdi3 (long a, long b)
|
|
||||||
#endif
|
|
||||||
{
|
{
|
||||||
#if !__TINYC__
|
#if !__TINYC__
|
||||||
static int stub = 0;
|
static int stub = 0;
|
||||||
|
@ -35,7 +29,6 @@ __divdi3 (long a, long b)
|
||||||
eputs ("__divdi3 stub\n");
|
eputs ("__divdi3 stub\n");
|
||||||
stub = 1;
|
stub = 1;
|
||||||
#endif
|
#endif
|
||||||
// FIXME: Actually use long long
|
|
||||||
long ai = a;
|
long ai = a;
|
||||||
long bi = b;
|
long bi = b;
|
||||||
#if __arm__ && __TINYC__
|
#if __arm__ && __TINYC__
|
||||||
|
@ -45,13 +38,8 @@ __divdi3 (long a, long b)
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
#if HAVE_LONG_LONG
|
double
|
||||||
long long
|
__moddi3 (double a, double b)
|
||||||
__moddi3 (long long a, long long b)
|
|
||||||
#else
|
|
||||||
long
|
|
||||||
__moddi3 (long a, long b)
|
|
||||||
#endif
|
|
||||||
{
|
{
|
||||||
#if !__TINYC__
|
#if !__TINYC__
|
||||||
static int stub = 0;
|
static int stub = 0;
|
||||||
|
@ -59,7 +47,6 @@ __moddi3 (long a, long b)
|
||||||
eputs ("__moddi3 stub\n");
|
eputs ("__moddi3 stub\n");
|
||||||
stub = 1;
|
stub = 1;
|
||||||
#endif
|
#endif
|
||||||
// FIXME: Actually use long long
|
|
||||||
long ai = a;
|
long ai = a;
|
||||||
long bi = b;
|
long bi = b;
|
||||||
#if __arm__ && __TINYC__
|
#if __arm__ && __TINYC__
|
||||||
|
@ -83,13 +70,12 @@ __udivdi3 (unsigned long a, long ah, unsigned long b)
|
||||||
eputs ("__udivdi3 stub\n");
|
eputs ("__udivdi3 stub\n");
|
||||||
stub = 1;
|
stub = 1;
|
||||||
#endif
|
#endif
|
||||||
// FIXME: Actually use long long
|
|
||||||
unsigned long ai = a;
|
unsigned long ai = a;
|
||||||
unsigned long bi = b;
|
unsigned long bi = b;
|
||||||
if (!b)
|
if (!b)
|
||||||
return 0;
|
return 0;
|
||||||
#if __arm__ && __TINYC__
|
#if __arm__ && __TINYC__
|
||||||
return __mesabi_udiv (ai, bi);
|
return __mesabi_idiv (ai, bi);
|
||||||
#else
|
#else
|
||||||
return ai / bi;
|
return ai / bi;
|
||||||
#endif
|
#endif
|
||||||
|
@ -109,11 +95,10 @@ __umoddi3 (unsigned long a, long ah, unsigned long b)
|
||||||
eputs ("__umoddi3 stub\n");
|
eputs ("__umoddi3 stub\n");
|
||||||
stub = 1;
|
stub = 1;
|
||||||
#endif
|
#endif
|
||||||
// FIXME: Actually use long long
|
|
||||||
unsigned long ai = a;
|
unsigned long ai = a;
|
||||||
unsigned long bi = b;
|
unsigned long bi = b;
|
||||||
#if __arm__ && __TINYC__
|
#if __arm__ && __TINYC__
|
||||||
return __mesabi_umod (ai, bi);
|
return __mesabi_imod (ai, bi);
|
||||||
#else
|
#else
|
||||||
return ai % bi;
|
return ai % bi;
|
||||||
#endif
|
#endif
|
||||||
|
@ -136,7 +121,7 @@ __lshrdi3 (unsigned long a, long ah, long b)
|
||||||
#else // __TINYC__
|
#else // __TINYC__
|
||||||
for (int i = 0; i < b; i++)
|
for (int i = 0; i < b; i++)
|
||||||
#if __arm__
|
#if __arm__
|
||||||
a = __mesabi_udiv (a, 2); // I sure hope that doesn't endless recurse because of the optimizations in __mesabi_udiv that shift
|
a = __mesabi_idiv (a, 2);
|
||||||
#else // !__arm__
|
#else // !__arm__
|
||||||
a /= 2;
|
a /= 2;
|
||||||
#endif // !__arm__
|
#endif // !__arm__
|
||||||
|
@ -182,7 +167,7 @@ __ashrdi3 (long a, long ah, long b)
|
||||||
#else // __TINYC__
|
#else // __TINYC__
|
||||||
for (int i = 0; i < b; i++)
|
for (int i = 0; i < b; i++)
|
||||||
#if __arm__
|
#if __arm__
|
||||||
a = __mesabi_idiv (a, 2); // I sure hope that doesn't endless recurse because of the optimizations in __mesabi_udiv that shift
|
a = __mesabi_idiv (a, 2);
|
||||||
#else // !__arm__
|
#else // !__arm__
|
||||||
a /= 2;
|
a /= 2;
|
||||||
#endif // !__arm__
|
#endif // !__arm__
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/* -*-comment-start: "//";comment-end:""-*-
|
/* -*-comment-start: "//";comment-end:""-*-
|
||||||
* GNU Mes --- Maxwell Equations of Software
|
* GNU Mes --- Maxwell Equations of Software
|
||||||
* Copyright © 2016,2017,2018,2019,2022 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
* Copyright © 2016,2017,2018,2019 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||||
*
|
*
|
||||||
* This file is part of GNU Mes.
|
* This file is part of GNU Mes.
|
||||||
*
|
*
|
||||||
|
@ -20,7 +20,7 @@
|
||||||
|
|
||||||
#include <mes/lib.h>
|
#include <mes/lib.h>
|
||||||
#include <linux/syscall.h>
|
#include <linux/syscall.h>
|
||||||
#include <arch/syscall.h>
|
#include <syscall.h>
|
||||||
|
|
||||||
char *
|
char *
|
||||||
_getcwd (char *buffer, size_t size)
|
_getcwd (char *buffer, size_t size)
|
||||||
|
|
|
@ -19,7 +19,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <linux/syscall.h>
|
#include <linux/syscall.h>
|
||||||
#include <arch/syscall.h>
|
#include <syscall.h>
|
||||||
#include <mes/lib.h>
|
#include <mes/lib.h>
|
||||||
#include <fcntl.h>
|
#include <fcntl.h>
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/* -*-comment-start: "//";comment-end:""-*-
|
/* -*-comment-start: "//";comment-end:""-*-
|
||||||
* GNU Mes --- Maxwell Equations of Software
|
* GNU Mes --- Maxwell Equations of Software
|
||||||
* Copyright © 2016,2017,2018,2019,2022 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
* Copyright © 2016,2017,2018,2019 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||||
*
|
*
|
||||||
* This file is part of GNU Mes.
|
* This file is part of GNU Mes.
|
||||||
*
|
*
|
||||||
|
@ -19,7 +19,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <linux/syscall.h>
|
#include <linux/syscall.h>
|
||||||
#include <arch/syscall.h>
|
#include <syscall.h>
|
||||||
#include <mes/lib.h>
|
#include <mes/lib.h>
|
||||||
#include <fcntl.h>
|
#include <fcntl.h>
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/* -*-comment-start: "//";comment-end:""-*-
|
/* -*-comment-start: "//";comment-end:""-*-
|
||||||
* GNU Mes --- Maxwell Equations of Software
|
* GNU Mes --- Maxwell Equations of Software
|
||||||
* Copyright © 2016,2017,2018,2019,2022 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
* Copyright © 2016,2017,2018,2019 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||||
*
|
*
|
||||||
* This file is part of GNU Mes.
|
* This file is part of GNU Mes.
|
||||||
*
|
*
|
||||||
|
@ -20,7 +20,7 @@
|
||||||
|
|
||||||
#include <mes/lib.h>
|
#include <mes/lib.h>
|
||||||
#include <linux/syscall.h>
|
#include <linux/syscall.h>
|
||||||
#include <arch/syscall.h>
|
#include <syscall.h>
|
||||||
|
|
||||||
int
|
int
|
||||||
access (char const *file_name, int how)
|
access (char const *file_name, int how)
|
||||||
|
|
|
@ -1,28 +0,0 @@
|
||||||
/* -*-comment-start: "//";comment-end:""-*-
|
|
||||||
* GNU Mes --- Maxwell Equations of Software
|
|
||||||
* Copyright © 2016,2017,2020,2022 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
|
||||||
* Copyright © 2020 Danny Milosavljevic <dannym@scratchpost.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/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
void
|
|
||||||
_exit ()
|
|
||||||
{
|
|
||||||
asm ("SYS_exit mov____$i8,%r7");
|
|
||||||
asm ("!4 ldr____%r0,(%fp,-#$i8)");
|
|
||||||
asm ("swi____$0");
|
|
||||||
}
|
|
|
@ -1,30 +0,0 @@
|
||||||
/* -*-comment-start: "//";comment-end:""-*-
|
|
||||||
* GNU Mes --- Maxwell Equations of Software
|
|
||||||
* Copyright © 2016,2017,2020,2022 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
|
||||||
* Copyright © 2020 Danny Milosavljevic <dannym@scratchpost.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/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
void
|
|
||||||
_write ()
|
|
||||||
{
|
|
||||||
asm ("SYS_write mov____$i8,%r7");
|
|
||||||
asm ("!4 ldr____%r0,(%fp,-#$i8)");
|
|
||||||
asm ("!8 ldr____%r1,(%fp,-#$i8)");
|
|
||||||
asm ("!12 ldr____%r2,(%fp,-#$i8)");
|
|
||||||
asm ("swi____$0");
|
|
||||||
}
|
|
|
@ -1,145 +0,0 @@
|
||||||
### GNU Mes --- Maxwell Equations of Software
|
|
||||||
### Copyright (C) 2016 Jeremiah Orians
|
|
||||||
### Copyright © 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/>.
|
|
||||||
|
|
||||||
:_start
|
|
||||||
'0' SP BP NO_SHIFT MOVE_ALWAYS ; Setup Base Pointer
|
|
||||||
|
|
||||||
;; Prepare argv
|
|
||||||
!4 R0 ADD BP ARITH_ALWAYS ; ARGV_address = BP + 4
|
|
||||||
{R0} PUSH_ALWAYS ; Put argv on the stack
|
|
||||||
|
|
||||||
;; Prepare envp
|
|
||||||
'0' BP R0 NO_SHIFT MOVE_ALWAYS ; Address we need to load from
|
|
||||||
!0 R0 LOAD32 R0 MEMORY ; Get ARGC
|
|
||||||
!2 R0 ADD R0 ARITH_ALWAYS ; OFFSET = ARGC + 2
|
|
||||||
'0' R0 R0 '1' MOVE_ALWAYS ; OFFSET = OFFSET * WORDSIZE
|
|
||||||
'0' R0 R0 ADD BP ARITH2_ALWAYS ; ENVP_address = BP + OFFSET
|
|
||||||
{R0} PUSH_ALWAYS ; Put envp on the stack
|
|
||||||
|
|
||||||
mov____%r0,0x32 &GLOBAL_environ
|
|
||||||
|
|
||||||
;; Stack offset
|
|
||||||
!4 BP ADD BP ARITH_ALWAYS ; Fix BP
|
|
||||||
|
|
||||||
;;^~FUNCTION___init_io CALL_ALWAYS ; Setup for FILE*
|
|
||||||
|
|
||||||
;; Initialize MesCC lib file descriptors.
|
|
||||||
!0 mov____$i8,%r0
|
|
||||||
mov____%r0,0x32 &GLOBAL___stdin
|
|
||||||
!1 mov____$i8,%r0
|
|
||||||
mov____%r0,0x32 &GLOBAL___stdout
|
|
||||||
!2 mov____$i8,%r0
|
|
||||||
mov____%r0,0x32 &GLOBAL___stderr
|
|
||||||
|
|
||||||
^~FUNCTION_main CALL_ALWAYS ; Jump right into main
|
|
||||||
|
|
||||||
SYS_exit mov____$i8,%r7
|
|
||||||
swi____$0
|
|
||||||
|
|
||||||
|
|
||||||
# Unsigned Divide
|
|
||||||
:divide
|
|
||||||
{R4} PUSH_ALWAYS ; Protect R4
|
|
||||||
{R3} PUSH_ALWAYS ; Protect R3
|
|
||||||
{R2} PUSH_ALWAYS ; Protect R2
|
|
||||||
|
|
||||||
'0' R0 R3 NO_SHIFT MOVE_ALWAYS ; MOV R3,R0
|
|
||||||
'0' R1 R2 NO_SHIFT MOVE_ALWAYS ; MOV R2,R1
|
|
||||||
|
|
||||||
!0 R0 LOADI8_ALWAYS ; MOV R0,#0
|
|
||||||
!0 CMPI8 R2 IMM_ALWAYS ; CMP R2,#0
|
|
||||||
!1 R0 SUB R0 ARITH_LT ; SUBLT R0,R0,#1
|
|
||||||
!0 CMPI8 R3 IMM_ALWAYS ; CMP R3,#0
|
|
||||||
!0 R3 RSUB R3 ARITH_LT ; RSBLT R3,R3,#0
|
|
||||||
'0' R0 R0 MVN_LT ; MVNLT R0,R0
|
|
||||||
'0' R0 R4 NO_SHIFT MOVE_ALWAYS ; MOV R4,R0
|
|
||||||
|
|
||||||
!32 R0 LOADI8_ALWAYS ; MOV R0,#32.
|
|
||||||
!0 R1 LOADI8_ALWAYS ; MOV R1,#0
|
|
||||||
:divide_loop
|
|
||||||
'0' R2 R2 ADDS R2 ARITH2_ALWAYS ; ADDS R2,R2,R2
|
|
||||||
'0' R1 R1 ADCS R1 ARITH2_ALWAYS ; ADCS R1,R1,R1
|
|
||||||
'0' R3 CMP R1 AUX_ALWAYS ; CMP R1,R3
|
|
||||||
'0' R3 R1 SUB R1 ARITH2_GE ; SUBGE R1,R1,R3
|
|
||||||
!1 R2 ADD R2 ARITH_GE ; ADDGE R2,R2,#1
|
|
||||||
!1 R0 SUB R0 ARITH_ALWAYS ; SUB R0,R0,#1
|
|
||||||
!0 CMPI8 R0 IMM_ALWAYS ; CMP R0,#0
|
|
||||||
^~divide_loop JUMP_NE ; BNE loop
|
|
||||||
|
|
||||||
'0' R2 R0 NO_SHIFT MOVE_ALWAYS ; MOV R0,R2
|
|
||||||
|
|
||||||
{R2} POP_ALWAYS ; Restore R2
|
|
||||||
{R3} POP_ALWAYS ; Restore R3
|
|
||||||
{R4} POP_ALWAYS ; Restore R4
|
|
||||||
'1' LR RETURN
|
|
||||||
|
|
||||||
# Signed Divide
|
|
||||||
:divides
|
|
||||||
{R4} PUSH_ALWAYS ; Protect R4
|
|
||||||
{R3} PUSH_ALWAYS ; Protect R3
|
|
||||||
{R2} PUSH_ALWAYS ; Protect R2
|
|
||||||
|
|
||||||
'0' R0 R3 NO_SHIFT MOVE_ALWAYS ; MOV R3,R0
|
|
||||||
'0' R1 R2 NO_SHIFT MOVE_ALWAYS ; MOV R2,R1
|
|
||||||
|
|
||||||
!0 R0 LOADI8_ALWAYS ; MOV R0,#0
|
|
||||||
!0 CMPI8 R2 IMM_ALWAYS ; CMP R2,#0
|
|
||||||
!0 R2 RSUB R2 ARITH_LT ; RSBLT R2,R2,#0
|
|
||||||
!1 R0 SUB R0 ARITH_LT ; SUBLT R0,R0,#1
|
|
||||||
!0 CMPI8 R3 IMM_ALWAYS ; CMP R3,#0
|
|
||||||
!0 R3 RSUB R3 ARITH_LT ; RSBLT R3,R3,#0
|
|
||||||
'0' R0 R0 MVN_LT ; MVNLT R0,R0
|
|
||||||
'0' R0 R4 NO_SHIFT MOVE_ALWAYS ; MOV R4,R0
|
|
||||||
|
|
||||||
!32 R0 LOADI8_ALWAYS ; MOV R0,#32.
|
|
||||||
!0 R1 LOADI8_ALWAYS ; MOV R1,#0
|
|
||||||
:divides_loop
|
|
||||||
'0' R2 R2 ADDS R2 ARITH2_ALWAYS ; ADDS R2,R2,R2
|
|
||||||
'0' R1 R1 ADCS R1 ARITH2_ALWAYS ; ADCS R1,R1,R1
|
|
||||||
'0' R3 CMP R1 AUX_ALWAYS ; CMP R1,R3
|
|
||||||
'0' R3 R1 SUB R1 ARITH2_GE ; SUBGE R1,R1,R3
|
|
||||||
!1 R2 ADD R2 ARITH_GE ; ADDGE R2,R2,#1
|
|
||||||
!1 R0 SUB R0 ARITH_ALWAYS ; SUB R0,R0,#1
|
|
||||||
!0 CMPI8 R0 IMM_ALWAYS ; CMP R0,#0
|
|
||||||
^~divides_loop JUMP_NE ; BNE loop
|
|
||||||
|
|
||||||
!0 CMPI8 R4 IMM_ALWAYS ; CMP R4,#0
|
|
||||||
!0 R2 RSUB R2 ARITH_NE ; RSBNE R2,R2,#0
|
|
||||||
'0' R2 R0 NO_SHIFT MOVE_ALWAYS ; MOV R0,R2
|
|
||||||
|
|
||||||
{R2} POP_ALWAYS ; Restore R2
|
|
||||||
{R3} POP_ALWAYS ; Restore R3
|
|
||||||
{R4} POP_ALWAYS ; Restore R4
|
|
||||||
'1' LR RETURN
|
|
||||||
|
|
||||||
# Unsigned Modulus
|
|
||||||
:modulus
|
|
||||||
{LR} PUSH_ALWAYS ; Prepare to leverage divide
|
|
||||||
^~divide CALL_ALWAYS ; Use divide
|
|
||||||
'0' R1 R0 NO_SHIFT MOVE_ALWAYS ; MOV R0,R1
|
|
||||||
{LR} POP_ALWAYS ; Prepare for return
|
|
||||||
'1' LR RETURN
|
|
||||||
|
|
||||||
# Signed Modulus
|
|
||||||
:moduluss
|
|
||||||
{LR} PUSH_ALWAYS ; Prepare to leverage divide
|
|
||||||
^~divides CALL_ALWAYS ; Use divides
|
|
||||||
'0' R1 R0 NO_SHIFT MOVE_ALWAYS ; MOV R0,R1
|
|
||||||
{LR} POP_ALWAYS ; Prepare for return
|
|
||||||
'1' LR RETURN
|
|
|
@ -1,34 +0,0 @@
|
||||||
/* -*-comment-start: "//";comment-end:""-*-
|
|
||||||
* GNU Mes --- Maxwell Equations of Software
|
|
||||||
* Copyright © 2017,2018,2019,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/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "mes/lib-mini.h"
|
|
||||||
|
|
||||||
int __stdin;
|
|
||||||
int __stdout;
|
|
||||||
int __stderr;
|
|
||||||
char **environ;
|
|
||||||
int main (int argc, char **argv, char **envp);
|
|
||||||
|
|
||||||
/* FIXME: this is going to be called `FUNCTION__start' */
|
|
||||||
//#int
|
|
||||||
//#_start ()
|
|
||||||
//#{
|
|
||||||
//# ..
|
|
||||||
//#}
|
|
|
@ -1,165 +0,0 @@
|
||||||
/* -*-comment-start: "//";comment-end:""-*-
|
|
||||||
* GNU Mes --- Maxwell Equations of Software
|
|
||||||
* Copyright © 2016,2017,2018,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/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <errno.h>
|
|
||||||
#include <linux/arm/syscall.h>
|
|
||||||
|
|
||||||
int errno;
|
|
||||||
|
|
||||||
int
|
|
||||||
__sys_call (int sys_call)
|
|
||||||
{
|
|
||||||
asm ("!4 ldr____%r7,(%fp,-#$i8)");
|
|
||||||
asm ("swi____$0");
|
|
||||||
}
|
|
||||||
|
|
||||||
int
|
|
||||||
__sys_call1 (int sys_call, int one)
|
|
||||||
{
|
|
||||||
asm ("!4 ldr____%r7,(%fp,-#$i8)");
|
|
||||||
asm ("!8 ldr____%r0,(%fp,-#$i8)");
|
|
||||||
asm ("swi____$0");
|
|
||||||
}
|
|
||||||
|
|
||||||
int
|
|
||||||
__sys_call2 (int sys_call, int one, int two)
|
|
||||||
{
|
|
||||||
asm ("!4 ldr____%r7,(%fp,-#$i8)");
|
|
||||||
asm ("!8 ldr____%r0,(%fp,-#$i8)");
|
|
||||||
asm ("!12 ldr____%r1,(%fp,-#$i8)");
|
|
||||||
asm ("swi____$0");
|
|
||||||
}
|
|
||||||
|
|
||||||
int
|
|
||||||
__sys_call3 (int sys_call, int one, int two, int three)
|
|
||||||
{
|
|
||||||
asm ("!4 ldr____%r7,(%fp,-#$i8)");
|
|
||||||
asm ("!8 ldr____%r0,(%fp,-#$i8)");
|
|
||||||
asm ("!12 ldr____%r1,(%fp,-#$i8)");
|
|
||||||
asm ("!16 ldr____%r2,(%fp,-#$i8)");
|
|
||||||
asm ("swi____$0");
|
|
||||||
}
|
|
||||||
|
|
||||||
int
|
|
||||||
__sys_call4 (int sys_call, int one, int two, int three, int four)
|
|
||||||
{
|
|
||||||
asm ("!4 ldr____%r7,(%fp,-#$i8)");
|
|
||||||
asm ("!8 ldr____%r0,(%fp,-#$i8)");
|
|
||||||
asm ("!12 ldr____%r1,(%fp,-#$i8)");
|
|
||||||
asm ("!16 ldr____%r2,(%fp,-#$i8)");
|
|
||||||
asm ("!20 ldr____%r2,(%fp,-#$i8)");
|
|
||||||
asm ("swi____$0");
|
|
||||||
}
|
|
||||||
|
|
||||||
int
|
|
||||||
__sys_call6 (int sys_call, int one, int two, int three, int four, int five, int six)
|
|
||||||
{
|
|
||||||
asm ("!4 ldr____%r7,(%fp,-#$i8)");
|
|
||||||
asm ("!8 ldr____%r0,(%fp,-#$i8)");
|
|
||||||
asm ("!12 ldr____%r1,(%fp,-#$i8)");
|
|
||||||
asm ("!16 ldr____%r2,(%fp,-#$i8)");
|
|
||||||
asm ("!20 ldr____%r2,(%fp,-#$i8)");
|
|
||||||
asm ("!24 ldr____%r2,(%fp,-#$i8)");
|
|
||||||
asm ("swi____$0");
|
|
||||||
}
|
|
||||||
|
|
||||||
int
|
|
||||||
_sys_call (int sys_call)
|
|
||||||
{
|
|
||||||
int r = __sys_call (sys_call);
|
|
||||||
if (r < 0)
|
|
||||||
{
|
|
||||||
errno = -r;
|
|
||||||
r = -1;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
errno = 0;
|
|
||||||
return r;
|
|
||||||
}
|
|
||||||
|
|
||||||
int
|
|
||||||
_sys_call1 (int sys_call, int one)
|
|
||||||
{
|
|
||||||
int r = __sys_call1 (sys_call, one);
|
|
||||||
if (r < 0)
|
|
||||||
{
|
|
||||||
errno = -r;
|
|
||||||
r = -1;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
errno = 0;
|
|
||||||
return r;
|
|
||||||
}
|
|
||||||
|
|
||||||
int
|
|
||||||
_sys_call2 (int sys_call, int one, int two)
|
|
||||||
{
|
|
||||||
int r = __sys_call2 (sys_call, one, two);
|
|
||||||
if (r < 0)
|
|
||||||
{
|
|
||||||
errno = -r;
|
|
||||||
r = -1;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
errno = 0;
|
|
||||||
return r;
|
|
||||||
}
|
|
||||||
|
|
||||||
int
|
|
||||||
_sys_call3 (int sys_call, int one, int two, int three)
|
|
||||||
{
|
|
||||||
int r = __sys_call3 (sys_call, one, two, three);
|
|
||||||
if (r < 0)
|
|
||||||
{
|
|
||||||
errno = -r;
|
|
||||||
r = -1;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
errno = 0;
|
|
||||||
return r;
|
|
||||||
}
|
|
||||||
|
|
||||||
int
|
|
||||||
_sys_call4 (int sys_call, int one, int two, int three, int four)
|
|
||||||
{
|
|
||||||
int r = __sys_call4 (sys_call, one, two, three, four);
|
|
||||||
if (r < 0)
|
|
||||||
{
|
|
||||||
errno = -r;
|
|
||||||
r = -1;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
errno = 0;
|
|
||||||
return r;
|
|
||||||
}
|
|
||||||
|
|
||||||
int
|
|
||||||
_sys_call6 (int sys_call, int one, int two, int three, int four, int five, int six)
|
|
||||||
{
|
|
||||||
int r = __sys_call6 (sys_call, one, two, three, four, five, six);
|
|
||||||
if (r < 0)
|
|
||||||
{
|
|
||||||
errno = -r;
|
|
||||||
r = -1;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
errno = 0;
|
|
||||||
return r;
|
|
||||||
}
|
|
|
@ -1,6 +1,6 @@
|
||||||
/* -*-comment-start: "//";comment-end:""-*-
|
/* -*-comment-start: "//";comment-end:""-*-
|
||||||
* GNU Mes --- Maxwell Equations of Software
|
* GNU Mes --- Maxwell Equations of Software
|
||||||
* Copyright © 2016,2017,2018,2019,2022 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
* Copyright © 2016,2017,2018,2019 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||||
*
|
*
|
||||||
* This file is part of GNU Mes.
|
* This file is part of GNU Mes.
|
||||||
*
|
*
|
||||||
|
@ -20,7 +20,7 @@
|
||||||
|
|
||||||
#include <mes/lib.h>
|
#include <mes/lib.h>
|
||||||
#include <linux/syscall.h>
|
#include <linux/syscall.h>
|
||||||
#include <arch/syscall.h>
|
#include <syscall.h>
|
||||||
|
|
||||||
long
|
long
|
||||||
brk (void *addr)
|
brk (void *addr)
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/* -*-comment-start: "//";comment-end:""-*-
|
/* -*-comment-start: "//";comment-end:""-*-
|
||||||
* GNU Mes --- Maxwell Equations of Software
|
* 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.
|
* This file is part of GNU Mes.
|
||||||
*
|
*
|
||||||
|
@ -19,7 +19,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <linux/syscall.h>
|
#include <linux/syscall.h>
|
||||||
#include <arch/syscall.h>
|
#include <syscall.h>
|
||||||
|
|
||||||
int
|
int
|
||||||
chdir (char const *file_name)
|
chdir (char const *file_name)
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/* -*-comment-start: "//";comment-end:""-*-
|
/* -*-comment-start: "//";comment-end:""-*-
|
||||||
* GNU Mes --- Maxwell Equations of Software
|
* GNU Mes --- Maxwell Equations of Software
|
||||||
* Copyright © 2016,2017,2018,2019,2022 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
* Copyright © 2016,2017,2018,2019 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||||
*
|
*
|
||||||
* This file is part of GNU Mes.
|
* This file is part of GNU Mes.
|
||||||
*
|
*
|
||||||
|
@ -20,7 +20,7 @@
|
||||||
|
|
||||||
#include <mes/lib.h>
|
#include <mes/lib.h>
|
||||||
#include <linux/syscall.h>
|
#include <linux/syscall.h>
|
||||||
#include <arch/syscall.h>
|
#include <syscall.h>
|
||||||
#include <sys/stat.h>
|
#include <sys/stat.h>
|
||||||
|
|
||||||
int
|
int
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/* -*-comment-start: "//";comment-end:""-*-
|
/* -*-comment-start: "//";comment-end:""-*-
|
||||||
* GNU Mes --- Maxwell Equations of Software
|
* 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.
|
* This file is part of GNU Mes.
|
||||||
*
|
*
|
||||||
|
@ -20,7 +20,7 @@
|
||||||
|
|
||||||
#include <mes/lib.h>
|
#include <mes/lib.h>
|
||||||
#include <linux/syscall.h>
|
#include <linux/syscall.h>
|
||||||
#include <arch/syscall.h>
|
#include <syscall.h>
|
||||||
#include <time.h>
|
#include <time.h>
|
||||||
|
|
||||||
int
|
int
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/* -*-comment-start: "//";comment-end:""-*-
|
/* -*-comment-start: "//";comment-end:""-*-
|
||||||
* GNU Mes --- Maxwell Equations of Software
|
* GNU Mes --- Maxwell Equations of Software
|
||||||
* Copyright © 2016,2017,2018,2019,2022 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
* Copyright © 2016,2017,2018,2019 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||||
*
|
*
|
||||||
* This file is part of GNU Mes.
|
* This file is part of GNU Mes.
|
||||||
*
|
*
|
||||||
|
@ -19,7 +19,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <linux/syscall.h>
|
#include <linux/syscall.h>
|
||||||
#include <arch/syscall.h>
|
#include <syscall.h>
|
||||||
#include <mes/lib.h>
|
#include <mes/lib.h>
|
||||||
|
|
||||||
int
|
int
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/* -*-comment-start: "//";comment-end:""-*-
|
/* -*-comment-start: "//";comment-end:""-*-
|
||||||
* GNU Mes --- Maxwell Equations of Software
|
* GNU Mes --- Maxwell Equations of Software
|
||||||
* Copyright © 2016,2017,2018,2019,2022 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
* Copyright © 2016,2017,2018,2019 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||||
*
|
*
|
||||||
* This file is part of GNU Mes.
|
* This file is part of GNU Mes.
|
||||||
*
|
*
|
||||||
|
@ -19,7 +19,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <linux/syscall.h>
|
#include <linux/syscall.h>
|
||||||
#include <arch/syscall.h>
|
#include <syscall.h>
|
||||||
|
|
||||||
int
|
int
|
||||||
dup (int old)
|
dup (int old)
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/* -*-comment-start: "//";comment-end:""-*-
|
/* -*-comment-start: "//";comment-end:""-*-
|
||||||
* GNU Mes --- Maxwell Equations of Software
|
* GNU Mes --- Maxwell Equations of Software
|
||||||
* Copyright © 2016,2017,2018,2019,2022 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
* Copyright © 2016,2017,2018,2019 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||||
*
|
*
|
||||||
* This file is part of GNU Mes.
|
* This file is part of GNU Mes.
|
||||||
*
|
*
|
||||||
|
@ -19,7 +19,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <linux/syscall.h>
|
#include <linux/syscall.h>
|
||||||
#include <arch/syscall.h>
|
#include <syscall.h>
|
||||||
|
|
||||||
int
|
int
|
||||||
dup2 (int old, int new)
|
dup2 (int old, int new)
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/* -*-comment-start: "//";comment-end:""-*-
|
/* -*-comment-start: "//";comment-end:""-*-
|
||||||
* GNU Mes --- Maxwell Equations of Software
|
* GNU Mes --- Maxwell Equations of Software
|
||||||
* Copyright © 2016,2017,2018,2019,2022 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
* Copyright © 2016,2017,2018,2019 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||||
*
|
*
|
||||||
* This file is part of GNU Mes.
|
* This file is part of GNU Mes.
|
||||||
*
|
*
|
||||||
|
@ -19,7 +19,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <linux/syscall.h>
|
#include <linux/syscall.h>
|
||||||
#include <arch/syscall.h>
|
#include <syscall.h>
|
||||||
|
|
||||||
int
|
int
|
||||||
execve (char const *file_name, char *const argv[], char *const env[])
|
execve (char const *file_name, char *const argv[], char *const env[])
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/* -*-comment-start: "//";comment-end:""-*-
|
/* -*-comment-start: "//";comment-end:""-*-
|
||||||
* GNU Mes --- Maxwell Equations of Software
|
* 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.
|
* This file is part of GNU Mes.
|
||||||
*
|
*
|
||||||
|
@ -19,7 +19,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <linux/syscall.h>
|
#include <linux/syscall.h>
|
||||||
#include <arch/syscall.h>
|
#include <syscall.h>
|
||||||
#include <stdarg.h>
|
#include <stdarg.h>
|
||||||
|
|
||||||
int
|
int
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/* -*-comment-start: "//";comment-end:""-*-
|
/* -*-comment-start: "//";comment-end:""-*-
|
||||||
* GNU Mes --- Maxwell Equations of Software
|
* GNU Mes --- Maxwell Equations of Software
|
||||||
* Copyright © 2016,2017,2018,2019,2022 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
* Copyright © 2016,2017,2018,2019 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||||
*
|
*
|
||||||
* This file is part of GNU Mes.
|
* This file is part of GNU Mes.
|
||||||
*
|
*
|
||||||
|
@ -19,7 +19,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <linux/syscall.h>
|
#include <linux/syscall.h>
|
||||||
#include <arch/syscall.h>
|
#include <syscall.h>
|
||||||
|
|
||||||
int
|
int
|
||||||
fork ()
|
fork ()
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/* -*-comment-start: "//";comment-end:""-*-
|
/* -*-comment-start: "//";comment-end:""-*-
|
||||||
* GNU Mes --- Maxwell Equations of Software
|
* 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.
|
* This file is part of GNU Mes.
|
||||||
*
|
*
|
||||||
|
@ -19,7 +19,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <linux/syscall.h>
|
#include <linux/syscall.h>
|
||||||
#include <arch/syscall.h>
|
#include <syscall.h>
|
||||||
#include <sys/stat.h>
|
#include <sys/stat.h>
|
||||||
|
|
||||||
int
|
int
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/* -*-comment-start: "//";comment-end:""-*-
|
/* -*-comment-start: "//";comment-end:""-*-
|
||||||
* GNU Mes --- Maxwell Equations of Software
|
* GNU Mes --- Maxwell Equations of Software
|
||||||
* Copyright © 2016,2017,2018,2019,2022 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
* Copyright © 2016,2017,2018,2019 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||||
*
|
*
|
||||||
* This file is part of GNU Mes.
|
* This file is part of GNU Mes.
|
||||||
*
|
*
|
||||||
|
@ -19,7 +19,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <linux/syscall.h>
|
#include <linux/syscall.h>
|
||||||
#include <arch/syscall.h>
|
#include <syscall.h>
|
||||||
|
|
||||||
int
|
int
|
||||||
fsync (int filedes)
|
fsync (int filedes)
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/* -*-comment-start: "//";comment-end:""-*-
|
/* -*-comment-start: "//";comment-end:""-*-
|
||||||
* GNU Mes --- Maxwell Equations of Software
|
* 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.
|
* This file is part of GNU Mes.
|
||||||
*
|
*
|
||||||
|
@ -19,7 +19,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <linux/syscall.h>
|
#include <linux/syscall.h>
|
||||||
#include <arch/syscall.h>
|
#include <syscall.h>
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
|
|
||||||
int
|
int
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/* -*-comment-start: "//";comment-end:""-*-
|
/* -*-comment-start: "//";comment-end:""-*-
|
||||||
* GNU Mes --- Maxwell Equations of Software
|
* 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.
|
* This file is part of GNU Mes.
|
||||||
*
|
*
|
||||||
|
@ -19,7 +19,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <linux/syscall.h>
|
#include <linux/syscall.h>
|
||||||
#include <arch/syscall.h>
|
#include <syscall.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
|
||||||
gid_t
|
gid_t
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/* -*-comment-start: "//";comment-end:""-*-
|
/* -*-comment-start: "//";comment-end:""-*-
|
||||||
* GNU Mes --- Maxwell Equations of Software
|
* 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.
|
* This file is part of GNU Mes.
|
||||||
*
|
*
|
||||||
|
@ -19,7 +19,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <linux/syscall.h>
|
#include <linux/syscall.h>
|
||||||
#include <arch/syscall.h>
|
#include <syscall.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
|
||||||
uid_t
|
uid_t
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/* -*-comment-start: "//";comment-end:""-*-
|
/* -*-comment-start: "//";comment-end:""-*-
|
||||||
* GNU Mes --- Maxwell Equations of Software
|
* 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.
|
* This file is part of GNU Mes.
|
||||||
*
|
*
|
||||||
|
@ -19,7 +19,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <linux/syscall.h>
|
#include <linux/syscall.h>
|
||||||
#include <arch/syscall.h>
|
#include <syscall.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
|
||||||
gid_t
|
gid_t
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/* -*-comment-start: "//";comment-end:""-*-
|
/* -*-comment-start: "//";comment-end:""-*-
|
||||||
* GNU Mes --- Maxwell Equations of Software
|
* 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.
|
* This file is part of GNU Mes.
|
||||||
*
|
*
|
||||||
|
@ -19,7 +19,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <linux/syscall.h>
|
#include <linux/syscall.h>
|
||||||
#include <arch/syscall.h>
|
#include <syscall.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
|
||||||
pid_t
|
pid_t
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/* -*-comment-start: "//";comment-end:""-*-
|
/* -*-comment-start: "//";comment-end:""-*-
|
||||||
* GNU Mes --- Maxwell Equations of Software
|
* 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.
|
* This file is part of GNU Mes.
|
||||||
*
|
*
|
||||||
|
@ -19,7 +19,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <linux/syscall.h>
|
#include <linux/syscall.h>
|
||||||
#include <arch/syscall.h>
|
#include <syscall.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
|
||||||
pid_t
|
pid_t
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/* -*-comment-start: "//";comment-end:""-*-
|
/* -*-comment-start: "//";comment-end:""-*-
|
||||||
* GNU Mes --- Maxwell Equations of Software
|
* 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.
|
* This file is part of GNU Mes.
|
||||||
*
|
*
|
||||||
|
@ -19,7 +19,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <linux/syscall.h>
|
#include <linux/syscall.h>
|
||||||
#include <arch/syscall.h>
|
#include <syscall.h>
|
||||||
#include <sys/resource.h>
|
#include <sys/resource.h>
|
||||||
|
|
||||||
int
|
int
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/* -*-comment-start: "//";comment-end:""-*-
|
/* -*-comment-start: "//";comment-end:""-*-
|
||||||
* GNU Mes --- Maxwell Equations of Software
|
* 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.
|
* This file is part of GNU Mes.
|
||||||
*
|
*
|
||||||
|
@ -20,7 +20,7 @@
|
||||||
|
|
||||||
#include <mes/lib.h>
|
#include <mes/lib.h>
|
||||||
#include <linux/syscall.h>
|
#include <linux/syscall.h>
|
||||||
#include <arch/syscall.h>
|
#include <syscall.h>
|
||||||
#include <sys/time.h>
|
#include <sys/time.h>
|
||||||
|
|
||||||
int
|
int
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/* -*-comment-start: "//";comment-end:""-*-
|
/* -*-comment-start: "//";comment-end:""-*-
|
||||||
* GNU Mes --- Maxwell Equations of Software
|
* 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.
|
* This file is part of GNU Mes.
|
||||||
*
|
*
|
||||||
|
@ -19,7 +19,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <linux/syscall.h>
|
#include <linux/syscall.h>
|
||||||
#include <arch/syscall.h>
|
#include <syscall.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
|
||||||
uid_t
|
uid_t
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/* -*-comment-start: "//";comment-end:""-*-
|
/* -*-comment-start: "//";comment-end:""-*-
|
||||||
* GNU Mes --- Maxwell Equations of Software
|
* GNU Mes --- Maxwell Equations of Software
|
||||||
* Copyright © 2016,2017,2018,2019,2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
* Copyright © 2016,2017,2018,2019 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||||
*
|
*
|
||||||
* This file is part of GNU Mes.
|
* This file is part of GNU Mes.
|
||||||
*
|
*
|
||||||
|
@ -19,7 +19,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <linux/syscall.h>
|
#include <linux/syscall.h>
|
||||||
#include <arch/syscall.h>
|
#include <syscall.h>
|
||||||
#include <stdarg.h>
|
#include <stdarg.h>
|
||||||
#include <sys/ioctl.h>
|
#include <sys/ioctl.h>
|
||||||
|
|
||||||
|
@ -33,3 +33,10 @@ ioctl (int filedes, unsigned long command, ...)
|
||||||
va_end (ap);
|
va_end (ap);
|
||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
ioctl3 (int filedes, unsigned long command, long data)
|
||||||
|
{
|
||||||
|
int r = _sys_call3 (SYS_ioctl, filedes, command, data);
|
||||||
|
return r;
|
||||||
|
}
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/* -*-comment-start: "//";comment-end:""-*-
|
/* -*-comment-start: "//";comment-end:""-*-
|
||||||
* GNU Mes --- Maxwell Equations of Software
|
* 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.
|
* This file is part of GNU Mes.
|
||||||
*
|
*
|
||||||
|
@ -19,7 +19,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <linux/syscall.h>
|
#include <linux/syscall.h>
|
||||||
#include <arch/syscall.h>
|
#include <syscall.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
|
||||||
int
|
int
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/* -*-comment-start: "//";comment-end:""-*-
|
/* -*-comment-start: "//";comment-end:""-*-
|
||||||
* GNU Mes --- Maxwell Equations of Software
|
* 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.
|
* This file is part of GNU Mes.
|
||||||
*
|
*
|
||||||
|
@ -19,7 +19,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <linux/syscall.h>
|
#include <linux/syscall.h>
|
||||||
#include <arch/syscall.h>
|
#include <syscall.h>
|
||||||
|
|
||||||
int
|
int
|
||||||
link (char const *old_name, char const *new_name)
|
link (char const *old_name, char const *new_name)
|
||||||
|
|
|
@ -20,7 +20,7 @@
|
||||||
|
|
||||||
#include <mes/lib.h>
|
#include <mes/lib.h>
|
||||||
#include <linux/syscall.h>
|
#include <linux/syscall.h>
|
||||||
#include <arch/syscall.h>
|
#include <syscall.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/* -*-comment-start: "//";comment-end:""-*-
|
/* -*-comment-start: "//";comment-end:""-*-
|
||||||
* GNU Mes --- Maxwell Equations of Software
|
* 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.
|
* This file is part of GNU Mes.
|
||||||
*
|
*
|
||||||
|
@ -19,7 +19,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <linux/syscall.h>
|
#include <linux/syscall.h>
|
||||||
#include <arch/syscall.h>
|
#include <syscall.h>
|
||||||
#include <sys/stat.h>
|
#include <sys/stat.h>
|
||||||
|
|
||||||
int
|
int
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/* -*-comment-start: "//";comment-end:""-*-
|
/* -*-comment-start: "//";comment-end:""-*-
|
||||||
* GNU Mes --- Maxwell Equations of Software
|
* 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.
|
* This file is part of GNU Mes.
|
||||||
*
|
*
|
||||||
|
@ -19,7 +19,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <linux/syscall.h>
|
#include <linux/syscall.h>
|
||||||
#include <arch/syscall.h>
|
#include <syscall.h>
|
||||||
#include <sys/stat.h>
|
#include <sys/stat.h>
|
||||||
|
|
||||||
int
|
int
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/* -*-comment-start: "//";comment-end:""-*-
|
/* -*-comment-start: "//";comment-end:""-*-
|
||||||
* GNU Mes --- Maxwell Equations of Software
|
* 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.
|
* This file is part of GNU Mes.
|
||||||
*
|
*
|
||||||
|
@ -19,7 +19,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <linux/syscall.h>
|
#include <linux/syscall.h>
|
||||||
#include <arch/syscall.h>
|
#include <syscall.h>
|
||||||
#include <sys/stat.h>
|
#include <sys/stat.h>
|
||||||
|
|
||||||
int
|
int
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/* -*-comment-start: "//";comment-end:""-*-
|
/* -*-comment-start: "//";comment-end:""-*-
|
||||||
* GNU Mes --- Maxwell Equations of Software
|
* 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.
|
* This file is part of GNU Mes.
|
||||||
*
|
*
|
||||||
|
@ -19,7 +19,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <linux/syscall.h>
|
#include <linux/syscall.h>
|
||||||
#include <arch/syscall.h>
|
#include <syscall.h>
|
||||||
#include <time.h>
|
#include <time.h>
|
||||||
#include <sys/time.h>
|
#include <sys/time.h>
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/* -*-comment-start: "//";comment-end:""-*-
|
/* -*-comment-start: "//";comment-end:""-*-
|
||||||
* GNU Mes --- Maxwell Equations of Software
|
* 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.
|
* This file is part of GNU Mes.
|
||||||
*
|
*
|
||||||
|
@ -19,7 +19,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <linux/syscall.h>
|
#include <linux/syscall.h>
|
||||||
#include <arch/syscall.h>
|
#include <syscall.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
|
||||||
int
|
int
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/* -*-comment-start: "//";comment-end:""-*-
|
/* -*-comment-start: "//";comment-end:""-*-
|
||||||
* GNU Mes --- Maxwell Equations of Software
|
* GNU Mes --- Maxwell Equations of Software
|
||||||
* Copyright © 2016,2017,2018,2019,2023 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
* Copyright © 2016,2017,2018,2019 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||||
*
|
*
|
||||||
* This file is part of GNU Mes.
|
* This file is part of GNU Mes.
|
||||||
*
|
*
|
||||||
|
@ -19,7 +19,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <linux/syscall.h>
|
#include <linux/syscall.h>
|
||||||
#include <arch/syscall.h>
|
#include <syscall.h>
|
||||||
#include <mes/lib.h>
|
#include <mes/lib.h>
|
||||||
#include <fcntl.h>
|
#include <fcntl.h>
|
||||||
|
|
||||||
|
@ -27,7 +27,7 @@ ssize_t
|
||||||
read (int filedes, void *buffer, size_t size)
|
read (int filedes, void *buffer, size_t size)
|
||||||
{
|
{
|
||||||
long long_filedes = filedes;
|
long long_filedes = filedes;
|
||||||
ssize_t bytes = _sys_call3 (SYS_read, long_filedes, (long) buffer, (long) size);
|
ssize_t bytes = _sys_call3 (SYS_read, long_filedes, buffer, size);
|
||||||
if (__mes_debug () > 4)
|
if (__mes_debug () > 4)
|
||||||
{
|
{
|
||||||
if (bytes == 1)
|
if (bytes == 1)
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/* -*-comment-start: "//";comment-end:""-*-
|
/* -*-comment-start: "//";comment-end:""-*-
|
||||||
* GNU Mes --- Maxwell Equations of Software
|
* 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.
|
* This file is part of GNU Mes.
|
||||||
*
|
*
|
||||||
|
@ -19,7 +19,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <linux/syscall.h>
|
#include <linux/syscall.h>
|
||||||
#include <arch/syscall.h>
|
#include <syscall.h>
|
||||||
#include <sys/stat.h>
|
#include <sys/stat.h>
|
||||||
|
|
||||||
ssize_t
|
ssize_t
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/* -*-comment-start: "//";comment-end:""-*-
|
/* -*-comment-start: "//";comment-end:""-*-
|
||||||
* GNU Mes --- Maxwell Equations of Software
|
* 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.
|
* This file is part of GNU Mes.
|
||||||
*
|
*
|
||||||
|
@ -19,7 +19,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <linux/syscall.h>
|
#include <linux/syscall.h>
|
||||||
#include <arch/syscall.h>
|
#include <syscall.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
|
||||||
int
|
int
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/* -*-comment-start: "//";comment-end:""-*-
|
/* -*-comment-start: "//";comment-end:""-*-
|
||||||
* GNU Mes --- Maxwell Equations of Software
|
* GNU Mes --- Maxwell Equations of Software
|
||||||
* Copyright © 2016,2017,2018,2019,2022 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
* Copyright © 2016,2017,2018,2019 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||||
*
|
*
|
||||||
* This file is part of GNU Mes.
|
* This file is part of GNU Mes.
|
||||||
*
|
*
|
||||||
|
@ -19,7 +19,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <linux/syscall.h>
|
#include <linux/syscall.h>
|
||||||
#include <arch/syscall.h>
|
#include <syscall.h>
|
||||||
|
|
||||||
int
|
int
|
||||||
rmdir (char const *file_name)
|
rmdir (char const *file_name)
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue