1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-06-18 01:30:27 +02:00

call toplevel variables "toplevel", not "module"

* module/system/il/ghil.scm (ghil-var-for-set!, ghil-var-for-ref!)
  (ghil-var-define!): ghil-var-kind of a toplevel var is now 'toplevel.

* module/system/il/glil.scm: Renamve <glil-module> to <glil-toplevel>.
  Remove the unused `module' field. Remove the unused <glil-late-bound>
  type.

* module/system/il/compile.scm (make-glil-var): s/toplevel/module/

* module/system/vm/assemble.scm (<vlink-later>, <vdefine>): Remove the
  unused `module' parameters from these two types.
  (codegen, dump-object!): Adapt to module/toplevel name changes.
This commit is contained in:
Andy Wingo 2008-09-29 23:20:10 +02:00
parent 48d0006409
commit a1122f8cba
4 changed files with 17 additions and 22 deletions

View file

@ -122,8 +122,8 @@
(e env (ghil-env-parent e))) (e env (ghil-env-parent e)))
((eq? e (ghil-var-env var)) ((eq? e (ghil-var-env var))
(make-glil-external op depth (ghil-var-index var))))) (make-glil-external op depth (ghil-var-index var)))))
((module) ((toplevel)
(make-glil-module op (ghil-var-env var) (ghil-var-name var))) (make-glil-toplevel op (ghil-var-name var)))
(else (error "Unknown kind of variable:" var)))) (else (error "Unknown kind of variable:" var))))
(define (constant? x) (define (constant? x)

View file

@ -205,7 +205,7 @@
((<ghil-toplevel-env> table) ((<ghil-toplevel-env> table)
(let ((key (cons (module-name (current-module)) sym))) (let ((key (cons (module-name (current-module)) sym)))
(or (assoc-ref table key) (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)) (apush! key var (ghil-toplevel-env-table e))
var)))) var))))
((<ghil-env> parent table variables) ((<ghil-env> parent table variables)
@ -224,7 +224,7 @@
((<ghil-toplevel-env> table) ((<ghil-toplevel-env> table)
(let ((key (cons (module-name (current-module)) sym))) (let ((key (cons (module-name (current-module)) sym)))
(or (assoc-ref table key) (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)) (apush! key var (ghil-toplevel-env-table e))
var)))) var))))
((<ghil-env> parent table variables) ((<ghil-env> parent table variables)
@ -239,7 +239,7 @@
(define (ghil-var-define! toplevel sym) (define (ghil-var-define! toplevel sym)
(let ((key (cons (module-name (current-module)) sym))) (let ((key (cons (module-name (current-module)) sym)))
(or (assoc-ref (ghil-toplevel-env-table toplevel) key) (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)) (apush! key var (ghil-toplevel-env-table toplevel))
var)))) var))))

View file

@ -54,11 +54,8 @@
<glil-external> make-glil-external glil-external? <glil-external> make-glil-external glil-external?
glil-external-op glil-external-depth glil-external-index glil-external-op glil-external-depth glil-external-index
<glil-module> make-glil-module glil-module? <glil-toplevel> make-glil-toplevel glil-toplevel?
glil-module-op glil-module-module glil-module-index glil-toplevel-op glil-toplevel-name
<glil-late-bound> make-glil-late-bound glil-late-bound?
glil-late-bound-op glil-late-bound-name
<glil-label> make-glil-label glil-label? <glil-label> make-glil-label glil-label?
glil-label-label glil-label-label
@ -89,8 +86,7 @@
(<glil-argument> op index) (<glil-argument> op index)
(<glil-local> op index) (<glil-local> op index)
(<glil-external> op depth index) (<glil-external> op depth index)
(<glil-module> op module name) (<glil-toplevel> op name)
(<glil-late-bound> op name)
;; Controls ;; Controls
(<glil-label> label) (<glil-label> label)
(<glil-branch> inst label) (<glil-branch> inst label)
@ -192,8 +188,8 @@
`(,(symbol-append 'local- op) ,index)) `(,(symbol-append 'local- op) ,index))
((<glil-external> op depth index) ((<glil-external> op depth index)
`(,(symbol-append 'external- op) ,depth ,index)) `(,(symbol-append 'external- op) ,depth ,index))
((<glil-module> op module name) ((<glil-toplevel> op name)
`(,(symbol-append 'module- op) ,module ,name)) `(,(symbol-append 'toplevel- op) ,name))
;; controls ;; controls
((<glil-label> label) label) ((<glil-label> label) label)
((<glil-branch> inst label) `(,inst ,label)) ((<glil-branch> inst label) `(,inst ,label))

View file

@ -43,8 +43,8 @@
(define-record (<vm-asm> venv glil body)) (define-record (<vm-asm> venv glil body))
(define-record (<venv> parent nexts closure?)) (define-record (<venv> parent nexts closure?))
(define-record (<vlink-now> name)) (define-record (<vlink-now> name))
(define-record (<vlink-later> module name)) (define-record (<vlink-later> name))
(define-record (<vdefine> module name)) (define-record (<vdefine> name))
(define-record (<bytespec> vars bytes meta objs closure?)) (define-record (<bytespec> vars bytes meta objs closure?))
@ -183,7 +183,7 @@
(push-code! `(external-ref ,(+ n index))) (push-code! `(external-ref ,(+ n index)))
(push-code! `(external-set ,(+ n index))))))) (push-code! `(external-set ,(+ n index)))))))
((<glil-module> op module name) ((<glil-toplevel> op name)
(case op (case op
((ref set) ((ref set)
(cond (cond
@ -193,7 +193,7 @@
((ref) '(variable-ref)) ((ref) '(variable-ref))
((set) '(variable-set))))) ((set) '(variable-set)))))
(else (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) (i (cond ((object-assoc var object-alist) => cdr)
(else (else
(let ((i (length object-alist))) (let ((i (length object-alist)))
@ -203,7 +203,7 @@
((ref) `(late-variable-ref ,i)) ((ref) `(late-variable-ref ,i))
((set) `(late-variable-set ,i)))))))) ((set) `(late-variable-set ,i))))))))
((define) ((define)
(push-object! (make-vdefine #:module module #:name name)) (push-object! (make-vdefine #:name name))
(push-code! '(variable-set))) (push-code! '(variable-set)))
(else (else
(error "unknown toplevel var kind" op name)))) (error "unknown toplevel var kind" op name))))
@ -319,13 +319,12 @@
(if meta (dump! meta)) (if meta (dump! meta))
;; dump bytecode ;; dump bytecode
(push-code! `(load-program ,bytes))) (push-code! `(load-program ,bytes)))
((<vlink-later> module name) ((<vlink-later> name)
(dump! name)) (dump! name))
((<vlink-now> name) ((<vlink-now> name)
(dump! name) (dump! name)
(push-code! '(link-now))) (push-code! '(link-now)))
((<vdefine> module name) ((<vdefine> name)
;; FIXME: dump module
(push-code! `(define ,(symbol->string name)))) (push-code! `(define ,(symbol->string name))))
(else (else
(error "assemble: unknown record type" (record-type-descriptor x))))) (error "assemble: unknown record type" (record-type-descriptor x)))))