spec: Add ignore-errors helper.
authorRicardo Wurmus <rekado@elephly.net>
Mon, 3 Jun 2019 21:46:28 +0000 (23:46 +0200)
committerRicardo Wurmus <rekado@elephly.net>
Mon, 3 Jun 2019 22:05:16 +0000 (00:05 +0200)
* modules/language/python/spec.scm (ignore-errors): Add procedure.
(int, in): Use it.

modules/language/python/spec.scm

index f1fc78b..46b46e8 100644 (file)
 
 (define (e x) (eval (c #t x) (current-module)))
 
+(define (ignore-errors proc)
+  "Run PROC and ignore all errors."
+  (catch #t (lambda () (proc)) (const #f)))
 
 (define (int)
-  (catch #t
-    (lambda ()
-      (not (fluid-ref (@@ (system base compile) %in-compile))))
-    (const #f)))
+  (ignore-errors
+   (lambda ()
+     (not (fluid-ref (@@ (system base compile) %in-compile))))))
 
 (define (in)
-  (catch #t
-    (lambda ()
-      (fluid-set! (@@ (system base compile) %in-compile) #t))
-    (const #f)))
+  (ignore-errors
+   (lambda ()
+     (fluid-set! (@@ (system base compile) %in-compile) #t))))
 
 (define mapper (make-weak-key-hash-table))
 
                 (hash-set! mapper port port2)
                 (lp port2)))))))
 
-(catch #t
-  (lambda ()
-    (set! (@@ (ice-9 readline) *readline-completion-function*)
-          (complete-python e)))
-  (const #f))
+(ignore-errors
+ (lambda ()
+   (set! (@@ (ice-9 readline) *readline-completion-function*)
+         (complete-python e))))
 
 (define-language python
   #:title      "python"