Make guile switchable in GNUmakefile.
authorJan Nieuwenhuizen <janneke@gnu.org>
Wed, 21 Dec 2016 16:08:36 +0000 (17:08 +0100)
committerJan Nieuwenhuizen <janneke@gnu.org>
Wed, 21 Dec 2016 16:08:36 +0000 (17:08 +0100)
* GNUmakefile (GUILE): New variable.  Update users.
* guile/mes-0.scm (mes?, guile-1.8?, guile-2?): New variables.
* module/mes/base.mes (guile?): Remove.
* module/mes/base-0.mes (effective-version, mes?, guile?, guile-1.8?,
  guile-2?): New variables.
* tests/cwv.test: Support Guile 1.8.

GNUmakefile
guile/mes-0.scm
module/mes/base-0.mes
module/mes/base.mes
tests/cwv.test

index 7266df4e60471fc41ac87f60f7f128e4d5faa15c..f454d0804d0e9658d616ec79b7d89be7d30691f3 100644 (file)
@@ -85,7 +85,7 @@ dump: module/mes/read-0.mo
 
 guile-check:
        set -e; for i in $(TESTS); do\
-               guile -s <(cat $(MES-0) module/mes/test.mes $$i);\
+               $(GUILE) -s <(cat $(MES-0) module/mes/test.mes $$i);\
        done
 
 MAIN_C:=doc/examples/main.c
index 64dd346391c5df0f789389f23009ba318011bd9e..9b9076be6036e44582973b362f61beff6aecc5ed 100644 (file)
@@ -27,5 +27,9 @@
 
 (define-macro (mes-use-module . rest) #t)
 (define builtin? procedure?) ; not strictly true, but ok for tests/*.test
+(define mes? (pair? (current-module)))
 (define guile? (not (pair? (current-module))))
+(define guile-1.8? (equal? (effective-version) "1.8"))
+(define guile-2? (and (not mes?) (not guile-1.8?)))
+(if guile-1.8? (use-modules (ice-9 syncase)))
 (define EOF (if #f #f))
index 1cf396a339128a845d6274f4f4340fb8eb8d5ac9..28c0c2b4f3d32cb3d6b016eecbfac093398415ed 100644 (file)
 
 ;;; Code:
 
-#f ;; FIXME -- needed for --dump, then --load
+(define (effective-version) "0.3")
+(define mes? #t)
+(define guile? #f)
+(define guile-1.8? #f)
+(define guile-2? #f)
 
 (define (primitive-eval e) (eval-env e (current-module)))
 (define eval eval-env)
index e6b70dd6c5970f6a3ba1aa8131ac82ebf714808c..7ac4b4d99ef139025a2fa8f9e2cdab6a2e0ac5f9 100644 (file)
@@ -52,8 +52,6 @@
                   (equal? (vector->list a) (vector->list b))
                   (eq? a b))))))
 
-(define guile? (not (pair? (current-module))))
-
 (define (list? x)
   (or (null? x)
       (and (pair? x) (list? (cdr x)))))
index bdd450ad32d71f9a1bfc61b91c7517860f6c7220..28d673e2ba9f074cffd1216d0a8c38aa25a279c5 100755 (executable)
@@ -28,9 +28,12 @@ exit $?
 (mes-use-module (mes scm))
 (mes-use-module (mes test))
 
-(pass-if "values" (seq? (values 0 1) 0))
-(pass-if "values 2" (seq? ((lambda (x) x) (values 1 2 3)) 1))
-(pass-if "values 3" (seq? 1 ((lambda (x) x) (values 1 2 3))))
+(if (not guile-1.8?)
+    (pass-if "values" (seq? (values 0 1) 0)))
+(if (not guile-1.8?)
+    (pass-if "values 2" (seq? ((lambda (x) x) (values 1 2 3)) 1)))
+(if (not guile-1.8?)
+    (pass-if "values 3" (seq? 1 ((lambda (x) x) (values 1 2 3)))))
 (pass-if "call-with-values" (seq? (call-with-values (lambda () (values 1 2 3))
                                     (lambda (a b c) (+ a b c)))
                                   6))