bug-mes
[Top][All Lists]
Advanced

[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





reply via email to

[Prev in Thread] Current Thread [Next in Thread]