mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-05-07 17:12:25 +02:00
Default to compiling to RTL
* module/ice-9/eval-string.scm (eval-string) * module/language/tree-il/spec.scm (tree-il) * module/scripts/compile.scm (compile) * module/system/base/compile.scm (compile-file, read-and-compile) * module/system/repl/common.scm (repl-compile, repl-prepare-eval-thunk): Default to compiling to RTL. * module/language/rtl/spec.scm (rtl->value): Add value compiler.
This commit is contained in:
parent
30b7cf9df0
commit
b73a2ee017
6 changed files with 24 additions and 10 deletions
|
@ -20,12 +20,23 @@
|
|||
|
||||
(define-module (language rtl spec)
|
||||
#:use-module (system base language)
|
||||
#:use-module (system vm objcode)
|
||||
#:use-module (ice-9 binary-ports)
|
||||
#:export (rtl))
|
||||
|
||||
(define (rtl->value x e opts)
|
||||
(let ((thunk (load-thunk-from-memory x)))
|
||||
(if (eq? e (current-module))
|
||||
;; save a cons in this case
|
||||
(values (thunk) e e)
|
||||
(save-module-excursion
|
||||
(lambda ()
|
||||
(set-current-module e)
|
||||
(values (thunk) e e))))))
|
||||
|
||||
(define-language rtl
|
||||
#:title "Register Transfer Language"
|
||||
#:compilers '()
|
||||
#:compilers `((value . ,rtl->value))
|
||||
#:printer (lambda (rtl port) (put-bytevector port rtl))
|
||||
#:reader get-bytevector-all
|
||||
#:for-humans? #f)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue