summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2009-10-15 20:51:16 +0200
committerLudovic Courtès <ludo@gnu.org>2009-10-15 20:51:32 +0200
commit30e73c7698daa038a3fce2135781166d1edfa4e0 (patch)
treecd6c9e9d8d2410a272cccc12a9ebd3295f90390c
parent3245c0fbefa2f119918e42cc1691fb9a41feb792 (diff)
downloadguile-30e73c7698daa038a3fce2135781166d1edfa4e0.tar.gz
Fix REPL environment for languages other than scheme.
* module/system/repl/common.scm (repl-compile): Use `#:env #f' for languages other than scheme.
-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))))