diff --git a/mes/module/mes/boot-6.mes b/mes/module/mes/boot-6.mes index ee0a2be6..154e4e30 100644 --- a/mes/module/mes/boot-6.mes +++ b/mes/module/mes/boot-6.mes @@ -2156,26 +2156,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/guile.mes b/mes/module/mes/guile.mes index ec5c880b..e2bd3666 100644 --- a/mes/module/mes/guile.mes +++ b/mes/module/mes/guile.mes @@ -44,6 +44,9 @@ (define-macro (defmacro name args . body) `(define-macro ,(cons name args) ,@body)) +(define-macro (set-object-property! object key value) + object) + (define-macro (set-procedure-property! proc key value) proc) 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/module/mes/test.scm b/module/mes/test.scm index a066095b..9b6ded76 100644 --- a/module/mes/test.scm +++ b/module/mes/test.scm @@ -36,6 +36,7 @@ result seq? ; deprecated sequal? ; deprecated + sequal2? ;deprecated )) (cond-expand diff --git a/tests/base.test b/tests/base.test index 37a459ec..0dedbf49 100755 --- a/tests/base.test +++ b/tests/base.test @@ -1,9 +1,9 @@ #! /bin/sh -# -*-scheme-*- +-*-scheme-*- if [ "$MES" != guile ]; then - MES_BOOT=boot-03.scm exec ${MES-mes} < $0 + MES_BOOT=boot-03.scm exec ${MES-bin/mes} < $0 fi -exec ${MES-mes} --no-auto-compile -L ${0%/*} -L module -C module -e '(tests boot)' -s "$0" "$@" +exec ${MES-bin/mes} --no-auto-compile -L ${0%/*} -L module -C module -e '(tests boot)' -s "$0" "$@" !# ;;; -*-scheme-*- 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/catch.test b/tests/catch.test index a4510369..6861086e 100755 --- a/tests/catch.test +++ b/tests/catch.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 catch)' -s "$0" "$@" !# ;;; -*-scheme-*- ;;; GNU Mes --- Maxwell Equations of Software -;;; Copyright © 2016 Jan (janneke) Nieuwenhuizen +;;; Copyright © 2016,2020 Jan (janneke) Nieuwenhuizen ;;; ;;; This file is part of GNU Mes. ;;; @@ -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 base) - #:use-module (mes mes-0) #:use-module (mes test)) -(mes-use-module (mes catch)) -(mes-use-module (mes test)) - (pass-if "first dummy" #t) (pass-if-not "second dummy" #f) diff --git a/tests/closure.test b/tests/closure.test index 36d001ab..3a36d436 100755 --- a/tests/closure.test +++ b/tests/closure.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 closure)' -s "$0" "$@" !# ;;; -*-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,11 +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 closure) - #:use-module (mes mes-0) #:use-module (mes test)) -(mes-use-module (mes test)) - (pass-if "first dummy" #t) (pass-if-not "second dummy" #f) diff --git a/tests/cwv.test b/tests/cwv.test index b58c6e60..05c9f011 100755 --- a/tests/cwv.test +++ b/tests/cwv.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 cwv)' -s "$0" "$@" !# ;;; -*-scheme-*- ;;; GNU Mes --- Maxwell Equations of Software -;;; Copyright © 2016 Jan (janneke) Nieuwenhuizen +;;; Copyright © 2016,2020 Jan (janneke) Nieuwenhuizen ;;; ;;; This file is part of GNU Mes. ;;; @@ -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)) - (if (not guile-1.8?) (pass-if "values" (seq? (values 0 1) 0))) (if (not guile-1.8?) diff --git a/tests/display.test b/tests/display.test index e17e8ab9..e932cd63 100755 --- a/tests/display.test +++ b/tests/display.test @@ -1,11 +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 display)' -s "$0" "$@" !# ;;; -*-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. ;;; @@ -26,10 +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 display)) -(mes-use-module (mes guile)) -(mes-use-module (mes test)) - (pass-if "first dummy" #t) (pass-if-not "second dummy" #f) 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/guile.test b/tests/guile.test index 5804ee2f..1ec3989c 100755 --- a/tests/guile.test +++ b/tests/guile.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 guile)' -s "$0" "$@" !# @@ -26,15 +28,8 @@ exec ${MES-bin/mes} --no-auto-compile -L ${0%/*} -L module -C module -e '(tests (define-module (tests guile) #:use-module (ice-9 rdelim) #:use-module (mes mes-0) - #:use-module (mes misc) #:use-module (mes test)) -(cond-expand - (mes - (mes-use-module (mes test)) - (mes-use-module (mes guile))) - (else)) - (pass-if "first dummy" #t) (pass-if-not "second dummy" #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/match.test b/tests/match.test index 83ee16a2..3d2d5f4f 100755 --- a/tests/match.test +++ b/tests/match.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 match)' -s "$0" "$@" !# diff --git a/tests/math.test b/tests/math.test index 157b55e5..ee23962a 100755 --- a/tests/math.test +++ b/tests/math.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 math)' -s "$0" "$@" !# @@ -24,10 +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 math) - #:use-module (mes mes-0) #:use-module (mes test)) -(mes-use-module (mes test)) (pass-if-equal "string->number" 42 (string->number "42")) (pass-if-equal "string->number neg" -42 (string->number "-42")) (pass-if-equal "string->number #hex" 170 (string->number "#xaa")) 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-1.test b/tests/srfi-1.test index da90b71f..4a95a625 100755 --- a/tests/srfi-1.test +++ b/tests/srfi-1.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-1)' -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-1)) -(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)