diff --git a/mes/module/mes/boot-6.mes b/mes/module/mes/boot-6.mes index 7fcf0853..d28cf78a 100644 --- a/mes/module/mes/boot-6.mes +++ b/mes/module/mes/boot-6.mes @@ -2199,26 +2199,6 @@ -;;; {with-fluids} -;;; - -;; with-fluids is a convenience wrapper for the builtin procedure -;; `with-fluids*'. The syntax is just like `let': -;; -;; (with-fluids ((fluid val) -;; ...) -;; body) - -(defmacro with-fluids (bindings . body) - (let ((fluids (map car bindings)) - (values (map cadr bindings))) - (if (and (= (length fluids) 1) (= (length values) 1)) - `(with-fluid* ,(car fluids) ,(car values) (lambda () ,@body)) - `(with-fluids* (list ,@fluids) (list ,@values) - (lambda () ,@body))))) - - - ;;; {Module System Macros} ;;; diff --git a/mes/module/mes/syntax.mes b/mes/module/mes/syntax.mes index f8229624..124bbc86 100644 --- a/mes/module/mes/syntax.mes +++ b/mes/module/mes/syntax.mes @@ -25,7 +25,15 @@ ;;; syntax-rules is adapted from scheme48-1.1/scheme/alt/syntax.scm ;;; Code: -(mes-use-module (mes scm)) + +(define-module (mes syntax) + #:export (define-syntax + define-syntax-rule + syntax-error + silent-syntax-error + id-pattern + let-syntax)) + (include-from-path "mes/syntax.scm") (define (syntax-error message thing) diff --git a/mes/module/srfi/srfi-14.mes b/mes/module/srfi/srfi-14.mes index 2e925ec5..cb465477 100644 --- a/mes/module/srfi/srfi-14.mes +++ b/mes/module/srfi/srfi-14.mes @@ -1,7 +1,7 @@ ;;; -*-scheme-*- ;;; GNU Mes --- Maxwell Equations of Software -;;; Copyright © 2016,2018 Jan (janneke) Nieuwenhuizen +;;; Copyright © 2016,2018,2020 Jan (janneke) Nieuwenhuizen ;;; ;;; This file is part of GNU Mes. ;;; @@ -24,6 +24,24 @@ ;;; Code: +(define-module (srfi srfi-14) + #:export (char-set + char-set? + char-set= + char-set:whitespace + char-set:digit + char-set:upper-case + char-set lst + string->char-set + string->char-set! + char-set-adjoin + char-set-contains? + char-set-complement + char-whitespace? + char-set-copy + char-upcase + char-downcase)) + ;; FIXME: have structs (define (char-set . x) (cons '*char-set* x)) diff --git a/mes/module/srfi/srfi-43.mes b/mes/module/srfi/srfi-43.mes index 5ab749cc..e6b78f18 100644 --- a/mes/module/srfi/srfi-43.mes +++ b/mes/module/srfi/srfi-43.mes @@ -1,7 +1,7 @@ ;;; -*-scheme-*- ;;; GNU Mes --- Maxwell Equations of Software -;;; Copyright © 2016,2018 Jan (janneke) Nieuwenhuizen +;;; Copyright © 2016,2018,2020 Jan (janneke) Nieuwenhuizen ;;; ;;; This file is part of GNU Mes. ;;; @@ -24,6 +24,10 @@ ;;; Code: +(define-module (srfi srfi-43) + #:export (vector-map + vector-for-each)) + (define (vector-map f v) (let* ((k (vector-length v)) (n (make-vector k))) diff --git a/tests/base.test b/tests/base.test index 37a459ec..00e9f178 100755 --- a/tests/base.test +++ b/tests/base.test @@ -1,7 +1,7 @@ #! /bin/sh # -*-scheme-*- if [ "$MES" != guile ]; then - MES_BOOT=boot-03.scm exec ${MES-mes} < $0 + MES_BOOT=boot-02.scm exec ${MES-bin/mes} < $0 fi exec ${MES-mes} --no-auto-compile -L ${0%/*} -L module -C module -e '(tests boot)' -s "$0" "$@" !# diff --git a/tests/boot.test b/tests/boot.test index 97a0ee18..97f22066 100755 --- a/tests/boot.test +++ b/tests/boot.test @@ -1,7 +1,7 @@ #! /bin/sh # -*-scheme-*- if [ "$MES" != guile ]; then - MES_BOOT=boot-02.scm exec ${MES-mes} < $0 + MES_BOOT=boot-02.scm exec ${MES-bin/mes} < $0 fi exec ${MES-mes} --no-auto-compile -L ${0%/*} -L module -C module -e '(tests boot)' -s "$0" "$@" !# diff --git a/tests/fluids.test b/tests/fluids.test index 76e54e66..92a7c90c 100755 --- a/tests/fluids.test +++ b/tests/fluids.test @@ -1,5 +1,7 @@ #! /bin/sh # -*-scheme-*- +MES_BOOT=boot-5.mes +export MES_BOOT exec ${MES-bin/mes} --no-auto-compile -L ${0%/*} -L module -C module -e '(tests fluids)' -s "$0" "$@" !# @@ -27,9 +29,6 @@ exec ${MES-bin/mes} --no-auto-compile -L ${0%/*} -L module -C module -e '(tests #:use-module (mes mes-0) #:use-module (mes test)) -(mes-use-module (mes fluids)) -(mes-use-module (mes test)) - (define a (make-fluid)) (define b (make-fluid)) (define c #f) diff --git a/tests/let-syntax.test b/tests/let-syntax.test index 52156b6d..bffcffe7 100755 --- a/tests/let-syntax.test +++ b/tests/let-syntax.test @@ -1,5 +1,7 @@ #! /bin/sh # -*-scheme-*- +MES_BOOT=boot-5.mes +export MES_BOOT exec ${MES-bin/mes} --no-auto-compile -L ${0%/*} -L module -C module -e '(tests let-syntax)' -s "$0" "$@" !# @@ -24,12 +26,8 @@ exec ${MES-bin/mes} --no-auto-compile -L ${0%/*} -L module -C module -e '(tests ;;; along with GNU Mes. If not, see . (define-module (tests let-syntax) - #:use-module (mes mes-0) #:use-module (mes test)) -(mes-use-module (mes syntax)) -(mes-use-module (mes test)) - (pass-if "first dummy" #t) (pass-if-not "second dummy" #f) diff --git a/tests/let.test b/tests/let.test index c7682c3a..0c936248 100755 --- a/tests/let.test +++ b/tests/let.test @@ -1,5 +1,7 @@ #! /bin/sh # -*-scheme-*- +MES_BOOT=boot-5.mes +export MES_BOOT exec ${MES-bin/mes} --no-auto-compile -L ${0%/*} -L module -C module -e '(tests let)' -s "$0" "$@" !# @@ -24,12 +26,8 @@ exec ${MES-bin/mes} --no-auto-compile -L ${0%/*} -L module -C module -e '(tests ;;; along with GNU Mes. If not, see . (define-module (tests let) - #:use-module (mes mes-0) #:use-module (mes test)) -(mes-use-module (mes let)) -(mes-use-module (mes test)) - (pass-if "first dummy" #t) (pass-if-not "second dummy" #f) diff --git a/tests/posix.test b/tests/posix.test index f231ed9f..07a43802 100755 --- a/tests/posix.test +++ b/tests/posix.test @@ -1,5 +1,7 @@ #! /bin/sh # -*-scheme-*- +MES_BOOT=boot-5.mes +export MES_BOOT exec ${MES-bin/mes} --no-auto-compile -L ${0%/*} -L module -C module -e '(tests srfi-13)' -s "$0" "$@" !# @@ -27,9 +29,6 @@ exec ${MES-bin/mes} --no-auto-compile -L ${0%/*} -L module -C module -e '(tests #:use-module (mes mes-0) #:use-module (mes test)) -(mes-use-module (srfi srfi-13)) -(mes-use-module (mes test)) - (pass-if "first dummy" #t) (pass-if-not "second dummy" #f) diff --git a/tests/srfi-13.test b/tests/srfi-13.test index 14280b62..d6537ad2 100755 --- a/tests/srfi-13.test +++ b/tests/srfi-13.test @@ -1,5 +1,7 @@ #! /bin/sh # -*-scheme-*- +MES_BOOT=boot-5.mes +export MES_BOOT exec ${MES-bin/mes} --no-auto-compile -L ${0%/*} -L module -C module -e '(tests srfi-13)' -s "$0" "$@" !# @@ -27,9 +29,6 @@ exec ${MES-bin/mes} --no-auto-compile -L ${0%/*} -L module -C module -e '(tests #:use-module (mes mes-0) #:use-module (mes test)) -(mes-use-module (srfi srfi-13)) -(mes-use-module (mes test)) - (pass-if "first dummy" #t) (pass-if-not "second dummy" #f) diff --git a/tests/srfi-14.test b/tests/srfi-14.test index 1cf24882..1009690e 100755 --- a/tests/srfi-14.test +++ b/tests/srfi-14.test @@ -1,5 +1,7 @@ #! /bin/sh # -*-scheme-*- +MES_BOOT=boot-5.mes +export MES_BOOT exec ${MES-bin/mes} --no-auto-compile -L ${0%/*} -L module -C module -e '(tests srfi-14)' -s "$0" "$@" !# @@ -28,9 +30,6 @@ exec ${MES-bin/mes} --no-auto-compile -L ${0%/*} -L module -C module -e '(tests #:use-module (mes mes-0) #:use-module (mes test)) -(mes-use-module (srfi srfi-14)) -(mes-use-module (mes test)) - (pass-if "first dummy" #t) (pass-if-not "second dummy" #f) diff --git a/tests/srfi-16.test b/tests/srfi-16.test index 8da5ba15..93a49f9c 100755 --- a/tests/srfi-16.test +++ b/tests/srfi-16.test @@ -1,5 +1,7 @@ #! /bin/sh # -*-scheme-*- +MES_BOOT=boot-5.mes +export MES_BOOT exec ${MES-bin/mes} --no-auto-compile -L ${0%/*} -L module -C module -e '(tests srfi-16)' -s "$0" "$@" !# @@ -24,12 +26,8 @@ exec ${MES-bin/mes} --no-auto-compile -L ${0%/*} -L module -C module -e '(tests ;;; along with GNU Mes. If not, see . (define-module (tests srfi-16) - #:use-module (mes mes-0) #:use-module (mes test)) -(mes-use-module (srfi srfi-16)) -(mes-use-module (mes test)) - (pass-if "first dummy" #t) (pass-if-not "second dummy" #f) diff --git a/tests/srfi-43.test b/tests/srfi-43.test index 8d89ead8..4775aea3 100755 --- a/tests/srfi-43.test +++ b/tests/srfi-43.test @@ -1,12 +1,14 @@ #! /bin/sh # -*-scheme-*- +MES_BOOT=boot-5.mes +export MES_BOOT exec ${MES-bin/mes} --no-auto-compile -L ${0%/*} -L module -C module -e '(tests srfi-43)' -s "$0" "$@" !# ;;; -*-scheme-*- ;;; GNU Mes --- Maxwell Equations of Software -;;; Copyright © 2018 Jan (janneke) Nieuwenhuizen +;;; Copyright © 2018,2020 Jan (janneke) Nieuwenhuizen ;;; ;;; This file is part of GNU Mes. ;;; @@ -25,12 +27,8 @@ exec ${MES-bin/mes} --no-auto-compile -L ${0%/*} -L module -C module -e '(tests (define-module (tests srfi-43) #:use-module (srfi srfi-43) - #:use-module (mes mes-0) #:use-module (mes test)) -(mes-use-module (srfi srfi-43)) -(mes-use-module (mes test)) - (pass-if "first dummy" #t) (pass-if-not "second dummy" #f) diff --git a/tests/srfi-9.test b/tests/srfi-9.test index 89d090bc..1a840c2e 100755 --- a/tests/srfi-9.test +++ b/tests/srfi-9.test @@ -38,15 +38,7 @@ exec ${MES-bin/mes} --no-auto-compile -L ${0%/*} -L module -C module -e '(tests ;; bootstrap test (primitive-load "module/mes/test.scm") (primitive-load "mes/module/srfi/srfi-9-struct.mes") - (primitive-load "mes/module/srfi/srfi-9/gnu-struct.mes") - (define-macro (mes-use-module . rest) #t) - - ;; (primitive-load "mes/module/srfi/srfi-9-vector.mes") - ;; (primitive-load "mes/module/srfi/srfi-9/gnu-vector.mes") - - (mes-use-module (srfi srfi-9)) - (mes-use-module (srfi srfi-9 gnu)) - (mes-use-module (mes test))) + (primitive-load "mes/module/srfi/srfi-9/gnu-struct.mes")) (else)) (pass-if "first dummy" #t) diff --git a/tests/syntax.test b/tests/syntax.test index 8e5c4005..b1c459fe 100755 --- a/tests/syntax.test +++ b/tests/syntax.test @@ -1,5 +1,7 @@ #! /bin/sh # -*-scheme-*- +MES_BOOT=boot-5.mes +export MES_BOOT exec ${MES-bin/mes} --no-auto-compile -L ${0%/*} -L module -C module -e '(tests syntax)' -s "$0" "$@" !# @@ -27,9 +29,6 @@ exec ${MES-bin/mes} --no-auto-compile -L ${0%/*} -L module -C module -e '(tests #:use-module (mes mes-0) #:use-module (mes test)) -(mes-use-module (mes test)) -(mes-use-module (mes syntax)) - (pass-if "first dummy" #t) (pass-if-not "second dummy" #f) diff --git a/tests/vector.test b/tests/vector.test index 4f51489d..1c0d6fdb 100755 --- a/tests/vector.test +++ b/tests/vector.test @@ -1,5 +1,7 @@ #! /bin/sh # -*-scheme-*- +MES_BOOT=boot-5.mes +export MES_BOOT exec ${MES-bin/mes} --no-auto-compile -L ${0%/*} -L module -C module -e '(tests vector)' -s "$0" "$@" !# @@ -27,9 +29,6 @@ exec ${MES-bin/mes} --no-auto-compile -L ${0%/*} -L module -C module -e '(tests #:use-module (mes mes-0) #:use-module (mes test)) -(mes-use-module (mes scm)) -(mes-use-module (mes test)) - (pass-if "first dummy" #t) (pass-if-not "second dummy" #f)