diff options
-rw-r--r-- | module/system/il/compile.scm | 4 | ||||
-rw-r--r-- | module/system/il/ghil.scm | 6 | ||||
-rw-r--r-- | module/system/il/glil.scm | 14 | ||||
-rw-r--r-- | module/system/vm/assemble.scm | 15 |
4 files changed, 17 insertions, 22 deletions
diff --git a/module/system/il/compile.scm b/module/system/il/compile.scm index fee5bd510..261b936fc 100644 --- a/module/system/il/compile.scm +++ b/module/system/il/compile.scm @@ -122,8 +122,8 @@ (e env (ghil-env-parent e))) ((eq? e (ghil-var-env var)) (make-glil-external op depth (ghil-var-index var))))) - ((module) - (make-glil-module op (ghil-var-env var) (ghil-var-name var))) + ((toplevel) + (make-glil-toplevel op (ghil-var-name var))) (else (error "Unknown kind of variable:" var)))) (define (constant? x) diff --git a/module/system/il/ghil.scm b/module/system/il/ghil.scm index 5d6e67a3f..b0bac0f9a 100644 --- a/module/system/il/ghil.scm +++ b/module/system/il/ghil.scm @@ -205,7 +205,7 @@ ((<ghil-toplevel-env> table) (let ((key (cons (module-name (current-module)) sym))) (or (assoc-ref table key) - (let ((var (make-ghil-var (car key) (cdr key) 'module))) + (let ((var (make-ghil-var (car key) (cdr key) 'toplevel))) (apush! key var (ghil-toplevel-env-table e)) var)))) ((<ghil-env> parent table variables) @@ -224,7 +224,7 @@ ((<ghil-toplevel-env> table) (let ((key (cons (module-name (current-module)) sym))) (or (assoc-ref table key) - (let ((var (make-ghil-var (car key) (cdr key) 'module))) + (let ((var (make-ghil-var (car key) (cdr key) 'toplevel))) (apush! key var (ghil-toplevel-env-table e)) var)))) ((<ghil-env> parent table variables) @@ -239,7 +239,7 @@ (define (ghil-var-define! toplevel sym) (let ((key (cons (module-name (current-module)) sym))) (or (assoc-ref (ghil-toplevel-env-table toplevel) key) - (let ((var (make-ghil-var (car key) (cdr key) 'module))) + (let ((var (make-ghil-var (car key) (cdr key) 'toplevel))) (apush! key var (ghil-toplevel-env-table toplevel)) var)))) diff --git a/module/system/il/glil.scm b/module/system/il/glil.scm index 5c42a2a70..48470a28f 100644 --- a/module/system/il/glil.scm +++ b/module/system/il/glil.scm @@ -54,11 +54,8 @@ <glil-external> make-glil-external glil-external? glil-external-op glil-external-depth glil-external-index - <glil-module> make-glil-module glil-module? - glil-module-op glil-module-module glil-module-index - - <glil-late-bound> make-glil-late-bound glil-late-bound? - glil-late-bound-op glil-late-bound-name + <glil-toplevel> make-glil-toplevel glil-toplevel? + glil-toplevel-op glil-toplevel-name <glil-label> make-glil-label glil-label? glil-label-label @@ -89,8 +86,7 @@ (<glil-argument> op index) (<glil-local> op index) (<glil-external> op depth index) - (<glil-module> op module name) - (<glil-late-bound> op name) + (<glil-toplevel> op name) ;; Controls (<glil-label> label) (<glil-branch> inst label) @@ -192,8 +188,8 @@ `(,(symbol-append 'local- op) ,index)) ((<glil-external> op depth index) `(,(symbol-append 'external- op) ,depth ,index)) - ((<glil-module> op module name) - `(,(symbol-append 'module- op) ,module ,name)) + ((<glil-toplevel> op name) + `(,(symbol-append 'toplevel- op) ,name)) ;; controls ((<glil-label> label) label) ((<glil-branch> inst label) `(,inst ,label)) diff --git a/module/system/vm/assemble.scm b/module/system/vm/assemble.scm index f5fac6eb0..c5ca46f39 100644 --- a/module/system/vm/assemble.scm +++ b/module/system/vm/assemble.scm @@ -43,8 +43,8 @@ (define-record (<vm-asm> venv glil body)) (define-record (<venv> parent nexts closure?)) (define-record (<vlink-now> name)) -(define-record (<vlink-later> module name)) -(define-record (<vdefine> module name)) +(define-record (<vlink-later> name)) +(define-record (<vdefine> name)) (define-record (<bytespec> vars bytes meta objs closure?)) @@ -183,7 +183,7 @@ (push-code! `(external-ref ,(+ n index))) (push-code! `(external-set ,(+ n index))))))) - ((<glil-module> op module name) + ((<glil-toplevel> op name) (case op ((ref set) (cond @@ -193,7 +193,7 @@ ((ref) '(variable-ref)) ((set) '(variable-set))))) (else - (let* ((var (make-vlink-later #:module module #:name name)) + (let* ((var (make-vlink-later #:name name)) (i (cond ((object-assoc var object-alist) => cdr) (else (let ((i (length object-alist))) @@ -203,7 +203,7 @@ ((ref) `(late-variable-ref ,i)) ((set) `(late-variable-set ,i)))))))) ((define) - (push-object! (make-vdefine #:module module #:name name)) + (push-object! (make-vdefine #:name name)) (push-code! '(variable-set))) (else (error "unknown toplevel var kind" op name)))) @@ -319,13 +319,12 @@ (if meta (dump! meta)) ;; dump bytecode (push-code! `(load-program ,bytes))) - ((<vlink-later> module name) + ((<vlink-later> name) (dump! name)) ((<vlink-now> name) (dump! name) (push-code! '(link-now))) - ((<vdefine> module name) - ;; FIXME: dump module + ((<vdefine> name) (push-code! `(define ,(symbol->string name)))) (else (error "assemble: unknown record type" (record-type-descriptor x))))) |