diff options
Diffstat (limited to 'module/system/repl/common.scm')
-rw-r--r-- | module/system/repl/common.scm | 12 |
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)))) |