diff --git a/BOOTSTRAP b/BOOTSTRAP index 184bbf7c..1d564ed1 100644 --- a/BOOTSTRAP +++ b/BOOTSTRAP @@ -1,4 +1,11 @@ -bootstrappable.org project -*- org -*- + -*- org -*- +#+TITLE: bootstrappable.org project + +Copyright © 2016, 2017, 2018 Jan (janneke) Nieuwenhuizen + + Copying and distribution of this file, with or without modification, + are permitted in any medium without royalty provided the copyright + notice and this notice are preserved. * What? ** Full source bootstrapping for GuixSD @@ -93,7 +100,6 @@ be source. * TODO ** upstream mes-boot to GuixSD. -** add full source gcc-4.7 package build. ** replace GuixSD bootstrap for x86. ** remove or upstream patches from tcc-boot ** prepare src/mes.c for M2-Planet transpiler. @@ -103,6 +109,7 @@ be source. ** x86_64, arm, the Hurd * DONE +** add full source gcc-4.7 package build. ** bootstrap gcc+glibc-built binutils-20.1, gcc-4.1.0. ** have tcc-boot compile gnutools triplet: binutils-2.14, gcc-2.95.3, glibc-2.2.5. ** have tcc-boot's mes-tcc compile a fully functional tcc diff --git a/ChangeLog b/ChangeLog index eafd8df5..9dc382ae 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,4 +1,12 @@ + -*- org -*- + +#+TITLE: ChangeLog + +Copyright © 2016,2017,2018 Jan (janneke) Nieuwenhuizen + + Copying and distribution of this file, with or without modification, + are permitted in any medium without royalty provided the copyright + notice and this notice are preserved. + Normally a ChangeLog is generated at "make dist" time and available in source tarballs. - -If not, see the Git commit log at diff --git a/build-aux/GNUmakefile.in b/build-aux/GNUmakefile.in index 2c5985e3..1495caf3 100644 --- a/build-aux/GNUmakefile.in +++ b/build-aux/GNUmakefile.in @@ -242,7 +242,9 @@ tree-clean-p: @echo commit:$(COMMIT) generate-ChangeLog: - $(PERL) ${srcdest}build-aux/gitlog-to-changelog --srcdir=${srcdir} > ChangeLog + $(PERL) ${srcdest}build-aux/gitlog-to-changelog --srcdir=${srcdir} > $@ + cat ChangeLog >> generate-ChangeLog + mv generate-ChangeLog ChangeLog $(TARBALL): .tarball-version | generate-ChangeLog ($(GIT_LS_FILES)\ diff --git a/build-aux/check-boot.sh b/build-aux/check-boot.sh index 9a4be705..114c4e27 100755 --- a/build-aux/check-boot.sh +++ b/build-aux/check-boot.sh @@ -103,6 +103,7 @@ tests=" 4c-quasiquote.scm 4d-let-map.scm 4e-let-global.scm +4f-string-split.scm 50-primitive-load.scm 51-module.scm diff --git a/doc/GNU-EVAL-APPLY b/doc/GNU-EVAL-APPLY deleted file mode 100644 index fbee8489..00000000 --- a/doc/GNU-EVAL-APPLY +++ /dev/null @@ -1,135 +0,0 @@ -* General Information -** Do you agree to follow GNU policies? - -Yes, of course. - -** Package name and version: - -Mes 0.16 - -** Author Full Name : - -Jan (janneke) Nieuwenhuizen - -** URL to package home page (if any): https://gitlab.com/janneke/mes - -I'm happy to move to savannah when Mes becomes a GNU package. - -** URL to source tarball: - -https://gitlab.com/janneke/mes/-/archive/v0.16/mes-0.16.tar.gz - -or: git clone https://gitlab.com/janneke/mes - -** Brief description of the package: - -Mes aims to help create full source bootstrapping for GuixSD as part of -the bootstrappable builds effort (See https://bootstrappable.org/). - -It currently consists of a mutual self-hosting Scheme interpreter -prototype written in C and a Nyacc-based C compiler written in Scheme. -This C prototype is being simplified to be transpiled by M2-Planet. - -Mes+MesCC can compile an only lighty 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-4.1.0. - -* Code -** Dependencies: - -Mes can be built as a regular package, or as part of the full source -(currently: reduced binary seed) bootstrap process. - -*** Regular build - - - https://github.com/mescc-tools, 0.5 is known to work. - - https://savannah.gnu.org/projects/nyacc, 0.80.42 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.2 is known to work. - - git, 2.10 is known to work. - - Perl, 5.22 is known to work. - -*** Bootstrap build - - - https://github.com/oriansj/mescc-tools, 0.5 is known to work. - - https://savannah.gnu.org/projects/nyacc, 0.80.42 is known to work. - - https://gitlab.com/janneke/mes-seed, 0.16 is known to work. - -** Configuration, building, installation: - -*** Guix build, install - - guix build mes, guix package --install mes - -*** Regular build - - ./configure; make; make check; make install - -*** Bootstrap build - - - sh build.sh - sh check.sh - sh install.sh - -** Documentation: - -Mes does not yet have any documentation other than AUTHORS, HACKING, -INSTALL, NEWS, README. When it does, it will be in Texinfo: I live in -Emacs. I have initiated the GNU LilyPond documentation and website, -which are written in texinfo. - -** Internationalization: - -Mes does not have Internationalization. As it's an early bootstrap -package, it's unsure if it will ever get that. I do have experience -with adding Internationalization to GNU LilyPond. - -** Accessibility: - -None. - -** Security: - -Mes will be used as a critical link in our GNU bootstrapping chain. -It is essential for Mes to get a proper review before it is put in -place. - -* Licensing: - -GNU GPL 3, or later. - -* Similar free software projects: - -There are similarities with GNU Guile and to a lesser extent also with -MIT/GNU Scheme and SCM; in fact Mes' scheme tries to be compatible with -Guile Scheme. GNU Guile is about 30x faster than Mes. - -The main difference is that mes.c is ~5,000LOC of very simple C and can -can be bootstrapped almost entirely from source, without any binary -seed. Currently, it needs a ~1MB ASSCI seed. - -Guile is ~100,000LOC of full-blown C, not counting its dependencies -such as libgc. - -Another difference with regular Scheme implementations, is that Mes does -not strive for RXRS compliance, instead it strives for minimalism and -Guile compatibility. - -If in doubt, please contact the GuixSD or Guile maintainers. - -* Any other information, comments, or questions: - -I am an original author of GNU LilyPond and current GuixSD developer. I -have regular discussions about Mes and GuixSD with GuixSD and Guile -maintainers. - -Mes currently targets only x86-linux, I would like some help to look at -other architectures and esp. at targeting the Hurd. - -Greetings, -janneke diff --git a/doc/ANNOUNCE b/doc/announce/ANNOUNCE similarity index 100% rename from doc/ANNOUNCE rename to doc/announce/ANNOUNCE diff --git a/doc/ANNOUNCE-0.10 b/doc/announce/ANNOUNCE-0.10 similarity index 100% rename from doc/ANNOUNCE-0.10 rename to doc/announce/ANNOUNCE-0.10 diff --git a/doc/ANNOUNCE-0.11 b/doc/announce/ANNOUNCE-0.11 similarity index 100% rename from doc/ANNOUNCE-0.11 rename to doc/announce/ANNOUNCE-0.11 diff --git a/doc/ANNOUNCE-0.12 b/doc/announce/ANNOUNCE-0.12 similarity index 100% rename from doc/ANNOUNCE-0.12 rename to doc/announce/ANNOUNCE-0.12 diff --git a/doc/ANNOUNCE-0.13 b/doc/announce/ANNOUNCE-0.13 similarity index 100% rename from doc/ANNOUNCE-0.13 rename to doc/announce/ANNOUNCE-0.13 diff --git a/doc/ANNOUNCE-0.14 b/doc/announce/ANNOUNCE-0.14 similarity index 100% rename from doc/ANNOUNCE-0.14 rename to doc/announce/ANNOUNCE-0.14 diff --git a/doc/ANNOUNCE-0.15 b/doc/announce/ANNOUNCE-0.15 similarity index 100% rename from doc/ANNOUNCE-0.15 rename to doc/announce/ANNOUNCE-0.15 diff --git a/doc/ANNOUNCE-0.16 b/doc/announce/ANNOUNCE-0.16 similarity index 100% rename from doc/ANNOUNCE-0.16 rename to doc/announce/ANNOUNCE-0.16 diff --git a/doc/ANNOUNCE-0.3 b/doc/announce/ANNOUNCE-0.3 similarity index 100% rename from doc/ANNOUNCE-0.3 rename to doc/announce/ANNOUNCE-0.3 diff --git a/doc/ANNOUNCE-0.4 b/doc/announce/ANNOUNCE-0.4 similarity index 100% rename from doc/ANNOUNCE-0.4 rename to doc/announce/ANNOUNCE-0.4 diff --git a/doc/ANNOUNCE-0.5 b/doc/announce/ANNOUNCE-0.5 similarity index 100% rename from doc/ANNOUNCE-0.5 rename to doc/announce/ANNOUNCE-0.5 diff --git a/doc/ANNOUNCE-0.6 b/doc/announce/ANNOUNCE-0.6 similarity index 100% rename from doc/ANNOUNCE-0.6 rename to doc/announce/ANNOUNCE-0.6 diff --git a/doc/ANNOUNCE-0.7 b/doc/announce/ANNOUNCE-0.7 similarity index 100% rename from doc/ANNOUNCE-0.7 rename to doc/announce/ANNOUNCE-0.7 diff --git a/doc/ANNOUNCE-0.8 b/doc/announce/ANNOUNCE-0.8 similarity index 100% rename from doc/ANNOUNCE-0.8 rename to doc/announce/ANNOUNCE-0.8 diff --git a/doc/ANNOUNCE-0.9 b/doc/announce/ANNOUNCE-0.9 similarity index 100% rename from doc/ANNOUNCE-0.9 rename to doc/announce/ANNOUNCE-0.9 diff --git a/doc/ANNOUNCE-2 b/doc/announce/ANNOUNCE-2 similarity index 100% rename from doc/ANNOUNCE-2 rename to doc/announce/ANNOUNCE-2 diff --git a/doc/announce/README b/doc/announce/README new file mode 100644 index 00000000..062335a8 --- /dev/null +++ b/doc/announce/README @@ -0,0 +1,11 @@ + -*- org -*- +#+TITLE: GNU Mes Announcements + +Copyright © 2016, 2017, 2018 Jan (janneke) Nieuwenhuizen + + Copying and distribution of this file, with or without modification, + are permitted in any medium without royalty provided the copyright + notice and this notice are preserved. + +Files are emails sent to public mailing lists. The notice above +applies to these files too. \ No newline at end of file diff --git a/doc/UPDATE-0.13 b/doc/announce/UPDATE-0.13 similarity index 100% rename from doc/UPDATE-0.13 rename to doc/announce/UPDATE-0.13 diff --git a/doc/fosdem/README b/doc/fosdem/README index 262c9d36..99426056 100644 --- a/doc/fosdem/README +++ b/doc/fosdem/README @@ -1,9 +1,45 @@ -All files except the files listed below + -*- org -*- +#+TITLE: Talk @Fosdem 2017 + Copyright © 2017 Jan (janneke) Nieuwenhuizen -Images imported from GNU Guix + Copying and distribution of this file, with or without modification, + are permitted in any medium without royalty provided the copyright + notice and this notice are preserved. + +This talk is +Copyright © 2017 Jan (janneke) Nieuwenhuizen + +Permission is granted to copy, distribute and/or modify this talk +under the terms of the GNU Free Documentation License, Version 1.3 or +any later version published by the Free Software Foundation; with no +Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A +copy of the license is included in doc/fdl-1.3.texi, included in the +manual in the section entitled ``GNU Free Documentation License''. + +beamercolorthemeX.sty +beamerthemeX.sty bootstrap-graph.png +egg.jpeg +egg.png +egg.xcf +fosdem.org +fosdem.pdf +fsb-logo-guile-guix-gnu.png +fsb-logo-guile-guix-gnu.xcf +fsb-logo-guile-guix-mes.png +fsb-logo-guile-guix-mes.xcf +fsb-logo.png +guix-build-bootstrap-tarballs.log +mes.png +mes.xcf +bootstrap-graph.png + GuixSD.png +Copyright © 2015 Luis Felipe López Acevedo +Permission is granted to copy, distribute and/or modify +this work under the terms of the Creative Commons +Attribution-ShareAlike 4.0 International License. One page from http://www.softwarepreservation.org/projects/LISP/book/LISP%25201.5%2520Programmers%2520Manual.pdf @@ -13,4 +49,4 @@ purpose of the of the United States Government. LISP-1.5-page-13.png LISP-1.5-page-13-bottom.png -LISP-1.5-page-13.pdf \ No newline at end of file +LISP-1.5-page-13.pdf diff --git a/doc/fosdem/fosdem.org b/doc/fosdem/fosdem.org index 41ce13f7..0bed9504 100644 --- a/doc/fosdem/fosdem.org +++ b/doc/fosdem/fosdem.org @@ -1,8 +1,10 @@ -#+TITLE: Mes +#+TITLE: GNU Mes #+TITLE: \\\smaller[2]{Maxwell Equations of Software} #+DATE:2017-02-05 #+EMAIL: janneke@gnu.org #+AUTHOR: janneke@gnu.org +#+COPYRIGHT: Jan (janneke) Nieuwenhuizen +#+LICENSE: GNU Free Documentation License, version 1.3 or later. #+LATEX_HEADER:\institute{FOSDEM'17} #+LATEX_HEADER:\def\ahref#1#2{\htmladdnormallink{#2}{#1}} #+OPTIONS: H:2 @@ -69,7 +71,7 @@ * NOT an alternative for Guile -- reuse Guile modules * Mes, WHY? - + ** Inspiration: what do you want? *** Meaning, Autonomy, Co-Creation, Self-Realization @@ -500,11 +502,11 @@ int main () *** December 25: \ahref{https://lists.gnu.org/archive/html/guile-user/2016-12/msg00041.html}{Mes 0.4 released} # https://gnunet.org/bot/log/guile/2016-12-25 * run Nyacc, PEG, reduced core - + ** Status *** core C prototype: 1150 lines -*** non-essential C sources: +*** non-essential C sources: #+BEGIN_SRC bash 210 lib.c 157 math.c @@ -546,10 +548,10 @@ program[10]: (cons(0(1))) ** Status -*** +*** #+BEGIN_SRC bash -01:16:51 janneke@dundal:~/src/mes +01:16:51 janneke@dundal:~/src/mes $ guix package -f guix.scm The following package will be upgraded: mes 0.4.f84e97fc -> 0.4.f84e97fc /gnu/store/2fsy1cd24pnwkv7a1zd0anzk3zz8ysdn-mes-0.4.f84e97fc @@ -646,3 +648,18 @@ R5RS to x86 Assembly # C-c C-e l b (org-beamer-export-to-latex) # C-c C-e l P (org-beamer-export-to-pdf) + +* Legalese + :PROPERTIES: + :COPYING: t + :END: + + Copyright \copy 2017 Jan (janneke) Nieuwenhuizen + + #+BEGIN_QUOTE + Permission is granted to copy, distribute and/or modify this + document under the terms of the GNU Free Documentation License, + Version 1.3 or any later version published by the Free Software + Foundation; with no Invariant Sections, with no Front-Cover Texts, + and with no Back-Cover Texts. + #+END_QUOTE diff --git a/doc/fosdem/fosdem.pdf b/doc/fosdem/fosdem.pdf index c6ab157f..a127c9ba 100644 Binary files a/doc/fosdem/fosdem.pdf and b/doc/fosdem/fosdem.pdf differ diff --git a/doc/images/README b/doc/images/README index e69de29b..103ec155 100644 --- a/doc/images/README +++ b/doc/images/README @@ -0,0 +1,14 @@ + -*- org -*- +#+TITLE: GNU Mes images + +Copyright © 2018 Jan (janneke) Nieuwenhuizen + + Copying and distribution of this file, with or without modification, + are permitted in any medium without royalty provided the copyright + notice and this notice are preserved. + +gcc-mesboot-graph.dot +This graph is generated from Guix wip-bootstrap, doing: +sed -i s,package-with-bootstrap-guile,identity, gnu/packages/{commencement,mes}.scm +~/src/guix-bootstrap/pre-inst-env guix graph gcc-mesboot > doc/images/gcc-mesboot-graph.dot +dot -T png doc/images/gcc-mesboot-graph.dot > doc/images/gcc-mesboot-graph.png diff --git a/mes/module/mes/psyntax.pp b/mes/module/mes/psyntax.pp index f155f068..b81bad59 100644 --- a/mes/module/mes/psyntax.pp +++ b/mes/module/mes/psyntax.pp @@ -1,3 +1,27 @@ +;;; -*-scheme-*- +;;; GNU Mes --- Maxwell Equations of Software +;;; Copyright (C) 2016, 2017, 2018 Free Software Foundation, Inc. +;;; +;;; 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 . + +;;; Commentary: + +;;; This file is generated from psyntax.ss. + +;;; Code: (letrec ((syntmp-lambda-var-list-167 (lambda (syntmp-vars-552) (let syntmp-lvl-553 ((syntmp-vars-554 syntmp-vars-552) @@ -9626,4 +9650,3 @@ syntmp-tmp-2044 '(any any)))) syntmp-x-2043))) - diff --git a/mes/module/mes/psyntax.pp.header b/mes/module/mes/psyntax.pp.header new file mode 100644 index 00000000..b5bfd48d --- /dev/null +++ b/mes/module/mes/psyntax.pp.header @@ -0,0 +1,24 @@ +;;; -*-scheme-*- +;;; GNU Mes --- Maxwell Equations of Software +;;; Copyright (C) 2016, 2017, 2018 Free Software Foundation, Inc. +;;; +;;; 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 . + +;;; Commentary: + +;;; This file is generated from psyntax.ss. + +;;; Code: diff --git a/scaffold/b-0.mes b/scaffold/b-0.mes deleted file mode 100644 index 52f2e810..00000000 --- a/scaffold/b-0.mes +++ /dev/null @@ -1,15 +0,0 @@ -;;; -*-scheme-*- -(define (newline) (core:display "\n")) -(core:display "b-00\n") -(define save (current-input-port)) -(core:display "save=")(core:display save)(newline) -(core:display "b-0111\n") -(set-current-input-port (open-input-file "scaffold/t-0.mes")) -;;(set-current-input-port (open-input-file "mes/t-0.mes")) -(core:display "ipp=")(core:display (current-input-port))(newline) -(core:display "b-02\n") -(primitive-load) -(core:display "b-03\n") -(set-current-input-port save) -(core:display "b-04\n") -"42\n" diff --git a/scaffold/boot/2f-define-second-lambda.scm b/scaffold/boot/2f-define-second-lambda.scm index 814609e7..9901b750 100644 --- a/scaffold/boot/2f-define-second-lambda.scm +++ b/scaffold/boot/2f-define-second-lambda.scm @@ -1,3 +1,21 @@ +;;; GNU Mes --- Maxwell Equations of Software +;;; Copyright © 2018 Jan (janneke) Nieuwenhuizen +;;; +;;; 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 . + (define display core:display) (define write core:write) diff --git a/scaffold/boot/39-global-define-override.scm b/scaffold/boot/39-global-define-override.scm index c904c4c3..c1e5e756 100644 --- a/scaffold/boot/39-global-define-override.scm +++ b/scaffold/boot/39-global-define-override.scm @@ -1,3 +1,21 @@ +;;; GNU Mes --- Maxwell Equations of Software +;;; Copyright © 2018 Jan (janneke) Nieuwenhuizen +;;; +;;; 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 . + (define (read) 1) (define read (lambda () 0)) (exit (read)) diff --git a/scaffold/boot/3a-global-define-lambda-override.scm b/scaffold/boot/3a-global-define-lambda-override.scm index 11cbd540..ecf84e6d 100644 --- a/scaffold/boot/3a-global-define-lambda-override.scm +++ b/scaffold/boot/3a-global-define-lambda-override.scm @@ -1,3 +1,21 @@ +;;; GNU Mes --- Maxwell Equations of Software +;;; Copyright © 2018 Jan (janneke) Nieuwenhuizen +;;; +;;; 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 . + (define (read) 1) (exit ((lambda () diff --git a/scaffold/boot/4e-string-split.scm b/scaffold/boot/4f-string-split.scm similarity index 78% rename from scaffold/boot/4e-string-split.scm rename to scaffold/boot/4f-string-split.scm index c2ebb3e1..98a28f61 100644 --- a/scaffold/boot/4e-string-split.scm +++ b/scaffold/boot/4f-string-split.scm @@ -1,3 +1,20 @@ +;;; GNU Mes --- Maxwell Equations of Software +;;; Copyright © 2018 Jan (janneke) Nieuwenhuizen +;;; +;;; 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 . (define (cons* . rest) (if (null? (cdr rest)) (car rest) diff --git a/scaffold/boot/numbers.scm b/scaffold/boot/numbers.scm index 1db52913..c760620c 100644 --- a/scaffold/boot/numbers.scm +++ b/scaffold/boot/numbers.scm @@ -1 +1,19 @@ +;;; GNU Mes --- Maxwell Equations of Software +;;; Copyright © 2018 Jan (janneke) Nieuwenhuizen +;;; +;;; 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 . + (cdr '(0 . 1)) diff --git a/scaffold/gc.scm b/scaffold/gc.scm index c2505909..a1df1b01 100644 --- a/scaffold/gc.scm +++ b/scaffold/gc.scm @@ -1,3 +1,20 @@ +;;; GNU Mes --- Maxwell Equations of Software +;;; Copyright © 2016,2018 Jan (janneke) Nieuwenhuizen +;;; +;;; 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 . (define-module (guile gc)) @@ -212,7 +229,7 @@ (if (eq? scan gc-free) (gc-flip) (let ((old (vector-ref new-cars scan))) (let ((new (gc-relocate old))) - (let ((old (gc-update-car scan new))) + (let ((old (gc-update-car scan new))) (let ((new (gc-relocate old))) (let ((scan (gc-update-cdr scan new))) (gc-loop scan)))))))) @@ -230,7 +247,7 @@ (define (gc-relocate old) ; old -> new (display "gc-relocate old=") (display old) (newline) (display "gc-relocate old is pair?=") (display (gc-pair? old)) (newline) - + (if (not (gc-pair? old)) old (let ((oldcr (vector-ref the-cars (cell-index old)))) (display "gc-relocate oldcr=") (display oldcr) (newline)