Compare commits
253 Commits
master
...
wip-module
Author | SHA1 | Date |
---|---|---|
Jan (janneke) Nieuwenhuizen | fa17c5dc78 | |
Jan (janneke) Nieuwenhuizen | db0eb02ed3 | |
Jan (janneke) Nieuwenhuizen | 2075c4aeb7 | |
Jan (janneke) Nieuwenhuizen | b2aa041021 | |
Jan (janneke) Nieuwenhuizen | 67ac2f92e1 | |
Jan (janneke) Nieuwenhuizen | de705b697d | |
Jan (janneke) Nieuwenhuizen | 8dd0d00304 | |
Jan (janneke) Nieuwenhuizen | 37a10ae7ef | |
Jan (janneke) Nieuwenhuizen | e1500c8eca | |
Jan (janneke) Nieuwenhuizen | f4fd6b6084 | |
Jan (janneke) Nieuwenhuizen | e63d7c9517 | |
Jan Nieuwenhuizen | ff40b59175 | |
Jan (janneke) Nieuwenhuizen | f6ab5da988 | |
Jan (janneke) Nieuwenhuizen | 8cff0f178f | |
Jan Nieuwenhuizen | 3ab1d4b0a5 | |
Jan (janneke) Nieuwenhuizen | 134080318e | |
Jan Nieuwenhuizen | 6fd245047d | |
Jan Nieuwenhuizen | 775cd34ed0 | |
Jan Nieuwenhuizen | 430a4dfc44 | |
Jan Nieuwenhuizen | da54a56256 | |
Jan Nieuwenhuizen | 9c7d9dda3b | |
Jan Nieuwenhuizen | 61d85501b3 | |
Jan Nieuwenhuizen | 20b34b8b51 | |
Jan Nieuwenhuizen | c03415333d | |
Jan Nieuwenhuizen | 126aa3f5eb | |
Jan Nieuwenhuizen | d481048c10 | |
Jan Nieuwenhuizen | e9e4e60b00 | |
Jan Nieuwenhuizen | cc9f93cde0 | |
Jan Nieuwenhuizen | 49f4378b6e | |
Jan Nieuwenhuizen | 41ef524cfc | |
Jan Nieuwenhuizen | 34b4c3b1d2 | |
Jan Nieuwenhuizen | 97ce3d20e5 | |
Jan Nieuwenhuizen | faced2b413 | |
Jan Nieuwenhuizen | aa222d34cb | |
Jan Nieuwenhuizen | 33ed192ca4 | |
Jan Nieuwenhuizen | 1a47fe45e4 | |
Jan Nieuwenhuizen | dbd96dc473 | |
Jan Nieuwenhuizen | 6a65ae02bb | |
Jan Nieuwenhuizen | 83736385de | |
Jan Nieuwenhuizen | 5073bc73c2 | |
Jan Nieuwenhuizen | 698598850e | |
Jan (janneke) Nieuwenhuizen | 1f56ef6c33 | |
Jan (janneke) Nieuwenhuizen | 29b574271e | |
Jan (janneke) Nieuwenhuizen | f046b2df44 | |
Jan (janneke) Nieuwenhuizen | cef2b41b47 | |
Jan (janneke) Nieuwenhuizen | d4a5dc339b | |
Jan (janneke) Nieuwenhuizen | ec0123f855 | |
Jan (janneke) Nieuwenhuizen | 309e3800c0 | |
Jan (janneke) Nieuwenhuizen | aa1a6cd9ca | |
Jan (janneke) Nieuwenhuizen | c2a0b5b9d3 | |
Jan (janneke) Nieuwenhuizen | 8d8cec0965 | |
Jan (janneke) Nieuwenhuizen | 0c697453b7 | |
Jan (janneke) Nieuwenhuizen | b4bce47963 | |
Jan (janneke) Nieuwenhuizen | aa55de78f3 | |
Jan (janneke) Nieuwenhuizen | 228d2b3382 | |
Jan (janneke) Nieuwenhuizen | 8850c16ca5 | |
Jan (janneke) Nieuwenhuizen | d5b06e6df3 | |
Jan (janneke) Nieuwenhuizen | 782d4d0531 | |
Jan (janneke) Nieuwenhuizen | e890c68830 | |
Jan (janneke) Nieuwenhuizen | ff274eaf0e | |
Jan (janneke) Nieuwenhuizen | 189b381d99 | |
Jan (janneke) Nieuwenhuizen | dbb97d786e | |
Jan (janneke) Nieuwenhuizen | b56c5fd3d5 | |
Jan (janneke) Nieuwenhuizen | b7857f11ec | |
Jan (janneke) Nieuwenhuizen | 1733b0186f | |
Jan (janneke) Nieuwenhuizen | 898190df5f | |
Jan (janneke) Nieuwenhuizen | 6720641493 | |
Jan (janneke) Nieuwenhuizen | 70c12c70b3 | |
Jan (janneke) Nieuwenhuizen | 477eee6e02 | |
Jan (janneke) Nieuwenhuizen | 71dad67103 | |
Jan (janneke) Nieuwenhuizen | 486e67ac02 | |
Jan (janneke) Nieuwenhuizen | 5c46bebd3d | |
Jan (janneke) Nieuwenhuizen | 68f8805f9d | |
Jan (janneke) Nieuwenhuizen | ea1a31e12e | |
Jan (janneke) Nieuwenhuizen | 13cd0393ae | |
Jan (janneke) Nieuwenhuizen | 934ff3e7c5 | |
Jan (janneke) Nieuwenhuizen | 305a104ab0 | |
Jan (janneke) Nieuwenhuizen | 977d0fd3a7 | |
Jan (janneke) Nieuwenhuizen | 4e1de0de94 | |
Jan (janneke) Nieuwenhuizen | 762cf51a6a | |
Jan (janneke) Nieuwenhuizen | 600524e8d9 | |
Jan (janneke) Nieuwenhuizen | b7bb734d89 | |
Jan (janneke) Nieuwenhuizen | 4affaafd17 | |
Jan (janneke) Nieuwenhuizen | aff93403da | |
Jan (janneke) Nieuwenhuizen | b5d5dba3fa | |
Jan (janneke) Nieuwenhuizen | 1d0e07c394 | |
Jan (janneke) Nieuwenhuizen | 673cf8f114 | |
Jan (janneke) Nieuwenhuizen | 9c2c95299e | |
Jan (janneke) Nieuwenhuizen | d89836e9aa | |
Jan (janneke) Nieuwenhuizen | c7406e7ac4 | |
Jan (janneke) Nieuwenhuizen | f13ce3806a | |
Jan (janneke) Nieuwenhuizen | 12bf2f02be | |
Jan (janneke) Nieuwenhuizen | d88789c969 | |
Jan (janneke) Nieuwenhuizen | 7329e92678 | |
Jan (janneke) Nieuwenhuizen | 27b32b8873 | |
Jan (janneke) Nieuwenhuizen | 7fe0c3b625 | |
Jan (janneke) Nieuwenhuizen | eaac052167 | |
Jan (janneke) Nieuwenhuizen | e5ee32f7dc | |
Jan (janneke) Nieuwenhuizen | 7a7a1e9791 | |
Jan (janneke) Nieuwenhuizen | a64fd493f9 | |
Jan (janneke) Nieuwenhuizen | c31ff8fa18 | |
Jan (janneke) Nieuwenhuizen | bffc1b22d1 | |
Jan (janneke) Nieuwenhuizen | 45552d4822 | |
Jan (janneke) Nieuwenhuizen | 20b4f15751 | |
Jan (janneke) Nieuwenhuizen | 661cc9ed3b | |
Jan (janneke) Nieuwenhuizen | 682dc4b700 | |
Jan (janneke) Nieuwenhuizen | 553ccb4e1f | |
Jan (janneke) Nieuwenhuizen | 9f67b34d28 | |
Jan (janneke) Nieuwenhuizen | 558aceca68 | |
Jan (janneke) Nieuwenhuizen | 969876cdfc | |
Jan (janneke) Nieuwenhuizen | e47ceb9544 | |
Jan (janneke) Nieuwenhuizen | f4a74037aa | |
Jan (janneke) Nieuwenhuizen | ec6a803b7b | |
Jan (janneke) Nieuwenhuizen | 52a0bc9c62 | |
Jan (janneke) Nieuwenhuizen | 7129959318 | |
Jan (janneke) Nieuwenhuizen | 74668e9138 | |
Jan (janneke) Nieuwenhuizen | 844e3fe9cb | |
Jan (janneke) Nieuwenhuizen | aaf5d67fcd | |
Jan (janneke) Nieuwenhuizen | 3c19883873 | |
Jan (janneke) Nieuwenhuizen | 40c207a6af | |
Jan (janneke) Nieuwenhuizen | da106c2ed8 | |
Jan (janneke) Nieuwenhuizen | e21ee56574 | |
Jan (janneke) Nieuwenhuizen | 339b2cea40 | |
Jan (janneke) Nieuwenhuizen | af354fc449 | |
Jan (janneke) Nieuwenhuizen | e42c2ede12 | |
Jan (janneke) Nieuwenhuizen | 136ea63d27 | |
Jan (janneke) Nieuwenhuizen | 4fbdb05004 | |
Jan (janneke) Nieuwenhuizen | 4e0d9e1ac7 | |
Jan (janneke) Nieuwenhuizen | c28605aec5 | |
Jan (janneke) Nieuwenhuizen | ccb27b9705 | |
Jan (janneke) Nieuwenhuizen | 70ed273469 | |
Jan (janneke) Nieuwenhuizen | 18c416f307 | |
Jan (janneke) Nieuwenhuizen | c187ccf197 | |
Jan (janneke) Nieuwenhuizen | 5e08960a42 | |
Jan (janneke) Nieuwenhuizen | c2464bf24a | |
Jan (janneke) Nieuwenhuizen | 322e308ab1 | |
Jan (janneke) Nieuwenhuizen | 5e6b3a9662 | |
Jan (janneke) Nieuwenhuizen | 269959a816 | |
Jan (janneke) Nieuwenhuizen | 430667bd5e | |
Jan (janneke) Nieuwenhuizen | fbd8bfe240 | |
Jan (janneke) Nieuwenhuizen | e8a01aba29 | |
Jan (janneke) Nieuwenhuizen | d07cc02f1f | |
Jan (janneke) Nieuwenhuizen | 691a992830 | |
Jan (janneke) Nieuwenhuizen | f512623c08 | |
Jan (janneke) Nieuwenhuizen | 1aa60b94e5 | |
Jan (janneke) Nieuwenhuizen | 51a3cee8d1 | |
Jan (janneke) Nieuwenhuizen | 1c69559575 | |
Jan (janneke) Nieuwenhuizen | 182b568097 | |
Jan (janneke) Nieuwenhuizen | 766344d72e | |
Jan (janneke) Nieuwenhuizen | 0683302270 | |
Jan (janneke) Nieuwenhuizen | 9284df5ba3 | |
Jan (janneke) Nieuwenhuizen | 55b41ba11c | |
Jan (janneke) Nieuwenhuizen | ec0380e702 | |
Jan (janneke) Nieuwenhuizen | 5abf71249c | |
Jan (janneke) Nieuwenhuizen | bd6d933099 | |
Jan (janneke) Nieuwenhuizen | 986b3973bb | |
Jan (janneke) Nieuwenhuizen | fe22f638ae | |
Jan (janneke) Nieuwenhuizen | 2ec586b773 | |
Jan (janneke) Nieuwenhuizen | 39cfcb11eb | |
Jan (janneke) Nieuwenhuizen | d12c55581f | |
Jan (janneke) Nieuwenhuizen | 5df5c1987f | |
Jan (janneke) Nieuwenhuizen | b00d100910 | |
Jan (janneke) Nieuwenhuizen | b5c0369a3b | |
Jan (janneke) Nieuwenhuizen | 460ff0ebf5 | |
Jan (janneke) Nieuwenhuizen | f29a6e4fc8 | |
Jan (janneke) Nieuwenhuizen | 4f39d09c25 | |
Jan (janneke) Nieuwenhuizen | 5209d82c1e | |
Jan (janneke) Nieuwenhuizen | dc42ee180c | |
Jan (janneke) Nieuwenhuizen | 84386312ef | |
Jan (janneke) Nieuwenhuizen | 663adaf27f | |
Jan (janneke) Nieuwenhuizen | 4de45663b4 | |
Jan (janneke) Nieuwenhuizen | 7b0462b3a3 | |
Jan (janneke) Nieuwenhuizen | 02f8c37101 | |
Jan (janneke) Nieuwenhuizen | 249d33f750 | |
Jan (janneke) Nieuwenhuizen | 877283096f | |
Jan (janneke) Nieuwenhuizen | 8e1a455074 | |
Jan (janneke) Nieuwenhuizen | 8be4f26a74 | |
Jan (janneke) Nieuwenhuizen | 02494e0803 | |
Jan (janneke) Nieuwenhuizen | 75ead8fd95 | |
Jan (janneke) Nieuwenhuizen | 88011f4bf4 | |
Jan (janneke) Nieuwenhuizen | 571ec85112 | |
Jan (janneke) Nieuwenhuizen | 43f5c970a4 | |
Jan (janneke) Nieuwenhuizen | 1fbeb8395e | |
Jan (janneke) Nieuwenhuizen | 05513ae492 | |
Jan (janneke) Nieuwenhuizen | 3b4f1599f0 | |
Jan (janneke) Nieuwenhuizen | 7fbaf941e9 | |
Jan (janneke) Nieuwenhuizen | bb0d074e1e | |
Jan (janneke) Nieuwenhuizen | abc564ad49 | |
Jan (janneke) Nieuwenhuizen | 3ac200f6d3 | |
Jan (janneke) Nieuwenhuizen | 5ffb27f555 | |
Jan (janneke) Nieuwenhuizen | 84308146f4 | |
Jan (janneke) Nieuwenhuizen | 945b238a6a | |
Jan (janneke) Nieuwenhuizen | e62009b02d | |
Jan (janneke) Nieuwenhuizen | fcc4e483af | |
Jan (janneke) Nieuwenhuizen | 9c1a950cc6 | |
Jan (janneke) Nieuwenhuizen | 6f513dd2d7 | |
Jan (janneke) Nieuwenhuizen | 145d277a8b | |
Jan (janneke) Nieuwenhuizen | 4a6b3f990c | |
Jan (janneke) Nieuwenhuizen | 06ca28aafb | |
Jan (janneke) Nieuwenhuizen | 748a856b50 | |
Jan (janneke) Nieuwenhuizen | e0ac5588ae | |
Jan (janneke) Nieuwenhuizen | d5321636ef | |
Jan (janneke) Nieuwenhuizen | 64635bd1e1 | |
Jan (janneke) Nieuwenhuizen | 3bd3e5edfe | |
Jan (janneke) Nieuwenhuizen | 9b0e04c0e3 | |
Jan (janneke) Nieuwenhuizen | 42a18b3425 | |
Jan (janneke) Nieuwenhuizen | 0dbfe669fa | |
Jan (janneke) Nieuwenhuizen | 9d92e839c8 | |
Jan (janneke) Nieuwenhuizen | 57cd02ed0d | |
Jan (janneke) Nieuwenhuizen | dacc55711c | |
Jan (janneke) Nieuwenhuizen | a8f1b63519 | |
Jan (janneke) Nieuwenhuizen | dae845aad4 | |
Jan (janneke) Nieuwenhuizen | 5c45d7d9de | |
Jan (janneke) Nieuwenhuizen | 8458e3680d | |
Jan (janneke) Nieuwenhuizen | 6c64b2fc0f | |
Jan (janneke) Nieuwenhuizen | b77845ae9a | |
Jan (janneke) Nieuwenhuizen | 191de698a7 | |
Jan (janneke) Nieuwenhuizen | fb4b8bb58c | |
Jan (janneke) Nieuwenhuizen | 99a9ab7411 | |
Jan (janneke) Nieuwenhuizen | 733b927c4c | |
Jan (janneke) Nieuwenhuizen | 299a9ea369 | |
Jan (janneke) Nieuwenhuizen | 8c85bccd56 | |
Jan (janneke) Nieuwenhuizen | 614c9146ba | |
Jan (janneke) Nieuwenhuizen | 612714b26b | |
Danny Milosavljevic | d2d3844738 | |
Jan (janneke) Nieuwenhuizen | 54fca6cad9 | |
Jan (janneke) Nieuwenhuizen | 2c3e96bcfc | |
Jan (janneke) Nieuwenhuizen | 9553e33379 | |
Jan (janneke) Nieuwenhuizen | 8062b7cd21 | |
Jan (janneke) Nieuwenhuizen | ae3e50f5b3 | |
Jan (janneke) Nieuwenhuizen | 5eaefeac38 | |
Jan (janneke) Nieuwenhuizen | 74e0ed606c | |
Jan (janneke) Nieuwenhuizen | def9c6c330 | |
Jan (janneke) Nieuwenhuizen | f0c1f4c4d2 | |
Jan (janneke) Nieuwenhuizen | 15d860d334 | |
Jan (janneke) Nieuwenhuizen | 4e092fdedd | |
Jan (janneke) Nieuwenhuizen | 68fc0e6ec6 | |
Jan (janneke) Nieuwenhuizen | 8fb2ab4439 | |
Jan (janneke) Nieuwenhuizen | a810bc50e0 | |
Jan (janneke) Nieuwenhuizen | f478ab3805 | |
Jan (janneke) Nieuwenhuizen | 6a8f67efa2 | |
Jan (janneke) Nieuwenhuizen | ddfb34a40d | |
Jan (janneke) Nieuwenhuizen | 40e0cb11b9 | |
Jan (janneke) Nieuwenhuizen | c340ca3e27 | |
Jan (janneke) Nieuwenhuizen | e2da1c5c7b | |
Jan (janneke) Nieuwenhuizen | 9694354633 | |
Jan (janneke) Nieuwenhuizen | cb79d8ffb1 | |
Jan (janneke) Nieuwenhuizen | 0727fd39cc | |
Danny Milosavljevic | 62205a9925 | |
Danny Milosavljevic | 80e08cf1ef | |
Jan (janneke) Nieuwenhuizen | 04c058fe5e | |
Danny Milosavljevic | a288598a06 | |
Jan (janneke) Nieuwenhuizen | a8e2cc86e9 |
|
@ -1,5 +1,5 @@
|
|||
;;; GNU Mes --- Maxwell Equations of Software
|
||||
;;; Copyright © 2018,2019,2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
;;; Copyright © 2018,2019 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Mes.
|
||||
;;;
|
||||
|
|
|
@ -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/web/
|
||||
/config.sh
|
||||
/include/arch
|
||||
/include/mes/config.h
|
||||
/gcc-lib
|
||||
/mescc-lib
|
||||
|
|
12
AUTHORS
12
AUTHORS
|
@ -13,8 +13,6 @@ Additions and fixes throughout
|
|||
Jeremiah Orians <jeremiah@pdp10.guru>
|
||||
lib/stdio/fopen.c (first simple version of fopen)
|
||||
scaffold/tests/98-fopen.c
|
||||
Initial work on elf headers:
|
||||
lib/linux/x86-mes/elf32-header.hex2 and similar
|
||||
|
||||
Han-Wen Nienhuys <hanwen@xs4all.nl>
|
||||
lib/string/memmem.c (_memmem, memmem)
|
||||
|
@ -34,9 +32,6 @@ Nathalie Kopaczewski <natkopa@gmail.com>
|
|||
Fast long devision
|
||||
lib/div.c (__mesabi_log2i)
|
||||
|
||||
W. J. van der Laan <laanwj@protonmail.com>
|
||||
Bugfixes for logand, 64bit build, and va_arg
|
||||
|
||||
List of imported files
|
||||
|
||||
D A Gwyn
|
||||
|
@ -61,6 +56,9 @@ module/mes/getopt-long.scm
|
|||
Optargs from Guile
|
||||
mes/module/mes/optargs.scm
|
||||
|
||||
PEG from Guile
|
||||
mes/module/mes/peg/
|
||||
|
||||
Pmatch from Guile
|
||||
mes/module/system/base/pmatch.scm
|
||||
|
||||
|
@ -86,10 +84,6 @@ lib/mach/msg.c
|
|||
lib/mach/mach-init.c
|
||||
lib/mach/*.S
|
||||
|
||||
M2-Planet dependencies
|
||||
lib/m2/x86/x86_defs.M1
|
||||
lib/m2/x86/ELF-x86.hex2
|
||||
|
||||
* legalese
|
||||
Copyright © 2016,2017,2018,2019,2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
|
||||
|
|
|
@ -160,5 +160,5 @@ be source.
|
|||
|
||||
* Contact
|
||||
** bug-mes@gnu.org
|
||||
** #bootstrappable, #guix on libera.chat
|
||||
** #bootstrappable, #guix on freenode
|
||||
** bootstrappable.org
|
||||
|
|
8
COPYING
8
COPYING
|
@ -1,7 +1,7 @@
|
|||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 3, 29 June 2007
|
||||
|
||||
Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
|
||||
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
|
@ -645,7 +645,7 @@ the "copyright" line and a pointer to where the full notice is found.
|
|||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
|
@ -664,11 +664,11 @@ might be different; for a GUI interface, you would use an "about box".
|
|||
You should also get your employer (if you work as a programmer) or school,
|
||||
if any, to sign a "copyright disclaimer" for the program, if necessary.
|
||||
For more information on this, and how to apply and follow the GNU GPL, see
|
||||
<https://www.gnu.org/licenses/>.
|
||||
<http://www.gnu.org/licenses/>.
|
||||
|
||||
The GNU General Public License does not permit incorporating your program
|
||||
into proprietary programs. If your program is a subroutine library, you
|
||||
may consider it more useful to permit linking proprietary applications with
|
||||
the library. If this is what you want to do, use the GNU Lesser General
|
||||
Public License instead of this License. But first, please read
|
||||
<https://www.gnu.org/licenses/why-not-lgpl.html>.
|
||||
<http://www.gnu.org/philosophy/why-not-lgpl.html>.
|
||||
|
|
56
HACKING
56
HACKING
|
@ -2,11 +2,10 @@
|
|||
#+TITLE: Hacking GNU Mes
|
||||
|
||||
* SETUP
|
||||
guix shell #64 bit + 32bit
|
||||
guix environment -l guix.scm #64 bit + 32bit
|
||||
|
||||
CC=i686-unknown-linux-gnu-gcc ./configure
|
||||
CC=arm-unknown-linux-gnueabihf-gcc ./configure
|
||||
|
||||
CC=arm-unknown-linux-gnu-gcc ./configure
|
||||
or
|
||||
./configure
|
||||
|
||||
|
@ -50,23 +49,6 @@ Configure to compile with Tiny CC
|
|||
- bytes read
|
||||
6) globals
|
||||
|
||||
* TESTING
|
||||
** make check recheck=true TESTS="tests/base lib/tests/scaffold/t.c"
|
||||
** mescc
|
||||
|
||||
*** To skip MES tests, in "./check.sh", comment-out check-boot.sh, check-mes.sh.
|
||||
|
||||
*** Running individual tests
|
||||
#+BEGIN_SRC bash
|
||||
cd gcc-lib
|
||||
V=2 CC=i686-unknown-linux-gnu-gcc ../pre-inst-env test-c.sh ../lib/tests/scaffold/t.c
|
||||
#+END_SRC
|
||||
|
||||
#+BEGIN_SRC bash
|
||||
cd mescc-lib
|
||||
V=2 CC=mescc ../pre-inst-env test-c.sh ../lib/tests/scaffold/t.c
|
||||
#+END_SRC
|
||||
|
||||
* Bugs
|
||||
** mes: performance, Mes is now 2-10x slower than Guile.
|
||||
** mes/mescc lack support for fork/exec on the Hurd.
|
||||
|
@ -130,30 +112,30 @@ x/s *((char **)($rsp+8))
|
|||
|
||||
** C parser/compiler
|
||||
*** [[https://savannah.gnu.org/projects/nyacc][nyacc]]
|
||||
*** PEG: [[https://piumarta.com/software/peg/][parse C using PEG]]
|
||||
*** PEG: [[http://piumarta.com/software/peg/][parse C using PEG]]
|
||||
*** [[https://en.wikipedia.org/wiki/Tiny_C_Compiler][Tiny C Compiler]]
|
||||
*** [[https://www.t3x.org/subc/index.html][Sub C]]
|
||||
*** [[http://www.t3x.org/subc/index.html][Sub C]]
|
||||
*** [[https://groups.google.com/forum/#!topic/comp.lang.lisp/VPuX0VsjTTE][C intepreter in LISP/Scheme/Python]]
|
||||
|
||||
** C assembler/linker
|
||||
*** [[https://www.tldp.org/HOWTO/Assembly-HOWTO/linux.html][Assembly HOWTO]]
|
||||
*** [[http://www.tldp.org/HOWTO/Assembly-HOWTO/linux.html][Assembly HOWTO]]
|
||||
*** ELF
|
||||
7f 45 4c 46
|
||||
*** [[https://www.muppetlabs.com/~breadbox/software/tiny/][Small ELF programs]]
|
||||
*** [[https://www.cirosantilli.com/elf-hello-world/][Elf hello world]]
|
||||
*** [[http://www.muppetlabs.com/~breadbox/software/tiny/][Small ELF programs]]
|
||||
*** [[http://www.cirosantilli.com/elf-hello-world/][Elf hello world]]
|
||||
** SC - c as s-expressions
|
||||
sc: https://sph.mn/content/3d3
|
||||
sc: http://sph.mn/content/3d3
|
||||
** RNRS
|
||||
*** [[https://www.scheme-reports.org/][Scheme Reports]]
|
||||
*** [[http://www.scheme-reports.org/][Scheme Reports]]
|
||||
*** [[ftp://publications.ai.mit.edu/ai-publications/pdf/AIM-349.pdf][Scheme - Report on Scheme]]
|
||||
*** [[ftp://publications.ai.mit.edu/ai-publications/pdf/AIM-452.pdf][RRS - Revised Report on Scheme]]
|
||||
|
||||
** tiny schemes
|
||||
https://forum.osdev.org/viewtopic.php?f=15&t=19937
|
||||
http://forum.osdev.org/viewtopic.php?f=15&t=19937
|
||||
|
||||
https://www.stripedgazelle.org/joey/dreamos.html
|
||||
https://armpit.sourceforge.net/
|
||||
https://common-lisp.net/project/movitz/movitz.html
|
||||
http://www.stripedgazelle.org/joey/dreamos.html
|
||||
http://armpit.sourceforge.net/
|
||||
http://common-lisp.net/project/movitz/movitz.html
|
||||
|
||||
<civodul> janneke: https://github.com/namin/inc looks interesting [15:18]
|
||||
** Orians Jeremiah
|
||||
|
@ -170,13 +152,13 @@ https://common-lisp.net/project/movitz/movitz.html
|
|||
<janneke> OriansJ: i looked a few times and saw 'LISP empty', so thanks for
|
||||
the pointer! [00:24]
|
||||
<civodul> OriansJ, janneke: from that page, there's also:
|
||||
https://web.archive.org/web/20160604035203fw_/https://homepage.ntlworld.com/edmund.grimley-evans/bcompiler.html
|
||||
https://web.archive.org/web/20160604035203fw_/http://homepage.ntlworld.com/edmund.grimley-evans/bcompiler.html
|
||||
|
||||
** C4/C500
|
||||
https://web.archive.org/web/20160604041431/https://homepage.ntlworld.com/edmund.grimley-evans/cc500/cc500.c
|
||||
https://web.archive.org/web/20160604041431/http://homepage.ntlworld.com/edmund.grimley-evans/cc500/cc500.c
|
||||
https://github.com/rswier/c4/blob/master/c4.c
|
||||
** Compilers for free
|
||||
https://codon.com/compilers-for-free
|
||||
http://codon.com/compilers-for-free
|
||||
** Small lisps
|
||||
*** [[https://www.mirrorservice.org/sites/www.bitsavers.org/bits/TI/Explorer/zeta-c/][ZETA-C]]
|
||||
** Small C compilers
|
||||
|
@ -188,10 +170,10 @@ simple as possible.
|
|||
*** pcc
|
||||
*** early GCC?
|
||||
https://miyuki.github.io/2017/10/04/gcc-archaeology-1.html
|
||||
*** [[https://tack.sourceforge.net/][ack]]
|
||||
*** [[http://tack.sourceforge.net/][ack]]
|
||||
<rain1> it may be possible to compile like this: mes |> ack |> pcc |> tcc |>
|
||||
gcc 4.7.4 |> gcc later version... up to modern
|
||||
*** [[https://web.archive.org/web/20160402225843/https://homepage.ntlworld.com/edmund.grimley-evans/cc500/][cc500]]
|
||||
*** [[https://web.archive.org/web/20160402225843/http://homepage.ntlworld.com/edmund.grimley-evans/cc500/][cc500]]
|
||||
** rain1's Bootstrapping Wiki: https://bootstrapping.miraheze.org/wiki/Main_Page
|
||||
** rain1's hex86
|
||||
https://notabug.org/rain1/hex86/src/master/tests/hex0b3.hex86
|
||||
|
@ -202,7 +184,7 @@ https://notabug.org/rain1/hex86/src/master/tests/hex0b3.hex86
|
|||
** linux syscalls: https://fedora.juszkiewicz.com.pl/syscalls.html
|
||||
* legalese
|
||||
|
||||
Copyright © 2016,2017,2018,2019,2021,2022 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
Copyright © 2016,2017,2018,2019 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
|
||||
Copying and distribution of this file, with or without modification,
|
||||
are permitted in any medium without royalty provided the copyright
|
||||
|
|
26
INSTALL
26
INSTALL
|
@ -1,7 +1,7 @@
|
|||
-*- org -*-
|
||||
#+TITLE: Building and Installing GNU Mes
|
||||
|
||||
Copyright © 2016,2017,2018,2019,2021,2022 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
Copyright © 2016,2017,2018,2019 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
|
||||
Copying and distribution of this file, with or without modification,
|
||||
are permitted in any medium without royalty provided the copyright
|
||||
|
@ -20,20 +20,19 @@ similar way.
|
|||
** Prerequisites
|
||||
*** Guix
|
||||
#+BEGIN_SRC bash
|
||||
guix shell #64 bit + 32bit
|
||||
guix shell --system=i686-linux #32 bit only
|
||||
guix shell --system=armhf-linux #32 bit only
|
||||
guix environment -l guix.scm #64 bit + 32bit
|
||||
guix environment --system=i686-linux -l guix.scm #32 bit only
|
||||
#+END_SRC
|
||||
|
||||
*** Other GNU/Linux
|
||||
- [[https://savannah.gnu.org/projects/mescc-tools/][mescc-tools]], 1.4.0 is known to work.
|
||||
- [[https://github.com/oriansj/m2-planet][M2-Planet]] (optional), 1.9.0 is known to work.
|
||||
- [[https://savannah.gnu.org/projects/nyacc][Nyacc]], 1.00.2 is known to work.
|
||||
- GNU Gcc, 7.5.0 is known to work.
|
||||
- GNU Guile, version 3.0.4 is know to work.
|
||||
- SH, /bin/sh, GNU Bash 5.0.16 is known to work.
|
||||
- [[https://savannah.gnu.org/projects/mescc-tools/][mescc-tools]], 0.6.1 is known to work.
|
||||
- [[https://savannah.gnu.org/projects/nyacc][Nyacc]], 0.93.0 is known to work.
|
||||
- GNU Gcc, 4.9.3 is known to work.
|
||||
- GNU Guile, version 2.0.12 or is know to work.
|
||||
- SH, /bin/sh, GNU Bash 4.3 is known to work.
|
||||
- GNU coreutils
|
||||
- sed, GNU sed 4.8 is known to work.
|
||||
- sed, GNU sed 4.2 is known to work.
|
||||
- Perl, 5.22 is known to work.
|
||||
|
||||
** Build it
|
||||
|
||||
|
@ -79,9 +78,8 @@ The bootstrap build is part of Guix, see
|
|||
https://git.savannah.gnu.org/cgit/guix.git/tree/gnu/packages/commencement.scm
|
||||
|
||||
** Prerequisites
|
||||
- [[https://savannah.gnu.org/projects/mescc-tools/][mescc-tools]], 1.4.0 is known to work.
|
||||
- [[https://github.com/oriansj/m2-planet][M2-Planet]], 1.9.0 is known to work.
|
||||
- [[https://savannah.gnu.org/projects/nyacc][Nyacc]], 1.00.2 is known to work.
|
||||
- [[https://savannah.gnu.org/projects/mescc-tools/][mescc-tools]], 0.6.1 is known to work.
|
||||
- [[https://savannah.gnu.org/projects/nyacc][Nyacc]], 0.93.0 is known to work.
|
||||
|
||||
** Build it
|
||||
|
||||
|
|
74
NEWS
74
NEWS
|
@ -2,7 +2,7 @@
|
|||
#+TITLE: GNU Mes NEWS – history of user-visible changes
|
||||
#+STARTUP: content hidestars
|
||||
|
||||
Copyright © 2016,2017,2018,2019,2021,2022,2023 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
Copyright © 2016,2017,2018,2019 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
|
||||
Copying and distribution of this file, with or without modification,
|
||||
are permitted in any medium without royalty provided the copyright
|
||||
|
@ -10,78 +10,6 @@ Copyright © 2016,2017,2018,2019,2021,2022,2023 Jan (janneke) Nieuwenhuizen <jan
|
|||
|
||||
Please send Mes bug reports to bug-mes@gnu.org.
|
||||
|
||||
* Changes in 0.24.2 since 0.24.1
|
||||
** Build
|
||||
*** A number of compile warnings have been fixed.
|
||||
*** The `simple.make' and `simple.sh' builds have been resurrected.
|
||||
** MesCC
|
||||
*** Some assembly defines were added for building TinyCC for x86_64.
|
||||
*** `__assert_fail' has been updated to use the standard signature.
|
||||
** Noteworthy bug fixes
|
||||
*** A bootstrap build without M2-Planet is now supported again.
|
||||
*** `gettimeofday' no longer segfaults in the M2-Planet build.
|
||||
*** `stat64' and friends are now used on 32bit platforms.
|
||||
This fixes https://debbugs.gnu.org/41264, and should also fix
|
||||
https://debbugs.gnu.org/49985,
|
||||
https://debbugs.gnu.org/53415,
|
||||
https://debbugs.gnu.org/53416.
|
||||
*** The Mes C Library now supports uppercase hex conversions.
|
||||
* Changes in 0.24.1 since 0.24
|
||||
** Build
|
||||
*** Support M2-Planet bootstrap for ARM.
|
||||
** MesCC
|
||||
*** The Mes C Library now supports bootstrapping ARM.
|
||||
** Noteworthy bug fixes
|
||||
*** The definition of S_ISUID was fixed.
|
||||
*** Unsigned modulo has been fixed for ARM.
|
||||
*** A bug with abtol has been fixed.
|
||||
*** Workarounds for building with gcc-12.2.0 have been added.
|
||||
* Changes in 0.24 since 0.23
|
||||
** Core
|
||||
*** Mes and Mes C Library can now be built with M2-Planet.
|
||||
*** Mes now supports the --bootstrap build on ARM.
|
||||
** MesCC
|
||||
*** MesCC now supports the integer suffixes:
|
||||
Next to `U', also support `ULL', `UL', `L', and `LL'.
|
||||
** Noteworthy bug fixes
|
||||
*** MesCC now uses the unsigned type for sizeof.
|
||||
*** MesCC now only uses signed division if numerator is signed.
|
||||
*** The Mes C library now supports an argv bigger than 255.
|
||||
*** Development build support with Guile-2 was resurrected.
|
||||
*** The logand procedure now works correctly.
|
||||
*** The 64bit build was resurrected.
|
||||
|
||||
* Changes in 0.23.1 since 0.23
|
||||
** Build: Move to libera.chat.
|
||||
** Core
|
||||
*** Mes and Mes C Library can now support ARM bootstrap.
|
||||
** MesCC
|
||||
*** MesCC now supports ARM bootstrap.
|
||||
** Noteworthy bug fixes
|
||||
*** Stack frame 0 does not perform out of bounds access.
|
||||
*** MesCC's -m64 works again.
|
||||
*** Guile-2 support has been resurrected.
|
||||
*** logand has been fixed.
|
||||
*** Mes C Library now supports more than 255 command line parameters.
|
||||
|
||||
* Changes in 0.23 since 0.22
|
||||
** Core
|
||||
*** Mes and Mes C Library can now be built with GCC 10.x.
|
||||
** MesCC
|
||||
*** The Mes C Library now supports an armhf-linux bootstrap.
|
||||
*** MesCC now supports ARM.
|
||||
*** mini.c library was split into _exit.c, and _write.c.
|
||||
*** When building with GCC, -lgcc is now used.
|
||||
*** MesCC now has it's own support library libmescc.a (-lmescc).
|
||||
*** MesCC now requires mescc-tools-0.7.0 or later for ARM.
|
||||
*** MesCC can be now built with nyacc-1.00.2:
|
||||
note that nyacc-1.03.0 is not (backwards) compatible.
|
||||
*** MesCC can be built with Guile 3.0.x:
|
||||
See https://bugs.gnu.org/43831; use guild compile -O1 with Guile 3.0.x.
|
||||
*** MesCC now raises SIGABRT on abort, if supported.
|
||||
** Noteworthy bug fixes
|
||||
*** unreadchar on EOF is now a no-op.
|
||||
*** malloc now aligns the blocks it gives out to max_align_t.
|
||||
* Changes in 0.22 since 0.21
|
||||
** Core
|
||||
*** Mes now builds reproducibly with MesCC, cross distribution
|
||||
|
|
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)
|
||||
#+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
|
||||
|
||||
** 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.
|
||||
|
||||
* Legalese
|
||||
Copyright © 2019,2022 Jan (janneke) Nieuwenhuizen <[[mailto:janneke@gnu.org][janneke@gnu.org]]>
|
||||
Copyright © 2019 Jan (janneke) Nieuwenhuizen <[[mailto:janneke@gnu.org][janneke@gnu.org]]>
|
||||
|
||||
Copying and distribution of this file, with or without modification,
|
||||
are permitted in any medium without royalty provided the copyright
|
||||
|
|
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
|
||||
System. Since version 0.22 it has again helped to halve the size of
|
||||
opaque, uninspectable binary seeds that are currently being used in the
|
||||
[[https://guix.gnu.org/blog/2020/guix-further-reduces-bootstrap-seed-to-25][Further Reduced Binary Seed bootstrap]] of [[https://www.gnu.org/software/guix][GNU Guix]]. The final goal is to
|
||||
help create a full-source bootstrap as part of the [[https://bootstrappable.org][bootstrappable builds]]
|
||||
[[https://guix.gnu.org/blog/2019/guix-reduces-bootstrap-seed-by-50/][Reduced Binary Seed bootstrap]] of [[https://www.gnu.org/software/guix][GNU Guix]]. The final goal is to help
|
||||
create a full source bootstrap as part of the [[http://bootstrappable.org][bootstrappable builds]]
|
||||
effort for UNIX-like operating systems.
|
||||
|
||||
The Scheme interpreter is written in ~5,000 LOC of simple C, and the C
|
||||
compiler written in Scheme and these are mutual self-hosting. Mes can
|
||||
now be bootstrapped from [[https://github.com/oriansj/m2-planet][M2-Planet]] and [[https://savannah.nongnu.org/projects/mescc-tools][Mescc-Tools]].
|
||||
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--
|
||||
notably Dominique Boucher's [[https://github.com/schemeway/lalr-scm][LALR]], Pre-R6RS [[https://www.cs.indiana.edu/chezscheme/syntax-case/old-psyntax.html][portable syntax-case]] with
|
||||
R7RS ellipsis, Matt Wette's [[https://www.nongnu.org/nyacc][Nyacc]] --and test suite, just enough to
|
||||
support a REPL and a C99 compiler: mescc.
|
||||
|
||||
Mes + MesCC + Mes C Library can build a [[https://gitlab.com/janneke/tinycc][bootstrappable TinyCC]] that is
|
||||
Mes+MesCC can compile an only [[http://gitlab.com/janneke/tinycc][lightly patched TinyCC]] that is
|
||||
self-hosting. Using this tcc and the Mes C library we now have a
|
||||
Reduced Binary Seed bootstrap for the gnutools triplet: glibc-2.2.5,
|
||||
binutils-2.20.1, gcc-2.95.3. This is enough to bootstrap Guix for
|
||||
i686-linux, x86_64-linux, armhf-linux and aarch64-linux.
|
||||
i686-linux and x86_64-linux.
|
||||
|
||||
Mes is inspired by The Maxwell Equations of Software: [[https://www.softwarepreservation.org/projects/LISP/book/LISP%201.5%20Programmers%20Manual.pdf][LISP-1.5]] -- John
|
||||
Mes is inspired by The Maxwell Equations of Software: [[http://www.softwarepreservation.org/projects/LISP/book/LISP%201.5%20Programmers%20Manual.pdf][LISP-1.5]] -- John
|
||||
McCarthy page 13, GNU Guix's source/binary packaging transparency and
|
||||
Jeremiah Orians's [[https://github.com/oriansj/stage0][stage0]] ~500 byte self-hosting hex assembler.
|
||||
|
||||
We are very grateful to NLNet for sponsoring the [[https://nlnet.nl/project/GNUMes][Reduced Binary Seed
|
||||
bootstrap]], the [[https://nlnet.nl/project/GNUMes-arm][ARM port]], and the [[https://nlnet.nl/project/GNUMes-ARM_RISC-V][Full Source Bootstrap.]]
|
||||
|
||||
GNU Mes is free software, it is distributed under the terms of the GNU
|
||||
General Public Licence version 3 or later. See the file [[file:COPYING][COPYING]].
|
||||
|
||||
|
@ -67,7 +64,7 @@ General Public Licence version 3 or later. See the file [[file:COPYING][COPYING
|
|||
|
||||
* Links
|
||||
[0] https://www.gnu.org/software/mes
|
||||
[1] https://guix.gnu.org/blog/2020/guix-further-reduces-bootstrap-seed-to-25
|
||||
[1] https://guix.gnu.org/blog/2019/guix-reduces-bootstrap-seed-by-50/
|
||||
[2] https://www.gnu.org/software/guix
|
||||
[3] https://bootstrappable.org
|
||||
[4] https://github.com/oriansj/m2-planet
|
||||
|
@ -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
|
||||
[8] https://www.nongnu.org/nyacc
|
||||
[9] https://gitlab.com/janneke/tinycc
|
||||
[10] [[https://www.softwarepreservation.org/projects/LISP/book/LISP%201.5%20Programmers%20Manual.pdf]]
|
||||
[10] [[http://www.softwarepreservation.org/projects/LISP/book/LISP%201.5%20Programmers%20Manual.pdf]]
|
||||
[11] https://savannah.nongnu.org/projects/stage0
|
||||
[12] https://nlnet.nl/project/GNUMes
|
||||
[13] https://nlnet.nl/project/GNUMes-arm
|
||||
[14] https://nlnet.nl/project/GNUMes-ARM_RISC-V
|
||||
|
||||
* Legalese
|
||||
Copyright © 2016,2017,2018,2019,2020,2021,2022 Jan (janneke) Nieuwenhuizen <[[mailto:janneke@gnu.org][janneke@gnu.org]]>
|
||||
Copyright © 2016,2017,2018,2019 Jan (janneke) Nieuwenhuizen <[[mailto:janneke@gnu.org][janneke@gnu.org]]>
|
||||
|
||||
Copying and distribution of this file, with or without modification,
|
||||
are permitted in any medium without royalty provided the copyright
|
||||
|
|
53
ROADMAP
53
ROADMAP
|
@ -1,7 +1,7 @@
|
|||
-*- org -*-
|
||||
#+TITLE: Tentative GNU Mes Road Map
|
||||
|
||||
Copyright © 2016,2017,2018,2019,2020,2022,2023 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
Copyright © 2016,2017,2018,2019 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
|
||||
Copying and distribution of this file, with or without modification,
|
||||
are permitted in any medium without royalty provided the copyright
|
||||
|
@ -19,29 +19,27 @@ Since its inception, the project has gone a long way towards that goal. Below
|
|||
is a list of items we want for version "1.0" of GNU Mes.
|
||||
|
||||
You're welcome to discuss this road map on bug-mes@gnu.org or #bootstrappable
|
||||
on Libera Chat!
|
||||
on Freenode!
|
||||
|
||||
* TODO
|
||||
** release 0.x, unsorted
|
||||
- Full Guile module support.
|
||||
- Run Gash and Gash-Utils on Mes.
|
||||
- Remove Guile as a dependency for the Guix Full Source Bootstrap.
|
||||
- Integrate Full Source bootstrap for ARM on GNU Guix;
|
||||
see branch wip-aarch64-bootstrap.
|
||||
- Integrate Reduced Binary Seed bootstrap for ARM on GNU Guix;
|
||||
see branch wip-arm-bootstrap.
|
||||
- Introduce the Reduced Binary Seed bootstrap to NixOS (Debian,
|
||||
Arch, Gentoo, ...?).
|
||||
- Full Guile-compatible module support; see branch wip-module.
|
||||
- RISC-V support: Mes C Library and MesCC.
|
||||
- AArch64 support: Mes C Library and MesCC.
|
||||
- Simplify eval-apply and other core functionality
|
||||
+ See https://github.com/oriansj/mes-m2 fork/rewrite of mes.
|
||||
- Merge the Scheme-only bootstrap which uses Gash and Gash Core
|
||||
Utilities to remove from bootstrap-binary seed : Awk, Bash, Core
|
||||
Utilities, Grep, Gzip, Sed, Tar.
|
||||
- Introduce the Reduced Binaries Seed bootstrap to NixOS (Debian,
|
||||
Arch, Gentoo, ...?)
|
||||
- Full Source Bootstrap: compile mes.c using M2-Planet. Jeremiah
|
||||
branched-out from mes; see https://github.com/oriansj/mes-m2, also see the
|
||||
branches: wip-full-source-bootstrap, wip-m2-merge and wip-m2.
|
||||
- Full Guile-compatible module support: define-module, define-public,
|
||||
export, use-modules, ...
|
||||
- ARMv7/AArch64 support: Mes C Library and MesCC.
|
||||
- Simplify eval-apply and other core functionality (see mes-m2).
|
||||
- Support native x86_64 bootstrap.
|
||||
- Simplify MesCC ``MesCC should optimize ease of convincing us of its
|
||||
correctness''.
|
||||
- Switch to Autotools for development build (bootstrap builds use
|
||||
kaem.run and bootstrap.sh); see branch wip-auto.
|
||||
correctness''
|
||||
- tcc: remove or upstream patches from tcc-boot.
|
||||
- tcc: build 0.9.27 directly instead of via 0.9.26, see tinycc
|
||||
** after release 1.0
|
||||
- Build Guix packages using Mes: run or simplify (guix build utils),
|
||||
(guix build gnu-build-system).
|
||||
|
@ -50,12 +48,9 @@ on Libera Chat!
|
|||
- Bootstrap support for the Hurd. Most needed now are fork and exec.
|
||||
- Replace the initial gcc-2.95.3 with gcc-4.6.4.
|
||||
- FreeBSD, *BSD?
|
||||
- Tiny CC:
|
||||
+ remove or upstream patches from tcc-boot,
|
||||
+ build 0.9.27 directly instead of via 0.9.26; see tinycc branch
|
||||
wip-bootstrappable@0.9.27
|
||||
- Skip Tiny CC: Build gcc using MesCC.
|
||||
- Better garbage collector.
|
||||
wip-bootstrappable@0.9.27 branch
|
||||
- Skip tcc: Build gcc using MesCC.
|
||||
- better garbage collector.
|
||||
- mes/mescc: proper docstrings, api reference documentation.
|
||||
- mes/mescc: bootstrap a minimal Guile?
|
||||
+ libguile/{eval,init,list,strings,values,..}.
|
||||
|
@ -66,14 +61,6 @@ on Libera Chat!
|
|||
https://srfi.schemers.org/srfi-72/srfi-72.html, or
|
||||
+ ... drop it?
|
||||
* DONE
|
||||
- 0.24: Full Source Bootstrap:
|
||||
+ integrate into GNU Guix; see branch wip-full-source-bootstrap.
|
||||
- 0.23 Full Source Bootstrap:
|
||||
+ compile mes.c using M2-Planet; see branch wip-m2,
|
||||
- GNU Mes now supports building Tiny CC on ARM.
|
||||
- Merge the Scheme-only bootstrap which uses Gash and Gash Core
|
||||
Utilities to remove from bootstrap-binary seed : Awk, Bash, Core
|
||||
Utilities, Grep, Gzip, Sed, Tar.
|
||||
- 0.22 GNU Mes now builds reproducibly cross-platform, runs on the
|
||||
Hurd and has better support for other distributions and kernels.
|
||||
- 0.21 GNU Mes now supports a Scheme-only bootstrap and is packaged in
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# GNU Mes --- Maxwell Equations of Software
|
||||
# Copyright © 2018,2019,2021,2022,2023 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
# Copyright © 2018,2019 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
#
|
||||
# This file is part of GNU Mes.
|
||||
#
|
||||
|
@ -85,26 +85,17 @@ PHONY_TARGETS:=\
|
|||
|
||||
.PHONY: $(PHONY_TARGETS)
|
||||
|
||||
X86_ARCH_HEADERS = $(wildcard $(scrdest)include/linux/x86/*.h)
|
||||
ARCH_HEADERS = $(X86_ARCH_HEADERS:$(srcdest)include/linux/x86/%=include/arch/%)
|
||||
|
||||
default: all
|
||||
|
||||
all: doc
|
||||
|
||||
doc: build
|
||||
|
||||
build: | $(ARCH_HEADERS)
|
||||
build:
|
||||
$(SHELL) build.sh
|
||||
|
||||
src/${program_prefix}mes: build
|
||||
|
||||
include/arch/%.h: $(srcdest)include/$(mes_kernel)/$(mes_cpu)/%.h | arch-dir
|
||||
cp -f $< $@
|
||||
|
||||
arch-dir:
|
||||
mkdir -p include/arch
|
||||
|
||||
clean:
|
||||
rm -f *.o *.s bin/mes bin/mes-gcc bin/mes-mescc
|
||||
rm -f mes.{aux,cp,cps,fn,info,log,tmp,toc,vr,vrs}
|
||||
|
@ -270,16 +261,6 @@ WEB_IMAGES:=\
|
|||
web: info $(WEB_IMAGES)
|
||||
GENDOCS_TEMPLATE_DIR=doc build-aux/gendocs.sh -I doc -s ${srcdest}doc/mes.texi -o doc/web/manual --email bug-mes@gnu.org mes "GNU Mes manual"
|
||||
|
||||
SITE = /srv/mes.org
|
||||
publish: web
|
||||
rsync -P -v . $(SITE)/
|
||||
rsync -P -v . $(SITE)/manual/
|
||||
rsync -P -rvz doc/web/manual/ $(SITE)/manual/
|
||||
|
||||
LOCAL_SITE = $(HOME)/src/web/mes
|
||||
publish-local: web
|
||||
$(MAKE) publish SITE=$(LOCAL_SITE)
|
||||
|
||||
### dist
|
||||
COMMIT=$(shell test -e ${srcdest}.git && (cd ${srcdir} && git describe --dirty 2>/dev/null) || cat ${srcdest}.tarball-version)
|
||||
TARBALL_VERSION=$(COMMIT:v%=%)
|
||||
|
@ -301,10 +282,7 @@ GIT_LS_FILES:=find
|
|||
MTIME:=0
|
||||
endif
|
||||
|
||||
check-signature:
|
||||
git show HEAD --show-signature |grep 'gpg: Good signature'
|
||||
|
||||
dist: check-signature $(TARBALL)
|
||||
dist: $(TARBALL)
|
||||
|
||||
sign-dist: $(TARBALL)
|
||||
gpg -a --output $(TARBALL).sig --detach-sig $(TARBALL)
|
||||
|
@ -332,10 +310,8 @@ $(TARBALL): .tarball-version | generate-ChangeLog
|
|||
ifdef GUIX
|
||||
update-hash: $(TARBALL)
|
||||
$(GUIX) download file://$(PWD)/$<
|
||||
sed -i \
|
||||
-e 's,version #!mes!# "[^"]*"),version #!mes!# "$(VERSION)"),' \
|
||||
-e 's,(base32 #!mes!# "[^"]*"),(base32 #!mes!# "$(shell $(GUIX) hash $<)"),' \
|
||||
guix/git/mes.scm
|
||||
sed -i -e 's,(base32 #!mes!# "[^"]*"),(base32 #!mes!# "$(shell $(GUIX) hash $<)"),' guix/git/mes.scm
|
||||
|
||||
else
|
||||
$(warning update-hash: no guix)
|
||||
endif
|
||||
|
@ -345,72 +321,35 @@ tag:
|
|||
|
||||
# Release process
|
||||
# 0. Prepare git, see history:
|
||||
# - doc: Release update (NEWS, etc.)
|
||||
# - Generate announcement
|
||||
# + touch mes-0.23.tar.gz
|
||||
# + make gen-announce VERSION=0.23
|
||||
# + Update and commit doc/announce/ANNOUNCE-0.23,
|
||||
# using xxx (32,40) for checksums
|
||||
# - create "Release 0.23" commit (see Release 0.22).
|
||||
# + configure
|
||||
# + configure.sh
|
||||
# 1. Tag for release
|
||||
# make tag VERSION=0.23
|
||||
# 2. Create signed tarball
|
||||
# ./configure
|
||||
# make sign-dist
|
||||
# 3. Update Guix package description
|
||||
# make release
|
||||
# 4. Finish announcement
|
||||
# - make sum-announce
|
||||
# - doc: Release update
|
||||
# + NEWS, etc.
|
||||
# + doc/announce/ANNOUNCE-0.22, using xxx for checksums
|
||||
# - Release 0.22
|
||||
# 1. make tag VERSION=0.22
|
||||
# 2. make sign-dist
|
||||
# 3. make release
|
||||
# - Update doc/announce/ANNOUNCE-0.22
|
||||
# - doc: Post-release update.
|
||||
# - build-aux/GNUMakefile.in: gen-announce: update previous-version
|
||||
# 5. Verify
|
||||
# - Update package in Guix master.
|
||||
# - If applicable, verify bootstrap.
|
||||
# 6. Upload to ftp.gnu.org
|
||||
# 7. Update web
|
||||
# - make publish-local
|
||||
# - Update ~/src/web/mes/index.html
|
||||
# - Upload: cvs ci
|
||||
# 8. Create blog post
|
||||
# cp doc/announce/ANNOUNCE-0.23 ~/src/web/joyofsource.com/posts/announce-0.23.md
|
||||
# fix urls and all
|
||||
# 9. Send mail
|
||||
# To: info-gnu@gnu.org
|
||||
# Cc: bug-mes@gnu.org
|
||||
# Cc: guix-devel@gnu.org
|
||||
# Cc: bootstrappable@freelists.org
|
||||
# Cc: rb-general@lists.reproducible-builds.org
|
||||
# 4. verify bootstrap
|
||||
|
||||
guix-build:
|
||||
./pre-inst-env $(GUIX) build mes@$(VERSION) --with-source=$(TARBALL)
|
||||
|
||||
release: check-signature update-hash
|
||||
git commit -m 'guix: mes: Update to $(VERSION).' \
|
||||
-m '* guix/git/mes.scm (mes)[source]: Update to $(VERSION).' \
|
||||
guix/git/mes.scm
|
||||
release: update-hash | gen-announce guix-build
|
||||
|
||||
GPG_KEY_ID:=1A858392E331EAFDB8C27FFBF3C1A0D9C1D65273
|
||||
GEN_ANNOUNCE=$(GNULIB)/build-aux/announce-gen
|
||||
GNULIB=../../gnulib
|
||||
gen-announce:
|
||||
$(GEN_ANNOUNCE) \
|
||||
--release-type=beta \
|
||||
--package-name=mes \
|
||||
--previous-version='0.24.1' \
|
||||
--current-version=$(VERSION) \
|
||||
--gpg-key-id=$(GPG_KEY_ID) \
|
||||
--url-directory=https://ftp.gnu.org/gnu/mes \
|
||||
--news=NEWS \
|
||||
> doc/announce/ANNOUNCE-$(VERSION)
|
||||
|
||||
sum-announce:
|
||||
sed -i \
|
||||
-e "s, xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx $(PACKAGE)-$(VERSION).tar.gz, $(shell sha256sum $(PACKAGE)-$(VERSION).tar.gz)," \
|
||||
-e "s, xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx $(PACKAGE)-$(VERSION).tar.gz, $(shell sha1sum $(PACKAGE)-$(VERSION).tar.gz)," \
|
||||
-e "s, xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx $(PACKAGE)-$(VERSION).tar.gz, $(shell md5sum $(PACKAGE)-$(VERSION).tar.gz)," \
|
||||
doc/announce/ANNOUNCE-$(VERSION)
|
||||
$(GEN_ANNOUNCE)\
|
||||
--release-type=beta\
|
||||
--package-name=mes\
|
||||
--previous-version='0.21 '\
|
||||
--current-version=$(VERSION)\
|
||||
--gpg-key-id=$(GPG_KEY_ID)\
|
||||
--url-directory=https://ftp.gnu.org/gnu/mes\
|
||||
--news=NEWS\
|
||||
> doc/announce/ANNOUNCE-$(VERSION)-
|
||||
|
||||
installdirs: mkinstalldirs
|
||||
mkdir -p\
|
||||
|
|
|
@ -50,7 +50,7 @@ srcdest=../${srcdest}
|
|||
ln -sf ${srcdest}mes .
|
||||
ln -sf ${srcdest}module .
|
||||
ln -sf ${srcdest}src .
|
||||
AM_CPPFLAGS="-D HAVE_CONFIG_H=1 -I ${srcdest}include -I ../include -I include"
|
||||
AM_CPPFLAGS="-D HAVE_CONFIG_H=1 -I ${srcdest}include -I ${srcdest}include/$mes_kernel/$mes_cpu"
|
||||
AM_CFLAGS="-L ${srcdest}lib"
|
||||
|
||||
mkdir -p $mes_cpu-mes
|
||||
|
@ -108,7 +108,7 @@ $AR crD $mes_cpu-mes/libc+tcc.a $objects
|
|||
|
||||
cd ..
|
||||
srcdest=
|
||||
AM_CPPFLAGS="-D HAVE_CONFIG_H=1 -I ${srcdest}include -I ../include -I include"
|
||||
CPPFLAGS="-D HAVE_CONFIG_H=1 -I ${srcdest}include -I ${srcdest}include/$mes_kernel/$mes_cpu"
|
||||
AM_CFLAGS="-L ${srcdest}lib"
|
||||
|
||||
objects=
|
||||
|
|
|
@ -64,6 +64,16 @@ if test -e libc+tcc.s; then
|
|||
cp libc+tcc.s $mes_cpu-mes
|
||||
fi
|
||||
|
||||
if $courageous; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
archive libc+gnu.a $libc_gnu_SOURCES
|
||||
cp libc+gnu.a $mes_cpu-mes
|
||||
if test -e libc+gnu.s; then
|
||||
cp libc+gnu.s $mes_cpu-mes
|
||||
fi
|
||||
|
||||
archive libtcc1.a $libtcc1_SOURCES
|
||||
cp libtcc1.a $mes_cpu-mes
|
||||
if test -e libtcc1.s; then
|
||||
|
@ -75,13 +85,3 @@ cp libgetopt.a $mes_cpu-mes
|
|||
if test -e libgetopt.s; then
|
||||
cp libgetopt.s $mes_cpu-mes
|
||||
fi
|
||||
|
||||
if $courageous; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
archive libc+gnu.a $libc_gnu_SOURCES
|
||||
cp libc+gnu.a $mes_cpu-mes
|
||||
if test -e libc+gnu.s; then
|
||||
cp libc+gnu.s $mes_cpu-mes
|
||||
fi
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
#! /bin/sh
|
||||
|
||||
# GNU Mes --- Maxwell Equations of Software
|
||||
# Copyright © 2019,2021 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
# Copyright © 2019 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
#
|
||||
# This file is part of GNU Mes.
|
||||
#
|
||||
|
@ -47,8 +47,5 @@ then
|
|||
# See <https://www.openwall.com/lists/musl/2018/05/09/1>.
|
||||
LIBS="${LIBS} -lgcc -lc"
|
||||
fi
|
||||
if [ "$compiler" = "mescc" ]; then
|
||||
LIBS="${LIBS} -lc -lmescc"
|
||||
fi
|
||||
link bin/mes-$compiler
|
||||
cp bin/mes-$compiler bin/mes
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
#! /bin/sh
|
||||
|
||||
# GNU Mes --- Maxwell Equations of Software
|
||||
# Copyright © 2017,2018,2019,2022 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
# Copyright © 2017,2018,2019 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
#
|
||||
# This file is part of GNU Mes.
|
||||
#
|
||||
|
@ -29,7 +29,6 @@ fi
|
|||
|
||||
. ./config.sh
|
||||
. ${srcdest}build-aux/trace.sh
|
||||
. ${srcdest}build-aux/cflags.sh
|
||||
|
||||
if $courageous; then
|
||||
set +e
|
||||
|
@ -43,6 +42,25 @@ else
|
|||
}
|
||||
fi
|
||||
|
||||
case "$mes_cpu" in
|
||||
arm)
|
||||
stage0_arch=40
|
||||
stage0_cpu=armv7l
|
||||
;;
|
||||
x86_64)
|
||||
stage0_arch=2
|
||||
stage0_cpu=amd64
|
||||
;;
|
||||
x86)
|
||||
stage0_arch=1
|
||||
stage0_cpu=x86
|
||||
;;
|
||||
*)
|
||||
stage0_arch=1
|
||||
stage0_cpu=$mes_cpu
|
||||
;;
|
||||
esac
|
||||
|
||||
trace "CCLD ${srcdest}lib/$mes_kernel/$mes_cpu-mes-$compiler/exit-42.S" $CC\
|
||||
-nostdlib\
|
||||
-g\
|
||||
|
@ -61,11 +79,12 @@ else
|
|||
fi
|
||||
|
||||
trace "HEX2 ${srcdest}lib/$mes_kernel/$mes_cpu-mes/elf$mes_bits-0exit-42.hex2" $HEX2\
|
||||
--little-endian\
|
||||
--LittleEndian\
|
||||
$stage0_cpu_flag\
|
||||
--base-address 0x1000000\
|
||||
--BaseAddress 0x1000000\
|
||||
-f ${srcdest}lib/$mes_kernel/$mes_cpu-mes/elf$mes_bits-0header.hex2\
|
||||
-f ${srcdest}lib/$mes_kernel/$mes_cpu-mes/elf$mes_bits-0exit-42.hex2\
|
||||
--exec_enable\
|
||||
-o 0exit-42
|
||||
|
||||
trace "TEST 0exit-42"
|
||||
|
@ -74,12 +93,13 @@ trace "TEST 0exit-42"
|
|||
[ $r = 42 ]
|
||||
|
||||
trace "HEX2 ${srcdest}lib/$mes_kernel/$mes_cpu-mes/elf$mes_bits-body-exit-42.hex2" $HEX2\
|
||||
--little-endian\
|
||||
--LittleEndian\
|
||||
$stage0_cpu_flag\
|
||||
--base-address 0x1000000\
|
||||
--BaseAddress 0x1000000\
|
||||
-f ${srcdest}lib/$mes_kernel/$mes_cpu-mes/elf$mes_bits-header.hex2\
|
||||
-f ${srcdest}lib/$mes_kernel/$mes_cpu-mes/elf$mes_bits-body-exit-42.hex2\
|
||||
-f ${srcdest}lib/$mes_kernel/$mes_cpu-mes/elf$mes_bits-footer-single-main.hex2\
|
||||
--exec_enable\
|
||||
-o body-exit-42
|
||||
|
||||
trace "TEST body-exit-42"
|
||||
|
@ -100,11 +120,12 @@ trace "TEST hello-mes"
|
|||
[ $r = 0 ]
|
||||
|
||||
trace "HEX2 ${srcdest}lib/$mes_kernel/$mes_cpu-mes/elf$mes_bits-0hello-mes.hex2" $HEX2\
|
||||
--little-endian\
|
||||
--LittleEndian\
|
||||
$stage0_cpu_flag\
|
||||
--base-address 0x1000000\
|
||||
--BaseAddress 0x1000000\
|
||||
-f ${srcdest}lib/$mes_kernel/$mes_cpu-mes/elf$mes_bits-0header.hex2\
|
||||
-f ${srcdest}lib/$mes_kernel/$mes_cpu-mes/elf$mes_bits-0hello-mes.hex2\
|
||||
--exec_enable\
|
||||
-o 0hello-mes
|
||||
|
||||
trace "TEST 0hello-mes"
|
||||
|
@ -113,12 +134,13 @@ trace "TEST 0hello-mes"
|
|||
[ $r = 0 ]
|
||||
|
||||
trace "HEX2 ${srcdest}lib/$mes_kernel/$mes_cpu-mes/elf$mes_bits-body-hello-mes.hex2" $HEX2\
|
||||
--little-endian\
|
||||
--LittleEndian\
|
||||
$stage0_cpu_flag\
|
||||
--base-address 0x1000000\
|
||||
--BaseAddress 0x1000000\
|
||||
-f ${srcdest}lib/$mes_kernel/$mes_cpu-mes/elf$mes_bits-header.hex2\
|
||||
-f ${srcdest}lib/$mes_kernel/$mes_cpu-mes/elf$mes_bits-body-hello-mes.hex2\
|
||||
-f ${srcdest}lib/$mes_kernel/$mes_cpu-mes/elf$mes_bits-footer-single-main.hex2\
|
||||
--exec_enable\
|
||||
-o body-hello-mes
|
||||
|
||||
trace "TEST body-hello-mes"
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
#! /bin/sh
|
||||
|
||||
# GNU Mes --- Maxwell Equations of Software
|
||||
# Copyright © 2018,2019,2022 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
# Copyright © 2018,2019 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
#
|
||||
# This file is part of GNU Mes.
|
||||
#
|
||||
|
@ -66,8 +66,9 @@ fi
|
|||
AM_CPPFLAGS="
|
||||
-D HAVE_CONFIG_H=1
|
||||
-I ${srcdest}lib
|
||||
-I include
|
||||
-I ${srcdest}include
|
||||
-I ../include
|
||||
-I ${srcdest}include/$mes_kernel/$mes_cpu
|
||||
"
|
||||
if test $mes_kernel = gnu; then
|
||||
AM_CPPFLAGS="$AM_CPPFLAGS
|
||||
|
@ -92,17 +93,16 @@ fi
|
|||
AM_CPPFLAGS="
|
||||
-D HAVE_CONFIG_H=1
|
||||
-I ${srcdest}lib
|
||||
-I ${srcdest}include
|
||||
-I ../include
|
||||
-I include
|
||||
-I ${srcdest}include
|
||||
-I ${srcdest}include/$mes_kernel/$mes_cpu
|
||||
"
|
||||
if test "$compiler" != bootstrap; then
|
||||
${SHELL} ${srcdest}build-aux/build-mes.sh
|
||||
fi
|
||||
)
|
||||
|
||||
if test -n "$M2_PLANET" && (test "$mes_cpu" == "x86" \
|
||||
|| test "$mes_cpu" == "arm"); then
|
||||
if test -n "$M2_PLANET"; then
|
||||
(
|
||||
. ${srcdest}build-aux/trace.sh
|
||||
if [ -z "$V" -o "$V" = 0 ]; then
|
||||
|
@ -136,9 +136,9 @@ fi
|
|||
AM_CPPFLAGS="
|
||||
-D HAVE_CONFIG_H=1
|
||||
-I ${srcdest}lib
|
||||
-I ${srcdest}include
|
||||
-I ../include
|
||||
-I include
|
||||
-I ${srcdest}include
|
||||
-I ${srcdest}include/$mes_kernel/$mes_cpu
|
||||
"
|
||||
compiler=mescc
|
||||
AR=${MESAR-"${srcdest}pre-inst-env mesar"}
|
||||
|
@ -150,7 +150,6 @@ fi
|
|||
${SHELL} ${srcdest}build-aux/build-lib.sh
|
||||
${SHELL} ${srcdest}build-aux/build-source-lib.sh
|
||||
if $bootstrap; then
|
||||
rm -f globals.* # FIXME: avoid name clash with globals from lib
|
||||
${SHELL} ${srcdest}build-aux/build-mes.sh
|
||||
cp -f bin/mes-mescc ../bin
|
||||
cp -f bin/mes ../bin
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# GNU Mes --- Maxwell Equations of Software
|
||||
# Copyright © 2018,2019,2020,2022 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
# Copyright © 2018,2019,2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
#
|
||||
# This file is part of GNU Mes.
|
||||
#
|
||||
|
@ -16,25 +16,6 @@
|
|||
# You should have received a copy of the GNU General Public License
|
||||
# along with GNU Mes. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
case "$mes_cpu" in
|
||||
arm)
|
||||
stage0_arch=40
|
||||
stage0_cpu=armv7l
|
||||
;;
|
||||
x86_64)
|
||||
stage0_arch=2
|
||||
stage0_cpu=amd64
|
||||
;;
|
||||
x86)
|
||||
stage0_arch=1
|
||||
stage0_cpu=x86
|
||||
;;
|
||||
*)
|
||||
stage0_arch=1
|
||||
stage0_cpu=$mes_cpu
|
||||
;;
|
||||
esac
|
||||
|
||||
AM_CPPFLAGS="
|
||||
-D HAVE_CONFIG_H=1
|
||||
-I ${srcdest}include
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
#! /bin/bash
|
||||
|
||||
# GNU Mes --- Maxwell Equations of Software
|
||||
# Copyright © 2018,2019 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
# Copyright © 2018,2019,2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
#
|
||||
# This file is part of GNU Mes.
|
||||
#
|
||||
|
@ -22,7 +22,7 @@ set -e
|
|||
. ./config.sh
|
||||
set -u
|
||||
|
||||
TESTS="
|
||||
boot_tests="
|
||||
|
||||
scaffold/boot/00-zero.scm
|
||||
scaffold/boot/01-true.scm
|
||||
|
@ -115,7 +115,9 @@ scaffold/boot/memory.scm
|
|||
scaffold/boot/numbers.scm
|
||||
"
|
||||
|
||||
XFAIL_TESTS=
|
||||
recheck=true
|
||||
TESTS=${TESTS-$boot_tests}
|
||||
XFAIL_TESTS=${XFAIL_TESTS-}
|
||||
|
||||
test_ext=.scm
|
||||
log_compiler="${SHELL} ${srcdest}build-aux/test-boot.sh"
|
||||
|
|
|
@ -34,20 +34,21 @@ tests/quasiquote.test
|
|||
tests/let.test
|
||||
tests/closure.test
|
||||
tests/scm.test
|
||||
tests/module.test
|
||||
tests/guile.test
|
||||
tests/display.test
|
||||
tests/cwv.test
|
||||
tests/math.test
|
||||
tests/vector.test
|
||||
tests/fluids.test
|
||||
tests/srfi-1.test
|
||||
tests/srfi-9.test
|
||||
tests/srfi-13.test
|
||||
tests/srfi-14.test
|
||||
tests/srfi-43.test
|
||||
tests/optargs.test
|
||||
tests/fluids.test
|
||||
tests/catch.test
|
||||
tests/getopt-long.test
|
||||
tests/guile.test
|
||||
tests/syntax.test
|
||||
tests/let-syntax.test
|
||||
tests/pmatch.test
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
#! /bin/sh
|
||||
|
||||
# GNU Mes --- Maxwell Equations of Software
|
||||
# Copyright © 2017,2018,2019,2020,2022 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
# Copyright © 2017,2018,2019,2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
#
|
||||
# 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/60-math.c
|
||||
lib/tests/scaffold/60-math-itoa.c
|
||||
lib/tests/scaffold/60-math-modulo.c
|
||||
lib/tests/scaffold/61-array.c
|
||||
lib/tests/scaffold/62-array.c
|
||||
lib/tests/scaffold/63-struct.c
|
||||
|
|
|
@ -101,10 +101,8 @@ export V
|
|||
export colors
|
||||
export compiler
|
||||
export courageous
|
||||
export mes_cpu
|
||||
export srcdest
|
||||
export srcdir
|
||||
export stage0_cpu
|
||||
export GUILE_AUTO_COMPILE
|
||||
export MES_PREFIX
|
||||
export TESTS
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
#! /bin/sh
|
||||
|
||||
# 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.
|
||||
#
|
||||
|
@ -158,6 +158,7 @@ lib/stdio/putc.c
|
|||
lib/stdio/putchar.c
|
||||
lib/stdio/ungetc.c
|
||||
lib/stdlib/free.c
|
||||
lib/stdlib/malloc.c
|
||||
lib/stdlib/realloc.c
|
||||
lib/string/memchr.c
|
||||
lib/string/memcmp.c
|
||||
|
@ -211,7 +212,6 @@ lib/linux/_getcwd.c
|
|||
lib/linux/gettimeofday.c
|
||||
lib/linux/ioctl3.c
|
||||
lib/linux/_open3.c
|
||||
lib/linux/malloc.c
|
||||
lib/linux/_read.c
|
||||
lib/linux/time.c
|
||||
lib/linux/unlink.c
|
||||
|
@ -439,7 +439,6 @@ src/core.c
|
|||
src/display.c
|
||||
src/eval-apply.c
|
||||
src/gc.c
|
||||
src/globals.c
|
||||
src/hash.c
|
||||
src/lib.c
|
||||
src/math.c
|
||||
|
@ -451,5 +450,6 @@ src/stack.c
|
|||
src/string.c
|
||||
src/struct.c
|
||||
src/symbol.c
|
||||
src/variable.c
|
||||
src/vector.c
|
||||
"
|
||||
|
|
|
@ -50,7 +50,6 @@ export mes_cpu
|
|||
export mes_bits
|
||||
export mes_libc
|
||||
export mes_kernel
|
||||
export stage0_cpu
|
||||
|
||||
ifdef V
|
||||
export V
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
#! @SHELL@
|
||||
|
||||
# GNU Mes --- Maxwell Equations of Software
|
||||
# Copyright © 2017,2018,2019,2022 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
# Copyright © 2017,2018,2019 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
#
|
||||
# This file is part of GNU Mes.
|
||||
#
|
||||
|
@ -99,7 +99,6 @@ mkdir -p $DESTDIR$includedir
|
|||
mkdir -p $DESTDIR$libdir
|
||||
mkdir -p $DESTDIR$pkgdatadir
|
||||
tar -cf- -C ${srcdir}/include . | tar -${v}xf- -C $DESTDIR$includedir
|
||||
tar -cf- -C include . | tar -${v}xf- -C $DESTDIR$includedir
|
||||
tar -cf- -C ${srcdir}/lib $mes_cpu-mes | tar -${v}xf- -C $DESTDIR$libdir
|
||||
tar -cf- -C ${srcdir}/lib $mes_kernel/$mes_cpu-mes | tar -${v}xf- -C $DESTDIR$libdir
|
||||
if test -z "$srcdest"; then
|
||||
|
|
|
@ -40,6 +40,7 @@ trace "SNARF$snarf stack.c" ${srcdest}build-aux/mes-snarf.scm src/stack.c
|
|||
trace "SNARF$snarf strings.c" ${srcdest}build-aux/mes-snarf.scm src/string.c
|
||||
trace "SNARF$snarf struct.c" ${srcdest}build-aux/mes-snarf.scm src/struct.c
|
||||
trace "SNARF$snarf symbol.c" ${srcdest}build-aux/mes-snarf.scm src/symbol.c
|
||||
trace "SNARF$snarf variable.c" ${srcdest}build-aux/mes-snarf.scm src/variable.c
|
||||
trace "SNARF$snarf vector.c" ${srcdest}build-aux/mes-snarf.scm src/vector.c
|
||||
|
||||
for i in src/*.symbols.h; do
|
||||
|
|
|
@ -4,8 +4,7 @@ MES_ARENA=100000000 exec ${SCHEME-guile} -L . --no-auto-compile -e '(configure)'
|
|||
!#
|
||||
|
||||
;;; GNU Mes --- Maxwell Equations of Software
|
||||
;;; Copyright © 2016,2017,2018,2019,2020,2021,2022,2023 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
;;; Copyright © 2020 Vagrant Cascadian <vagrant@reproducible-builds.org>
|
||||
;;; Copyright © 2016,2017,2018,2019,2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
;;;
|
||||
;;; configure: This file is part of GNU Mes.
|
||||
;;;
|
||||
|
@ -37,7 +36,7 @@ MES_ARENA=100000000 exec ${SCHEME-guile} -L . --no-auto-compile -e '(configure)'
|
|||
(define PACKAGE "mes")
|
||||
(define PACKAGE-NAME "GNU Mes")
|
||||
(define PACKAGE-BUGREPORT "bug-mes@gnu.org")
|
||||
(define VERSION "0.24.2")
|
||||
(define VERSION "0.22")
|
||||
|
||||
(cond-expand
|
||||
(guile)
|
||||
|
@ -322,14 +321,14 @@ MES_ARENA=100000000 exec ${SCHEME-guile} -L . --no-auto-compile -e '(configure)'
|
|||
(enable-silent-rules)
|
||||
(with-system-libc)
|
||||
|
||||
(enable-fast-install) ; Ignored for Guix
|
||||
(enable-fast-install) ; Ignored for Guix
|
||||
(mandir (value #t)) ; Ignored for Debian
|
||||
(localstatedir (value #t)) ; Ignored for Debian
|
||||
(libexecdir (value #t)) ; Ignored for Debian
|
||||
(runstatedir (value #t)) ; Ignored for Debian
|
||||
(disable-maintainer-mode) ; Ignored for Debian
|
||||
(disable-dependency-tracking) ; Ignored for Debian
|
||||
(disable-maintainer-mode) ; Ignored for Debian
|
||||
(disable-option-checking) ; Ignored for Debian
|
||||
(libexecdir (value #t)) ; Ignored for Debian
|
||||
(localstatedir (value #t)) ; Ignored for Debian
|
||||
(mandir (value #t)) ; Ignored for Debian
|
||||
(runstatedir (value #t))))) ; Ignored for Debian
|
||||
)))
|
||||
|
||||
(getopt-long args option-spec)))
|
||||
|
||||
|
@ -454,14 +453,14 @@ Some influential environment variables:
|
|||
(deps (fold (lambda (program results)
|
||||
(cons (check-program-version program) results))
|
||||
'()
|
||||
(list (make-dep "hex2" #:version '(1 4 0))
|
||||
(make-dep "M1" #:version '(1 4 0))
|
||||
(make-dep "blood-elf" #:version '(2 0 0))
|
||||
(make-dep "kaem" #:version '(1 0 0) #:optional? #t)
|
||||
(make-dep "M2-Planet" #:version '(1 9 0) #:optional? #t)
|
||||
(list (make-dep "kaem" #:version '(0 6) #:optional? #t)
|
||||
(make-dep "M2-Planet" #:version '(0 1 3) #:optional? #t)
|
||||
(make-dep "hex2")
|
||||
(make-dep "M1")
|
||||
(make-dep "blood-elf")
|
||||
(make-dep "diff" #:optional? #t)
|
||||
(make-dep "guile" #:version '(2 0) #:commands '("guile-3.0" "guile-3" "guile-2.2" "guile-2.0" "guile-2" "guile") #:optional? #t)
|
||||
(make-dep "mes" #:version '(0 22) #:optional? #t)
|
||||
(make-dep "mes" #:version '(0 20) #:optional? #t)
|
||||
(make-dep "guix" #:version '() #:optional? #t)
|
||||
(make-dep "ar" #:version '(2 10) #:optional? #t)
|
||||
(make-dep "sh" #:optional? #t)
|
||||
|
@ -482,7 +481,7 @@ Some influential environment variables:
|
|||
(guile (file-name "guile" deps))
|
||||
;; See https://bugs.gnu.org/43831; use -O1 with Guile-3
|
||||
(guild-optimize (let ((guile-version (and=> (find-dep "guile" deps) dependency-version-found)))
|
||||
(and guile-version (tuple< '(2 9) guile-version) "-O1")))
|
||||
(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)
|
||||
deps))
|
||||
|
@ -494,7 +493,6 @@ Some influential environment variables:
|
|||
(file-name "cc" deps)
|
||||
(file-name "cc-v" deps)
|
||||
(file-name "mescc" deps)))
|
||||
(m2-planet (file-name "M2-Planet" deps))
|
||||
(deps (if cc
|
||||
(cons* (check-header-c cc (make-dep "limits.h"))
|
||||
(check-header-c cc (make-dep "stdio.h" #:optional? #t))
|
||||
|
@ -630,7 +628,7 @@ See \"Porting GNU Mes\" in the manual, or try --with-courage\n" mes-system)
|
|||
|
||||
("@AR@" . ,(or (file-name "ar" deps) ""))
|
||||
("@BASH@" . ,bash)
|
||||
("@CC@" . ,(or cc ""))
|
||||
("@CC@" . ,cc)
|
||||
("@DIFF@" . ,(or (file-name "diff" deps) (string-append abs-top-builddir "/pre-inst-env diff.scm")))
|
||||
("@DOT@" . ,(or (file-name "dot" deps) ""))
|
||||
("@GIT@" . ,(or (file-name "git" deps) ""))
|
||||
|
@ -707,13 +705,6 @@ See \"Porting GNU Mes\" in the manual, or try --with-courage\n" mes-system)
|
|||
#define MES_VERSION \"" VERSION "\"
|
||||
")))))
|
||||
(substitute (string-append srcdest "build-aux/config.make.in") pairs #:target ".config.make"))
|
||||
(let ((arch-dir (string-append srcdest "include/" mes-kernel "/" mes-cpu)))
|
||||
(define (copy-header file-name)
|
||||
(system* "cp" "-f" "-v"
|
||||
(string-append arch-dir "/" file-name)
|
||||
(string-append "include/arch/" file-name)))
|
||||
(system* "mkdir" "-p" "include/arch")
|
||||
(for-each copy-header '("kernel-stat.h" "syscall.h")))
|
||||
|
||||
(let ((make (and=> (file-name "make" deps) basename)))
|
||||
(display (string-append "
|
||||
|
|
20
configure.sh
20
configure.sh
|
@ -1,7 +1,7 @@
|
|||
#! /bin/sh
|
||||
|
||||
# GNU Mes --- Maxwell Equations of Software
|
||||
# Copyright © 2018,2019,2021,2022,2023 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
# Copyright © 2018,2019 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
#
|
||||
# This file is part of GNU Mes.
|
||||
#
|
||||
|
@ -20,7 +20,7 @@
|
|||
|
||||
set -e
|
||||
|
||||
VERSION=0.24.2
|
||||
VERSION=0.22
|
||||
srcdir=${srcdir-$(dirname $0)}
|
||||
srcdest=
|
||||
if test "$srcdir" != "."; then
|
||||
|
@ -77,8 +77,8 @@ GUILE=${GUILE-$(command -v guile)} || true
|
|||
HEX2=${HEX2-$(command -v hex2)}
|
||||
LDPFLAGS=${LDFLAGS-}
|
||||
M1=${M1-$(command -v M1)}
|
||||
M2_PLANET=${M2_PLANET-$(command -v M2-Planet)} || true
|
||||
KAEM=${KAEM-$(command -v kaem)} || true
|
||||
M2_PLANET=${M1-$(command -v M2-Planet)}
|
||||
KAEM=${KAEM-$(command -v kaem)}
|
||||
MES_FOR_BUILD=${MES_FOR_BUILD-$(command -v mes || command -v guile || echo mes)}
|
||||
GIT=${GIT-$(command -v git)} || true
|
||||
PERL=${PERL-$(command -v perl)} || true
|
||||
|
@ -221,13 +221,7 @@ elif $CC --version | grep tcc; then
|
|||
compiler=gcc
|
||||
else
|
||||
compiler=mescc
|
||||
if ! $CC --version; then
|
||||
CC="$PWD/pre-inst-env mescc"
|
||||
fi
|
||||
if test "$CC" = "M2-Planet"; then
|
||||
CC="$PWD/pre-inst-env mescc"
|
||||
fi
|
||||
AR=${AR-$PWD/pre-inst-env mesar}
|
||||
AR=${AR-$PWD/scripts/mesar}
|
||||
fi
|
||||
|
||||
AR=${AR-$(command -v ar)} || true
|
||||
|
@ -271,10 +265,6 @@ cat >> include/mes/config.h <<EOF
|
|||
#define MES_VERSION "$VERSION"
|
||||
EOF
|
||||
|
||||
mkdir -p include/arch
|
||||
cp -f -v ${srcdest}include/${mes_kernel}/${mes_cpu}/kernel-stat.h include/arch
|
||||
cp -f -v ${srcdest}include/${mes_kernel}/${mes_cpu}/syscall.h include/arch
|
||||
|
||||
cat <<EOF
|
||||
GNU Mes is configured for
|
||||
compiler: $compiler
|
||||
|
|
|
@ -1,120 +0,0 @@
|
|||
|
||||
Subject: GNU Mes 0.23 released
|
||||
|
||||
<#secure method=pgpmime mode=sign>
|
||||
|
||||
We are happy to announce the release of GNU Mes 0.23, representing 125
|
||||
commits over one year by four people.
|
||||
|
||||
Mes was ported to ARM and can now be used in the GNU Guix Reduced Binary
|
||||
Seed bootstrap as described here
|
||||
|
||||
https://guix.gnu.org/blog/2020/guix-further-reduces-bootstrap-seed-to-25/
|
||||
|
||||
and now also for armhf-linux and aarch-linux. Work to integrate this
|
||||
into Guix is ongoing: tinycc and gcc-core-2.95.3 have been built.
|
||||
|
||||
We are excited that the Nlnet Foundation is now sponsoring this work!
|
||||
|
||||
Enjoy,
|
||||
Janneke and Danny.
|
||||
|
||||
* About
|
||||
|
||||
GNU Mes[0] is a Scheme interpreter and C compiler for bootstrapping the
|
||||
GNU System. Since version 0.22 it has again helped to halve the size of
|
||||
opaque, uninspectable binary seeds that are currently being used in the
|
||||
Reduced Binary Seed bootstrap[1] of GNU Guix[2]. The final goal is to
|
||||
help create a full source bootstrap as part of the bootstrappable
|
||||
builds[3] effort for UNIX-like operating systems.
|
||||
|
||||
The Scheme interpreter is written in ~5,000 LOC of simple C, and the C
|
||||
compiler written in Scheme and these are mutual self-hosting. This
|
||||
mes.c is now being simplified to be transpiled by M2-Planet[4].
|
||||
|
||||
Mes has a Garbage Collector, a library of loadable Scheme modules--
|
||||
notably Dominique Boucher's LALR[5], Pre-R6RS portable syntax-case[6]
|
||||
with R7RS ellipsis, Matt Wette's Nyacc[7] --and test suite, just
|
||||
enough to support a REPL and a C99 compiler: mescc.
|
||||
|
||||
Mes + MesCC + Mes C Library can build a bootstrappable TinyCC[8] that
|
||||
is self-hosting. Using this tcc and the Mes C library we now have a
|
||||
Reduced Binary Seed bootstrap for the gnutools triplet: glibc-2.2.5,
|
||||
binutils-2.20.1, gcc-2.95.3. This is enough to bootstrap Guix for
|
||||
i686-linux, x86_64-linux, armhf-linux and aarch64-linux.
|
||||
|
||||
Mes is inspired by The Maxwell Equations of Software: LISP-1.5[9] -- John
|
||||
McCarthy page 13, GNU Guix's source/binary packaging transparency and
|
||||
Jeremiah Orians's stage0[10] ~500 byte self-hosting hex assembler.
|
||||
|
||||
We are very grateful to NLNet for sponsoring the Reduced Binary Seed
|
||||
bootstrap[11] and the ARM port[12].
|
||||
|
||||
* Download
|
||||
|
||||
git clone git://git.savannah.gnu.org/mes.git
|
||||
|
||||
Here are the compressed sources and a GPG detached signature[*]:
|
||||
https://ftp.gnu.org/gnu/mes/mes-0.23.tar.gz
|
||||
https://ftp.gnu.org/gnu/mes/mes-0.23.tar.gz.sig
|
||||
|
||||
Use a mirror for higher download bandwidth:
|
||||
https://ftpmirror.gnu.org/mes/mes-0.23.tar.gz
|
||||
https://ftpmirror.gnu.org/mes/mes-0.23.tar.gz.sig
|
||||
|
||||
Here are the MD5 and SHA1 checksums:
|
||||
|
||||
e9a0ae6e2c3842cf57fccb54909463ba mes-0.23.tar.gz
|
||||
0560879358e5a980f7374844c495c92014b47878 mes-0.23.tar.gz
|
||||
|
||||
[*] Use a .sig file to verify that the corresponding file (without the
|
||||
.sig suffix) is intact. First, be sure to download both the .sig file
|
||||
and the corresponding tarball. Then, run a command like this:
|
||||
|
||||
gpg --verify mes-0.23.tar.gz.sig
|
||||
|
||||
If that command fails because you don't have the required public key,
|
||||
then run this command to import it:
|
||||
|
||||
gpg --keyserver keys.gnupg.net --recv-keys 1A858392E331EAFDB8C27FFBF3C1A0D9C1D65273
|
||||
|
||||
and rerun the 'gpg --verify' command.
|
||||
|
||||
* Get informed, get involved
|
||||
|
||||
See https://bootstrappable.org
|
||||
Join #bootstrappable on irc.freenode.net.
|
||||
|
||||
* NEWS
|
||||
* Changes in 0.23 since 0.22
|
||||
** Core
|
||||
*** Mes and Mes C Library can now be built with GCC 10.x.
|
||||
** MesCC
|
||||
*** The Mes C Library now supports an armhf-linux bootstrap.
|
||||
*** MesCC now supports ARM.
|
||||
*** mini.c library was split into _exit.c, and _write.c.
|
||||
*** When building with GCC, -lgcc is now used.
|
||||
*** MesCC now has it's own support library libmescc.a (-lmescc).
|
||||
*** MesCC now requires mescc-tools-0.7.0 or later for ARM.
|
||||
*** MesCC can be now built with nyacc-1.00.2:
|
||||
note that nyacc-1.03.0 is not (backwards) compatible.
|
||||
*** MesCC can be built with Guile 3.0.x:
|
||||
See https://bugs.gnu.org/43831; use guild compile -O1 with Guile 3.0.x.
|
||||
*** MesCC now raises SIGABRT on abort, if supported.
|
||||
** Noteworthy bug fixes
|
||||
*** unreadchar on EOF is now a no-op.
|
||||
*** malloc now aligns the blocks it gives out to max_align_t.
|
||||
|
||||
[0] https://www.gnu.org/software/mes
|
||||
[1] https://guix.gnu.org/blog/2020/guix-further-reduces-bootstrap-seed-to-25
|
||||
[2] https://www.gnu.org/software/guix
|
||||
[3] https://bootstrappable.org
|
||||
[4] https://github.com/oriansj/m2-planet
|
||||
[5] https://github.com/schemeway/lalr-scm
|
||||
[6] https://www.cs.indiana.edu/chezscheme/syntax-case/old-psyntax.html
|
||||
[7] https://www.nongnu.org/nyacc
|
||||
[8] https://gitlab.com/janneke/tinycc
|
||||
[9] http://www.softwarepreservation.org/projects/LISP/book/LISP%201.5%20Programmers%20Manual.pdf
|
||||
[10] https://savannah.nongnu.org/projects/stage0
|
||||
[11] https://nlnet.nl/project/GNUMes
|
||||
[12] https://nlnet.nl/project/GNUMes-arm
|
|
@ -1,119 +0,0 @@
|
|||
|
||||
Subject: GNU Mes 0.24 released
|
||||
|
||||
<#secure method=pgpmime mode=sign>
|
||||
|
||||
We are thrilled to announce the release of GNU Mes 0.24, representing
|
||||
222 commits over one year by four people.
|
||||
|
||||
Mes has now been ported to M2-Planet and can be bootstrapped using
|
||||
stage0-posix[0], starting from the 357-byte hex0 binary of the
|
||||
bootstrap-seeds[1], as was promised at FOSDEM'21[2].
|
||||
|
||||
We are exciteda that the NlNet Foundation[4] is again sponsoring this
|
||||
work!
|
||||
|
||||
What's next?
|
||||
|
||||
Work to integrate this so-called "Full Source Bootstrap" is happening on
|
||||
the wip-full-source-bootstrap[3] branch. Also, full Guile compatible
|
||||
module support, and RICS-V support.
|
||||
|
||||
Enjoy!
|
||||
|
||||
* About
|
||||
|
||||
GNU Mes[5] is a Scheme interpreter and C compiler for bootstrapping
|
||||
the GNU System. Since version 0.22 it has again helped to halve the
|
||||
size of opaque, uninspectable binary seeds that are currently being
|
||||
used in the Reduced Binary Seed bootstrap[6] of GNU Guix[7]. The
|
||||
final goal is to help create a full source bootstrap as part of the
|
||||
bootstrappable builds[8] effort for UNIX-like operating systems.
|
||||
|
||||
The Scheme interpreter is written in ~5,000 LOC of simple C, and the C
|
||||
compiler written in Scheme and these are mutual self-hosting. Mes can
|
||||
now be bootstrapped from M2-Planet[9] and Mescc-Tools[10].
|
||||
|
||||
Mes has a Garbage Collector, a library of loadable Scheme modules--
|
||||
notably Dominique Boucher's LALR[11], Pre-R6RS portable
|
||||
syntax-case[12] with R7RS ellipsis, Matt Wette's Nyacc[13] --and test
|
||||
suite, just enough to support a REPL and a C99 compiler: mescc.
|
||||
|
||||
Mes + MesCC + Mes C Library can build a bootstrappable TinyCC[14] that
|
||||
is self-hosting. Using this tcc and the Mes C library we now have a
|
||||
Reduced Binary Seed bootstrap for the gnutools triplet: glibc-2.2.5,
|
||||
binutils-2.20.1, gcc-2.95.3. This is enough to bootstrap Guix for
|
||||
i686-linux, x86_64-linux, armhf-linux and aarch64-linux.
|
||||
|
||||
Mes is inspired by The Maxwell Equations of Software: LISP-1.5[15] --
|
||||
John McCarthy page 13, GNU Guix's source/binary packaging transparency
|
||||
and Jeremiah Orians's stage0[16] 357-byte self-hosting hex assembler.
|
||||
|
||||
* Download
|
||||
|
||||
git clone git://git.savannah.gnu.org/mes.git
|
||||
|
||||
Here are the compressed sources and a GPG detached signature[*]:
|
||||
https://ftp.gnu.org/gnu/mes/mes-0.24.tar.gz
|
||||
https://ftp.gnu.org/gnu/mes/mes-0.24.tar.gz.sig
|
||||
|
||||
Use a mirror for higher download bandwidth:
|
||||
https://ftpmirror.gnu.org/mes/mes-0.24.tar.gz
|
||||
https://ftpmirror.gnu.org/mes/mes-0.24.tar.gz.sig
|
||||
|
||||
Here are the SHA1 and SHA256 checksums:
|
||||
|
||||
f6681aa02edc6729af43f1d7c46ae1a97cbc1c92 mes-0.24.tar.gz
|
||||
828be15e02c103df8a248232491fba10d763724d6ec10f08a2e0e1d249bd9902 mes-0.24.tar.gz
|
||||
|
||||
[*] Use a .sig file to verify that the corresponding file (without the
|
||||
.sig suffix) is intact. First, be sure to download both the .sig file
|
||||
and the corresponding tarball. Then, run a command like this:
|
||||
|
||||
gpg --verify mes-0.24.tar.gz.sig
|
||||
|
||||
If that command fails because you don't have the required public key,
|
||||
or that public key has expired, try the following commands to update
|
||||
or refresh it, and then rerun the 'gpg --verify' command.
|
||||
|
||||
gpg --recv-keys 1A858392E331EAFDB8C27FFBF3C1A0D9C1D65273
|
||||
|
||||
* Get informed, get involved
|
||||
|
||||
See https://bootstrappable.org
|
||||
Join #bootstrappable on irc.libera.chat
|
||||
|
||||
* NEWS
|
||||
* Changes in 0.24 since 0.23
|
||||
** Core
|
||||
*** Mes and Mes C Library can now be built with M2-Planet.
|
||||
*** Mes now supports the --bootstrap build on ARM.
|
||||
** MesCC
|
||||
*** MesCC now supports the integer suffixes:
|
||||
Next to `U', also support `ULL', `UL', `L', and `LL'.
|
||||
** Noteworthy bug fixes
|
||||
*** MesCC now uses the unsigned type for sizeof.
|
||||
*** MesCC now only uses signed division if numerator is signed.
|
||||
*** The Mes C library now supports an argv bigger than 255.
|
||||
*** Development build support with Guile-2 was resurrected.
|
||||
*** The logand procedure now works correctly.
|
||||
*** The 64bit build was resurrected.
|
||||
|
||||
* Links
|
||||
[0] https://github.com/oriansj/stage0-posix
|
||||
[1] https://github.com/oriansj/bootstrap-seeds
|
||||
[2] https://archive.fosdem.org/2021/schedule/event/gnumes/
|
||||
[3] https://git.savannah.gnu.org/cgit/guix.git/log/?h=wip-full-source-bootstrap
|
||||
[4] https://nlnet.nl/project/GNUMes-ARM_RISC-V
|
||||
[5] https://www.gnu.org/software/mes
|
||||
[6] https://guix.gnu.org/blog/2020/guix-further-reduces-bootstrap-seed-to-25
|
||||
[7] https://www.gnu.org/software/guix
|
||||
[8] https://bootstrappable.org
|
||||
[9] https://github.com/oriansj/m2-planet
|
||||
[10] https://savannah.nongnu.org/projects/mescc-tools
|
||||
[11] https://github.com/schemeway/lalr-scm
|
||||
[12] https://www.cs.indiana.edu/chezscheme/syntax-case/old-psyntax.html
|
||||
[13] https://www.nongnu.org/nyacc
|
||||
[14] https://gitlab.com/janneke/tinycc
|
||||
[15] http://www.softwarepreservation.org/projects/LISP/book/LISP%201.5%20Programmers%20Manual.pdf
|
||||
[16] https://savannah.nongnu.org/projects/stage0
|
|
@ -1,115 +0,0 @@
|
|||
|
||||
Subject: GNU Mes 0.24.1 released
|
||||
|
||||
<#secure method=pgpmime mode=sign>
|
||||
|
||||
We are happy to announce the release of GNU Mes 0.24.1, representing 23
|
||||
commits over five months by four people.
|
||||
|
||||
Mes now supports the stage0-posix and M2-Planet Full Source bootstrap on
|
||||
Aarch64 for ARM. Because stage0-posix does not support ARM yet, the Mes
|
||||
ARM bootstrap is currently prototyped on Aarch64.
|
||||
|
||||
We are excited that the NlNet Foundation[4] is again sponsoring this
|
||||
work!
|
||||
|
||||
What's next?
|
||||
|
||||
Work to prototype this so-called "Full Source Bootstrap" for ARM on
|
||||
Aarch64 is happening on the wip-aarch64-bootstrap[3] branch. Also, full
|
||||
Guile compatible module support, and RISC-V support.
|
||||
|
||||
Enjoy!
|
||||
|
||||
* About
|
||||
|
||||
GNU Mes[5] is a Scheme interpreter and C compiler for bootstrapping
|
||||
the GNU System. Since version 0.22 it has again helped to halve the
|
||||
size of opaque, uninspectable binary seeds that are currently being
|
||||
used in the Reduced Binary Seed bootstrap[6] of GNU Guix[7]. The
|
||||
final goal is to help create a full source bootstrap as part of the
|
||||
bootstrappable builds[8] effort for UNIX-like operating systems.
|
||||
|
||||
The Scheme interpreter is written in ~5,000 LOC of simple C, and the C
|
||||
compiler written in Scheme and these are mutual self-hosting. Mes can
|
||||
now be bootstrapped from M2-Planet[9] and Mescc-Tools[10].
|
||||
|
||||
Mes has a Garbage Collector, a library of loadable Scheme modules--
|
||||
notably Dominique Boucher's LALR[11], Pre-R6RS portable
|
||||
syntax-case[12] with R7RS ellipsis, Matt Wette's Nyacc[13] --and test
|
||||
suite, just enough to support a REPL and a C99 compiler: mescc.
|
||||
|
||||
Mes + MesCC + Mes C Library can build a bootstrappable TinyCC[14] that
|
||||
is self-hosting. Using this tcc and the Mes C library we now have a
|
||||
Reduced Binary Seed bootstrap for the gnutools triplet: glibc-2.2.5,
|
||||
binutils-2.20.1, gcc-2.95.3. This is enough to bootstrap Guix for
|
||||
i686-linux, x86_64-linux, armhf-linux and aarch64-linux.
|
||||
|
||||
Mes is inspired by The Maxwell Equations of Software: LISP-1.5[15] --
|
||||
John McCarthy page 13, GNU Guix's source/binary packaging transparency
|
||||
and Jeremiah Orians's stage0[16] 357-byte self-hosting hex assembler.
|
||||
|
||||
* Download
|
||||
|
||||
git clone git://git.savannah.gnu.org/mes.git
|
||||
|
||||
Here are the compressed sources and a GPG detached signature[*]:
|
||||
https://ftp.gnu.org/gnu/mes/mes-0.24.1.tar.gz
|
||||
https://ftp.gnu.org/gnu/mes/mes-0.24.1.tar.gz.sig
|
||||
|
||||
Use a mirror for higher download bandwidth:
|
||||
https://ftpmirror.gnu.org/mes/mes-0.24.1.tar.gz
|
||||
https://ftpmirror.gnu.org/mes/mes-0.24.1.tar.gz.sig
|
||||
|
||||
Here are the SHA1 and SHA256 checksums:
|
||||
|
||||
bceaaaf1cafaa31ccb1ee1247ce2dd651a2f67be mes-0.24.1.tar.gz
|
||||
35120ceb0676632e58973355b9f86dff9cc717ed65ed2a17ff5272c59f2a0535 mes-0.24.1.tar.gz
|
||||
|
||||
[*] Use a .sig file to verify that the corresponding file (without the
|
||||
.sig suffix) is intact. First, be sure to download both the .sig file
|
||||
and the corresponding tarball. Then, run a command like this:
|
||||
|
||||
gpg --verify mes-0.24.1.tar.gz.sig
|
||||
|
||||
If that command fails because you don't have the required public key,
|
||||
or that public key has expired, try the following commands to update
|
||||
or refresh it, and then rerun the 'gpg --verify' command.
|
||||
|
||||
gpg --recv-keys 1A858392E331EAFDB8C27FFBF3C1A0D9C1D65273
|
||||
|
||||
* Get informed, get involved
|
||||
|
||||
See https://bootstrappable.org
|
||||
Join #bootstrappable on irc.libera.chat
|
||||
|
||||
* NEWS
|
||||
* Changes in 0.24.1 since 0.24
|
||||
** Build
|
||||
*** Support M2-Planet bootstrap for ARM.
|
||||
** MesCC
|
||||
*** The Mes C Library now supports bootstrapping ARM.
|
||||
** Noteworthy bug fixes
|
||||
*** The definition of S_ISUID was fixed.
|
||||
*** Unsigned modulo has been fixed for ARM.
|
||||
*** A bug with abtol has been fixed.
|
||||
*** Workarounds for building with gcc-12.2.0 have been added.
|
||||
|
||||
* Links
|
||||
[0] https://github.com/oriansj/stage0-posix
|
||||
[1] https://github.com/oriansj/bootstrap-seeds
|
||||
[2] https://archive.fosdem.org/2021/schedule/event/gnumes/
|
||||
[3] https://git.savannah.gnu.org/cgit/guix.git/log/?h=wip-aarch64-bootstrap
|
||||
[4] https://nlnet.nl/project/GNUMes-ARM_RISC-V
|
||||
[5] https://www.gnu.org/software/mes
|
||||
[6] https://guix.gnu.org/blog/2020/guix-further-reduces-bootstrap-seed-to-25
|
||||
[7] https://www.gnu.org/software/guix
|
||||
[8] https://bootstrappable.org
|
||||
[9] https://github.com/oriansj/m2-planet
|
||||
[10] https://savannah.nongnu.org/projects/mescc-tools
|
||||
[11] https://github.com/schemeway/lalr-scm
|
||||
[12] https://www.cs.indiana.edu/chezscheme/syntax-case/old-psyntax.html
|
||||
[13] https://www.nongnu.org/nyacc
|
||||
[14] https://gitlab.com/janneke/tinycc
|
||||
[15] http://www.softwarepreservation.org/projects/LISP/book/LISP%201.5%20Programmers%20Manual.pdf
|
||||
[16] https://savannah.nongnu.org/projects/stage0
|
|
@ -1,117 +0,0 @@
|
|||
|
||||
Subject: GNU Mes 0.24.2 released
|
||||
|
||||
<#secure method=pgpmime mode=sign>
|
||||
|
||||
We are happy to announce the release of GNU Mes 0.24.2, representing 25
|
||||
commits over nine months by four people.
|
||||
|
||||
This release should fix the long standing `stat64' bug #41264[0].
|
||||
|
||||
We are very grateful that the NLnet Foundation[1] is sponsoring this
|
||||
work!
|
||||
|
||||
What's next?
|
||||
|
||||
Work to prototype this so-called "Full Source Bootstrap" for ARM on
|
||||
Aarch64 is happening on the wip-aarch64-bootstrap[2] branch. Also, full
|
||||
Guile compatible module support, and RISC-V support.
|
||||
|
||||
Enjoy!
|
||||
|
||||
* About
|
||||
|
||||
GNU Mes[3] is a Scheme interpreter and C compiler for bootstrapping
|
||||
the GNU System. Since version 0.22 it has again helped to halve the
|
||||
size of opaque, uninspectable binary seeds that are currently being
|
||||
used in the Reduced Binary Seed bootstrap[4] of GNU Guix[5]. The
|
||||
final goal is to help create a full source bootstrap as part of the
|
||||
bootstrappable builds[6] effort for UNIX-like operating systems.
|
||||
|
||||
The Scheme interpreter is written in ~5,000 LOC of simple C, and the C
|
||||
compiler written in Scheme and these are mutual self-hosting. Mes can
|
||||
now be bootstrapped from M2-Planet[7] and Mescc-Tools[8].
|
||||
|
||||
Mes has a Garbage Collector, a library of loadable Scheme modules--
|
||||
notably Dominique Boucher's LALR[9], Pre-R6RS portable
|
||||
syntax-case[10] with R7RS ellipsis, Matt Wette's Nyacc[11] --and test
|
||||
suite, just enough to support a REPL and a C99 compiler: mescc.
|
||||
|
||||
Mes + MesCC + Mes C Library can build a bootstrappable TinyCC[12] that
|
||||
is self-hosting. Using this tcc and the Mes C library we now have a
|
||||
Reduced Binary Seed bootstrap for the gnutools triplet: glibc-2.2.5,
|
||||
binutils-2.20.1, gcc-2.95.3. This is enough to bootstrap Guix for
|
||||
i686-linux, x86_64-linux, armhf-linux and aarch64-linux.
|
||||
|
||||
Mes is inspired by The Maxwell Equations of Software: LISP-1.5[13] --
|
||||
John McCarthy page 13, GNU Guix's source/binary packaging transparency
|
||||
and Jeremiah Orians's stage0[14] 357-byte self-hosting hex assembler.
|
||||
|
||||
* Download
|
||||
|
||||
git clone git://git.savannah.gnu.org/mes.git
|
||||
|
||||
Here are the compressed sources and a GPG detached signature[*]:
|
||||
https://ftp.gnu.org/gnu/mes/mes-0.24.2.tar.gz
|
||||
https://ftp.gnu.org/gnu/mes/mes-0.24.2.tar.gz.sig
|
||||
|
||||
Use a mirror for higher download bandwidth:
|
||||
https://ftpmirror.gnu.org/mes/mes-0.24.2.tar.gz
|
||||
https://ftpmirror.gnu.org/mes/mes-0.24.2.tar.gz.sig
|
||||
|
||||
Here are the SHA1 and SHA256 checksums:
|
||||
|
||||
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx mes-0.24.2.tar.gz
|
||||
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx mes-0.24.2.tar.gz
|
||||
|
||||
[*] Use a .sig file to verify that the corresponding file (without the
|
||||
.sig suffix) is intact. First, be sure to download both the .sig file
|
||||
and the corresponding tarball. Then, run a command like this:
|
||||
|
||||
gpg --verify mes-0.24.2.tar.gz.sig
|
||||
|
||||
If that command fails because you don't have the required public key,
|
||||
or that public key has expired, try the following commands to update
|
||||
or refresh it, and then rerun the 'gpg --verify' command.
|
||||
|
||||
gpg --recv-keys 1A858392E331EAFDB8C27FFBF3C1A0D9C1D65273
|
||||
|
||||
* Get informed, get involved
|
||||
|
||||
See https://bootstrappable.org
|
||||
Join #bootstrappable on irc.libera.chat
|
||||
|
||||
* NEWS
|
||||
* Changes in 0.24.2 since 0.24.1
|
||||
** Build
|
||||
*** A number of compile warnings have been fixed.
|
||||
*** The `simple.make' and `simple.sh' builds have been resurrected.
|
||||
** MesCC
|
||||
*** Some assembly defines were added for building TinyCC for x86_64.
|
||||
*** `__assert_fail' has been updated to use the standard signature.
|
||||
** Noteworthy bug fixes
|
||||
*** A bootstrap build without M2-Planet is now supported again.
|
||||
*** `gettimeofday' no longer segfaults in the M2-Planet build.
|
||||
*** `stat64' and friends are now used on 32bit platforms.
|
||||
This fixes https://debbugs.gnu.org/41264, and should also fix
|
||||
https://debbugs.gnu.org/49985,
|
||||
https://debbugs.gnu.org/53415,
|
||||
https://debbugs.gnu.org/53416.
|
||||
*** The Mes C Library now supports uppercase hex conversions.
|
||||
|
||||
* Links
|
||||
[0] https://debbugs.gnu.org/41264
|
||||
[1] https://nlnet.nl/project/GNUMes-ARM_RISC-V
|
||||
[2] https://git.savannah.gnu.org/cgit/guix.git/log/?h=wip-aarch64-bootstrap
|
||||
[3] https://www.gnu.org/software/mes
|
||||
[4] https://guix.gnu.org/blog/2020/guix-further-reduces-bootstrap-seed-to-25
|
||||
[5] https://www.gnu.org/software/guix
|
||||
[6] https://bootstrappable.org
|
||||
[7] https://github.com/oriansj/m2-planet
|
||||
[8] https://savannah.nongnu.org/projects/mescc-tools
|
||||
[9] https://github.com/schemeway/lalr-scm
|
||||
[10] https://www.cs.indiana.edu/chezscheme/syntax-case/old-psyntax.html
|
||||
[11] https://www.nongnu.org/nyacc
|
||||
[12] https://gitlab.com/janneke/tinycc
|
||||
[13] http://www.softwarepreservation.org/projects/LISP/book/LISP%201.5%20Programmers%20Manual.pdf
|
||||
[14] https://github.com/oriansj/stage0-posix
|
|
@ -6,7 +6,7 @@
|
|||
|
||||
@display
|
||||
Copyright @copyright{} 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc.
|
||||
@uref{https://fsf.org/}
|
||||
@uref{http://fsf.org/}
|
||||
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
@ -414,7 +414,7 @@ The Free Software Foundation may publish new, revised versions
|
|||
of the GNU Free Documentation License from time to time. Such new
|
||||
versions will be similar in spirit to the present version, but may
|
||||
differ in detail to address new problems or concerns. See
|
||||
@uref{https://www.gnu.org/copyleft/}.
|
||||
@uref{http://www.gnu.org/copyleft/}.
|
||||
|
||||
Each version of the License is given a distinguishing version number.
|
||||
If the Document specifies that a particular numbered version of this
|
||||
|
|
|
@ -1,107 +1,123 @@
|
|||
digraph "Guix bag" {
|
||||
"/gnu/store/3va8hfvfyp6dbwqk3036kb25wbp0f81z-gcc-core-mesboot0-2.95.3.drv" [label = "gcc-core-mesboot0@2.95.3", shape = box, fontname = sans];
|
||||
"/gnu/store/3va8hfvfyp6dbwqk3036kb25wbp0f81z-gcc-core-mesboot0-2.95.3.drv" -> "/gnu/store/8ghnzf9idpmva8l4n8fyvvgqlln4rddi-binutils-mesboot0-2.14.drv" [color = red];
|
||||
"/gnu/store/3va8hfvfyp6dbwqk3036kb25wbp0f81z-gcc-core-mesboot0-2.95.3.drv" -> "/gnu/store/yx5dz5gi00q8h5i138h59j1jmbhr3qa4-bash-mesboot0-2.05b.drv" [color = red];
|
||||
"/gnu/store/3va8hfvfyp6dbwqk3036kb25wbp0f81z-gcc-core-mesboot0-2.95.3.drv" -> "/gnu/store/yy8bxckakx5f4rpvqfggrfy21y7bn53g-bzip2-mesboot-1.0.8.drv" [color = red];
|
||||
"/gnu/store/3va8hfvfyp6dbwqk3036kb25wbp0f81z-gcc-core-mesboot0-2.95.3.drv" -> "/gnu/store/qyphha8i1pylf10pm76400kq5d07zsvr-gzip-mesboot-1.2.4.drv" [color = red];
|
||||
"/gnu/store/3va8hfvfyp6dbwqk3036kb25wbp0f81z-gcc-core-mesboot0-2.95.3.drv" -> "/gnu/store/vn42sjmbh0zr9wn9lnbsdrxlh1zihx50-patch-mesboot-2.5.9.drv" [color = red];
|
||||
"/gnu/store/3va8hfvfyp6dbwqk3036kb25wbp0f81z-gcc-core-mesboot0-2.95.3.drv" -> "/gnu/store/16w6l2c80hh98kfykal9hpbm93cscbcg-sed-mesboot0-1.18.drv" [color = red];
|
||||
"/gnu/store/3va8hfvfyp6dbwqk3036kb25wbp0f81z-gcc-core-mesboot0-2.95.3.drv" -> "/gnu/store/yl8gsvanaj8wgngmgc4an06g5ybadad2-gash-utils-boot-0.1.0.drv" [color = red];
|
||||
"/gnu/store/3va8hfvfyp6dbwqk3036kb25wbp0f81z-gcc-core-mesboot0-2.95.3.drv" -> "/gnu/store/h1m81zsyi3l4yd9r7pd3ffanb61pszxy-tcc-boot-0.9.27.drv" [color = red];
|
||||
"/gnu/store/3va8hfvfyp6dbwqk3036kb25wbp0f81z-gcc-core-mesboot0-2.95.3.drv" -> "/gnu/store/hlm2wxhh0irfjnds4i86imdqi13iwj81-make-mesboot0-3.80.drv" [color = red];
|
||||
"/gnu/store/3va8hfvfyp6dbwqk3036kb25wbp0f81z-gcc-core-mesboot0-2.95.3.drv" -> "/gnu/store/jrf5jckbwk949npav1p62vgcg95lr4mx-gash-boot-0.2.0.drv" [color = red];
|
||||
"/gnu/store/3va8hfvfyp6dbwqk3036kb25wbp0f81z-gcc-core-mesboot0-2.95.3.drv" -> "/gnu/store/yl8gsvanaj8wgngmgc4an06g5ybadad2-gash-utils-boot-0.1.0.drv" [color = red];
|
||||
"/gnu/store/3va8hfvfyp6dbwqk3036kb25wbp0f81z-gcc-core-mesboot0-2.95.3.drv" -> "/gnu/store/w77kjhmj4c4sncndnh0kvf0jfpwpradm-bootar-1a.drv" [color = red];
|
||||
"/gnu/store/3va8hfvfyp6dbwqk3036kb25wbp0f81z-gcc-core-mesboot0-2.95.3.drv" -> "/gnu/store/qs4086i9b9q0b74l4wjqgzbdc3c0f58f-guile-bootstrap-2.0.drv" [color = red];
|
||||
"/gnu/store/8ghnzf9idpmva8l4n8fyvvgqlln4rddi-binutils-mesboot0-2.14.drv" [label = "binutils-mesboot0@2.14", shape = box, fontname = sans];
|
||||
"/gnu/store/8ghnzf9idpmva8l4n8fyvvgqlln4rddi-binutils-mesboot0-2.14.drv" -> "/gnu/store/yx5dz5gi00q8h5i138h59j1jmbhr3qa4-bash-mesboot0-2.05b.drv" [color = cyan3];
|
||||
"/gnu/store/8ghnzf9idpmva8l4n8fyvvgqlln4rddi-binutils-mesboot0-2.14.drv" -> "/gnu/store/yy8bxckakx5f4rpvqfggrfy21y7bn53g-bzip2-mesboot-1.0.8.drv" [color = cyan3];
|
||||
"/gnu/store/8ghnzf9idpmva8l4n8fyvvgqlln4rddi-binutils-mesboot0-2.14.drv" -> "/gnu/store/qyphha8i1pylf10pm76400kq5d07zsvr-gzip-mesboot-1.2.4.drv" [color = cyan3];
|
||||
"/gnu/store/8ghnzf9idpmva8l4n8fyvvgqlln4rddi-binutils-mesboot0-2.14.drv" -> "/gnu/store/vn42sjmbh0zr9wn9lnbsdrxlh1zihx50-patch-mesboot-2.5.9.drv" [color = cyan3];
|
||||
"/gnu/store/8ghnzf9idpmva8l4n8fyvvgqlln4rddi-binutils-mesboot0-2.14.drv" -> "/gnu/store/16w6l2c80hh98kfykal9hpbm93cscbcg-sed-mesboot0-1.18.drv" [color = cyan3];
|
||||
"/gnu/store/8ghnzf9idpmva8l4n8fyvvgqlln4rddi-binutils-mesboot0-2.14.drv" -> "/gnu/store/yl8gsvanaj8wgngmgc4an06g5ybadad2-gash-utils-boot-0.1.0.drv" [color = cyan3];
|
||||
"/gnu/store/8ghnzf9idpmva8l4n8fyvvgqlln4rddi-binutils-mesboot0-2.14.drv" -> "/gnu/store/h1m81zsyi3l4yd9r7pd3ffanb61pszxy-tcc-boot-0.9.27.drv" [color = cyan3];
|
||||
"/gnu/store/8ghnzf9idpmva8l4n8fyvvgqlln4rddi-binutils-mesboot0-2.14.drv" -> "/gnu/store/hlm2wxhh0irfjnds4i86imdqi13iwj81-make-mesboot0-3.80.drv" [color = cyan3];
|
||||
"/gnu/store/8ghnzf9idpmva8l4n8fyvvgqlln4rddi-binutils-mesboot0-2.14.drv" -> "/gnu/store/jrf5jckbwk949npav1p62vgcg95lr4mx-gash-boot-0.2.0.drv" [color = cyan3];
|
||||
"/gnu/store/8ghnzf9idpmva8l4n8fyvvgqlln4rddi-binutils-mesboot0-2.14.drv" -> "/gnu/store/yl8gsvanaj8wgngmgc4an06g5ybadad2-gash-utils-boot-0.1.0.drv" [color = cyan3];
|
||||
"/gnu/store/8ghnzf9idpmva8l4n8fyvvgqlln4rddi-binutils-mesboot0-2.14.drv" -> "/gnu/store/w77kjhmj4c4sncndnh0kvf0jfpwpradm-bootar-1a.drv" [color = cyan3];
|
||||
"/gnu/store/8ghnzf9idpmva8l4n8fyvvgqlln4rddi-binutils-mesboot0-2.14.drv" -> "/gnu/store/qs4086i9b9q0b74l4wjqgzbdc3c0f58f-guile-bootstrap-2.0.drv" [color = cyan3];
|
||||
"/gnu/store/yx5dz5gi00q8h5i138h59j1jmbhr3qa4-bash-mesboot0-2.05b.drv" [label = "bash-mesboot0@2.05b", shape = box, fontname = sans];
|
||||
"/gnu/store/yx5dz5gi00q8h5i138h59j1jmbhr3qa4-bash-mesboot0-2.05b.drv" -> "/gnu/store/hlm2wxhh0irfjnds4i86imdqi13iwj81-make-mesboot0-3.80.drv" [color = darkgoldenrod];
|
||||
"/gnu/store/yx5dz5gi00q8h5i138h59j1jmbhr3qa4-bash-mesboot0-2.05b.drv" -> "/gnu/store/0izhx7j1n6lcpcbvy9i9pyjkzjpbxrcj-tcc-boot0-0.9.26-1103-g6e62e0e.drv" [color = darkgoldenrod];
|
||||
"/gnu/store/yx5dz5gi00q8h5i138h59j1jmbhr3qa4-bash-mesboot0-2.05b.drv" -> "/gnu/store/jrf5jckbwk949npav1p62vgcg95lr4mx-gash-boot-0.2.0.drv" [color = darkgoldenrod];
|
||||
"/gnu/store/yx5dz5gi00q8h5i138h59j1jmbhr3qa4-bash-mesboot0-2.05b.drv" -> "/gnu/store/yl8gsvanaj8wgngmgc4an06g5ybadad2-gash-utils-boot-0.1.0.drv" [color = darkgoldenrod];
|
||||
"/gnu/store/yx5dz5gi00q8h5i138h59j1jmbhr3qa4-bash-mesboot0-2.05b.drv" -> "/gnu/store/w77kjhmj4c4sncndnh0kvf0jfpwpradm-bootar-1a.drv" [color = darkgoldenrod];
|
||||
"/gnu/store/yx5dz5gi00q8h5i138h59j1jmbhr3qa4-bash-mesboot0-2.05b.drv" -> "/gnu/store/qs4086i9b9q0b74l4wjqgzbdc3c0f58f-guile-bootstrap-2.0.drv" [color = darkgoldenrod];
|
||||
"/gnu/store/hlm2wxhh0irfjnds4i86imdqi13iwj81-make-mesboot0-3.80.drv" [label = "make-mesboot0@3.80", shape = box, fontname = sans];
|
||||
"/gnu/store/hlm2wxhh0irfjnds4i86imdqi13iwj81-make-mesboot0-3.80.drv" -> "/gnu/store/0izhx7j1n6lcpcbvy9i9pyjkzjpbxrcj-tcc-boot0-0.9.26-1103-g6e62e0e.drv" [color = magenta];
|
||||
"/gnu/store/hlm2wxhh0irfjnds4i86imdqi13iwj81-make-mesboot0-3.80.drv" -> "/gnu/store/jrf5jckbwk949npav1p62vgcg95lr4mx-gash-boot-0.2.0.drv" [color = magenta];
|
||||
"/gnu/store/hlm2wxhh0irfjnds4i86imdqi13iwj81-make-mesboot0-3.80.drv" -> "/gnu/store/yl8gsvanaj8wgngmgc4an06g5ybadad2-gash-utils-boot-0.1.0.drv" [color = magenta];
|
||||
"/gnu/store/hlm2wxhh0irfjnds4i86imdqi13iwj81-make-mesboot0-3.80.drv" -> "/gnu/store/w77kjhmj4c4sncndnh0kvf0jfpwpradm-bootar-1a.drv" [color = magenta];
|
||||
"/gnu/store/hlm2wxhh0irfjnds4i86imdqi13iwj81-make-mesboot0-3.80.drv" -> "/gnu/store/qs4086i9b9q0b74l4wjqgzbdc3c0f58f-guile-bootstrap-2.0.drv" [color = magenta];
|
||||
"/gnu/store/0izhx7j1n6lcpcbvy9i9pyjkzjpbxrcj-tcc-boot0-0.9.26-1103-g6e62e0e.drv" [label = "tcc-boot0@0.9.26-1103-g6e62e0e", shape = box, fontname = sans];
|
||||
"/gnu/store/0izhx7j1n6lcpcbvy9i9pyjkzjpbxrcj-tcc-boot0-0.9.26-1103-g6e62e0e.drv" -> "/gnu/store/iny72b5k1f531xv7fr2i31j4gqknjv2l-mes-boot-0.22.drv" [color = darkseagreen];
|
||||
"/gnu/store/0izhx7j1n6lcpcbvy9i9pyjkzjpbxrcj-tcc-boot0-0.9.26-1103-g6e62e0e.drv" -> "/gnu/store/a6nbjivhxp65wqj5s8rz0fnmwzqxmhry-bootstrap-mescc-tools-0.5.2.drv" [color = darkseagreen];
|
||||
"/gnu/store/0izhx7j1n6lcpcbvy9i9pyjkzjpbxrcj-tcc-boot0-0.9.26-1103-g6e62e0e.drv" -> "/gnu/store/jrf5jckbwk949npav1p62vgcg95lr4mx-gash-boot-0.2.0.drv" [color = darkseagreen];
|
||||
"/gnu/store/0izhx7j1n6lcpcbvy9i9pyjkzjpbxrcj-tcc-boot0-0.9.26-1103-g6e62e0e.drv" -> "/gnu/store/yl8gsvanaj8wgngmgc4an06g5ybadad2-gash-utils-boot-0.1.0.drv" [color = darkseagreen];
|
||||
"/gnu/store/0izhx7j1n6lcpcbvy9i9pyjkzjpbxrcj-tcc-boot0-0.9.26-1103-g6e62e0e.drv" -> "/gnu/store/w77kjhmj4c4sncndnh0kvf0jfpwpradm-bootar-1a.drv" [color = darkseagreen];
|
||||
"/gnu/store/0izhx7j1n6lcpcbvy9i9pyjkzjpbxrcj-tcc-boot0-0.9.26-1103-g6e62e0e.drv" -> "/gnu/store/qs4086i9b9q0b74l4wjqgzbdc3c0f58f-guile-bootstrap-2.0.drv" [color = darkseagreen];
|
||||
"/gnu/store/iny72b5k1f531xv7fr2i31j4gqknjv2l-mes-boot-0.22.drv" [label = "mes-boot@0.22", shape = box, fontname = sans];
|
||||
"/gnu/store/iny72b5k1f531xv7fr2i31j4gqknjv2l-mes-boot-0.22.drv" -> "/gnu/store/xdhz4v7icrfwdbq1j5j052id8l04arms-bootstrap-mes-rewired-0.19.drv" [color = peachpuff4];
|
||||
"/gnu/store/iny72b5k1f531xv7fr2i31j4gqknjv2l-mes-boot-0.22.drv" -> "/gnu/store/a6nbjivhxp65wqj5s8rz0fnmwzqxmhry-bootstrap-mescc-tools-0.5.2.drv" [color = peachpuff4];
|
||||
"/gnu/store/iny72b5k1f531xv7fr2i31j4gqknjv2l-mes-boot-0.22.drv" -> "/gnu/store/jrf5jckbwk949npav1p62vgcg95lr4mx-gash-boot-0.2.0.drv" [color = peachpuff4];
|
||||
"/gnu/store/iny72b5k1f531xv7fr2i31j4gqknjv2l-mes-boot-0.22.drv" -> "/gnu/store/yl8gsvanaj8wgngmgc4an06g5ybadad2-gash-utils-boot-0.1.0.drv" [color = peachpuff4];
|
||||
"/gnu/store/iny72b5k1f531xv7fr2i31j4gqknjv2l-mes-boot-0.22.drv" -> "/gnu/store/w77kjhmj4c4sncndnh0kvf0jfpwpradm-bootar-1a.drv" [color = peachpuff4];
|
||||
"/gnu/store/iny72b5k1f531xv7fr2i31j4gqknjv2l-mes-boot-0.22.drv" -> "/gnu/store/qs4086i9b9q0b74l4wjqgzbdc3c0f58f-guile-bootstrap-2.0.drv" [color = peachpuff4];
|
||||
"/gnu/store/xdhz4v7icrfwdbq1j5j052id8l04arms-bootstrap-mes-rewired-0.19.drv" [label = "bootstrap-mes-rewired@0.19", shape = box, fontname = sans];
|
||||
"/gnu/store/xdhz4v7icrfwdbq1j5j052id8l04arms-bootstrap-mes-rewired-0.19.drv" -> "/gnu/store/r7bbw2ywmgqp6m5a1hp0fs4lhc51w3sq-bootstrap-mes-0.drv" [color = cyan3];
|
||||
"/gnu/store/xdhz4v7icrfwdbq1j5j052id8l04arms-bootstrap-mes-rewired-0.19.drv" -> "/gnu/store/jrf5jckbwk949npav1p62vgcg95lr4mx-gash-boot-0.2.0.drv" [color = cyan3];
|
||||
"/gnu/store/r7bbw2ywmgqp6m5a1hp0fs4lhc51w3sq-bootstrap-mes-0.drv" [label = "bootstrap-mes@0", shape = box, fontname = sans];
|
||||
"/gnu/store/jrf5jckbwk949npav1p62vgcg95lr4mx-gash-boot-0.2.0.drv" [label = "gash-boot@0.2.0", shape = box, fontname = sans];
|
||||
"/gnu/store/jrf5jckbwk949npav1p62vgcg95lr4mx-gash-boot-0.2.0.drv" -> "/gnu/store/w77kjhmj4c4sncndnh0kvf0jfpwpradm-bootar-1a.drv" [color = darkviolet];
|
||||
"/gnu/store/jrf5jckbwk949npav1p62vgcg95lr4mx-gash-boot-0.2.0.drv" -> "/gnu/store/qs4086i9b9q0b74l4wjqgzbdc3c0f58f-guile-bootstrap-2.0.drv" [color = darkviolet];
|
||||
"/gnu/store/w77kjhmj4c4sncndnh0kvf0jfpwpradm-bootar-1a.drv" [label = "bootar@1a", shape = box, fontname = sans];
|
||||
"/gnu/store/w77kjhmj4c4sncndnh0kvf0jfpwpradm-bootar-1a.drv" -> "/gnu/store/qs4086i9b9q0b74l4wjqgzbdc3c0f58f-guile-bootstrap-2.0.drv" [color = blue];
|
||||
"/gnu/store/qs4086i9b9q0b74l4wjqgzbdc3c0f58f-guile-bootstrap-2.0.drv" [label = "guile-bootstrap@2.0", shape = box, fontname = sans];
|
||||
"/gnu/store/a6nbjivhxp65wqj5s8rz0fnmwzqxmhry-bootstrap-mescc-tools-0.5.2.drv" [label = "bootstrap-mescc-tools@0.5.2", shape = box, fontname = sans];
|
||||
"/gnu/store/yl8gsvanaj8wgngmgc4an06g5ybadad2-gash-utils-boot-0.1.0.drv" [label = "gash-utils-boot@0.1.0", shape = box, fontname = sans];
|
||||
"/gnu/store/yl8gsvanaj8wgngmgc4an06g5ybadad2-gash-utils-boot-0.1.0.drv" -> "/gnu/store/w77kjhmj4c4sncndnh0kvf0jfpwpradm-bootar-1a.drv" [color = blue];
|
||||
"/gnu/store/yl8gsvanaj8wgngmgc4an06g5ybadad2-gash-utils-boot-0.1.0.drv" -> "/gnu/store/jrf5jckbwk949npav1p62vgcg95lr4mx-gash-boot-0.2.0.drv" [color = blue];
|
||||
"/gnu/store/yl8gsvanaj8wgngmgc4an06g5ybadad2-gash-utils-boot-0.1.0.drv" -> "/gnu/store/qs4086i9b9q0b74l4wjqgzbdc3c0f58f-guile-bootstrap-2.0.drv" [color = blue];
|
||||
"/gnu/store/yy8bxckakx5f4rpvqfggrfy21y7bn53g-bzip2-mesboot-1.0.8.drv" [label = "bzip2-mesboot@1.0.8", shape = box, fontname = sans];
|
||||
"/gnu/store/yy8bxckakx5f4rpvqfggrfy21y7bn53g-bzip2-mesboot-1.0.8.drv" -> "/gnu/store/hlm2wxhh0irfjnds4i86imdqi13iwj81-make-mesboot0-3.80.drv" [color = blue];
|
||||
"/gnu/store/yy8bxckakx5f4rpvqfggrfy21y7bn53g-bzip2-mesboot-1.0.8.drv" -> "/gnu/store/0izhx7j1n6lcpcbvy9i9pyjkzjpbxrcj-tcc-boot0-0.9.26-1103-g6e62e0e.drv" [color = blue];
|
||||
"/gnu/store/yy8bxckakx5f4rpvqfggrfy21y7bn53g-bzip2-mesboot-1.0.8.drv" -> "/gnu/store/jrf5jckbwk949npav1p62vgcg95lr4mx-gash-boot-0.2.0.drv" [color = blue];
|
||||
"/gnu/store/yy8bxckakx5f4rpvqfggrfy21y7bn53g-bzip2-mesboot-1.0.8.drv" -> "/gnu/store/yl8gsvanaj8wgngmgc4an06g5ybadad2-gash-utils-boot-0.1.0.drv" [color = blue];
|
||||
"/gnu/store/yy8bxckakx5f4rpvqfggrfy21y7bn53g-bzip2-mesboot-1.0.8.drv" -> "/gnu/store/w77kjhmj4c4sncndnh0kvf0jfpwpradm-bootar-1a.drv" [color = blue];
|
||||
"/gnu/store/yy8bxckakx5f4rpvqfggrfy21y7bn53g-bzip2-mesboot-1.0.8.drv" -> "/gnu/store/qs4086i9b9q0b74l4wjqgzbdc3c0f58f-guile-bootstrap-2.0.drv" [color = blue];
|
||||
"/gnu/store/qyphha8i1pylf10pm76400kq5d07zsvr-gzip-mesboot-1.2.4.drv" [label = "gzip-mesboot@1.2.4", shape = box, fontname = sans];
|
||||
"/gnu/store/qyphha8i1pylf10pm76400kq5d07zsvr-gzip-mesboot-1.2.4.drv" -> "/gnu/store/0izhx7j1n6lcpcbvy9i9pyjkzjpbxrcj-tcc-boot0-0.9.26-1103-g6e62e0e.drv" [color = red];
|
||||
"/gnu/store/qyphha8i1pylf10pm76400kq5d07zsvr-gzip-mesboot-1.2.4.drv" -> "/gnu/store/jrf5jckbwk949npav1p62vgcg95lr4mx-gash-boot-0.2.0.drv" [color = red];
|
||||
"/gnu/store/qyphha8i1pylf10pm76400kq5d07zsvr-gzip-mesboot-1.2.4.drv" -> "/gnu/store/yl8gsvanaj8wgngmgc4an06g5ybadad2-gash-utils-boot-0.1.0.drv" [color = red];
|
||||
"/gnu/store/qyphha8i1pylf10pm76400kq5d07zsvr-gzip-mesboot-1.2.4.drv" -> "/gnu/store/w77kjhmj4c4sncndnh0kvf0jfpwpradm-bootar-1a.drv" [color = red];
|
||||
"/gnu/store/qyphha8i1pylf10pm76400kq5d07zsvr-gzip-mesboot-1.2.4.drv" -> "/gnu/store/qs4086i9b9q0b74l4wjqgzbdc3c0f58f-guile-bootstrap-2.0.drv" [color = red];
|
||||
"/gnu/store/vn42sjmbh0zr9wn9lnbsdrxlh1zihx50-patch-mesboot-2.5.9.drv" [label = "patch-mesboot@2.5.9", shape = box, fontname = sans];
|
||||
"/gnu/store/vn42sjmbh0zr9wn9lnbsdrxlh1zihx50-patch-mesboot-2.5.9.drv" -> "/gnu/store/hlm2wxhh0irfjnds4i86imdqi13iwj81-make-mesboot0-3.80.drv" [color = darkseagreen];
|
||||
"/gnu/store/vn42sjmbh0zr9wn9lnbsdrxlh1zihx50-patch-mesboot-2.5.9.drv" -> "/gnu/store/0izhx7j1n6lcpcbvy9i9pyjkzjpbxrcj-tcc-boot0-0.9.26-1103-g6e62e0e.drv" [color = darkseagreen];
|
||||
"/gnu/store/vn42sjmbh0zr9wn9lnbsdrxlh1zihx50-patch-mesboot-2.5.9.drv" -> "/gnu/store/jrf5jckbwk949npav1p62vgcg95lr4mx-gash-boot-0.2.0.drv" [color = darkseagreen];
|
||||
"/gnu/store/vn42sjmbh0zr9wn9lnbsdrxlh1zihx50-patch-mesboot-2.5.9.drv" -> "/gnu/store/yl8gsvanaj8wgngmgc4an06g5ybadad2-gash-utils-boot-0.1.0.drv" [color = darkseagreen];
|
||||
"/gnu/store/vn42sjmbh0zr9wn9lnbsdrxlh1zihx50-patch-mesboot-2.5.9.drv" -> "/gnu/store/w77kjhmj4c4sncndnh0kvf0jfpwpradm-bootar-1a.drv" [color = darkseagreen];
|
||||
"/gnu/store/vn42sjmbh0zr9wn9lnbsdrxlh1zihx50-patch-mesboot-2.5.9.drv" -> "/gnu/store/qs4086i9b9q0b74l4wjqgzbdc3c0f58f-guile-bootstrap-2.0.drv" [color = darkseagreen];
|
||||
"/gnu/store/16w6l2c80hh98kfykal9hpbm93cscbcg-sed-mesboot0-1.18.drv" [label = "sed-mesboot0@1.18", shape = box, fontname = sans];
|
||||
"/gnu/store/16w6l2c80hh98kfykal9hpbm93cscbcg-sed-mesboot0-1.18.drv" -> "/gnu/store/hlm2wxhh0irfjnds4i86imdqi13iwj81-make-mesboot0-3.80.drv" [color = darkgoldenrod];
|
||||
"/gnu/store/16w6l2c80hh98kfykal9hpbm93cscbcg-sed-mesboot0-1.18.drv" -> "/gnu/store/0izhx7j1n6lcpcbvy9i9pyjkzjpbxrcj-tcc-boot0-0.9.26-1103-g6e62e0e.drv" [color = darkgoldenrod];
|
||||
"/gnu/store/16w6l2c80hh98kfykal9hpbm93cscbcg-sed-mesboot0-1.18.drv" -> "/gnu/store/jrf5jckbwk949npav1p62vgcg95lr4mx-gash-boot-0.2.0.drv" [color = darkgoldenrod];
|
||||
"/gnu/store/16w6l2c80hh98kfykal9hpbm93cscbcg-sed-mesboot0-1.18.drv" -> "/gnu/store/yl8gsvanaj8wgngmgc4an06g5ybadad2-gash-utils-boot-0.1.0.drv" [color = darkgoldenrod];
|
||||
"/gnu/store/16w6l2c80hh98kfykal9hpbm93cscbcg-sed-mesboot0-1.18.drv" -> "/gnu/store/w77kjhmj4c4sncndnh0kvf0jfpwpradm-bootar-1a.drv" [color = darkgoldenrod];
|
||||
"/gnu/store/16w6l2c80hh98kfykal9hpbm93cscbcg-sed-mesboot0-1.18.drv" -> "/gnu/store/qs4086i9b9q0b74l4wjqgzbdc3c0f58f-guile-bootstrap-2.0.drv" [color = darkgoldenrod];
|
||||
"/gnu/store/h1m81zsyi3l4yd9r7pd3ffanb61pszxy-tcc-boot-0.9.27.drv" [label = "tcc-boot@0.9.27", shape = box, fontname = sans];
|
||||
"/gnu/store/h1m81zsyi3l4yd9r7pd3ffanb61pszxy-tcc-boot-0.9.27.drv" -> "/gnu/store/yy8bxckakx5f4rpvqfggrfy21y7bn53g-bzip2-mesboot-1.0.8.drv" [color = blue];
|
||||
"/gnu/store/h1m81zsyi3l4yd9r7pd3ffanb61pszxy-tcc-boot-0.9.27.drv" -> "/gnu/store/hlm2wxhh0irfjnds4i86imdqi13iwj81-make-mesboot0-3.80.drv" [color = blue];
|
||||
"/gnu/store/h1m81zsyi3l4yd9r7pd3ffanb61pszxy-tcc-boot-0.9.27.drv" -> "/gnu/store/0izhx7j1n6lcpcbvy9i9pyjkzjpbxrcj-tcc-boot0-0.9.26-1103-g6e62e0e.drv" [color = blue];
|
||||
"/gnu/store/h1m81zsyi3l4yd9r7pd3ffanb61pszxy-tcc-boot-0.9.27.drv" -> "/gnu/store/jrf5jckbwk949npav1p62vgcg95lr4mx-gash-boot-0.2.0.drv" [color = blue];
|
||||
"/gnu/store/h1m81zsyi3l4yd9r7pd3ffanb61pszxy-tcc-boot-0.9.27.drv" -> "/gnu/store/yl8gsvanaj8wgngmgc4an06g5ybadad2-gash-utils-boot-0.1.0.drv" [color = blue];
|
||||
"/gnu/store/h1m81zsyi3l4yd9r7pd3ffanb61pszxy-tcc-boot-0.9.27.drv" -> "/gnu/store/w77kjhmj4c4sncndnh0kvf0jfpwpradm-bootar-1a.drv" [color = blue];
|
||||
"/gnu/store/h1m81zsyi3l4yd9r7pd3ffanb61pszxy-tcc-boot-0.9.27.drv" -> "/gnu/store/qs4086i9b9q0b74l4wjqgzbdc3c0f58f-guile-bootstrap-2.0.drv" [color = blue];
|
||||
"/gnu/store/q8f5yjxp0kcdn2mwqf83bvhal71cnr71-gcc-mesboot-4.9.4.drv" [label = "gcc-mesboot@4.9.4", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/q8f5yjxp0kcdn2mwqf83bvhal71cnr71-gcc-mesboot-4.9.4.drv" -> "/gnu/store/2lpg626q4x8v7hgqajywpq1rc8y72hzx-binutils-mesboot-2.20.1a.drv" [color = magenta];
|
||||
"/gnu/store/q8f5yjxp0kcdn2mwqf83bvhal71cnr71-gcc-mesboot-4.9.4.drv" -> "/gnu/store/7v6fpp5msmjbhmprikrfcj047016gd54-gcc-mesboot1-wrapper-4.7.4.drv" [color = magenta];
|
||||
"/gnu/store/q8f5yjxp0kcdn2mwqf83bvhal71cnr71-gcc-mesboot-4.9.4.drv" -> "/gnu/store/7pllq0crksfkr7856y1pawcy4scc7l4q-gcc-mesboot1-4.7.4.drv" [color = magenta];
|
||||
"/gnu/store/q8f5yjxp0kcdn2mwqf83bvhal71cnr71-gcc-mesboot-4.9.4.drv" -> "/gnu/store/lp6fycqqd8adndlfylh4mlihm0qakxzw-glibc-mesboot-2.16.0.drv" [color = magenta];
|
||||
"/gnu/store/q8f5yjxp0kcdn2mwqf83bvhal71cnr71-gcc-mesboot-4.9.4.drv" -> "/gnu/store/7wqw4023spvggi15vcxyxvivxa4rmmv8-bootstrap-binaries-0.drv" [color = magenta];
|
||||
"/gnu/store/q8f5yjxp0kcdn2mwqf83bvhal71cnr71-gcc-mesboot-4.9.4.drv" -> "/gnu/store/7wqw4023spvggi15vcxyxvivxa4rmmv8-bootstrap-binaries-0.drv" [color = magenta];
|
||||
"/gnu/store/q8f5yjxp0kcdn2mwqf83bvhal71cnr71-gcc-mesboot-4.9.4.drv" -> "/gnu/store/r50fj43103526ga6pi2f9jkk4gvaav7m-diffutils-mesboot-2.7.drv" [color = magenta];
|
||||
"/gnu/store/q8f5yjxp0kcdn2mwqf83bvhal71cnr71-gcc-mesboot-4.9.4.drv" -> "/gnu/store/r0z9bix88pz0wf6sgcn9185iwcsdracs-linux-libre-headers-bootstrap-0.drv" [color = magenta];
|
||||
"/gnu/store/q8f5yjxp0kcdn2mwqf83bvhal71cnr71-gcc-mesboot-4.9.4.drv" -> "/gnu/store/5ad88jy4a1gpbslzdiksk7zjyh28wzkr-make-mesboot-3.82.drv" [color = magenta];
|
||||
"/gnu/store/2lpg626q4x8v7hgqajywpq1rc8y72hzx-binutils-mesboot-2.20.1a.drv" [label = "binutils-mesboot@2.20.1a", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/2lpg626q4x8v7hgqajywpq1rc8y72hzx-binutils-mesboot-2.20.1a.drv" -> "/gnu/store/x9shp86cz9f4rb5xvhs37zzxg1ngi4dr-binutils-mesboot0-2.20.1a.drv" [color = magenta];
|
||||
"/gnu/store/2lpg626q4x8v7hgqajywpq1rc8y72hzx-binutils-mesboot-2.20.1a.drv" -> "/gnu/store/2633565gzh4jqh7c5zf6i0iy9yxqigcv-glibc-mesboot0-2.2.5.drv" [color = magenta];
|
||||
"/gnu/store/2lpg626q4x8v7hgqajywpq1rc8y72hzx-binutils-mesboot-2.20.1a.drv" -> "/gnu/store/slnyk8gbnvfwy1m1was8myivpss58idd-gcc-mesboot0-2.95.3.drv" [color = magenta];
|
||||
"/gnu/store/2lpg626q4x8v7hgqajywpq1rc8y72hzx-binutils-mesboot-2.20.1a.drv" -> "/gnu/store/7wqw4023spvggi15vcxyxvivxa4rmmv8-bootstrap-binaries-0.drv" [color = magenta];
|
||||
"/gnu/store/2lpg626q4x8v7hgqajywpq1rc8y72hzx-binutils-mesboot-2.20.1a.drv" -> "/gnu/store/7wqw4023spvggi15vcxyxvivxa4rmmv8-bootstrap-binaries-0.drv" [color = magenta];
|
||||
"/gnu/store/2lpg626q4x8v7hgqajywpq1rc8y72hzx-binutils-mesboot-2.20.1a.drv" -> "/gnu/store/r50fj43103526ga6pi2f9jkk4gvaav7m-diffutils-mesboot-2.7.drv" [color = magenta];
|
||||
"/gnu/store/2lpg626q4x8v7hgqajywpq1rc8y72hzx-binutils-mesboot-2.20.1a.drv" -> "/gnu/store/r0z9bix88pz0wf6sgcn9185iwcsdracs-linux-libre-headers-bootstrap-0.drv" [color = magenta];
|
||||
"/gnu/store/2lpg626q4x8v7hgqajywpq1rc8y72hzx-binutils-mesboot-2.20.1a.drv" -> "/gnu/store/57da9mdiqhyn72m8wv00pdvzqi2ng4xb-make-mesboot0-3.80.drv" [color = magenta];
|
||||
"/gnu/store/x9shp86cz9f4rb5xvhs37zzxg1ngi4dr-binutils-mesboot0-2.20.1a.drv" [label = "binutils-mesboot0@2.20.1a", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/x9shp86cz9f4rb5xvhs37zzxg1ngi4dr-binutils-mesboot0-2.20.1a.drv" -> "/gnu/store/fglx0fz62bygkdxxg878j7x9pfl37zhh-tcc-boot-0.9.27.drv" [color = red];
|
||||
"/gnu/store/x9shp86cz9f4rb5xvhs37zzxg1ngi4dr-binutils-mesboot0-2.20.1a.drv" -> "/gnu/store/7wqw4023spvggi15vcxyxvivxa4rmmv8-bootstrap-binaries-0.drv" [color = red];
|
||||
"/gnu/store/x9shp86cz9f4rb5xvhs37zzxg1ngi4dr-binutils-mesboot0-2.20.1a.drv" -> "/gnu/store/7wqw4023spvggi15vcxyxvivxa4rmmv8-bootstrap-binaries-0.drv" [color = red];
|
||||
"/gnu/store/x9shp86cz9f4rb5xvhs37zzxg1ngi4dr-binutils-mesboot0-2.20.1a.drv" -> "/gnu/store/r50fj43103526ga6pi2f9jkk4gvaav7m-diffutils-mesboot-2.7.drv" [color = red];
|
||||
"/gnu/store/x9shp86cz9f4rb5xvhs37zzxg1ngi4dr-binutils-mesboot0-2.20.1a.drv" -> "/gnu/store/57da9mdiqhyn72m8wv00pdvzqi2ng4xb-make-mesboot0-3.80.drv" [color = red];
|
||||
"/gnu/store/fglx0fz62bygkdxxg878j7x9pfl37zhh-tcc-boot-0.9.27.drv" [label = "tcc-boot@0.9.27", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/fglx0fz62bygkdxxg878j7x9pfl37zhh-tcc-boot-0.9.27.drv" -> "/gnu/store/mw6swkryp89aml4jzac5lm8kmcv5k6gy-mes-boot-0.19.drv" [color = dimgrey];
|
||||
"/gnu/store/fglx0fz62bygkdxxg878j7x9pfl37zhh-tcc-boot-0.9.27.drv" -> "/gnu/store/nvhjn6b5hi4mj7wnjxrmj0dmdigq9m2z-tcc-boot0-0.9.26-6.c004e9a.drv" [color = dimgrey];
|
||||
"/gnu/store/fglx0fz62bygkdxxg878j7x9pfl37zhh-tcc-boot-0.9.27.drv" -> "/gnu/store/7wqw4023spvggi15vcxyxvivxa4rmmv8-bootstrap-binaries-0.drv" [color = dimgrey];
|
||||
"/gnu/store/mw6swkryp89aml4jzac5lm8kmcv5k6gy-mes-boot-0.19.drv" [label = "mes-boot@0.19", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/mw6swkryp89aml4jzac5lm8kmcv5k6gy-mes-boot-0.19.drv" -> "/gnu/store/msykyiih9lwrd86x00vs00i8s5ipjks4-bootstrap-mescc-tools-0.5.2.drv" [color = darkgoldenrod];
|
||||
"/gnu/store/mw6swkryp89aml4jzac5lm8kmcv5k6gy-mes-boot-0.19.drv" -> "/gnu/store/7wqw4023spvggi15vcxyxvivxa4rmmv8-bootstrap-binaries-0.drv" [color = darkgoldenrod];
|
||||
"/gnu/store/mw6swkryp89aml4jzac5lm8kmcv5k6gy-mes-boot-0.19.drv" -> "/gnu/store/cfw60j3987wrvb26f2bpbw5l5q6q53fj-bootstrap-mes-0.drv" [color = darkgoldenrod];
|
||||
"/gnu/store/msykyiih9lwrd86x00vs00i8s5ipjks4-bootstrap-mescc-tools-0.5.2.drv" [label = "bootstrap-mescc-tools@0.5.2", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/7wqw4023spvggi15vcxyxvivxa4rmmv8-bootstrap-binaries-0.drv" [label = "bootstrap-binaries@0", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/cfw60j3987wrvb26f2bpbw5l5q6q53fj-bootstrap-mes-0.drv" [label = "bootstrap-mes@0", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/nvhjn6b5hi4mj7wnjxrmj0dmdigq9m2z-tcc-boot0-0.9.26-6.c004e9a.drv" [label = "tcc-boot0@0.9.26-6.c004e9a", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/nvhjn6b5hi4mj7wnjxrmj0dmdigq9m2z-tcc-boot0-0.9.26-6.c004e9a.drv" -> "/gnu/store/mw6swkryp89aml4jzac5lm8kmcv5k6gy-mes-boot-0.19.drv" [color = magenta];
|
||||
"/gnu/store/nvhjn6b5hi4mj7wnjxrmj0dmdigq9m2z-tcc-boot0-0.9.26-6.c004e9a.drv" -> "/gnu/store/msykyiih9lwrd86x00vs00i8s5ipjks4-bootstrap-mescc-tools-0.5.2.drv" [color = magenta];
|
||||
"/gnu/store/nvhjn6b5hi4mj7wnjxrmj0dmdigq9m2z-tcc-boot0-0.9.26-6.c004e9a.drv" -> "/gnu/store/7wqw4023spvggi15vcxyxvivxa4rmmv8-bootstrap-binaries-0.drv" [color = magenta];
|
||||
"/gnu/store/nvhjn6b5hi4mj7wnjxrmj0dmdigq9m2z-tcc-boot0-0.9.26-6.c004e9a.drv" -> "/gnu/store/cfw60j3987wrvb26f2bpbw5l5q6q53fj-bootstrap-mes-0.drv" [color = magenta];
|
||||
"/gnu/store/r50fj43103526ga6pi2f9jkk4gvaav7m-diffutils-mesboot-2.7.drv" [label = "diffutils-mesboot@2.7", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/r50fj43103526ga6pi2f9jkk4gvaav7m-diffutils-mesboot-2.7.drv" -> "/gnu/store/mw6swkryp89aml4jzac5lm8kmcv5k6gy-mes-boot-0.19.drv" [color = peachpuff4];
|
||||
"/gnu/store/r50fj43103526ga6pi2f9jkk4gvaav7m-diffutils-mesboot-2.7.drv" -> "/gnu/store/fglx0fz62bygkdxxg878j7x9pfl37zhh-tcc-boot-0.9.27.drv" [color = peachpuff4];
|
||||
"/gnu/store/r50fj43103526ga6pi2f9jkk4gvaav7m-diffutils-mesboot-2.7.drv" -> "/gnu/store/7wqw4023spvggi15vcxyxvivxa4rmmv8-bootstrap-binaries-0.drv" [color = peachpuff4];
|
||||
"/gnu/store/r50fj43103526ga6pi2f9jkk4gvaav7m-diffutils-mesboot-2.7.drv" -> "/gnu/store/7wqw4023spvggi15vcxyxvivxa4rmmv8-bootstrap-binaries-0.drv" [color = peachpuff4];
|
||||
"/gnu/store/r50fj43103526ga6pi2f9jkk4gvaav7m-diffutils-mesboot-2.7.drv" -> "/gnu/store/57da9mdiqhyn72m8wv00pdvzqi2ng4xb-make-mesboot0-3.80.drv" [color = peachpuff4];
|
||||
"/gnu/store/57da9mdiqhyn72m8wv00pdvzqi2ng4xb-make-mesboot0-3.80.drv" [label = "make-mesboot0@3.80", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/57da9mdiqhyn72m8wv00pdvzqi2ng4xb-make-mesboot0-3.80.drv" -> "/gnu/store/fglx0fz62bygkdxxg878j7x9pfl37zhh-tcc-boot-0.9.27.drv" [color = dimgrey];
|
||||
"/gnu/store/57da9mdiqhyn72m8wv00pdvzqi2ng4xb-make-mesboot0-3.80.drv" -> "/gnu/store/7wqw4023spvggi15vcxyxvivxa4rmmv8-bootstrap-binaries-0.drv" [color = dimgrey];
|
||||
"/gnu/store/57da9mdiqhyn72m8wv00pdvzqi2ng4xb-make-mesboot0-3.80.drv" -> "/gnu/store/7wqw4023spvggi15vcxyxvivxa4rmmv8-bootstrap-binaries-0.drv" [color = dimgrey];
|
||||
"/gnu/store/2633565gzh4jqh7c5zf6i0iy9yxqigcv-glibc-mesboot0-2.2.5.drv" [label = "glibc-mesboot0@2.2.5", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/2633565gzh4jqh7c5zf6i0iy9yxqigcv-glibc-mesboot0-2.2.5.drv" -> "/gnu/store/x9shp86cz9f4rb5xvhs37zzxg1ngi4dr-binutils-mesboot0-2.20.1a.drv" [color = red];
|
||||
"/gnu/store/2633565gzh4jqh7c5zf6i0iy9yxqigcv-glibc-mesboot0-2.2.5.drv" -> "/gnu/store/kcyh6k46ijm9nsq1as26rr0aq7rkx4f7-gcc-core-mesboot-2.95.3.drv" [color = red];
|
||||
"/gnu/store/2633565gzh4jqh7c5zf6i0iy9yxqigcv-glibc-mesboot0-2.2.5.drv" -> "/gnu/store/7wqw4023spvggi15vcxyxvivxa4rmmv8-bootstrap-binaries-0.drv" [color = red];
|
||||
"/gnu/store/2633565gzh4jqh7c5zf6i0iy9yxqigcv-glibc-mesboot0-2.2.5.drv" -> "/gnu/store/7wqw4023spvggi15vcxyxvivxa4rmmv8-bootstrap-binaries-0.drv" [color = red];
|
||||
"/gnu/store/2633565gzh4jqh7c5zf6i0iy9yxqigcv-glibc-mesboot0-2.2.5.drv" -> "/gnu/store/r50fj43103526ga6pi2f9jkk4gvaav7m-diffutils-mesboot-2.7.drv" [color = red];
|
||||
"/gnu/store/2633565gzh4jqh7c5zf6i0iy9yxqigcv-glibc-mesboot0-2.2.5.drv" -> "/gnu/store/hnxdqmhjdvh1ra9ar4lxl25xf6a7bhzz-mesboot-headers-0.19.drv" [color = red];
|
||||
"/gnu/store/2633565gzh4jqh7c5zf6i0iy9yxqigcv-glibc-mesboot0-2.2.5.drv" -> "/gnu/store/57da9mdiqhyn72m8wv00pdvzqi2ng4xb-make-mesboot0-3.80.drv" [color = red];
|
||||
"/gnu/store/kcyh6k46ijm9nsq1as26rr0aq7rkx4f7-gcc-core-mesboot-2.95.3.drv" [label = "gcc-core-mesboot@2.95.3", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/kcyh6k46ijm9nsq1as26rr0aq7rkx4f7-gcc-core-mesboot-2.95.3.drv" -> "/gnu/store/x9shp86cz9f4rb5xvhs37zzxg1ngi4dr-binutils-mesboot0-2.20.1a.drv" [color = dimgrey];
|
||||
"/gnu/store/kcyh6k46ijm9nsq1as26rr0aq7rkx4f7-gcc-core-mesboot-2.95.3.drv" -> "/gnu/store/fglx0fz62bygkdxxg878j7x9pfl37zhh-tcc-boot-0.9.27.drv" [color = dimgrey];
|
||||
"/gnu/store/kcyh6k46ijm9nsq1as26rr0aq7rkx4f7-gcc-core-mesboot-2.95.3.drv" -> "/gnu/store/7wqw4023spvggi15vcxyxvivxa4rmmv8-bootstrap-binaries-0.drv" [color = dimgrey];
|
||||
"/gnu/store/kcyh6k46ijm9nsq1as26rr0aq7rkx4f7-gcc-core-mesboot-2.95.3.drv" -> "/gnu/store/7wqw4023spvggi15vcxyxvivxa4rmmv8-bootstrap-binaries-0.drv" [color = dimgrey];
|
||||
"/gnu/store/kcyh6k46ijm9nsq1as26rr0aq7rkx4f7-gcc-core-mesboot-2.95.3.drv" -> "/gnu/store/r50fj43103526ga6pi2f9jkk4gvaav7m-diffutils-mesboot-2.7.drv" [color = dimgrey];
|
||||
"/gnu/store/kcyh6k46ijm9nsq1as26rr0aq7rkx4f7-gcc-core-mesboot-2.95.3.drv" -> "/gnu/store/57da9mdiqhyn72m8wv00pdvzqi2ng4xb-make-mesboot0-3.80.drv" [color = dimgrey];
|
||||
"/gnu/store/hnxdqmhjdvh1ra9ar4lxl25xf6a7bhzz-mesboot-headers-0.19.drv" [label = "mesboot-headers@0.19", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/hnxdqmhjdvh1ra9ar4lxl25xf6a7bhzz-mesboot-headers-0.19.drv" -> "/gnu/store/7wqw4023spvggi15vcxyxvivxa4rmmv8-bootstrap-binaries-0.drv" [color = blue];
|
||||
"/gnu/store/hnxdqmhjdvh1ra9ar4lxl25xf6a7bhzz-mesboot-headers-0.19.drv" -> "/gnu/store/r0z9bix88pz0wf6sgcn9185iwcsdracs-linux-libre-headers-bootstrap-0.drv" [color = blue];
|
||||
"/gnu/store/r0z9bix88pz0wf6sgcn9185iwcsdracs-linux-libre-headers-bootstrap-0.drv" [label = "linux-libre-headers-bootstrap@0", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/slnyk8gbnvfwy1m1was8myivpss58idd-gcc-mesboot0-2.95.3.drv" [label = "gcc-mesboot0@2.95.3", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/slnyk8gbnvfwy1m1was8myivpss58idd-gcc-mesboot0-2.95.3.drv" -> "/gnu/store/x9shp86cz9f4rb5xvhs37zzxg1ngi4dr-binutils-mesboot0-2.20.1a.drv" [color = darkseagreen];
|
||||
"/gnu/store/slnyk8gbnvfwy1m1was8myivpss58idd-gcc-mesboot0-2.95.3.drv" -> "/gnu/store/kcyh6k46ijm9nsq1as26rr0aq7rkx4f7-gcc-core-mesboot-2.95.3.drv" [color = darkseagreen];
|
||||
"/gnu/store/slnyk8gbnvfwy1m1was8myivpss58idd-gcc-mesboot0-2.95.3.drv" -> "/gnu/store/2633565gzh4jqh7c5zf6i0iy9yxqigcv-glibc-mesboot0-2.2.5.drv" [color = darkseagreen];
|
||||
"/gnu/store/slnyk8gbnvfwy1m1was8myivpss58idd-gcc-mesboot0-2.95.3.drv" -> "/gnu/store/7wqw4023spvggi15vcxyxvivxa4rmmv8-bootstrap-binaries-0.drv" [color = darkseagreen];
|
||||
"/gnu/store/slnyk8gbnvfwy1m1was8myivpss58idd-gcc-mesboot0-2.95.3.drv" -> "/gnu/store/7wqw4023spvggi15vcxyxvivxa4rmmv8-bootstrap-binaries-0.drv" [color = darkseagreen];
|
||||
"/gnu/store/slnyk8gbnvfwy1m1was8myivpss58idd-gcc-mesboot0-2.95.3.drv" -> "/gnu/store/r50fj43103526ga6pi2f9jkk4gvaav7m-diffutils-mesboot-2.7.drv" [color = darkseagreen];
|
||||
"/gnu/store/slnyk8gbnvfwy1m1was8myivpss58idd-gcc-mesboot0-2.95.3.drv" -> "/gnu/store/r0z9bix88pz0wf6sgcn9185iwcsdracs-linux-libre-headers-bootstrap-0.drv" [color = darkseagreen];
|
||||
"/gnu/store/slnyk8gbnvfwy1m1was8myivpss58idd-gcc-mesboot0-2.95.3.drv" -> "/gnu/store/57da9mdiqhyn72m8wv00pdvzqi2ng4xb-make-mesboot0-3.80.drv" [color = darkseagreen];
|
||||
"/gnu/store/7v6fpp5msmjbhmprikrfcj047016gd54-gcc-mesboot1-wrapper-4.7.4.drv" [label = "gcc-mesboot1-wrapper@4.7.4", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/7v6fpp5msmjbhmprikrfcj047016gd54-gcc-mesboot1-wrapper-4.7.4.drv" -> "/gnu/store/7wqw4023spvggi15vcxyxvivxa4rmmv8-bootstrap-binaries-0.drv" [color = red];
|
||||
"/gnu/store/7v6fpp5msmjbhmprikrfcj047016gd54-gcc-mesboot1-wrapper-4.7.4.drv" -> "/gnu/store/lp6fycqqd8adndlfylh4mlihm0qakxzw-glibc-mesboot-2.16.0.drv" [color = red];
|
||||
"/gnu/store/7v6fpp5msmjbhmprikrfcj047016gd54-gcc-mesboot1-wrapper-4.7.4.drv" -> "/gnu/store/7pllq0crksfkr7856y1pawcy4scc7l4q-gcc-mesboot1-4.7.4.drv" [color = red];
|
||||
"/gnu/store/lp6fycqqd8adndlfylh4mlihm0qakxzw-glibc-mesboot-2.16.0.drv" [label = "glibc-mesboot@2.16.0", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/lp6fycqqd8adndlfylh4mlihm0qakxzw-glibc-mesboot-2.16.0.drv" -> "/gnu/store/2lpg626q4x8v7hgqajywpq1rc8y72hzx-binutils-mesboot-2.20.1a.drv" [color = magenta];
|
||||
"/gnu/store/lp6fycqqd8adndlfylh4mlihm0qakxzw-glibc-mesboot-2.16.0.drv" -> "/gnu/store/2633565gzh4jqh7c5zf6i0iy9yxqigcv-glibc-mesboot0-2.2.5.drv" [color = magenta];
|
||||
"/gnu/store/lp6fycqqd8adndlfylh4mlihm0qakxzw-glibc-mesboot-2.16.0.drv" -> "/gnu/store/p9sl13frcs2wdcddkh20hc51l7lpavza-glibc-headers-mesboot-2.16.0.drv" [color = magenta];
|
||||
"/gnu/store/lp6fycqqd8adndlfylh4mlihm0qakxzw-glibc-mesboot-2.16.0.drv" -> "/gnu/store/7pllq0crksfkr7856y1pawcy4scc7l4q-gcc-mesboot1-4.7.4.drv" [color = magenta];
|
||||
"/gnu/store/lp6fycqqd8adndlfylh4mlihm0qakxzw-glibc-mesboot-2.16.0.drv" -> "/gnu/store/7wqw4023spvggi15vcxyxvivxa4rmmv8-bootstrap-binaries-0.drv" [color = magenta];
|
||||
"/gnu/store/lp6fycqqd8adndlfylh4mlihm0qakxzw-glibc-mesboot-2.16.0.drv" -> "/gnu/store/7wqw4023spvggi15vcxyxvivxa4rmmv8-bootstrap-binaries-0.drv" [color = magenta];
|
||||
"/gnu/store/lp6fycqqd8adndlfylh4mlihm0qakxzw-glibc-mesboot-2.16.0.drv" -> "/gnu/store/r50fj43103526ga6pi2f9jkk4gvaav7m-diffutils-mesboot-2.7.drv" [color = magenta];
|
||||
"/gnu/store/lp6fycqqd8adndlfylh4mlihm0qakxzw-glibc-mesboot-2.16.0.drv" -> "/gnu/store/r0z9bix88pz0wf6sgcn9185iwcsdracs-linux-libre-headers-bootstrap-0.drv" [color = magenta];
|
||||
"/gnu/store/lp6fycqqd8adndlfylh4mlihm0qakxzw-glibc-mesboot-2.16.0.drv" -> "/gnu/store/5ad88jy4a1gpbslzdiksk7zjyh28wzkr-make-mesboot-3.82.drv" [color = magenta];
|
||||
"/gnu/store/p9sl13frcs2wdcddkh20hc51l7lpavza-glibc-headers-mesboot-2.16.0.drv" [label = "glibc-headers-mesboot@2.16.0", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/p9sl13frcs2wdcddkh20hc51l7lpavza-glibc-headers-mesboot-2.16.0.drv" -> "/gnu/store/2lpg626q4x8v7hgqajywpq1rc8y72hzx-binutils-mesboot-2.20.1a.drv" [color = darkgoldenrod];
|
||||
"/gnu/store/p9sl13frcs2wdcddkh20hc51l7lpavza-glibc-headers-mesboot-2.16.0.drv" -> "/gnu/store/2633565gzh4jqh7c5zf6i0iy9yxqigcv-glibc-mesboot0-2.2.5.drv" [color = darkgoldenrod];
|
||||
"/gnu/store/p9sl13frcs2wdcddkh20hc51l7lpavza-glibc-headers-mesboot-2.16.0.drv" -> "/gnu/store/7pllq0crksfkr7856y1pawcy4scc7l4q-gcc-mesboot1-4.7.4.drv" [color = darkgoldenrod];
|
||||
"/gnu/store/p9sl13frcs2wdcddkh20hc51l7lpavza-glibc-headers-mesboot-2.16.0.drv" -> "/gnu/store/hnxdqmhjdvh1ra9ar4lxl25xf6a7bhzz-mesboot-headers-0.19.drv" [color = darkgoldenrod];
|
||||
"/gnu/store/p9sl13frcs2wdcddkh20hc51l7lpavza-glibc-headers-mesboot-2.16.0.drv" -> "/gnu/store/7wqw4023spvggi15vcxyxvivxa4rmmv8-bootstrap-binaries-0.drv" [color = darkgoldenrod];
|
||||
"/gnu/store/p9sl13frcs2wdcddkh20hc51l7lpavza-glibc-headers-mesboot-2.16.0.drv" -> "/gnu/store/7wqw4023spvggi15vcxyxvivxa4rmmv8-bootstrap-binaries-0.drv" [color = darkgoldenrod];
|
||||
"/gnu/store/p9sl13frcs2wdcddkh20hc51l7lpavza-glibc-headers-mesboot-2.16.0.drv" -> "/gnu/store/r50fj43103526ga6pi2f9jkk4gvaav7m-diffutils-mesboot-2.7.drv" [color = darkgoldenrod];
|
||||
"/gnu/store/p9sl13frcs2wdcddkh20hc51l7lpavza-glibc-headers-mesboot-2.16.0.drv" -> "/gnu/store/r0z9bix88pz0wf6sgcn9185iwcsdracs-linux-libre-headers-bootstrap-0.drv" [color = darkgoldenrod];
|
||||
"/gnu/store/p9sl13frcs2wdcddkh20hc51l7lpavza-glibc-headers-mesboot-2.16.0.drv" -> "/gnu/store/5ad88jy4a1gpbslzdiksk7zjyh28wzkr-make-mesboot-3.82.drv" [color = darkgoldenrod];
|
||||
"/gnu/store/7pllq0crksfkr7856y1pawcy4scc7l4q-gcc-mesboot1-4.7.4.drv" [label = "gcc-mesboot1@4.7.4", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/7pllq0crksfkr7856y1pawcy4scc7l4q-gcc-mesboot1-4.7.4.drv" -> "/gnu/store/2lpg626q4x8v7hgqajywpq1rc8y72hzx-binutils-mesboot-2.20.1a.drv" [color = cyan3];
|
||||
"/gnu/store/7pllq0crksfkr7856y1pawcy4scc7l4q-gcc-mesboot1-4.7.4.drv" -> "/gnu/store/slnyk8gbnvfwy1m1was8myivpss58idd-gcc-mesboot0-2.95.3.drv" [color = cyan3];
|
||||
"/gnu/store/7pllq0crksfkr7856y1pawcy4scc7l4q-gcc-mesboot1-4.7.4.drv" -> "/gnu/store/2633565gzh4jqh7c5zf6i0iy9yxqigcv-glibc-mesboot0-2.2.5.drv" [color = cyan3];
|
||||
"/gnu/store/7pllq0crksfkr7856y1pawcy4scc7l4q-gcc-mesboot1-4.7.4.drv" -> "/gnu/store/7wqw4023spvggi15vcxyxvivxa4rmmv8-bootstrap-binaries-0.drv" [color = cyan3];
|
||||
"/gnu/store/7pllq0crksfkr7856y1pawcy4scc7l4q-gcc-mesboot1-4.7.4.drv" -> "/gnu/store/7wqw4023spvggi15vcxyxvivxa4rmmv8-bootstrap-binaries-0.drv" [color = cyan3];
|
||||
"/gnu/store/7pllq0crksfkr7856y1pawcy4scc7l4q-gcc-mesboot1-4.7.4.drv" -> "/gnu/store/r50fj43103526ga6pi2f9jkk4gvaav7m-diffutils-mesboot-2.7.drv" [color = cyan3];
|
||||
"/gnu/store/7pllq0crksfkr7856y1pawcy4scc7l4q-gcc-mesboot1-4.7.4.drv" -> "/gnu/store/r0z9bix88pz0wf6sgcn9185iwcsdracs-linux-libre-headers-bootstrap-0.drv" [color = cyan3];
|
||||
"/gnu/store/7pllq0crksfkr7856y1pawcy4scc7l4q-gcc-mesboot1-4.7.4.drv" -> "/gnu/store/5ad88jy4a1gpbslzdiksk7zjyh28wzkr-make-mesboot-3.82.drv" [color = cyan3];
|
||||
"/gnu/store/5ad88jy4a1gpbslzdiksk7zjyh28wzkr-make-mesboot-3.82.drv" [label = "make-mesboot@3.82", shape = box, fontname = Helvetica];
|
||||
"/gnu/store/5ad88jy4a1gpbslzdiksk7zjyh28wzkr-make-mesboot-3.82.drv" -> "/gnu/store/x9shp86cz9f4rb5xvhs37zzxg1ngi4dr-binutils-mesboot0-2.20.1a.drv" [color = dimgrey];
|
||||
"/gnu/store/5ad88jy4a1gpbslzdiksk7zjyh28wzkr-make-mesboot-3.82.drv" -> "/gnu/store/2633565gzh4jqh7c5zf6i0iy9yxqigcv-glibc-mesboot0-2.2.5.drv" [color = dimgrey];
|
||||
"/gnu/store/5ad88jy4a1gpbslzdiksk7zjyh28wzkr-make-mesboot-3.82.drv" -> "/gnu/store/slnyk8gbnvfwy1m1was8myivpss58idd-gcc-mesboot0-2.95.3.drv" [color = dimgrey];
|
||||
"/gnu/store/5ad88jy4a1gpbslzdiksk7zjyh28wzkr-make-mesboot-3.82.drv" -> "/gnu/store/57da9mdiqhyn72m8wv00pdvzqi2ng4xb-make-mesboot0-3.80.drv" [color = dimgrey];
|
||||
"/gnu/store/5ad88jy4a1gpbslzdiksk7zjyh28wzkr-make-mesboot-3.82.drv" -> "/gnu/store/7wqw4023spvggi15vcxyxvivxa4rmmv8-bootstrap-binaries-0.drv" [color = dimgrey];
|
||||
"/gnu/store/5ad88jy4a1gpbslzdiksk7zjyh28wzkr-make-mesboot-3.82.drv" -> "/gnu/store/7wqw4023spvggi15vcxyxvivxa4rmmv8-bootstrap-binaries-0.drv" [color = dimgrey];
|
||||
"/gnu/store/5ad88jy4a1gpbslzdiksk7zjyh28wzkr-make-mesboot-3.82.drv" -> "/gnu/store/r0z9bix88pz0wf6sgcn9185iwcsdracs-linux-libre-headers-bootstrap-0.drv" [color = dimgrey];
|
||||
|
||||
}
|
||||
|
|
234
doc/mes.texi
234
doc/mes.texi
|
@ -13,7 +13,7 @@
|
|||
@set OPENPGP-SIGNING-KEY-ID 1A858392E331EAFDB8C27FFBF3C1A0D9C1D65273
|
||||
|
||||
@copying
|
||||
Copyright @copyright{} 2018,2019,2020,2021,2022 Jan (janneke) Nieuwenhuizen@*
|
||||
Copyright @copyright{} 2018,2019 Jan (janneke) Nieuwenhuizen@*
|
||||
|
||||
Permission is granted to copy, distribute and/or modify this document
|
||||
under the terms of the GNU Free Documentation License, Version 1.3 or
|
||||
|
@ -48,7 +48,7 @@ Edition @value{EDITION} @*
|
|||
@contents
|
||||
|
||||
@c *********************************************************************
|
||||
@node Top
|
||||
@node Top, Introduction, (dir), (dir)
|
||||
@top GNU Mes
|
||||
|
||||
This document describes GNU Mes version @value{VERSION}, a bootstrappable
|
||||
|
@ -72,19 +72,12 @@ Software Freedom
|
|||
|
||||
* Reproducible Builds:: Reproducibility and free software.
|
||||
* Bootstrappable Builds:: The freedom to build a software without binary seed.
|
||||
* Reduced Binary Seed Bootstrap:: Guix reduces bootstrap binaries with 50%.
|
||||
* Scheme-only Bootsrap:: Guix reduced bootstrap binaries to 25%.
|
||||
* Full Source Bootstrap:: A bootstrap worthy of GNU.
|
||||
* Full Source Bootstrap:: Software dependencies worthy of GNU.
|
||||
* LISP as Maxwell's Equations of Software:: Auditable elegance.
|
||||
|
||||
Full Source Bootstrap
|
||||
|
||||
* Stage0:: The Magical Self-Hosting Hex Assembler.
|
||||
* M2-Planet:: A Sub-C bootstrap compiler.
|
||||
|
||||
Installation
|
||||
|
||||
* Requirements:: Software needed to build and run Mes.
|
||||
* Regular Requirements:: Software needed to build and run Mes.
|
||||
* Bootstrap Requirements:: Software needed to bootstrap Mes.
|
||||
* Running the Test Suites:: Testing Mes.
|
||||
|
||||
|
@ -116,7 +109,7 @@ Contributing
|
|||
@end menu
|
||||
|
||||
@c *********************************************************************
|
||||
@node Introduction
|
||||
@node Introduction, Installation, Top, Top
|
||||
@chapter Introduction
|
||||
|
||||
@quotation
|
||||
|
@ -194,17 +187,15 @@ Freedom 1.
|
|||
@menu
|
||||
* Reproducible Builds:: Reproducibility and free software.
|
||||
* Bootstrappable Builds:: The freedom to build a software without binary seed.
|
||||
* Reduced Binary Seed Bootstrap:: Guix reduces bootstrap binaries with 50%.
|
||||
* Scheme-only Bootsrap:: Guix reduced bootstrap binaries to 25%.
|
||||
* Full Source Bootstrap:: A bootstrap worthy of GNU.
|
||||
* Full Source Bootstrap:: Software dependencies worthy of GNU.
|
||||
* LISP as Maxwell's Equations of Software:: Auditable elegance.
|
||||
@end menu
|
||||
|
||||
@node Reproducible Builds
|
||||
@node Reproducible Builds, Bootstrappable Builds, Introduction, Introduction
|
||||
@section Reproducible Builds
|
||||
|
||||
The current Reproducible Builds effort incubated in the Debian
|
||||
project@footnote{@url{https://debian.org, The Debian Project}} and was
|
||||
project@footnote{@url{http://debian.org, The Debian Project}} and was
|
||||
organized by Lunar. Quoting the Reproducible Builds
|
||||
website@footnote{@url{https://reproducible-builds.org/,Reproducible
|
||||
Builds}}
|
||||
|
@ -249,7 +240,7 @@ packages could be rebuild bit-identical from source.
|
|||
@author Martin Uecker
|
||||
@end quotation
|
||||
|
||||
@node Bootstrappable Builds
|
||||
@node Bootstrappable Builds, Full Source Bootstrap, Reproducible Builds, Introduction
|
||||
@section Bootstrappable Builds
|
||||
|
||||
Software distributions that take reproducible builds seriously are
|
||||
|
@ -267,11 +258,10 @@ binary seed that all software distributions inject are the so called
|
|||
@emph{bootstrap binary seed}. Bootstrap binaries are the initial binary
|
||||
seeds that are used to start building the distribution.
|
||||
|
||||
The GNU Guix operating system (@pxref{Top,,, guix, The GNU Guix
|
||||
Manual}), version 1.0 had a relatively small closure of bootstrap binary
|
||||
seed: GNU binutils, GNU gcc, GNU Libc, GNU Guile, and ``Static
|
||||
binaries'' (think: bash, bzip2, coreutils, gawk, grep, gzip, patch, sed,
|
||||
tar, xz).
|
||||
The GNU Guix operating system, version 1.0 had a relatively small
|
||||
closure of bootstrap binary seed: GNU binutils, GNU gcc, GNU Libc, GNU
|
||||
Guile, and ``Static binaries'' (think: bash, bzip2, coreutils, gawk,
|
||||
grep, gzip, patch, sed, tar, xz).
|
||||
|
||||
@example
|
||||
$ du -schx $(readlink $(guix build bootstrap-tarballs)/*)
|
||||
|
@ -298,9 +288,6 @@ $ du -schx *
|
|||
252M total
|
||||
@end example
|
||||
|
||||
@node Reduced Binary Seed Bootstrap
|
||||
@section Reduced Binary Seed Bootstrap
|
||||
|
||||
During the Guix 1.1 development series we managed to create the first
|
||||
reduction by 50% of the Guix @emph{bootstrap binary seed}@footnote{See
|
||||
@url{https://guix.gnu.org/blog/2019/guix-reduces-bootstrap-seed-by-50/}}.
|
||||
|
@ -308,37 +295,16 @@ This was a very important step because the ~250MB @emph{seed} of binary
|
|||
code was practically non-auditable, which makes it hard to establish
|
||||
what source code produced them.
|
||||
|
||||
@node Scheme-only Bootsrap
|
||||
@section Scheme-only Bootstrap
|
||||
@node Full Source Bootstrap, , Bootstrappable Builds, Introduction
|
||||
@section Full Source Bootstrap
|
||||
|
||||
The next step that Guix has taken is to replace the shell and all its
|
||||
utilities with implementations in Guile Scheme, the @emph{Scheme-only
|
||||
bootstrap}. This second halving of the boostrap binaries reduced their
|
||||
size to 25% @footnote{See
|
||||
@url{https://guix.gnu.org/en/blog/2020/guix-further-reduces-bootstrap-seed-to-25/}}.
|
||||
Gash (@pxref{Gash,,, gash, The Gash manual}) is a POSIX-compatible shell
|
||||
that replaces Bash, and it comes with Gash Utils which has minimalist
|
||||
replacements for Awk, the GNU Core Utilities, Grep, Gzip, Sed, and Tar.
|
||||
The rest of the bootstrap binary seeds that were removed are now built
|
||||
from source.
|
||||
There is an obvious solution: we cannot allow any binary seeds in our
|
||||
software stack. Not even in the bootstrap binary seed. Maybe that is a
|
||||
bit too strong: we want to have the absolute minimum of binary seeds and
|
||||
all binary seeds need to be inspectable and must be reviewed. How big
|
||||
would the absolute minimal set be?
|
||||
|
||||
@node Full Source Bootstrap
|
||||
@section Full Source Bootstrap
|
||||
|
||||
Reduction of binary seeds is great, but there is an obvious target: we
|
||||
cannot allow any binary seeds in our software stack. Not even in the
|
||||
bootstrap binary seed. Maybe that is a bit too strong: we want to have
|
||||
the absolute minimum of binary seeds and all binary seeds need to be
|
||||
inspectable and must be reviewed. How big would the absolute minimal
|
||||
set be?
|
||||
|
||||
@menu
|
||||
* Stage0:: The Magical Self-Hosting Hex Assembler.
|
||||
* M2-Planet:: A Sub-C bootstrap compiler.
|
||||
@end menu
|
||||
|
||||
@node Stage0
|
||||
@subsection Stage0
|
||||
@subsection The Magical Self-Hosting Hex Assembler
|
||||
|
||||
June 2016 I learnt about
|
||||
@url{https://github.com/oriansj/stage0/,Stage0}. Jeremiah Orians
|
||||
|
@ -365,7 +331,7 @@ Most computers work pretty well so apparently there is not a pressing
|
|||
need to inspect and study all of these codes. At the same time it is
|
||||
tricky to fully trust@footnote{ Ken Thompson's 1984 Turing award
|
||||
acceptance speech
|
||||
@url{https://www.ece.cmu.edu/~ganger/712.fall02/papers/p761-thompson.pdf,
|
||||
@url{http://www.ece.cmu.edu/~ganger/712.fall02/papers/p761-thompson.pdf,
|
||||
Reflections on Trusting Tust}.} a computer that was bootstrapped in this
|
||||
way.
|
||||
|
||||
|
@ -443,25 +409,13 @@ nothing to all of the programs that our computer runs. Something that
|
|||
seemed to be an impossible dream is suddenly starting to look like
|
||||
``just a couple years of work''.
|
||||
|
||||
@node M2-Planet
|
||||
@subsection M2-Planet
|
||||
|
||||
@url{https://github.com/oriansj/m2-planet/,M2-Planet} @footnote{The
|
||||
PLAtform NEutral Transpiler}, when combined with
|
||||
@url{https://savannah.gnu.org/projects/mescc-tools/, mescc-tools};
|
||||
allows one to compile a subset of the C language into working binaries
|
||||
with introspective steps inbetween. In 2021 M2-Planet with release
|
||||
1.8.0 reached a level of maturity that allowed to build MesCC-Tools and
|
||||
Mes. This allows for another reduction the Guix bootstrap binaries: mes
|
||||
and mescc-tools can be removed.
|
||||
|
||||
@node LISP as Maxwell's Equations of Software
|
||||
@section LISP as Maxwell's Equations of Software
|
||||
|
||||
As fate would have it, I stumbled upon this
|
||||
@url{https://queue.acm.org/detail.cfm?id=1039523, interview with Alan
|
||||
Kay}, where he shares a revelation he had when reading John McCarthy's
|
||||
@url{https://www.softwarepreservation.org/projects/LISP/book/LISP%201.5%20Programmers%20Manual.pdf,
|
||||
@url{http://www.softwarepreservation.org/projects/LISP/book/LISP%201.5%20Programmers%20Manual.pdf,
|
||||
LISP-1.5} manual:
|
||||
|
||||
@quotation
|
||||
|
@ -526,7 +480,7 @@ It is our sincerest hope to bring back this level of quality and
|
|||
elegance..
|
||||
|
||||
@c *********************************************************************
|
||||
@node Installation
|
||||
@node Installation, Bootstrapping, Introduction, Top
|
||||
@chapter Installation
|
||||
|
||||
@cindex installing Mes
|
||||
|
@ -537,13 +491,13 @@ to use it.
|
|||
|
||||
|
||||
@menu
|
||||
* Requirements:: Software needed to build and run Mes.
|
||||
* Regular Requirements:: Software needed to build and run Mes.
|
||||
* Bootstrap Requirements:: Software needed to bootstrap Mes.
|
||||
* Running the Test Suites:: Testing Mes.
|
||||
@end menu
|
||||
|
||||
@node Requirements
|
||||
@section Requirements
|
||||
@node Regular Requirements, Bootstrap Requirements, Installation, Installation
|
||||
@section Regular Requirements
|
||||
|
||||
This section lists requirements when building Mes from source. The
|
||||
build procedure for Mes is the same as for other GNU software, and is
|
||||
|
@ -553,19 +507,12 @@ in the Mes source tree for additional details.
|
|||
GNU Mes depends on the following packages:
|
||||
|
||||
@itemize
|
||||
@item @url{https://gnu.org/software/guile/, GNU Guile}, version 2.0.13 or
|
||||
later, including 2.2.x and 3.0.x,
|
||||
@item @url{https://www.gnu.org/software/make/, GNU Make}.
|
||||
@item @url{https://savannah.gnu.org/projects/nyacc/, NYACC}, version 1.00.2,
|
||||
@item @url{https://gcc.gnu.org, GCC's gcc}, version 2.95.3 or later, including 10.2.0,
|
||||
@item @url{https://savannah.gnu.org/projects/mescc-tools/, mescc-tools}, version 1.4.0,
|
||||
@end itemize
|
||||
|
||||
The following dependencies are optional:
|
||||
|
||||
@itemize
|
||||
Support for building the bootstrap @file{bin/mes-m2} depends on
|
||||
@item @url{https://github.com/oriansj/m2-planet/, M2-Planet}, version 1.9.0.
|
||||
@item @url{http://gnu.org/software/guile/, GNU Guile}, version 2.0.13 or
|
||||
later, including 2.2.x;
|
||||
@item @url{http://www.gnu.org/software/make/, GNU Make}.
|
||||
@item @url{https://savannah.gnu.org/projects/nyacc/, NYACC}, 0.93.0 or later, including 0.99.0.
|
||||
@item @url{http://gcc.gnu.org, GCC's gcc}, version 2.95.3 or later.
|
||||
@item @url{https://savannah.gnu.org/projects/mescc-tools/, mescc-tools}, version 0.6.1 or later,
|
||||
@end itemize
|
||||
|
||||
@cindex Guile, compatibility
|
||||
|
@ -573,7 +520,7 @@ Mes is compatible with GNU Guile, so it is possible to share the same
|
|||
Scheme code between both. Currently Mes only supports the minimal
|
||||
subset of R5RS and Guile extensions to run MesCC.
|
||||
|
||||
@node Bootstrap Requirements
|
||||
@node Bootstrap Requirements, Running the Test Suites, Regular Requirements, Installation
|
||||
@section Bootstrap Requirements
|
||||
|
||||
This section lists requirements when building Mes as a bootstrap
|
||||
|
@ -594,12 +541,11 @@ Bootstrapping Mes depends on the following packages:
|
|||
|
||||
@itemize
|
||||
@item a POSIX-compatible shell
|
||||
@item @url{https://savannah.gnu.org/projects/mescc-tools/, mescc-tools}, version 1.4.0,
|
||||
@item @url{https://github.com/oriansj/m2-planet/, M2-Planet}, version 1.9.0.
|
||||
@item @url{https://savannah.gnu.org/projects/nyacc/, NYACC}, version 1.00.2,
|
||||
@item @url{https://github.com/oriansj/mescc-tools/, mescc-tools}, version 0.6.1 or later.
|
||||
@item @url{https://savannah.gnu.org/projects/nyacc/, NYACC}, 0.93.0 or later, including 0.99.0.
|
||||
@end itemize
|
||||
|
||||
@node Running the Test Suites
|
||||
@node Running the Test Suites, , Bootstrap Requirements, Installation
|
||||
@section Running the Test Suites
|
||||
|
||||
@cindex test suites
|
||||
|
@ -642,7 +588,7 @@ CC=gcc CC32=i686-unknown-linux-gnu-gcc MES=guile \
|
|||
build-aux/test.sh scaffold/tests/00-exit-0
|
||||
@end example
|
||||
|
||||
@node Bootstrapping
|
||||
@node Bootstrapping, Contributing, Installation, Top
|
||||
@chapter Bootstrapping
|
||||
|
||||
@quotation
|
||||
|
@ -687,14 +633,14 @@ responsibility.
|
|||
* Invoking mesar::
|
||||
@end menu
|
||||
|
||||
@node The Mes Bootstrap Process
|
||||
@node The Mes Bootstrap Process, Invoking mes, Bootstrapping, Bootstrapping
|
||||
@section The Mes Bootstrap Process
|
||||
|
||||
The Reduced Binary Seed bootstrap currently adopted by Guix@footnote{See
|
||||
@file{gnu/packages/commencement.scm} in the @var{master} branch in Guix
|
||||
git
|
||||
@url{https://git.savannah.gnu.org/cgit/guix.git/tree/gnu/packages/commencement.scm}}.
|
||||
In its intiial form it is only available for x86-linux and armhf-linux.
|
||||
@url{http://git.savannah.gnu.org/cgit/guix.git/tree/gnu/packages/commencement.scm}}.
|
||||
In its intiial form it is only available for x86-linux.
|
||||
|
||||
Currently, it goes like this:
|
||||
|
||||
|
@ -733,23 +679,19 @@ Currently, it goes like this:
|
|||
^
|
||||
|
|
||||
*
|
||||
gash-boot, gash-utils-boot
|
||||
^
|
||||
|
|
||||
*
|
||||
bootstrap-mescc-tools, bootstrap-mes (~12 MiB)
|
||||
bootstrap-guile (~48 MiB)
|
||||
bootstrap-mescc-tools, bootstrap-mes (~10MB)
|
||||
bootstrap-bash, bootstrap-coreutils&co, bootstrap-guile (~120MB)
|
||||
@end verbatim
|
||||
|
||||
@c This graph is generated from wip-bootstrap, doing:
|
||||
|
||||
@c guix graph --type=bag -e '(@@ (gnu packages commencement) gcc-core-mesboot0)' > doc/images/gcc-mesboot-graph.dot
|
||||
@c ~/src/guix/core-updates/pre-inst-env guix graph --type=bag -e '(@@ (gnu packages commencement) gcc-mesboot)' > doc/images/gcc-mesboot-graph.dot
|
||||
@c dot -T png doc/images/gcc-mesboot-graph.dot > doc/images/gcc-mesboot-graph.png
|
||||
|
||||
Here's a generated dependency diagram to for the initial bootstrap gcc
|
||||
Here's a generated dependency diagram to for the final bootstrap gcc
|
||||
that builds the rest of Guix.
|
||||
|
||||
@image{images/gcc-mesboot-graph,6in,,Reference graph of the gcc-core-mesboot0}
|
||||
@image{images/gcc-mesboot-graph,2in,,Reference graph of the gcc-mesboot}
|
||||
|
||||
Work is ongoing to remove these binary seeds that were intentionally
|
||||
injected by our own doing as temporary shortcut
|
||||
|
@ -757,16 +699,19 @@ injected by our own doing as temporary shortcut
|
|||
bootstrap-mescc-tools (seed), bootstrap-mes (seed)
|
||||
@end example
|
||||
|
||||
For now, this additional non-bootstrapped dependencies (i.e., binary
|
||||
For now, these additional non-bootstrapped dependencies (i.e., binary
|
||||
seeds) are taken for granted
|
||||
|
||||
@example
|
||||
bootstrap-guile
|
||||
bootstrap-guile, bash, bzip2, coreutils, gawk, grep, gzip, patch, sed,
|
||||
tar, xz
|
||||
@end example
|
||||
|
||||
Our next priority is to eleminate these one by one.
|
||||
Although we think these are less essential and thus less interesting
|
||||
than the GNU toolchain triplet that we focussed on initially, our next
|
||||
priority is to eleminate these one by one.
|
||||
|
||||
@node Invoking mes
|
||||
@node Invoking mes, Invoking mescc, The Mes Bootstrap Process, Bootstrapping
|
||||
@section Invoking mes
|
||||
|
||||
@cindex repl
|
||||
|
@ -842,7 +787,7 @@ Display the current version of mes%, and then exit.
|
|||
* Environment Variables:: If the bits won't change, change their habitat.
|
||||
@end menu
|
||||
|
||||
@node Environment Variables
|
||||
@node Environment Variables, , Invoking mes, Invoking mes
|
||||
@subsection Environment Variables
|
||||
@cindex environment variables
|
||||
@cindex shell
|
||||
|
@ -920,7 +865,7 @@ Mes uses @var{@strong{GUILE}_LOAD_PATH} for compatibility with Guile.
|
|||
|
||||
@end table
|
||||
|
||||
@node Invoking mescc
|
||||
@node Invoking mescc, Invoking mesar, Invoking mes, Bootstrapping
|
||||
@section Invoking mescc
|
||||
|
||||
@example
|
||||
|
@ -935,7 +880,7 @@ The @var{option}s can be among the following:
|
|||
align @var{symbol}, the default is @code{functions}; other valid values
|
||||
are: @code{globals}.
|
||||
|
||||
@item --base-address=ADDRESS
|
||||
@item --base-address=ADRRESS
|
||||
use BaseAddress ADDRESS [0x1000000]
|
||||
|
||||
@item -c
|
||||
|
@ -1002,7 +947,7 @@ specify LANGUAGE of the following input files
|
|||
* MesCC Environment Variables:: There's no NIX like POSIX.
|
||||
@end menu
|
||||
|
||||
@node MesCC Environment Variables
|
||||
@node MesCC Environment Variables, , Invoking mescc, Invoking mescc
|
||||
@subsection MesCC Environment Variables
|
||||
|
||||
@table @env
|
||||
|
@ -1031,7 +976,7 @@ during the parsing phase.
|
|||
|
||||
@end table
|
||||
|
||||
@node Invoking mesar
|
||||
@node Invoking mesar, , Invoking mescc, Bootstrapping
|
||||
@section Invoking mesar
|
||||
|
||||
@example
|
||||
|
@ -1061,7 +1006,7 @@ display version and exit
|
|||
@end table
|
||||
|
||||
@c *********************************************************************
|
||||
@node Contributing
|
||||
@node Contributing, Acknowledgments, Bootstrapping, Top
|
||||
@chapter Contributing
|
||||
|
||||
@menu
|
||||
|
@ -1073,7 +1018,7 @@ display version and exit
|
|||
* Submitting Patches:: Share your work.
|
||||
@end menu
|
||||
|
||||
@node Building from Git
|
||||
@node Building from Git, Running Mes From the Source Tree, Contributing, Contributing
|
||||
@section Building from Git
|
||||
|
||||
If you want to hack GNU Mes itself, it is recommended to use the latest
|
||||
|
@ -1089,26 +1034,15 @@ all the dependencies and appropriate environment variables are set up to
|
|||
hack on Mes:
|
||||
|
||||
@example
|
||||
guix shell
|
||||
guix environment -l .guix.scm
|
||||
@end example
|
||||
|
||||
If you are unable to use Guix when building Mes from a Git checkout,
|
||||
the following are the required packages in addition to those mentioned
|
||||
in the installation instructions (@pxref{Requirements}).
|
||||
|
||||
@itemize
|
||||
@item @url{https://gnu.org/software/help2man/, GNU Help2man};
|
||||
@item @url{https://gnu.org/software/texinfo/, GNU Texinfo};
|
||||
@item @url{https://www.graphviz.org/, Graphviz};
|
||||
@item @url{https://www.perl.org/, Perl}.
|
||||
@end itemize
|
||||
|
||||
Finally, you have to invoke @code{make check} to run tests
|
||||
(@pxref{Running the Test Suites}). If anything fails, take a look at
|
||||
installation instructions (@pxref{Installation}) or send a message to
|
||||
the @email{bug-mes@@gnu.org} mailing list.
|
||||
|
||||
@node Running Mes From the Source Tree
|
||||
@node Running Mes From the Source Tree, Porting GNU Mes, Building from Git, Contributing
|
||||
@section Running Mes From the Source Tree
|
||||
|
||||
First, you need to have an environment with all the dependencies
|
||||
|
@ -1116,15 +1050,15 @@ available (@pxref{Building from Git}), and then simply prefix each
|
|||
command by @command{./pre-inst-env} (the @file{pre-inst-env} script
|
||||
lives in the top build tree of Mes).
|
||||
|
||||
@node Porting GNU Mes
|
||||
@node Porting GNU Mes, The Perfect Setup, Running Mes From the Source Tree, Contributing
|
||||
@section Porting GNU Mes
|
||||
|
||||
Mes is supported for x86-linux and armhf-linux. A 64 bit (x86_64-linux)
|
||||
is almost done, only a few bugs remain. The Guix bootstrap for
|
||||
x86_64-linux uses mes for x86-lunix and that is not expected to change.
|
||||
Likewise, aarch64-linux uses mes for armhf-linux.
|
||||
Mes was written for x86-linux. A 64 bit (x86_64) is almost done, only a
|
||||
few bugs remain. The Guix bootstrap for x86_64 uses x86 mes and that is
|
||||
not expected to change.
|
||||
|
||||
A port to GNU/Hurd (x86-gnu) is underway.
|
||||
An ARM (armv4/armv7l) linux port is underway. A port to GNU/Hurd
|
||||
(x86-gnu) is also underway.
|
||||
|
||||
Initial scaffold, built by @file{build-aux/build-scaffold.sh}:
|
||||
@example
|
||||
|
@ -1149,14 +1083,14 @@ Porting MesCC:
|
|||
@file{mes/module/mescc/i386/info.mes}
|
||||
@end example
|
||||
|
||||
@node The Perfect Setup
|
||||
@node The Perfect Setup, Coding Style, Porting GNU Mes, Contributing
|
||||
@section The Perfect Setup
|
||||
|
||||
The Perfect Setup to hack on Mes is basically the perfect setup used
|
||||
for Guile hacking (@pxref{Using Guile in Emacs,,, guile, Guile Reference
|
||||
Manual}). First, you need more than an editor, you need
|
||||
@url{https://www.gnu.org/software/emacs, Emacs}, empowered by the
|
||||
wonderful @url{https://nongnu.org/geiser/, Geiser}.
|
||||
@url{http://www.gnu.org/software/emacs, Emacs}, empowered by the
|
||||
wonderful @url{http://nongnu.org/geiser/, Geiser}.
|
||||
|
||||
Geiser allows for interactive and incremental development from within
|
||||
Emacs: code compilation and evaluation from within buffers, access to
|
||||
|
@ -1164,7 +1098,7 @@ on-line documentation (docstrings), context-sensitive completion,
|
|||
@kbd{M-.} to jump to an object definition, a REPL to try out your code,
|
||||
and more (@pxref{Introduction,,, geiser, Geiser User Manual}).
|
||||
|
||||
@node Coding Style
|
||||
@node Coding Style, Submitting Patches, The Perfect Setup, Contributing
|
||||
@section Coding Style
|
||||
|
||||
In general our code follows the GNU Coding Standards (@pxref{Top,,,
|
||||
|
@ -1181,7 +1115,7 @@ Scheme code in Mes is written in a purely functional style.
|
|||
@cindex coding style
|
||||
When writing Scheme code, we follow common wisdom among Scheme
|
||||
programmers. In general, we follow the
|
||||
@url{https://mumble.net/~campbell/scheme/style.txt, Riastradh's Lisp
|
||||
@url{http://mumble.net/~campbell/scheme/style.txt, Riastradh's Lisp
|
||||
Style Rules}. This document happens to describe the conventions mostly
|
||||
used in Guile’s code too. It is very thoughtful and well written, so
|
||||
please do read it.
|
||||
|
@ -1200,13 +1134,13 @@ Additionally, in Mes we prefer to format @code{if} statements like this
|
|||
else))
|
||||
@end example
|
||||
|
||||
@node Submitting Patches
|
||||
@node Submitting Patches, , Coding Style, Contributing
|
||||
@section Submitting Patches
|
||||
|
||||
Development is done using the Git distributed version control system.
|
||||
Thus, access to the repository is not strictly necessary. We welcome
|
||||
contributions in the form of patches as produced by @code{git
|
||||
format-patch} sent to the @email{bug-mes@@gnu.org} mailing list.
|
||||
format-patch} sent to the @email{guix-patches@@gnu.org} mailing list.
|
||||
|
||||
Please write commit logs in the ChangeLog format (@pxref{Change Logs,,,
|
||||
standards, GNU Coding Standards}); you can check the commit history for
|
||||
|
@ -1243,14 +1177,14 @@ It will be ready sooner if you help.
|
|||
@end quotation
|
||||
|
||||
@cindex contact, irc, mailing list
|
||||
Join us on @code{#bootstrappable} on the Libera Chat IRC network or on
|
||||
@email{bug-mes@@gnu.org} to share your experience---good or bad.
|
||||
Join us on @code{#bootstrappable} on the Freenode IRC network or on
|
||||
@email{guix-devel@@gnu.org} to share your experience---good or bad.
|
||||
|
||||
@cindex bug, bug report, reporting a bug
|
||||
Please send bug reports with full details to @email{bug-mes@@gnu.org}.
|
||||
|
||||
@c *********************************************************************
|
||||
@node Acknowledgments
|
||||
@node Acknowledgments, Resources, Contributing, Top
|
||||
@chapter Acknowledgments
|
||||
|
||||
We would like to thank the following people for their help: Jeremiah
|
||||
|
@ -1262,7 +1196,7 @@ LISP-1.5 and Alan Kay for their inspiring comment on
|
|||
@url{https://queue.acm.org/detail.cfm?id=1039523, Page 13}.
|
||||
|
||||
@c *********************************************************************
|
||||
@node Resources
|
||||
@node Resources, GNU Free Documentation License, Acknowledgments, Top
|
||||
@chapter Resources
|
||||
|
||||
@itemize
|
||||
|
@ -1286,8 +1220,8 @@ collection of small/bootstrappable compilers, operating systems,
|
|||
anything you need.
|
||||
|
||||
@item
|
||||
@url{irc.libera.chat, #bootstrappable} The bootstrapping community home
|
||||
at the Libera Chat IRC network.
|
||||
@url{irc.freenode.net, #bootstrappable} The bootstrapping community home
|
||||
at the freenode IRC network.
|
||||
|
||||
@item
|
||||
@file{guix-devel@@gnu.org} The Guix mailing list, where it all started.
|
||||
|
@ -1296,17 +1230,17 @@ at the Libera Chat IRC network.
|
|||
@end itemize
|
||||
|
||||
@c *********************************************************************
|
||||
@node GNU Free Documentation License
|
||||
@node GNU Free Documentation License, Concept Index, Resources, Top
|
||||
@appendix GNU Free Documentation License
|
||||
@cindex license, GNU Free Documentation License
|
||||
@include fdl-1.3.texi
|
||||
|
||||
@c *********************************************************************
|
||||
@node Concept Index
|
||||
@node Concept Index, Programming Index, GNU Free Documentation License, Top
|
||||
@unnumbered Concept Index
|
||||
@printindex cp
|
||||
|
||||
@node Programming Index
|
||||
@node Programming Index, , Concept Index, Top
|
||||
@unnumbered Programming Index
|
||||
@syncodeindex tp fn
|
||||
@syncodeindex vr fn
|
||||
|
|
4
guix.scm
4
guix.scm
|
@ -1,7 +1,7 @@
|
|||
;;; guix.scm -- Guix package definition
|
||||
|
||||
;;; 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.
|
||||
;;;
|
||||
|
@ -30,7 +30,7 @@
|
|||
;;
|
||||
;; To use as the basis for a development environment, run:
|
||||
;;
|
||||
;; guix time-machine --commit=ffb616b69dced25b840f2e5178062072d89623eb -- shell
|
||||
;; guix environment -l guix.scm
|
||||
;;
|
||||
;;; Code:
|
||||
|
||||
|
|
139
guix/git/mes.scm
139
guix/git/mes.scm
|
@ -1,5 +1,5 @@
|
|||
;;; 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.
|
||||
;;;
|
||||
|
@ -54,27 +54,32 @@
|
|||
(define-public mescc-tools
|
||||
(package
|
||||
(name "mescc-tools")
|
||||
(version "1.4.0")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://git.savannah.nongnu.org/r/mescc-tools.git")
|
||||
(commit (string-append "Release_" version))
|
||||
(recursive? #t))) ;for M2libc
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"0z2ni2qn2np1walcaqlxz8sinzb78d4hiq9glddzf26wxc226hs4"))))
|
||||
(version "1.1.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"http://git.savannah.nongnu.org/cgit/mescc-tools.git/snapshot/"
|
||||
name "-Release_" version
|
||||
".tar.gz"))
|
||||
(file-name (string-append name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"12cjryqfd6m6j807pvhk7i4vr2q0jiibpfrpnq5s67iq9l4rrc6b"))))
|
||||
(build-system gnu-build-system)
|
||||
(supported-systems
|
||||
'("aarch64-linux" "armhf-linux" "i686-linux" "x86_64-linux"))
|
||||
(native-inputs (list which))
|
||||
(arguments
|
||||
`(#:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out"))
|
||||
(string-append "CC=" ,(cc-for-target)))
|
||||
#:test-target "test"
|
||||
#: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")
|
||||
(description
|
||||
"Mescc-tools is a collection of tools for use in a full source
|
||||
|
@ -87,18 +92,19 @@ get_machine.")
|
|||
(define-public m2-planet
|
||||
(package
|
||||
(name "m2-planet")
|
||||
(version "1.9.0")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/oriansj/m2-planet")
|
||||
(commit (string-append "Release_" version))
|
||||
(recursive? #t))) ;for M2libc
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"0cgvvq91cbxxm93k8ayyvhpaf3c2lv10qw4wyqwn3hc1qb1cfyvr"))))
|
||||
(native-inputs (list mescc-tools))
|
||||
(version "1.7.0")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/oriansj/m2-planet.git")
|
||||
(commit (string-append "Release_" version))))
|
||||
(file-name (string-append name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"052j63xv44zqy7jndjw36jpyciz00p11d78w2rhy539qa5vdzad7"))))
|
||||
(native-inputs
|
||||
`(("mescc-tools" ,mescc-tools)))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out"))
|
||||
|
@ -106,13 +112,18 @@ get_machine.")
|
|||
#:tests? #f
|
||||
#:phases (modify-phases %standard-phases
|
||||
(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")
|
||||
(description
|
||||
"M2-Planet, The PLAtform NEutral Transpiler, when combined with
|
||||
mescc-tools compiles a subset of the C language into working binaries
|
||||
with introspective steps inbetween.")
|
||||
(home-page "https://github.com/oriansj/m2-planet")
|
||||
(home-page "https://savannah.nongnu.org/projects/mescc-tools")
|
||||
(license gpl3+)))
|
||||
|
||||
(define-public nyacc-0.99
|
||||
|
@ -142,8 +153,10 @@ with introspective steps inbetween.")
|
|||
"DOCDIR = @prefix@/share/doc/$(PACKAGE_TARNAME)\n"))
|
||||
#t))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs (list pkg-config))
|
||||
(inputs (list guile-2.2))
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)))
|
||||
(inputs
|
||||
`(("guile" ,guile-2.2)))
|
||||
(synopsis "LALR(1) Parser Generator in Guile")
|
||||
(description
|
||||
"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
|
||||
(base32
|
||||
"065ksalfllbdrzl12dz9d9dcxrv97wqxblslngsc6kajvnvlyvpk"))))
|
||||
(inputs (list guile-3.0))))
|
||||
(inputs
|
||||
`(("guile" ,guile-3.0)))))
|
||||
|
||||
(define-public mes
|
||||
(package
|
||||
(name "mes")
|
||||
(version #!mes!# "0.24.2")
|
||||
(version "0.22")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"https://ftp.gnu.org/pub/gnu/mes/mes-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32 #!mes!# "0vp8v88zszh1imm3dvdfi3m8cywshdj7xcrsq4cgmss69s2y1nkx"))))
|
||||
(base32 #!mes!# "04pajp8v31na34ls4730ig5f6miiplhdvkmsb9ls1b8bbmw2vb4n"))))
|
||||
(build-system gnu-build-system)
|
||||
(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
|
||||
(append
|
||||
(list guile-3.0)
|
||||
(let ((target-system (or (%current-target-system)
|
||||
(%current-system))))
|
||||
(cond
|
||||
((string-prefix? "x86_64-linux" target-system)
|
||||
;; Use cross-compiler rather than #:system "i686-linux" to get
|
||||
;; MesCC 64 bit .go files installed ready for use with Guile.
|
||||
(list (cross-binutils "i686-unknown-linux-gnu")
|
||||
(cross-gcc "i686-unknown-linux-gnu")))
|
||||
((string-prefix? "aarch64-linux" target-system)
|
||||
;; Use cross-compiler rather than #:system "armhf-linux" to get
|
||||
;; MesCC 64 bit .go files installed ready for use with Guile.
|
||||
(let ((triplet "arm-linux-gnueabihf"))
|
||||
(list (cross-binutils triplet) (cross-gcc triplet))))
|
||||
(else
|
||||
'())))
|
||||
(list graphviz help2man m2-planet
|
||||
perl ;build-aux/gitlog-to-changelog
|
||||
texinfo)))
|
||||
`(("guile" ,guile-3.0-latest)
|
||||
,@(cond ((string-prefix? "x86_64-linux" (or (%current-target-system)
|
||||
(%current-system)))
|
||||
;; Use cross-compiler rather than #:system "i686-linux" to get
|
||||
;; MesCC 64 bit .go files installed ready for use with Guile.
|
||||
(let ((triplet "i686-unknown-linux-gnu"))
|
||||
`(("i686-linux-binutils" ,(cross-binutils triplet))
|
||||
("i686-linux-gcc" ,(cross-gcc triplet)))))
|
||||
((string-prefix? "aarch64-linux" (or (%current-target-system)
|
||||
(%current-system)))
|
||||
;; Use cross-compiler rather than #:system "armhf-linux" to get
|
||||
;; MesCC 64 bit .go files installed ready for use with Guile.
|
||||
(let ((triplet "arm-linux-gnueabihf"))
|
||||
`(("arm-linux-binutils" ,(cross-binutils triplet))
|
||||
("arm-linux-gcc" ,(cross-gcc triplet)))))
|
||||
(else
|
||||
'()))
|
||||
("graphviz" ,graphviz)
|
||||
("help2man" ,help2man)
|
||||
("m2-planet" ,m2-planet)
|
||||
("perl" ,perl) ; build-aux/gitlog-to-changelog
|
||||
("texinfo" ,texinfo)))
|
||||
(arguments
|
||||
`(#: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")
|
||||
(description
|
||||
"GNU Mes--Maxwell Equations of Software--brings the Reduced Binary Seed
|
||||
|
@ -238,7 +245,7 @@ Guile.")
|
|||
(license gpl3+)))
|
||||
|
||||
(define-public mes.git
|
||||
(let ((version #!mes!# "0.24.2")
|
||||
(let ((version "0.22")
|
||||
(revision "0")
|
||||
(commit (read-string (open-pipe "git show HEAD | head -1 | cut -d ' ' -f 2" OPEN_READ))))
|
||||
(package
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/* -*-comment-start: "//";comment-end:""-*-
|
||||
* 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.
|
||||
*
|
||||
|
@ -27,9 +27,8 @@
|
|||
#undef __MES_ASSERT_H
|
||||
#include_next <assert.h>
|
||||
#else // ! SYSTEM_LIBC
|
||||
#define assert(x) ((x) ? (void)0 : __assert_fail (#x, 0, 0, 0))
|
||||
void __assert_fail (char const *s, char const *file, unsigned line,
|
||||
char const *function);
|
||||
#define assert(x) ((x) ? (void)0 : __assert_fail (#x))
|
||||
void __assert_fail (char *s);
|
||||
#endif // ! SYSTEM_LIBC
|
||||
|
||||
#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:""-*-
|
||||
* 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>
|
||||
*
|
||||
* 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 */
|
||||
|
||||
/* libc-mini */
|
||||
#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
|
||||
// libc
|
||||
#define SYS_fork 0x02
|
||||
// CONSTANT SYS_read 0x03
|
||||
#define SYS_read 0x03
|
||||
// CONSTANT SYS_open 0x05
|
||||
#define SYS_open 0x05
|
||||
//#define SYS_waitpid
|
||||
// CONSTANT SYS_wait4 0x72
|
||||
#define SYS_wait4 0x72
|
||||
// CONSTANT SYS_execve 0x0b
|
||||
#define SYS_execve 0x0b
|
||||
// CONSTANT SYS_chmod 0x0f
|
||||
#define SYS_chmod 0x0f
|
||||
// CONSTANT SYS_access 0x21
|
||||
#define SYS_access 0x21
|
||||
// CONSTANT SYS_brk 0x2d
|
||||
#define SYS_brk 0x2d
|
||||
// CONSTANT SYS_ioctl 0x36
|
||||
#define SYS_ioctl 0x36
|
||||
// CONSTANT 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_lseek 0x13
|
||||
#define SYS_unlink 0x0a
|
||||
#define SYS_rmdir 0x28
|
||||
#define SYS_gettimeofday 0x4e
|
||||
#define SYS_stat 0x6a
|
||||
#define SYS_getcwd 0xb7
|
||||
|
||||
/* libc+gnu */
|
||||
// libc+gnu
|
||||
#define SYS_chdir 0x0c
|
||||
#define SYS_link 0x09
|
||||
#define SYS_getpid 0x14
|
||||
|
@ -82,50 +53,34 @@
|
|||
#define SYS_kill 0x25
|
||||
#define SYS_rename 0x26
|
||||
#define SYS_mkdir 0x27
|
||||
#define SYS_dup 0x29
|
||||
#define SYS_pipe 0x2a
|
||||
#define SYS_getgid 0x2f
|
||||
#define SYS_rt_sigaction 0xae
|
||||
#define SYS_rt_sigreturn 0xad
|
||||
#define SYS_fcntl 0x37
|
||||
#define SYS_dup2 0x3f
|
||||
#define SYS_getrusage 0x4d
|
||||
#define SYS_lstat 0x6b
|
||||
#define SYS_setitimer 0x68
|
||||
#define SYS_fstat 0x6c
|
||||
#define SYS_nanosleep 0xa2
|
||||
#define SYS_getdents 0x8d
|
||||
#define SYS_clock_gettime 0x107
|
||||
|
||||
/* bash */
|
||||
// bash
|
||||
#define SYS_setuid 0x17
|
||||
#define SYS_setgid 0x2e
|
||||
#define SYS_geteuid 0x31
|
||||
#define SYS_getegid 0x32
|
||||
#define SYS_getppid 0x40
|
||||
|
||||
/* make+WITH_GLIBC */
|
||||
// make+WITH_GLIBC
|
||||
#define SYS_rt_sigprocmask 0xaf
|
||||
|
||||
/* tar */
|
||||
// tar
|
||||
#define SYS_symlink 0x53
|
||||
#define SYS_readlink 0x55
|
||||
#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_ARM_SYSCALL_H */
|
||||
#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
|
||||
|
||||
/* libc+gnu */
|
||||
|
||||
#define SYS_chdir 0x0c
|
||||
#define SYS_link 0x09
|
||||
#define SYS_getpid 0x14
|
||||
|
@ -111,23 +112,4 @@
|
|||
#define SYS_readlink 0x55
|
||||
#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 */
|
||||
|
|
|
@ -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:""-*-
|
||||
* 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.
|
||||
*
|
||||
|
@ -53,24 +53,27 @@ struct scm *write_port_ (struct scm *x, struct scm *p);
|
|||
struct scm *pairlis (struct scm *x, struct scm *y, struct scm *a);
|
||||
struct scm *set_car_x (struct scm *x, struct scm *e);
|
||||
struct scm *set_cdr_x (struct scm *x, struct scm *e);
|
||||
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 *eval_apply ();
|
||||
/* src/gc.c */
|
||||
struct scm *gc_stats ();
|
||||
struct scm *cons (struct scm *x, struct scm *y);
|
||||
struct scm *make_variable (struct scm *var);
|
||||
struct scm *gc_check ();
|
||||
struct scm *gc ();
|
||||
/* src/hash.c */
|
||||
struct scm *hashq (struct scm *x, struct scm *size);
|
||||
struct scm *hash (struct scm *x, struct scm *size);
|
||||
struct scm *hashq_get_handle (struct scm *table, struct scm *key, struct scm *dflt);
|
||||
struct scm *hashq_ref (struct scm *table, struct scm *key, struct scm *dflt);
|
||||
struct scm *hash_ref (struct scm *table, struct scm *key, struct scm *dflt);
|
||||
struct scm *hashq_get_handle_ (struct scm *table, struct scm *key);
|
||||
struct scm *hashq_ref_ (struct scm *table, struct scm *key, struct scm *dflt);
|
||||
struct scm *hash_ref_ (struct scm *table, struct scm *key, struct scm *dflt);
|
||||
struct scm *hashq_set_handle_x (struct scm *table, struct scm *key, struct scm *value);
|
||||
struct scm *hashq_set_x (struct scm *table, struct scm *key, struct scm *value);
|
||||
struct scm *hash_set_x (struct scm *table, struct scm *key, struct scm *value);
|
||||
struct scm *hash_table_printer (struct scm *table);
|
||||
struct scm *make_hash_table (struct scm *x);
|
||||
struct scm *hash_table_p (struct scm *x);
|
||||
struct scm *hash_map_to_list (struct scm *proc, struct scm *table);
|
||||
struct scm *hash_clear_x (struct scm *table);
|
||||
/* src/lib.c */
|
||||
struct scm *type_ (struct scm *x);
|
||||
struct scm *car_ (struct scm *x);
|
||||
|
@ -97,11 +100,8 @@ struct scm *lognot (struct scm *x);
|
|||
struct scm *logxor (struct scm *x);
|
||||
struct scm *ash (struct scm *n, struct scm *count);
|
||||
/* src/module.c */
|
||||
struct scm *make_module_type ();
|
||||
struct scm *module_printer (struct scm *module);
|
||||
struct scm *module_variable (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 *initial_module ();
|
||||
/* src/posix.c */
|
||||
struct scm *abort_ ();
|
||||
struct scm *exit_ (struct scm *x);
|
||||
|
@ -170,6 +170,12 @@ struct scm *make_struct (struct scm *type, struct scm *fields, struct scm *print
|
|||
struct scm *struct_length (struct scm *x);
|
||||
struct scm *struct_ref (struct scm *x, struct scm *i);
|
||||
struct scm *struct_set_x (struct scm *x, struct scm *i, struct scm *e);
|
||||
/* src/variable.c */
|
||||
struct scm *variable_ref (struct scm *var);
|
||||
struct scm *variable_set_x (struct scm *var, struct scm *value);
|
||||
struct scm *variable_bound_p (struct scm *var);
|
||||
struct scm *lookup_handle (struct scm *name, struct scm* define_p);
|
||||
struct scm *lookup_ref (struct scm *name, struct scm* bound_p);
|
||||
/* src/vector.c */
|
||||
struct scm *make_vector (struct scm *x);
|
||||
struct scm *vector_length (struct scm *x);
|
||||
|
|
|
@ -68,10 +68,16 @@
|
|||
// CONSTANT STRUCT_PRINTER 1
|
||||
#define STRUCT_PRINTER 1
|
||||
|
||||
// CONSTANT GC_FRAME_SIZE 5
|
||||
#define GC_FRAME_SIZE 5
|
||||
// CONSTANT GC_FRAME_PROCEDURE 4
|
||||
#define GC_FRAME_PROCEDURE 4
|
||||
// CONSTANT FRAME_SIZE 5
|
||||
#define FRAME_SIZE 5
|
||||
// CONSTANT FRAME_PROCEDURE 4
|
||||
#define FRAME_PROCEDURE 4
|
||||
|
||||
// CONSTANT MODULE_DEFINES 3
|
||||
#define MODULE_DEFINES 3
|
||||
|
||||
// CONSTANT MODULE_USES 4
|
||||
#define MODULE_USES 4
|
||||
|
||||
// CONSTANT STDIN 0
|
||||
// CONSTANT STDOUT 1
|
||||
|
|
|
@ -67,8 +67,7 @@ extern void (*__call_at_exit) (void);
|
|||
#define __FILEDES_MAX 512
|
||||
|
||||
#if !SYSTEM_LIBC
|
||||
void __assert_fail (char const *s, char const *file, unsigned line,
|
||||
char const *function);
|
||||
void __assert_fail (char *s);
|
||||
ssize_t __buffered_read (int filedes, void *buffer, size_t size);
|
||||
size_t __buffered_read_clear (int filedes);
|
||||
void _exit (int code);
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/* -*-comment-start: "//";comment-end:""-*-
|
||||
* 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.
|
||||
*
|
||||
|
@ -54,59 +54,58 @@ struct scm
|
|||
};
|
||||
|
||||
/* mes */
|
||||
extern char *g_datadir;
|
||||
extern int g_debug;
|
||||
extern char *g_buf;
|
||||
extern int g_continuations;
|
||||
extern struct scm *g_symbols;
|
||||
extern struct scm *g_symbol_max;
|
||||
extern int g_mini;
|
||||
char *g_datadir;
|
||||
int g_debug;
|
||||
char *g_buf;
|
||||
int g_continuations;
|
||||
struct scm *g_symbols;
|
||||
struct scm *g_symbol_max;
|
||||
int g_mini;
|
||||
|
||||
/* a/env */
|
||||
extern struct scm *R0;
|
||||
struct scm *R0;
|
||||
/* param 1 */
|
||||
extern struct scm *R1;
|
||||
struct scm *R1;
|
||||
/* save 2 */
|
||||
extern struct scm *R2;
|
||||
struct scm *R2;
|
||||
/* continuation */
|
||||
extern struct scm *R3;
|
||||
/* current-module */
|
||||
extern struct scm *M0;
|
||||
struct scm *R3;
|
||||
/* initial module */
|
||||
struct scm *M0;
|
||||
/* macro */
|
||||
extern struct scm *g_macros;
|
||||
extern struct scm *g_ports;
|
||||
struct scm *g_macros;
|
||||
struct scm *g_ports;
|
||||
|
||||
/* gc */
|
||||
extern size_t ARENA_SIZE;
|
||||
extern size_t MAX_ARENA_SIZE;
|
||||
extern size_t STACK_SIZE;
|
||||
extern size_t JAM_SIZE;
|
||||
extern size_t GC_SAFETY;
|
||||
extern size_t MAX_STRING;
|
||||
extern char *g_arena;
|
||||
extern struct scm *cell_arena;
|
||||
extern struct scm *cell_zero;
|
||||
long ARENA_SIZE;
|
||||
long MAX_ARENA_SIZE;
|
||||
long STACK_SIZE;
|
||||
long JAM_SIZE;
|
||||
long GC_SAFETY;
|
||||
long MAX_STRING;
|
||||
char *g_arena;
|
||||
struct scm *cell_arena;
|
||||
struct scm *cell_zero;
|
||||
|
||||
extern struct scm *g_free;
|
||||
extern struct scm *g_symbol;
|
||||
struct scm *g_free;
|
||||
struct scm *g_symbol;
|
||||
|
||||
extern struct scm **g_stack_array;
|
||||
extern struct scm *g_cells;
|
||||
extern struct scm *g_news;
|
||||
extern 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;
|
||||
struct scm **g_stack_array;
|
||||
struct scm *g_cells;
|
||||
struct scm *g_news;
|
||||
long g_stack;
|
||||
|
||||
extern char **__execl_c_argv;
|
||||
extern char *__open_boot_buf;
|
||||
extern char *__open_boot_file_name;
|
||||
extern char *__setenv_buf;
|
||||
extern char *__reader_read_char_buf;
|
||||
extern struct timespec *g_start_time;
|
||||
extern struct timeval *__gettimeofday_time;
|
||||
extern struct timespec *__get_internal_run_time_ts;
|
||||
char **__execl_c_argv;
|
||||
char *__getcwd_buf;
|
||||
char *__open_boot_buf;
|
||||
char *__open_boot_file_name;
|
||||
char *__setenv_buf;
|
||||
char *__reader_read_char_buf;
|
||||
struct timespec *g_start_time;
|
||||
struct timeval *__gettimeofday_time;
|
||||
struct timespec *__get_internal_run_time_ts;
|
||||
|
||||
struct scm *scm_hash_table_type;
|
||||
|
||||
struct scm *cast_charp_to_scmp (char const *i);
|
||||
struct scm **cast_charp_to_scmpp (char const *i);
|
||||
|
@ -122,12 +121,17 @@ struct scm *apply_builtin1 (struct scm *fn, struct scm *x);
|
|||
struct scm *apply_builtin2 (struct scm *fn, struct scm *x, struct scm *y);
|
||||
struct scm *apply_builtin3 (struct scm *fn, struct scm *x, struct scm *y, struct scm *z);
|
||||
struct scm *builtin_name (struct scm *builtin);
|
||||
struct scm *cell_ref (struct scm *cell, long index);
|
||||
struct scm *cstring_to_list (char const *s);
|
||||
struct scm *cstring_to_symbol (char const *s);
|
||||
struct scm *cell_ref (struct scm *cell, long index);
|
||||
struct scm *current_module ();
|
||||
struct scm *deep_variable_ref (struct scm *var);
|
||||
struct scm *fdisplay_ (struct scm *, int, int);
|
||||
struct scm *handle_set_x (struct scm *name, struct scm *value);
|
||||
struct scm *init_symbols ();
|
||||
struct scm *init_time (struct scm *a);
|
||||
struct scm *lookup_handle (struct scm *name, struct scm *define_p);
|
||||
struct scm *lookup_ref_ (char const *name);
|
||||
struct scm *make_builtin_type ();
|
||||
struct scm *make_bytes (char const *s, size_t length);
|
||||
struct scm *make_cell (long type, struct scm *car, struct scm *cdr);
|
||||
|
@ -136,7 +140,7 @@ struct scm *make_value_cell (long type, long car, long cdr);
|
|||
struct scm *make_char (int n);
|
||||
struct scm *make_continuation (long n);
|
||||
struct scm *make_hash_table_ (long size);
|
||||
struct scm *make_hashq_type ();
|
||||
struct scm *make_hash_table_type ();
|
||||
struct scm *make_initial_module (struct scm *a);
|
||||
struct scm *make_macro (struct scm *name, struct scm *x);
|
||||
struct scm *make_number (long n);
|
||||
|
@ -146,13 +150,18 @@ struct scm *make_string0 (char const *s);
|
|||
struct scm *make_string_port (struct scm *x);
|
||||
struct scm *make_vector_ (long k, struct scm *e);
|
||||
struct scm *mes_builtins (struct scm *a);
|
||||
struct scm *module_defines (struct scm *module);
|
||||
struct scm *module_handle (struct scm *module, struct scm *name);
|
||||
struct scm *module_variable (struct scm *module, struct scm *name);
|
||||
struct scm *push_cc (struct scm *p1, struct scm *p2, struct scm *a, struct scm *c);
|
||||
struct scm *set_x (struct scm *x, struct scm *e);
|
||||
struct scm *struct_ref_ (struct scm *x, long i);
|
||||
struct scm *struct_set_x_ (struct scm *x, long i, struct scm *e);
|
||||
struct scm *vector_ref_ (struct scm *x, long i);
|
||||
struct scm *vector_set_x_ (struct scm *x, long i, struct scm *e);
|
||||
FUNCTION builtin_function (struct scm *builtin);
|
||||
char *cell_bytes (struct scm *x);
|
||||
char *news_bytes (struct scm *x);
|
||||
int peekchar ();
|
||||
int readchar ();
|
||||
int unreadchar ();
|
||||
|
@ -162,6 +171,7 @@ size_t bytes_cells (size_t length);
|
|||
void assert_max_string (size_t i, char const *msg, char const *string);
|
||||
void assert_msg (int check, char *msg);
|
||||
void assert_number (char const *name, struct scm *x);
|
||||
void assert_variable (long pos, struct scm *x);
|
||||
void copy_cell (struct scm *to, struct scm *from);
|
||||
void gc_ ();
|
||||
void gc_dump_arena (struct scm *cells, long size);
|
||||
|
@ -171,7 +181,6 @@ void gc_pop_frame ();
|
|||
void gc_push_frame ();
|
||||
void gc_stats_ (char const* where);
|
||||
void init_symbols_ ();
|
||||
long seconds_and_nanoseconds_to_long (long s, long ns);
|
||||
|
||||
#include "mes/builtins.h"
|
||||
#include "mes/constants.h"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/* -*-comment-start: "//";comment-end:""-*-
|
||||
* 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.
|
||||
*
|
||||
|
@ -21,121 +21,121 @@
|
|||
#ifndef __MES_SYMBOLS_H
|
||||
#define __MES_SYMBOLS_H
|
||||
|
||||
extern struct scm *cell_nil;
|
||||
extern struct scm *cell_f;
|
||||
extern struct scm *cell_t;
|
||||
extern struct scm *cell_dot;
|
||||
extern struct scm *cell_arrow;
|
||||
extern struct scm *cell_undefined;
|
||||
extern struct scm *cell_unspecified;
|
||||
extern struct scm *cell_closure;
|
||||
extern struct scm *cell_circular;
|
||||
struct scm *cell_nil;
|
||||
struct scm *cell_f;
|
||||
struct scm *cell_t;
|
||||
struct scm *cell_dot;
|
||||
struct scm *cell_arrow;
|
||||
struct scm *cell_undefined;
|
||||
struct scm *cell_unspecified;
|
||||
struct scm *cell_closure;
|
||||
struct scm *cell_circular;
|
||||
|
||||
extern struct scm *cell_vm_apply;
|
||||
extern struct scm *cell_vm_apply2;
|
||||
extern struct scm *cell_vm_begin;
|
||||
extern struct scm *cell_vm_begin_eval;
|
||||
extern struct scm *cell_vm_begin_expand;
|
||||
extern struct scm *cell_vm_begin_expand_eval;
|
||||
extern struct scm *cell_vm_begin_expand_macro;
|
||||
extern struct scm *cell_vm_begin_expand_primitive_load;
|
||||
extern struct scm *cell_vm_begin_primitive_load;
|
||||
extern struct scm *cell_vm_begin_read_input_file;
|
||||
extern struct scm *cell_vm_call_with_current_continuation2;
|
||||
extern struct scm *cell_vm_call_with_values2;
|
||||
extern struct scm *cell_vm_eval;
|
||||
extern struct scm *cell_vm_eval2;
|
||||
extern struct scm *cell_vm_eval_check_func;
|
||||
extern struct scm *cell_vm_eval_define;
|
||||
extern struct scm *cell_vm_eval_macro_expand_eval;
|
||||
extern struct scm *cell_vm_eval_macro_expand_expand;
|
||||
extern struct scm *cell_vm_eval_pmatch_car;
|
||||
extern struct scm *cell_vm_eval_pmatch_cdr;
|
||||
extern struct scm *cell_vm_eval_set_x;
|
||||
extern struct scm *cell_vm_evlis;
|
||||
extern struct scm *cell_vm_evlis2;
|
||||
extern struct scm *cell_vm_evlis3;
|
||||
extern struct scm *cell_vm_if;
|
||||
extern struct scm *cell_vm_if_expr;
|
||||
extern struct scm *cell_vm_macro_expand;
|
||||
extern struct scm *cell_vm_macro_expand_car;
|
||||
extern struct scm *cell_vm_macro_expand_cdr;
|
||||
extern struct scm *cell_vm_macro_expand_define;
|
||||
extern struct scm *cell_vm_macro_expand_define_macro;
|
||||
extern struct scm *cell_vm_macro_expand_lambda;
|
||||
extern struct scm *cell_vm_macro_expand_set_x;
|
||||
extern struct scm *cell_vm_return;
|
||||
struct scm *cell_vm_apply;
|
||||
struct scm *cell_vm_apply2;
|
||||
struct scm *cell_vm_begin;
|
||||
struct scm *cell_vm_begin_eval;
|
||||
struct scm *cell_vm_begin_expand;
|
||||
struct scm *cell_vm_begin_expand_eval;
|
||||
struct scm *cell_vm_begin_expand_macro;
|
||||
struct scm *cell_vm_begin_expand_primitive_load;
|
||||
struct scm *cell_vm_begin_primitive_load;
|
||||
struct scm *cell_vm_primitive_load_return;
|
||||
struct scm *cell_vm_begin_read_input_file;
|
||||
struct scm *cell_vm_call_with_current_continuation2;
|
||||
struct scm *cell_vm_call_with_values2;
|
||||
struct scm *cell_vm_eval;
|
||||
struct scm *cell_vm_eval2;
|
||||
struct scm *cell_vm_eval_check_func;
|
||||
struct scm *cell_vm_eval_define;
|
||||
struct scm *cell_vm_eval_macro_expand_eval;
|
||||
struct scm *cell_vm_eval_macro_expand_expand;
|
||||
struct scm *cell_vm_eval_pmatch_car;
|
||||
struct scm *cell_vm_eval_pmatch_cdr;
|
||||
struct scm *cell_vm_eval_set_x;
|
||||
struct scm *cell_vm_evlis;
|
||||
struct scm *cell_vm_evlis2;
|
||||
struct scm *cell_vm_evlis3;
|
||||
struct scm *cell_vm_if;
|
||||
struct scm *cell_vm_if_expr;
|
||||
struct scm *cell_vm_macro_expand;
|
||||
struct scm *cell_vm_macro_expand_car;
|
||||
struct scm *cell_vm_macro_expand_cdr;
|
||||
struct scm *cell_vm_macro_expand_define;
|
||||
struct scm *cell_vm_macro_expand_define_macro;
|
||||
struct scm *cell_vm_macro_expand_lambda;
|
||||
struct scm *cell_vm_macro_expand_set_x;
|
||||
struct scm *cell_vm_return;
|
||||
|
||||
extern struct scm *cell_symbol_lambda;
|
||||
extern struct scm *cell_symbol_begin;
|
||||
extern struct scm *cell_symbol_if;
|
||||
extern struct scm *cell_symbol_quote;
|
||||
extern struct scm *cell_symbol_define;
|
||||
extern struct scm *cell_symbol_define_macro;
|
||||
extern struct scm *cell_symbol_quasiquote;
|
||||
extern struct scm *cell_symbol_unquote;
|
||||
extern struct scm *cell_symbol_unquote_splicing;
|
||||
extern struct scm *cell_symbol_syntax;
|
||||
extern struct scm *cell_symbol_quasisyntax;
|
||||
extern struct scm *cell_symbol_unsyntax;
|
||||
extern struct scm *cell_symbol_unsyntax_splicing;
|
||||
extern struct scm *cell_symbol_set_x;
|
||||
extern struct scm *cell_symbol_sc_expand;
|
||||
extern struct scm *cell_symbol_macro_expand;
|
||||
extern struct scm *cell_symbol_portable_macro_expand;
|
||||
extern struct scm *cell_symbol_sc_expander_alist;
|
||||
extern struct scm *cell_symbol_call_with_values;
|
||||
extern struct scm *cell_symbol_call_with_current_continuation;
|
||||
extern struct scm *cell_symbol_boot_module;
|
||||
extern struct scm *cell_symbol_current_module;
|
||||
extern struct scm *cell_symbol_primitive_load;
|
||||
extern struct scm *cell_symbol_car;
|
||||
extern struct scm *cell_symbol_cdr;
|
||||
extern struct scm *cell_symbol_not_a_number;
|
||||
extern struct scm *cell_symbol_not_a_pair;
|
||||
extern struct scm *cell_symbol_system_error;
|
||||
extern struct scm *cell_symbol_throw;
|
||||
extern struct scm *cell_symbol_unbound_variable;
|
||||
extern struct scm *cell_symbol_wrong_number_of_args;
|
||||
extern struct scm *cell_symbol_wrong_type_arg;
|
||||
extern struct scm *cell_symbol_buckets;
|
||||
extern struct scm *cell_symbol_builtin;
|
||||
extern struct scm *cell_symbol_frame;
|
||||
extern struct scm *cell_symbol_hashq_table;
|
||||
extern struct scm *cell_symbol_module;
|
||||
extern struct scm *cell_symbol_procedure;
|
||||
extern struct scm *cell_symbol_record_type;
|
||||
extern struct scm *cell_symbol_size;
|
||||
extern struct scm *cell_symbol_stack;
|
||||
extern struct scm *cell_symbol_argv;
|
||||
extern struct scm *cell_symbol_mes_datadir;
|
||||
extern struct scm *cell_symbol_mes_version;
|
||||
extern struct scm *cell_symbol_internal_time_units_per_second;
|
||||
extern struct scm *cell_symbol_compiler;
|
||||
extern struct scm *cell_symbol_arch;
|
||||
extern struct scm *cell_symbol_pmatch_car;
|
||||
extern struct scm *cell_symbol_pmatch_cdr;
|
||||
extern struct scm *cell_type_bytes;
|
||||
extern struct scm *cell_type_char;
|
||||
extern struct scm *cell_type_closure;
|
||||
extern struct scm *cell_type_continuation;
|
||||
extern struct scm *cell_type_function;
|
||||
extern struct scm *cell_type_keyword;
|
||||
extern struct scm *cell_type_macro;
|
||||
extern struct scm *cell_type_number;
|
||||
extern struct scm *cell_type_pair;
|
||||
extern struct scm *cell_type_port;
|
||||
extern struct scm *cell_type_ref;
|
||||
extern struct scm *cell_type_special;
|
||||
extern struct scm *cell_type_string;
|
||||
extern struct scm *cell_type_struct;
|
||||
extern struct scm *cell_type_symbol;
|
||||
extern struct scm *cell_type_values;
|
||||
extern struct scm *cell_type_variable;
|
||||
extern struct scm *cell_type_vector;
|
||||
extern struct scm *cell_type_broken_heart;
|
||||
extern struct scm *cell_symbol_program;
|
||||
extern struct scm *cell_symbol_test;
|
||||
struct scm *cell_symbol_lambda;
|
||||
struct scm *cell_symbol_begin;
|
||||
struct scm *cell_symbol_if;
|
||||
struct scm *cell_symbol_quote;
|
||||
struct scm *cell_symbol_define;
|
||||
struct scm *cell_symbol_define_macro;
|
||||
struct scm *cell_symbol_quasiquote;
|
||||
struct scm *cell_symbol_unquote;
|
||||
struct scm *cell_symbol_unquote_splicing;
|
||||
struct scm *cell_symbol_syntax;
|
||||
struct scm *cell_symbol_quasisyntax;
|
||||
struct scm *cell_symbol_unsyntax;
|
||||
struct scm *cell_symbol_unsyntax_splicing;
|
||||
struct scm *cell_symbol_set_x;
|
||||
struct scm *cell_symbol_sc_expand;
|
||||
struct scm *cell_symbol_macro_expand;
|
||||
struct scm *cell_symbol_portable_macro_expand;
|
||||
struct scm *cell_symbol_sc_expander_alist;
|
||||
struct scm *cell_symbol_call_with_values;
|
||||
struct scm *cell_symbol_call_with_current_continuation;
|
||||
struct scm *cell_symbol_current_module;
|
||||
struct scm *cell_symbol_primitive_load;
|
||||
struct scm *cell_symbol_car;
|
||||
struct scm *cell_symbol_cdr;
|
||||
struct scm *cell_symbol_not_a_number;
|
||||
struct scm *cell_symbol_not_a_pair;
|
||||
struct scm *cell_symbol_system_error;
|
||||
struct scm *cell_symbol_throw;
|
||||
struct scm *cell_symbol_unbound_variable;
|
||||
struct scm *cell_symbol_wrong_number_of_args;
|
||||
struct scm *cell_symbol_wrong_type_arg;
|
||||
struct scm *cell_symbol_buckets;
|
||||
struct scm *cell_symbol_builtin;
|
||||
struct scm *cell_symbol_frame;
|
||||
struct scm *cell_symbol_hashq_table;
|
||||
struct scm *cell_symbol_module;
|
||||
struct scm *cell_symbol_procedure;
|
||||
struct scm *cell_symbol_record_type;
|
||||
struct scm *cell_symbol_size;
|
||||
struct scm *cell_symbol_stack;
|
||||
struct scm *cell_symbol_argv;
|
||||
struct scm *cell_symbol_mes_datadir;
|
||||
struct scm *cell_symbol_mes_version;
|
||||
struct scm *cell_symbol_internal_time_units_per_second;
|
||||
struct scm *cell_symbol_compiler;
|
||||
struct scm *cell_symbol_arch;
|
||||
struct scm *cell_symbol_pmatch_car;
|
||||
struct scm *cell_symbol_pmatch_cdr;
|
||||
struct scm *cell_type_bytes;
|
||||
struct scm *cell_type_char;
|
||||
struct scm *cell_type_closure;
|
||||
struct scm *cell_type_continuation;
|
||||
struct scm *cell_type_function;
|
||||
struct scm *cell_type_keyword;
|
||||
struct scm *cell_type_macro;
|
||||
struct scm *cell_type_number;
|
||||
struct scm *cell_type_pair;
|
||||
struct scm *cell_type_port;
|
||||
struct scm *cell_type_ref;
|
||||
struct scm *cell_type_special;
|
||||
struct scm *cell_type_string;
|
||||
struct scm *cell_type_struct;
|
||||
struct scm *cell_type_symbol;
|
||||
struct scm *cell_type_values;
|
||||
struct scm *cell_type_variable;
|
||||
struct scm *cell_type_vector;
|
||||
struct scm *cell_type_broken_heart;
|
||||
struct scm *cell_symbol_program;
|
||||
struct scm *cell_symbol_test;
|
||||
|
||||
// CONSTANT SYMBOL_MAX 114
|
||||
#define SYMBOL_MAX 114
|
||||
|
@ -143,8 +143,8 @@ extern struct scm *cell_symbol_test;
|
|||
// CONSTANT CELL_UNSPECIFIED 7
|
||||
#define CELL_UNSPECIFIED 7
|
||||
|
||||
// CONSTANT CELL_SYMBOL_RECORD_TYPE 82
|
||||
#define CELL_SYMBOL_RECORD_TYPE 82
|
||||
// CONSTANT CELL_SYMBOL_RECORD_TYPE 81
|
||||
#define CELL_SYMBOL_RECORD_TYPE 81
|
||||
|
||||
|
||||
#endif /* __MES_SYMBOLS_H */
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
/* -*-comment-start: "//";comment-end:""-*-
|
||||
* GNU Mes --- Maxwell Equations of Software
|
||||
* Copyright © 2017 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
* Copyright © 2021 Danny Milosavljevic <dannym@scratchpost.org>
|
||||
*
|
||||
* This file is part of GNU Mes.
|
||||
*
|
||||
|
@ -38,10 +37,6 @@
|
|||
#endif // !__MESC__
|
||||
#endif // offsetof
|
||||
|
||||
/* Note: on banana gcc, max_align_t is 16 Byte big instead! */
|
||||
|
||||
typedef double max_align_t;
|
||||
|
||||
#endif // ! SYSTEM_LIBC
|
||||
|
||||
#endif // __MES_STDDEF_H
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
/* -*-comment-start: "//";comment-end:""-*-
|
||||
* GNU Mes --- Maxwell Equations of Software
|
||||
* Copyright © 2017 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
* Copyright © 2022 Dor Askayo <dor.askayo@gmail.com>
|
||||
*
|
||||
* This file is part of GNU Mes.
|
||||
*
|
||||
|
@ -19,7 +18,7 @@
|
|||
* along with GNU Mes. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#ifndef __MES_SYS_STAT_H
|
||||
#define __MES_SYS_STAT_H 1
|
||||
#define __MES_SYS_STAT_H 1lei
|
||||
|
||||
#if SYSTEM_LIBC
|
||||
#undef __MES_SYS_STAT_H
|
||||
|
@ -29,13 +28,60 @@
|
|||
|
||||
#include <time.h>
|
||||
#include <sys/types.h>
|
||||
#include <arch/kernel-stat.h>
|
||||
|
||||
#ifndef __MES_MODE_T
|
||||
#define __MES_MODE_T
|
||||
typedef int mode_t;
|
||||
#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 fstat (int filedes, struct stat *buf);
|
||||
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_IRUSR 00400
|
||||
|
||||
#define S_ISUID 04000
|
||||
#define S_ISUID 0400
|
||||
#define S_ISGID 02000
|
||||
#define S_IXGRP 00010
|
||||
#define S_IXOTH 00001
|
||||
|
|
50
kaem.run
50
kaem.run
|
@ -1,5 +1,5 @@
|
|||
#! /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.
|
||||
#
|
||||
|
@ -19,28 +19,23 @@
|
|||
# Usage:
|
||||
# kaem --verbose --strict
|
||||
|
||||
mes_cpu=${mes_cpu:-x86}
|
||||
stage0_cpu=${stage0_cpu:-x86}
|
||||
|
||||
mkdir -p m2
|
||||
|
||||
M2-Planet \
|
||||
--bootstrap-mode \
|
||||
--debug \
|
||||
--architecture ${stage0_cpu} \
|
||||
--architecture x86 \
|
||||
-f include/m2/lib.h \
|
||||
-f lib/linux/${mes_cpu}-mes-m2/crt1.c \
|
||||
-f lib/linux/${mes_cpu}-mes-m2/_exit.c \
|
||||
-f lib/linux/${mes_cpu}-mes-m2/_write.c \
|
||||
-f lib/linux/x86-mes-m2/crt1.c \
|
||||
-f lib/linux/x86-mes-m2/mini.c \
|
||||
-f lib/mes/globals.c \
|
||||
-f lib/m2/cast.c \
|
||||
-f lib/m2/exit.c \
|
||||
-f lib/mes/mini-write.c \
|
||||
-f lib/linux/${mes_cpu}-mes-m2/syscall.c \
|
||||
-f include/linux/${mes_cpu}/syscall.h \
|
||||
-f lib/linux/x86-mes-m2/syscall.c \
|
||||
-f include/linux/x86/syscall.h \
|
||||
-f lib/stub/__raise.c \
|
||||
-f lib/linux/brk.c \
|
||||
-f lib/m2/malloc.c \
|
||||
-f lib/stdlib/malloc.c \
|
||||
-f lib/string/memset.c \
|
||||
-f lib/m2/read.c \
|
||||
-f lib/mes/fdgetc.c \
|
||||
|
@ -53,7 +48,6 @@ M2-Planet \
|
|||
-f lib/mes/fdputc.c \
|
||||
-f lib/mes/eputc.c \
|
||||
\
|
||||
-f include/m2/types.h \
|
||||
-f include/mes/mes.h \
|
||||
-f include/mes/builtins.h \
|
||||
-f include/mes/constants.h \
|
||||
|
@ -82,20 +76,18 @@ M2-Planet \
|
|||
-f lib/mes/fdungetc.c \
|
||||
-f lib/posix/setenv.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/linux/ioctl3.c \
|
||||
-f lib/m2/isatty.c \
|
||||
-f lib/linux/fork.c \
|
||||
-f lib/m2/execve.c \
|
||||
-f lib/linux/execve.c \
|
||||
-f lib/m2/execv.c \
|
||||
-f lib/m2/waitpid.c \
|
||||
-f lib/linux/waitpid.c \
|
||||
-f lib/linux/gettimeofday.c \
|
||||
-f lib/m2/clock_gettime.c \
|
||||
-f lib/m2/time.c \
|
||||
-f lib/linux/_getcwd.c \
|
||||
-f lib/m2/getcwd.c \
|
||||
-f lib/posix/getcwd.c \
|
||||
-f lib/linux/dup.c \
|
||||
-f lib/linux/dup2.c \
|
||||
-f lib/string/strcmp.c \
|
||||
|
@ -118,27 +110,29 @@ M2-Planet \
|
|||
-f src/string.c \
|
||||
-f src/struct.c \
|
||||
-f src/symbol.c \
|
||||
-f src/variable.c \
|
||||
-f src/vector.c \
|
||||
-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 \
|
||||
--architecture ${stage0_cpu} \
|
||||
--little-endian \
|
||||
-f lib/m2/${mes_cpu}/${mes_cpu}_defs.M1 \
|
||||
-f lib/${mes_cpu}-mes/${mes_cpu}.M1 \
|
||||
-f lib/linux/${mes_cpu}-mes-m2/crt1.M1 \
|
||||
--LittleEndian \
|
||||
--architecture x86 \
|
||||
-f lib/m2/x86/x86_defs.M1 \
|
||||
-f lib/x86-mes/x86.M1 \
|
||||
-f lib/linux/x86-mes-m2/crt1.M1 \
|
||||
-f m2/mes.M1 \
|
||||
-f m2/mes.blood-elf-M1 \
|
||||
-o m2/mes.hex2
|
||||
|
||||
mkdir -p bin
|
||||
hex2 \
|
||||
--architecture ${stage0_cpu} \
|
||||
--little-endian \
|
||||
--base-address 0x1000000 \
|
||||
-f lib/m2/${mes_cpu}/ELF-${mes_cpu}.hex2 \
|
||||
--LittleEndian \
|
||||
--architecture x86 \
|
||||
--BaseAddress 0x1000000 \
|
||||
--exec_enable \
|
||||
-f lib/linux/x86-mes/elf32-header.hex2 \
|
||||
-f m2/mes.hex2 \
|
||||
-o bin/mes-m2
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
### 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>
|
||||
###
|
||||
### This file is part of GNU Mes.
|
||||
|
@ -91,7 +91,6 @@ DEFINE mov____%r0,(%r1) 000081e5
|
|||
DEFINE mov____%r1,%r0 0100a0e1
|
||||
DEFINE mov____%r1,%r2 0120a0e1
|
||||
DEFINE mov____%esp,%r0 0d00a0e1
|
||||
DEFINE mov____%esp,%r3 0d30a0e1
|
||||
|
||||
# e59f9004 ldr r9, [pc, #4] ; <L1>
|
||||
# e5890000 str r0, [r9]
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
/* -*-comment-start: "//";comment-end:""-*-
|
||||
* GNU Mes --- Maxwell Equations of Software
|
||||
* Copyright © 2016,2017,2018 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
* Copyright © 2023 Rick Masters <grick23@gmail.com>
|
||||
*
|
||||
* This file is part of GNU Mes.
|
||||
*
|
||||
|
|
|
@ -24,5 +24,5 @@
|
|||
int
|
||||
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 (
|
||||
"mov %%ebp,%%eax\n\t"
|
||||
"add $4,%%eax\n\t"
|
||||
"mov (%%eax),%%eax\n\t"
|
||||
"movzbl (%%eax),%%eax\n\t"
|
||||
"add $3,%%eax\n\t"
|
||||
"shl $2,%%eax\n\t"
|
||||
"add %%ebp,%%eax\n\t"
|
||||
|
@ -64,7 +64,7 @@ _start ()
|
|||
|
||||
"mov %ebp,%eax\n\t"
|
||||
"add $4,%eax\n\t"
|
||||
"mov (%eax),%eax\n\t"
|
||||
"movzbl (%eax),%eax\n\t"
|
||||
"push %eax\n\t"
|
||||
|
||||
"call main\n\t"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/* -*-comment-start: "//";comment-end:""-*-
|
||||
* 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.
|
||||
*
|
||||
|
@ -37,7 +37,7 @@ _start ()
|
|||
asm ("mov____%ebp,%eax");
|
||||
asm ("add____$i8,%eax !4");
|
||||
|
||||
asm ("mov____(%eax),%eax");
|
||||
asm ("movzbl_(%eax),%eax");
|
||||
asm ("add____$i8,%eax !3");
|
||||
|
||||
asm ("shl____$i8,%eax !0x02");
|
||||
|
@ -51,7 +51,7 @@ _start ()
|
|||
|
||||
asm ("mov____%ebp,%eax");
|
||||
asm ("add____$i8,%eax !4");
|
||||
asm ("mov____(%eax),%eax");
|
||||
asm ("movzbl_(%eax),%eax");
|
||||
asm ("push___%eax");
|
||||
|
||||
main ();
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
/* -*-comment-start: "//";comment-end:""-*-
|
||||
* GNU Mes --- Maxwell Equations of Software
|
||||
* Copyright © 2017,2018,2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
* Copyright © 2021 Danny Milosavljevic <dannym@scratchpost.org>
|
||||
*
|
||||
* This file is part of GNU Mes.
|
||||
*
|
||||
|
@ -21,13 +20,8 @@
|
|||
|
||||
#include <mes/lib.h>
|
||||
|
||||
#if HAVE_LONG_LONG
|
||||
long long
|
||||
__divdi3 (long long a, long long b)
|
||||
#else
|
||||
long
|
||||
__divdi3 (long a, long b)
|
||||
#endif
|
||||
double
|
||||
__divdi3 (double a, double b)
|
||||
{
|
||||
#if !__TINYC__
|
||||
static int stub = 0;
|
||||
|
@ -35,7 +29,6 @@ __divdi3 (long a, long b)
|
|||
eputs ("__divdi3 stub\n");
|
||||
stub = 1;
|
||||
#endif
|
||||
// FIXME: Actually use long long
|
||||
long ai = a;
|
||||
long bi = b;
|
||||
#if __arm__ && __TINYC__
|
||||
|
@ -45,13 +38,8 @@ __divdi3 (long a, long b)
|
|||
#endif
|
||||
}
|
||||
|
||||
#if HAVE_LONG_LONG
|
||||
long long
|
||||
__moddi3 (long long a, long long b)
|
||||
#else
|
||||
long
|
||||
__moddi3 (long a, long b)
|
||||
#endif
|
||||
double
|
||||
__moddi3 (double a, double b)
|
||||
{
|
||||
#if !__TINYC__
|
||||
static int stub = 0;
|
||||
|
@ -59,7 +47,6 @@ __moddi3 (long a, long b)
|
|||
eputs ("__moddi3 stub\n");
|
||||
stub = 1;
|
||||
#endif
|
||||
// FIXME: Actually use long long
|
||||
long ai = a;
|
||||
long bi = b;
|
||||
#if __arm__ && __TINYC__
|
||||
|
@ -83,13 +70,12 @@ __udivdi3 (unsigned long a, long ah, unsigned long b)
|
|||
eputs ("__udivdi3 stub\n");
|
||||
stub = 1;
|
||||
#endif
|
||||
// FIXME: Actually use long long
|
||||
unsigned long ai = a;
|
||||
unsigned long bi = b;
|
||||
if (!b)
|
||||
return 0;
|
||||
#if __arm__ && __TINYC__
|
||||
return __mesabi_udiv (ai, bi);
|
||||
return __mesabi_idiv (ai, bi);
|
||||
#else
|
||||
return ai / bi;
|
||||
#endif
|
||||
|
@ -109,11 +95,10 @@ __umoddi3 (unsigned long a, long ah, unsigned long b)
|
|||
eputs ("__umoddi3 stub\n");
|
||||
stub = 1;
|
||||
#endif
|
||||
// FIXME: Actually use long long
|
||||
unsigned long ai = a;
|
||||
unsigned long bi = b;
|
||||
#if __arm__ && __TINYC__
|
||||
return __mesabi_umod (ai, bi);
|
||||
return __mesabi_imod (ai, bi);
|
||||
#else
|
||||
return ai % bi;
|
||||
#endif
|
||||
|
@ -136,7 +121,7 @@ __lshrdi3 (unsigned long a, long ah, long b)
|
|||
#else // __TINYC__
|
||||
for (int i = 0; i < b; i++)
|
||||
#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__
|
||||
a /= 2;
|
||||
#endif // !__arm__
|
||||
|
@ -182,7 +167,7 @@ __ashrdi3 (long a, long ah, long b)
|
|||
#else // __TINYC__
|
||||
for (int i = 0; i < b; i++)
|
||||
#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__
|
||||
a /= 2;
|
||||
#endif // !__arm__
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/* -*-comment-start: "//";comment-end:""-*-
|
||||
* 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.
|
||||
*
|
||||
|
@ -20,7 +20,7 @@
|
|||
|
||||
#include <mes/lib.h>
|
||||
#include <linux/syscall.h>
|
||||
#include <arch/syscall.h>
|
||||
#include <syscall.h>
|
||||
|
||||
char *
|
||||
_getcwd (char *buffer, size_t size)
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
*/
|
||||
|
||||
#include <linux/syscall.h>
|
||||
#include <arch/syscall.h>
|
||||
#include <syscall.h>
|
||||
#include <mes/lib.h>
|
||||
#include <fcntl.h>
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/* -*-comment-start: "//";comment-end:""-*-
|
||||
* 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.
|
||||
*
|
||||
|
@ -19,7 +19,7 @@
|
|||
*/
|
||||
|
||||
#include <linux/syscall.h>
|
||||
#include <arch/syscall.h>
|
||||
#include <syscall.h>
|
||||
#include <mes/lib.h>
|
||||
#include <fcntl.h>
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/* -*-comment-start: "//";comment-end:""-*-
|
||||
* 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.
|
||||
*
|
||||
|
@ -20,7 +20,7 @@
|
|||
|
||||
#include <mes/lib.h>
|
||||
#include <linux/syscall.h>
|
||||
#include <arch/syscall.h>
|
||||
#include <syscall.h>
|
||||
|
||||
int
|
||||
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:""-*-
|
||||
* 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.
|
||||
*
|
||||
|
@ -20,7 +20,7 @@
|
|||
|
||||
#include <mes/lib.h>
|
||||
#include <linux/syscall.h>
|
||||
#include <arch/syscall.h>
|
||||
#include <syscall.h>
|
||||
|
||||
long
|
||||
brk (void *addr)
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/* -*-comment-start: "//";comment-end:""-*-
|
||||
* 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.
|
||||
*
|
||||
|
@ -19,7 +19,7 @@
|
|||
*/
|
||||
|
||||
#include <linux/syscall.h>
|
||||
#include <arch/syscall.h>
|
||||
#include <syscall.h>
|
||||
|
||||
int
|
||||
chdir (char const *file_name)
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/* -*-comment-start: "//";comment-end:""-*-
|
||||
* 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.
|
||||
*
|
||||
|
@ -20,7 +20,7 @@
|
|||
|
||||
#include <mes/lib.h>
|
||||
#include <linux/syscall.h>
|
||||
#include <arch/syscall.h>
|
||||
#include <syscall.h>
|
||||
#include <sys/stat.h>
|
||||
|
||||
int
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/* -*-comment-start: "//";comment-end:""-*-
|
||||
* 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.
|
||||
*
|
||||
|
@ -20,7 +20,7 @@
|
|||
|
||||
#include <mes/lib.h>
|
||||
#include <linux/syscall.h>
|
||||
#include <arch/syscall.h>
|
||||
#include <syscall.h>
|
||||
#include <time.h>
|
||||
|
||||
int
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/* -*-comment-start: "//";comment-end:""-*-
|
||||
* 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.
|
||||
*
|
||||
|
@ -19,7 +19,7 @@
|
|||
*/
|
||||
|
||||
#include <linux/syscall.h>
|
||||
#include <arch/syscall.h>
|
||||
#include <syscall.h>
|
||||
#include <mes/lib.h>
|
||||
|
||||
int
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/* -*-comment-start: "//";comment-end:""-*-
|
||||
* 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.
|
||||
*
|
||||
|
@ -19,7 +19,7 @@
|
|||
*/
|
||||
|
||||
#include <linux/syscall.h>
|
||||
#include <arch/syscall.h>
|
||||
#include <syscall.h>
|
||||
|
||||
int
|
||||
dup (int old)
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/* -*-comment-start: "//";comment-end:""-*-
|
||||
* 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.
|
||||
*
|
||||
|
@ -19,7 +19,7 @@
|
|||
*/
|
||||
|
||||
#include <linux/syscall.h>
|
||||
#include <arch/syscall.h>
|
||||
#include <syscall.h>
|
||||
|
||||
int
|
||||
dup2 (int old, int new)
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/* -*-comment-start: "//";comment-end:""-*-
|
||||
* GNU Mes --- Maxwell Equations of Software
|
||||
* Copyright © 2016,2017,2018,2019,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.
|
||||
*
|
||||
|
@ -18,11 +18,15 @@
|
|||
* along with GNU Mes. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include <mes/lib.h>
|
||||
#include <linux/syscall.h>
|
||||
#include <arch/syscall.h>
|
||||
#include <syscall.h>
|
||||
|
||||
int
|
||||
execve (char const *file_name, char *const argv[], char *const env[])
|
||||
execve (char const *file_name, char **argv, char **env)
|
||||
{
|
||||
return _sys_call3 (SYS_execve, (long) file_name, (long) argv, (long) env);
|
||||
long long_file_name = cast_voidp_to_long (file_name);
|
||||
long long_argv = cast_voidp_to_long (argv);
|
||||
long long_env = cast_voidp_to_long (env);
|
||||
return _sys_call3 (SYS_execve, long_file_name, long_argv, long_env);
|
||||
}
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/* -*-comment-start: "//";comment-end:""-*-
|
||||
* 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.
|
||||
*
|
||||
|
@ -19,7 +19,7 @@
|
|||
*/
|
||||
|
||||
#include <linux/syscall.h>
|
||||
#include <arch/syscall.h>
|
||||
#include <syscall.h>
|
||||
#include <stdarg.h>
|
||||
|
||||
int
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/* -*-comment-start: "//";comment-end:""-*-
|
||||
* 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.
|
||||
*
|
||||
|
@ -19,7 +19,7 @@
|
|||
*/
|
||||
|
||||
#include <linux/syscall.h>
|
||||
#include <arch/syscall.h>
|
||||
#include <syscall.h>
|
||||
|
||||
int
|
||||
fork ()
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/* -*-comment-start: "//";comment-end:""-*-
|
||||
* 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.
|
||||
*
|
||||
|
@ -19,7 +19,7 @@
|
|||
*/
|
||||
|
||||
#include <linux/syscall.h>
|
||||
#include <arch/syscall.h>
|
||||
#include <syscall.h>
|
||||
#include <sys/stat.h>
|
||||
|
||||
int
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/* -*-comment-start: "//";comment-end:""-*-
|
||||
* 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.
|
||||
*
|
||||
|
@ -19,7 +19,7 @@
|
|||
*/
|
||||
|
||||
#include <linux/syscall.h>
|
||||
#include <arch/syscall.h>
|
||||
#include <syscall.h>
|
||||
|
||||
int
|
||||
fsync (int filedes)
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/* -*-comment-start: "//";comment-end:""-*-
|
||||
* 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.
|
||||
*
|
||||
|
@ -19,7 +19,7 @@
|
|||
*/
|
||||
|
||||
#include <linux/syscall.h>
|
||||
#include <arch/syscall.h>
|
||||
#include <syscall.h>
|
||||
#include <sys/types.h>
|
||||
|
||||
int
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/* -*-comment-start: "//";comment-end:""-*-
|
||||
* 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.
|
||||
*
|
||||
|
@ -19,7 +19,7 @@
|
|||
*/
|
||||
|
||||
#include <linux/syscall.h>
|
||||
#include <arch/syscall.h>
|
||||
#include <syscall.h>
|
||||
#include <unistd.h>
|
||||
|
||||
gid_t
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/* -*-comment-start: "//";comment-end:""-*-
|
||||
* 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.
|
||||
*
|
||||
|
@ -19,7 +19,7 @@
|
|||
*/
|
||||
|
||||
#include <linux/syscall.h>
|
||||
#include <arch/syscall.h>
|
||||
#include <syscall.h>
|
||||
#include <unistd.h>
|
||||
|
||||
uid_t
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/* -*-comment-start: "//";comment-end:""-*-
|
||||
* 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.
|
||||
*
|
||||
|
@ -19,7 +19,7 @@
|
|||
*/
|
||||
|
||||
#include <linux/syscall.h>
|
||||
#include <arch/syscall.h>
|
||||
#include <syscall.h>
|
||||
#include <unistd.h>
|
||||
|
||||
gid_t
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/* -*-comment-start: "//";comment-end:""-*-
|
||||
* 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.
|
||||
*
|
||||
|
@ -19,7 +19,7 @@
|
|||
*/
|
||||
|
||||
#include <linux/syscall.h>
|
||||
#include <arch/syscall.h>
|
||||
#include <syscall.h>
|
||||
#include <unistd.h>
|
||||
|
||||
pid_t
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/* -*-comment-start: "//";comment-end:""-*-
|
||||
* 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.
|
||||
*
|
||||
|
@ -19,7 +19,7 @@
|
|||
*/
|
||||
|
||||
#include <linux/syscall.h>
|
||||
#include <arch/syscall.h>
|
||||
#include <syscall.h>
|
||||
#include <unistd.h>
|
||||
|
||||
pid_t
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/* -*-comment-start: "//";comment-end:""-*-
|
||||
* 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.
|
||||
*
|
||||
|
@ -19,7 +19,7 @@
|
|||
*/
|
||||
|
||||
#include <linux/syscall.h>
|
||||
#include <arch/syscall.h>
|
||||
#include <syscall.h>
|
||||
#include <sys/resource.h>
|
||||
|
||||
int
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/* -*-comment-start: "//";comment-end:""-*-
|
||||
* 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.
|
||||
*
|
||||
|
@ -20,7 +20,7 @@
|
|||
|
||||
#include <mes/lib.h>
|
||||
#include <linux/syscall.h>
|
||||
#include <arch/syscall.h>
|
||||
#include <syscall.h>
|
||||
#include <sys/time.h>
|
||||
|
||||
int
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/* -*-comment-start: "//";comment-end:""-*-
|
||||
* 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.
|
||||
*
|
||||
|
@ -19,7 +19,7 @@
|
|||
*/
|
||||
|
||||
#include <linux/syscall.h>
|
||||
#include <arch/syscall.h>
|
||||
#include <syscall.h>
|
||||
#include <unistd.h>
|
||||
|
||||
uid_t
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/* -*-comment-start: "//";comment-end:""-*-
|
||||
* 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.
|
||||
*
|
||||
|
@ -19,7 +19,7 @@
|
|||
*/
|
||||
|
||||
#include <linux/syscall.h>
|
||||
#include <arch/syscall.h>
|
||||
#include <syscall.h>
|
||||
#include <stdarg.h>
|
||||
#include <sys/ioctl.h>
|
||||
|
||||
|
@ -33,3 +33,10 @@ ioctl (int filedes, unsigned long command, ...)
|
|||
va_end (ap);
|
||||
return r;
|
||||
}
|
||||
|
||||
int
|
||||
ioctl3 (int filedes, unsigned long command, long data)
|
||||
{
|
||||
int r = _sys_call3 (SYS_ioctl, filedes, command, data);
|
||||
return r;
|
||||
}
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
*/
|
||||
|
||||
#include <linux/syscall.h>
|
||||
#include <arch/syscall.h>
|
||||
#include <syscall.h>
|
||||
#include <mes/lib.h>
|
||||
|
||||
int
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/* -*-comment-start: "//";comment-end:""-*-
|
||||
* 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.
|
||||
*
|
||||
|
@ -19,7 +19,7 @@
|
|||
*/
|
||||
|
||||
#include <linux/syscall.h>
|
||||
#include <arch/syscall.h>
|
||||
#include <syscall.h>
|
||||
#include <unistd.h>
|
||||
|
||||
int
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/* -*-comment-start: "//";comment-end:""-*-
|
||||
* 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.
|
||||
*
|
||||
|
@ -19,7 +19,7 @@
|
|||
*/
|
||||
|
||||
#include <linux/syscall.h>
|
||||
#include <arch/syscall.h>
|
||||
#include <syscall.h>
|
||||
|
||||
int
|
||||
link (char const *old_name, char const *new_name)
|
||||
|
|
|
@ -20,7 +20,7 @@
|
|||
|
||||
#include <mes/lib.h>
|
||||
#include <linux/syscall.h>
|
||||
#include <arch/syscall.h>
|
||||
#include <syscall.h>
|
||||
#include <stdio.h>
|
||||
#include <sys/types.h>
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/* -*-comment-start: "//";comment-end:""-*-
|
||||
* 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.
|
||||
*
|
||||
|
@ -19,7 +19,7 @@
|
|||
*/
|
||||
|
||||
#include <linux/syscall.h>
|
||||
#include <arch/syscall.h>
|
||||
#include <syscall.h>
|
||||
#include <sys/stat.h>
|
||||
|
||||
int
|
||||
|
|
|
@ -1,42 +0,0 @@
|
|||
/* -*-comment-start: "//";comment-end:""-*-
|
||||
* GNU Mes --- Maxwell Equations of Software
|
||||
* Copyright © 2016,2017,2018,2019,2021 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
* Copyright © 2021 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/>.
|
||||
*/
|
||||
|
||||
#include <mes/lib.h>
|
||||
#include <string.h>
|
||||
#include <stddef.h>
|
||||
#include <stdint.h>
|
||||
|
||||
char *__brk = 0;
|
||||
|
||||
void *
|
||||
malloc (size_t size)
|
||||
{
|
||||
if (!__brk)
|
||||
__brk = cast_long_to_charp (brk (0));
|
||||
/* align what we give back. */
|
||||
__brk = (char*) (((uintptr_t) __brk
|
||||
+ sizeof (max_align_t) - 1) & -sizeof (max_align_t));
|
||||
if (brk (__brk + size) == -1)
|
||||
return 0;
|
||||
char *p = __brk;
|
||||
__brk = __brk + size;
|
||||
return p;
|
||||
}
|
|
@ -1,6 +1,6 @@
|
|||
/* -*-comment-start: "//";comment-end:""-*-
|
||||
* 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.
|
||||
*
|
||||
|
@ -19,7 +19,7 @@
|
|||
*/
|
||||
|
||||
#include <linux/syscall.h>
|
||||
#include <arch/syscall.h>
|
||||
#include <syscall.h>
|
||||
#include <sys/stat.h>
|
||||
|
||||
int
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/* -*-comment-start: "//";comment-end:""-*-
|
||||
* 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.
|
||||
*
|
||||
|
@ -19,7 +19,7 @@
|
|||
*/
|
||||
|
||||
#include <linux/syscall.h>
|
||||
#include <arch/syscall.h>
|
||||
#include <syscall.h>
|
||||
#include <sys/stat.h>
|
||||
|
||||
int
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/* -*-comment-start: "//";comment-end:""-*-
|
||||
* 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.
|
||||
*
|
||||
|
@ -19,7 +19,7 @@
|
|||
*/
|
||||
|
||||
#include <linux/syscall.h>
|
||||
#include <arch/syscall.h>
|
||||
#include <syscall.h>
|
||||
#include <time.h>
|
||||
#include <sys/time.h>
|
||||
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue