diff options
Diffstat (limited to 'module')
-rw-r--r-- | module/ice-9/eval-string.scm | 4 | ||||
-rw-r--r-- | module/language/rtl/spec.scm | 13 | ||||
-rw-r--r-- | module/language/tree-il/spec.scm | 4 | ||||
-rw-r--r-- | module/scripts/compile.scm | 4 | ||||
-rw-r--r-- | module/system/base/compile.scm | 4 | ||||
-rw-r--r-- | module/system/repl/common.scm | 5 |
6 files changed, 24 insertions, 10 deletions
diff --git a/module/ice-9/eval-string.scm b/module/ice-9/eval-string.scm index 649551d9f..ae6792e67 100644 --- a/module/ice-9/eval-string.scm +++ b/module/ice-9/eval-string.scm @@ -22,6 +22,7 @@ #:use-module (system base compile) #:use-module (system base language) #:use-module (system vm program) + #:use-module (system vm objcode) #:replace (eval-string)) (define (ensure-language x) @@ -84,5 +85,6 @@ (set-port-column! port line)) (if (or compile? (not (language-evaluator lang))) - ((make-program (read-and-compile port #:from lang #:to 'objcode))) + ((load-thunk-from-memory + (read-and-compile port #:from lang #:to 'rtl))) (read-and-eval port #:lang lang)))))))) diff --git a/module/language/rtl/spec.scm b/module/language/rtl/spec.scm index 0a8c4ee9e..0dabf94c6 100644 --- a/module/language/rtl/spec.scm +++ b/module/language/rtl/spec.scm @@ -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) diff --git a/module/language/tree-il/spec.scm b/module/language/tree-il/spec.scm index a574eb237..a1018cbf5 100644 --- a/module/language/tree-il/spec.scm +++ b/module/language/tree-il/spec.scm @@ -44,7 +44,7 @@ #:printer write-tree-il #:parser parse-tree-il #:joiner join - #:compilers `((glil . ,compile-glil) - (cps . ,compile-cps)) + #:compilers `((cps . ,compile-cps) + (glil . ,compile-glil)) #:for-humans? #f ) diff --git a/module/scripts/compile.scm b/module/scripts/compile.scm index 20db94463..db58a339a 100644 --- a/module/scripts/compile.scm +++ b/module/scripts/compile.scm @@ -1,6 +1,6 @@ ;;; Compile --- Command-line Guile Scheme compiler -*- coding: iso-8859-1 -*- -;; Copyright 2005,2008,2009,2010,2011 Free Software Foundation, Inc. +;; Copyright 2005,2008,2009,2010,2011,2013 Free Software Foundation, Inc. ;; ;; This program is free software; you can redistribute it and/or ;; modify it under the terms of the GNU Lesser General Public License @@ -139,7 +139,7 @@ There is NO WARRANTY, to the extent permitted by law.~%")) (cons #:O o) o))) (from (or (assoc-ref options 'from) 'scheme)) - (to (or (assoc-ref options 'to) 'objcode)) + (to (or (assoc-ref options 'to) 'rtl)) (target (or (assoc-ref options 'target) %host-type)) (input-files (assoc-ref options 'input-files)) (output-file (assoc-ref options 'output-file)) diff --git a/module/system/base/compile.scm b/module/system/base/compile.scm index 82d75c778..b932e6437 100644 --- a/module/system/base/compile.scm +++ b/module/system/base/compile.scm @@ -133,7 +133,7 @@ (define* (compile-file file #:key (output-file #f) (from (current-language)) - (to 'objcode) + (to 'rtl) (env (default-environment from)) (opts '()) (canonicalization 'relative)) @@ -207,7 +207,7 @@ (define* (read-and-compile port #:key (from (current-language)) - (to 'objcode) + (to 'rtl) (env (default-environment from)) (opts '())) (let ((from (ensure-language from)) diff --git a/module/system/repl/common.scm b/module/system/repl/common.scm index 94b41ea4f..1da36694a 100644 --- a/module/system/repl/common.scm +++ b/module/system/repl/common.scm @@ -25,6 +25,7 @@ #:use-module (system base language) #:use-module (system base message) #:use-module (system vm program) + #:use-module (system vm objcode) #:autoload (language tree-il optimize) (optimize) #:use-module (ice-9 control) #:use-module (ice-9 history) @@ -176,7 +177,7 @@ See <http://www.gnu.org/licenses/lgpl.html>, for more details.") (define (repl-compile repl form) (let ((from (repl-language repl)) (opts (repl-compile-options repl))) - (compile form #:from from #:to 'objcode #:opts opts + (compile form #:from from #:to 'rtl #:opts opts #:env (current-module)))) (define (repl-expand repl form) @@ -205,7 +206,7 @@ See <http://www.gnu.org/licenses/lgpl.html>, for more details.") (or (null? (language-compilers (repl-language repl))) (repl-option-ref repl 'interp))) (lambda () (eval form (current-module))) - (make-program (repl-compile repl form))))) + (load-thunk-from-memory (repl-compile repl form))))) (define (repl-eval repl form) (let ((thunk (repl-prepare-eval-thunk repl form))) |