aboutsummaryrefslogtreecommitdiff
path: root/module/calp/util
diff options
context:
space:
mode:
authorHugo Hörnquist <hugo@lysator.liu.se>2021-12-21 16:17:28 +0100
committerHugo Hörnquist <hugo@lysator.liu.se>2021-12-22 22:58:30 +0100
commitd00fea566004e67161ee45246b239fff5d416b0e (patch)
tree5641c0c0d0e78b046b6045ed2440512f12259560 /module/calp/util
parentComplete rewrite of use2dot (diff)
downloadcalp-d00fea566004e67161ee45246b239fff5d416b0e.tar.gz
calp-d00fea566004e67161ee45246b239fff5d416b0e.tar.xz
Cleanup modules.
Primarly this moves all vcompenent input and output code to clearly labeled modules, instead of being spread out. At the same time it also removes a handfull of unused procedures.
Diffstat (limited to 'module/calp/util')
-rw-r--r--module/calp/util/exceptions.scm50
1 files changed, 1 insertions, 49 deletions
diff --git a/module/calp/util/exceptions.scm b/module/calp/util/exceptions.scm
index 04fc7a67..d9df30ed 100644
--- a/module/calp/util/exceptions.scm
+++ b/module/calp/util/exceptions.scm
@@ -7,44 +7,7 @@
#:use-module ((system vm frame)
:select (frame-bindings binding-ref))
- #:export (throw-returnable
- catch-multiple
- assert))
-
-(define-syntax-rule (throw-returnable symb args ...)
- (call/cc (lambda (cont) (throw symb cont args ...))))
-
-;; Takes a (non nested) list, and replaces all single underscore
-;; symbols with a generated symbol. For macro usage.
-(define (multiple-ignore lst)
- (map/dotted (lambda (symb) (if (eq? symb '_) (gensym "ignored_") symb))
- lst))
-
-;; Like @var{catch}, but multiple handlers can be specified.
-;; Each handler is on the form
-;; @example
-;; [err-symb (args ...) body ...]
-;; @end example
-;;
-;; Only errors with a handler are caught. Error can *not* be given as
-;; an early argument.
-(define-macro (catch-multiple thunk . cases)
- (let catch-recur% ((errs (map car cases)) (cases cases))
- (let* ((v (car errs))
- (case other (partition (lambda (case) (eq? v (car case))) cases))
- (g!rest (gensym "rest")))
- `(catch (quote ,v)
- ,(if (null? (cdr errs))
- thunk
- `(lambda () ,(catch-recur% (cdr errs) other)))
- (lambda (err . ,g!rest)
- (apply (lambda ,(let ((param-list (second (car case))))
- (if (not (pair? param-list))
- param-list
- (multiple-ignore param-list)))
- ,@(cddr (car case)))
- ,g!rest))))))
-
+ #:export (assert))
(define-public warning-handler
@@ -81,7 +44,6 @@
[else tree]))
-
(define-macro (assert form)
`(unless ,form
(throw 'assertion-error "Assertion failed. ~a expected, ~a got"
@@ -89,16 +51,6 @@
((@@ (calp util exceptions) prettify-tree) (list ,form)))))
-(define-syntax catch-warnings
- (syntax-rules ()
- ((_ default body ...)
- (parametrize ((warnings-are-errors #t))
- (catch 'warning
- (lambda ()
- body ...)
- (lambda _ default))))))
-
-
(define-public (filter-stack pred? stk)
(concatenate
(for i in (iota (stack-length stk))