summaryrefslogtreecommitdiff
path: root/modules/language/python/compile.scm
diff options
context:
space:
mode:
Diffstat (limited to 'modules/language/python/compile.scm')
-rw-r--r--modules/language/python/compile.scm51
1 files changed, 33 insertions, 18 deletions
diff --git a/modules/language/python/compile.scm b/modules/language/python/compile.scm
index c3a6493..694b470 100644
--- a/modules/language/python/compile.scm
+++ b/modules/language/python/compile.scm
@@ -35,34 +35,49 @@
(define s/d 'set!)
+(define (pre) (warn "Patching guile will lead to way better experience use 'python.patch' on guile-2.2"))
+
(define-syntax clear-warning-data
(lambda (x)
- (set! (@@ (system base message) %dont-warn-list) '())
+ (catch #t
+ (lambda ()
+ (set! (@@ (system base message) %dont-warn-list) '()))
+ (lambda x (pre)))
#f))
(define (dont-warn v)
- (set! (@@ (system base message) %dont-warn-list)
- (cons v
- (@@ (system base message) %dont-warn-list))))
+ (catch #t
+ (lambda ()
+ (set! (@@ (system base message) %dont-warn-list)
+ (cons v
+ (@@ (system base message) %dont-warn-list))))
+ (lambda x (values))))
(define *prefixes* (make-fluid '()))
(define (add-prefix id)
- (if (fluid-ref (@@ (system base compile) %in-compile))
- (fluid-set! *prefixes* (cons id (fluid-ref *prefixes*)))
- (begin
- (when (not (module-defined? (current-module) '__prefixes__))
- (module-define! (current-module) '__prefixes__ (make-fluid '())))
-
- (let ((p (module-ref (current-module) '__prefixes__)))
- (fluid-set! p (cons id (fluid-ref p)))))))
+ (catch #t
+ (lambda ()
+ (if (fluid-ref (@@ (system base compile) %in-compile))
+ (fluid-set! *prefixes* (cons id (fluid-ref *prefixes*)))
+ (begin
+ (when (not (module-defined? (current-module) '__prefixes__))
+ (module-define! (current-module)
+ '__prefixes__ (make-fluid '())))
+
+ (let ((p (module-ref (current-module) '__prefixes__)))
+ (fluid-set! p (cons id (fluid-ref p)))))))
+ (lambda x (values))))
(define (is-prefix? id)
- (if (fluid-ref (@@ (system base compile) %in-compile))
- (member id (fluid-ref *prefixes*))
- (if (not (module-defined? (current-module) '__prefixes__))
- #f
- (let ((p (module-ref (current-module) '__prefixes__)))
- (member id (fluid-ref p))))))
+ (catch #t
+ (lambda ()
+ (if (fluid-ref (@@ (system base compile) %in-compile))
+ (member id (fluid-ref *prefixes*))
+ (if (not (module-defined? (current-module) '__prefixes__))
+ #f
+ (let ((p (module-ref (current-module) '__prefixes__)))
+ (member id (fluid-ref p))))))
+ (lambda x #f)))
(define-syntax call
(syntax-rules ()