aboutsummaryrefslogtreecommitdiff
path: root/module/util/exceptions.scm
diff options
context:
space:
mode:
Diffstat (limited to 'module/util/exceptions.scm')
-rw-r--r--module/util/exceptions.scm6
1 files changed, 5 insertions, 1 deletions
diff --git a/module/util/exceptions.scm b/module/util/exceptions.scm
index a5605e48..3b135c5a 100644
--- a/module/util/exceptions.scm
+++ b/module/util/exceptions.scm
@@ -46,12 +46,16 @@
(lambda (fmt . args)
(format #f "WARNING: ~?~%" fmt args))))
+(define-public warnings-are-errors
+ (make-parameter #f))
;; forwards return from warning-hander. By default returns an unspecified value,
;; but instances are free to provide a proper return value and use it.
(define-public (warning fmt . args)
(display (apply (warning-handler) fmt (or args '()))
- (current-error-port)))
+ (current-error-port))
+ (when (warnings-are-errors)
+ (throw 'warning fmt args)))
(define-public (fatal fmt . args)
(display (format #f "FATAL: ~?~%" fmt (or args '()))