summaryrefslogtreecommitdiff
path: root/module/system/repl/common.scm
diff options
context:
space:
mode:
Diffstat (limited to 'module/system/repl/common.scm')
-rw-r--r--module/system/repl/common.scm12
1 files changed, 9 insertions, 3 deletions
diff --git a/module/system/repl/common.scm b/module/system/repl/common.scm
index c9106e1ac..eac9610e7 100644
--- a/module/system/repl/common.scm
+++ b/module/system/repl/common.scm
@@ -67,9 +67,15 @@
(let ((to (lookup-language (cond ((memq #:e opts) 'scheme)
((memq #:t opts) 'ghil)
((memq #:c opts) 'glil)
- (else 'objcode)))))
- (compile form #:from (repl-language repl) #:to to #:opts opts
- #:env (current-module))))
+ (else 'objcode))))
+ (from (repl-language repl)))
+ (compile form #:from from #:to to #:opts opts
+ ;; XXX: Languages other than Scheme may not support having
+ ;; a module as the environment, so work around that. See
+ ;; also `language-default-environment'.
+ #:env (if (eq? from (lookup-language 'scheme))
+ (current-module)
+ #f))))
(define (repl-parse repl form)
(let ((parser (language-parser (repl-language repl))))