[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH] mes: make scm.mes compatible with guile
From: |
Ekaitz Zarraga |
Subject: |
[PATCH] mes: make scm.mes compatible with guile |
Date: |
Thu, 24 Aug 2023 17:11:22 +0000 |
>From 0db20a6ecd4e3582555044c7f3304793d9a2909f Mon Sep 17 00:00:00 2001
From: Ekaitz Zarraga <ekaitz@elenq.tech>
Date: Thu, 24 Aug 2023 19:06:40 +0200
Subject: [PATCH] mes: make scm.mes compatible with guile
* mes/module/mes/scm.mes (iota): Throw exception when n < 0
* tests/scm.test: import (mes catch)
* tests/scm.test ("iota -1"): Rewrite with exception handling
---
mes/module/mes/scm.mes | 6 ++++--
tests/scm.test | 9 ++++++++-
2 files changed, 12 insertions(+), 3 deletions(-)
diff --git a/mes/module/mes/scm.mes b/mes/module/mes/scm.mes
index dadd3589..23d613b8 100644
--- a/mes/module/mes/scm.mes
+++ b/mes/module/mes/scm.mes
@@ -164,8 +164,10 @@
(list-tail (cdr x) (- n 1))))
(define (iota n)
- (if (<= n 0) '()
- (append2 (iota (- n 1)) (list (- n 1)))))
+ (cond
+ ((< n 0) (throw 'wrong-type-arg n))
+ ((= n 0) '())
+ (else (append2 (iota (- n 1)) (list (- n 1))))))
(define (reverse lst)
(let loop ((lst lst) (r '()))
diff --git a/tests/scm.test b/tests/scm.test
index a19fcd16..db47ffdf 100755
--- a/tests/scm.test
+++ b/tests/scm.test
@@ -30,6 +30,8 @@ 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 catch))
+
(cond-expand
(mes
(primitive-load "module/mes/test.scm"))
@@ -131,7 +133,12 @@ exec ${MES-bin/mes} --no-auto-compile -L ${0%/*} -L module
-C module -e '(tests
'() (iota 0))
(pass-if-equal "iota -1"
- '() (iota -1))
+ 'iota-negative-length
+ (catch 'wrong-type-arg
+ (lambda ()
+ (iota -1))
+ (lambda (key . args)
+ 'iota-negative-length)))
(pass-if "cond-expand" (sequal? (cond-expand (foobar #f) (mes (display ":
pass: *YAY*") 'mes) (guile (display ": pass: *GUILE*") 'mes)) 'mes))
--
2.41.0
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [PATCH] mes: make scm.mes compatible with guile,
Ekaitz Zarraga <=