mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-06-22 19:44:10 +02:00
Add pass to resolve free toplevel references in declarative modules
* am/bootstrap.am (SOURCES): * module/Makefile.am (SOURCES): * module/language/tree-il/optimize.scm (make-optimizer): Wire up the new pass. * module/language/tree-il/resolve-free-vars.scm: New pass. * module/system/base/optimize.scm (available-optimizations): Enable new pass at -O1.
This commit is contained in:
parent
809b165128
commit
a892791b43
5 changed files with 287 additions and 0 deletions
|
@ -39,6 +39,7 @@
|
|||
'proc)))))
|
||||
(let ((verify (or (lookup #:verify-tree-il? debug verify-tree-il)
|
||||
(lambda (exp) exp)))
|
||||
(modulify (lookup #:resolve-free-vars? resolve-free-vars))
|
||||
(resolve (lookup #:resolve-primitives? primitives resolve-primitives))
|
||||
(expand (lookup #:expand-primitives? primitives expand-primitives))
|
||||
(letrectify (lookup #:letrectify? letrectify))
|
||||
|
@ -49,6 +50,7 @@
|
|||
(when proc (set! exp (verify (proc exp arg ...)))))
|
||||
(lambda (exp env)
|
||||
(verify exp)
|
||||
(run-pass! (modulify exp))
|
||||
(run-pass! (resolve exp env))
|
||||
(run-pass! (expand exp))
|
||||
(run-pass! (letrectify exp #:seal-private-bindings? seal?))
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue