diff options
Diffstat (limited to 'modules/language/python/compile.scm')
-rw-r--r-- | modules/language/python/compile.scm | 51 |
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 () |