summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--module/language/scheme/spec.scm1
-rw-r--r--module/system/repl/common.scm7
2 files changed, 6 insertions, 2 deletions
diff --git a/module/language/scheme/spec.scm b/module/language/scheme/spec.scm
index 263621a3d..2c9bc4fb6 100644
--- a/module/language/scheme/spec.scm
+++ b/module/language/scheme/spec.scm
@@ -46,5 +46,6 @@
#:reader read
#:read-file read-file
#:translator translate
+ #:evaluator eval
#:printer write
)
diff --git a/module/system/repl/common.scm b/module/system/repl/common.scm
index edfb81500..608c38577 100644
--- a/module/system/repl/common.scm
+++ b/module/system/repl/common.scm
@@ -38,7 +38,8 @@
(define-record (<repl> vm language options tm-stats gc-stats vm-stats))
(define repl-default-options
- '((trace . #f)))
+ '((trace . #f)
+ (interp . #f)))
(define %make-repl make-repl)
(define (make-repl lang)
@@ -68,7 +69,9 @@
(define (repl-eval repl form)
(let ((eval (language-evaluator (repl-language repl))))
- (if eval
+ (if (and eval
+ (or (not (language-translator (repl-language repl)))
+ (assq-ref (repl-options repl) 'interp)))
(eval form (current-module))
(vm-load (repl-vm repl) (repl-compile repl form)))))