make the optimizer slightly smarter, so that it can see through more patterns of nested let and letrec procedure bindings
svn: r12434
original commit: 59f3f19f84
This commit is contained in:
parent
c3ee691e9d
commit
66ad436925
|
@ -40,7 +40,7 @@
|
|||
;; Main entry:
|
||||
(define (decompile top)
|
||||
(match top
|
||||
[(struct compilation-top (_ prefix form))
|
||||
[(struct compilation-top (max-let-depth prefix form))
|
||||
(let-values ([(globs defns) (decompile-prefix prefix)])
|
||||
`(begin
|
||||
,@defns
|
||||
|
@ -88,7 +88,7 @@
|
|||
|
||||
(define (decompile-module mod-form stack)
|
||||
(match mod-form
|
||||
[(struct mod (name self-modidx prefix provides requires body syntax-body))
|
||||
[(struct mod (name self-modidx prefix provides requires body syntax-body max-let-depth))
|
||||
(let-values ([(globs defns) (decompile-prefix prefix)]
|
||||
[(stack) (append '(#%modvars) stack)])
|
||||
`(module ,name ....
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
;; In stxs of prefix:
|
||||
(define-form-struct stx (encoded)) ; todo: decode syntax objects
|
||||
|
||||
(define-form-struct mod (name self-modidx prefix provides requires body syntax-body))
|
||||
(define-form-struct mod (name self-modidx prefix provides requires body syntax-body max-let-depth))
|
||||
|
||||
(define-form-struct lam (name flags num-params rest? closure-map max-let-depth body)) ; `lambda'
|
||||
(define-form-struct closure (code gen-id)) ; a static closure (nothing to close over)
|
||||
|
@ -220,7 +220,8 @@
|
|||
make-def-for-syntax
|
||||
make-def-syntaxes)
|
||||
ids expr prefix max-let-depth)]))
|
||||
(vector->list syntax-body)))]))]))
|
||||
(vector->list syntax-body))
|
||||
max-let-depth)]))]))
|
||||
(define (read-module-wrap v)
|
||||
v)
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user