mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-06-11 06:20:23 +02:00
add repl option to interpret rather than compile
* module/language/scheme/spec.scm (scheme): Specify an evaluator, `eval'. * module/system/repl/common.scm (repl-default-options): Add option, `interp', specifying that, if possible, the repl should interpret its expressions rather than compile them. Defaults to #f.
This commit is contained in:
parent
8e3670748f
commit
02ed0d3df2
2 changed files with 6 additions and 2 deletions
|
@ -46,5 +46,6 @@
|
||||||
#:reader read
|
#:reader read
|
||||||
#:read-file read-file
|
#:read-file read-file
|
||||||
#:translator translate
|
#:translator translate
|
||||||
|
#:evaluator eval
|
||||||
#:printer write
|
#:printer write
|
||||||
)
|
)
|
||||||
|
|
|
@ -38,7 +38,8 @@
|
||||||
(define-record (<repl> vm language options tm-stats gc-stats vm-stats))
|
(define-record (<repl> vm language options tm-stats gc-stats vm-stats))
|
||||||
|
|
||||||
(define repl-default-options
|
(define repl-default-options
|
||||||
'((trace . #f)))
|
'((trace . #f)
|
||||||
|
(interp . #f)))
|
||||||
|
|
||||||
(define %make-repl make-repl)
|
(define %make-repl make-repl)
|
||||||
(define (make-repl lang)
|
(define (make-repl lang)
|
||||||
|
@ -68,7 +69,9 @@
|
||||||
|
|
||||||
(define (repl-eval repl form)
|
(define (repl-eval repl form)
|
||||||
(let ((eval (language-evaluator (repl-language repl))))
|
(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))
|
(eval form (current-module))
|
||||||
(vm-load (repl-vm repl) (repl-compile repl form)))))
|
(vm-load (repl-vm repl) (repl-compile repl form)))))
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue