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.scm26
1 files changed, 18 insertions, 8 deletions
diff --git a/modules/language/python/compile.scm b/modules/language/python/compile.scm
index 39597bc..0f964ff 100644
--- a/modules/language/python/compile.scm
+++ b/modules/language/python/compile.scm
@@ -77,13 +77,22 @@
(define-syntax-rule (use p l a ...)
- (catch #t
- (lambda ()
- (if (not p) (reload-module (resolve-module l)))
- (use-modules a ...))
- (lambda x
- (warn "failed to load " x)
- (raise (ImportError '(a ...))))))
+ (begin
+ (eval-when (compile)
+ (catch #t
+ (lambda ()
+ (if (not p) (reload-module (resolve-module l)))
+ (use-modules a ...))
+ (lambda x
+ #f)))
+ (eval-when (eval load)
+ (catch #t
+ (lambda ()
+ (if (not p) (reload-module (resolve-module l)))
+ (use-modules a ...))
+ (lambda x
+ (raise (ImportError ((@ (guile) format)
+ #f "failed to import ~a ~a" l x))))))))
(define level (make-fluid 0))
@@ -263,7 +272,7 @@
((#:global . _)
vs)
-
+
((#:import (#:name ((ids ...) . as) ...) ...)
(let lp ((ids ids) (as as) (vs vs))
(if (pair? ids)
@@ -355,6 +364,7 @@
(ids (car ids)))
(union vs (list (exp '() (if as as (car ids)))))))
vs)))
+
((x . y)
(defs y (defs x vs)))
(_ vs)))