This commit is contained in:
Jan (janneke) Nieuwenhuizen 2020-12-30 17:20:01 +01:00
parent 106c097bc9
commit 2ad4f06ae9
No known key found for this signature in database
GPG Key ID: F3C1A0D9C1D65273
17 changed files with 57 additions and 69 deletions

View File

@ -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}
;;;

View File

@ -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)

View File

@ -1,7 +1,7 @@
;;; -*-scheme-*-
;;; GNU Mes --- Maxwell Equations of Software
;;; Copyright © 2016,2018 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2016,2018,2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
;;;
;;; 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))

View File

@ -1,7 +1,7 @@
;;; -*-scheme-*-
;;; GNU Mes --- Maxwell Equations of Software
;;; Copyright © 2016,2018 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2016,2018,2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
;;;
;;; 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)))

View File

@ -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" "$@"
!#

View File

@ -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" "$@"
!#

View File

@ -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)

View File

@ -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 <http://www.gnu.org/licenses/>.
(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)

View File

@ -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 <http://www.gnu.org/licenses/>.
(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)

View File

@ -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)

View File

@ -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)

View File

@ -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)

View File

@ -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 <http://www.gnu.org/licenses/>.
(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)

View File

@ -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 <janneke@gnu.org>
;;; Copyright © 2018,2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
;;;
;;; 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)

View File

@ -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)

View File

@ -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)

View File

@ -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)