fix decompiler

original commit: 6cfc0b481d
This commit is contained in:
Matthew Flatt 2010-05-08 06:56:39 -06:00
4 changed files with 8 additions and 5 deletions

View File

@ -92,7 +92,7 @@
(define (decompile-module mod-form stack) (define (decompile-module mod-form stack)
(match mod-form (match mod-form
[(struct mod (name self-modidx prefix provides requires body syntax-body unexported [(struct mod (name srcname self-modidx prefix provides requires body syntax-body unexported
max-let-depth dummy lang-info internal-context)) max-let-depth dummy lang-info internal-context))
(let-values ([(globs defns) (decompile-prefix prefix)] (let-values ([(globs defns) (decompile-prefix prefix)]
[(stack) (append '(#%modvars) stack)] [(stack) (append '(#%modvars) stack)]

View File

@ -90,9 +90,10 @@
(define (traverse-module mod-form visit) (define (traverse-module mod-form visit)
(match mod-form (match mod-form
[(struct mod (name self-modidx prefix provides requires body syntax-body unexported [(struct mod (name srcname self-modidx prefix provides requires body syntax-body unexported
max-let-depth dummy lang-info internal-context)) max-let-depth dummy lang-info internal-context))
(traverse-data name visit) (traverse-data name visit)
(traverse-data srcname visit)
(traverse-data self-modidx visit) (traverse-data self-modidx visit)
(traverse-prefix prefix visit) (traverse-prefix prefix visit)
(for-each (lambda (f) (map (lambda (v) (traverse-data v visit)) (cdr f))) requires) (for-each (lambda (f) (map (lambda (v) (traverse-data v visit)) (cdr f))) requires)
@ -431,7 +432,7 @@
(define (out-module mod-form out) (define (out-module mod-form out)
(match mod-form (match mod-form
[(struct mod (name self-modidx prefix provides requires body syntax-body unexported [(struct mod (name srcname self-modidx prefix provides requires body syntax-body unexported
max-let-depth dummy lang-info internal-context)) max-let-depth dummy lang-info internal-context))
(out-syntax MODULE_EXPD (out-syntax MODULE_EXPD
(let* ([lookup-req (lambda (phase) (let* ([lookup-req (lambda (phase)
@ -504,6 +505,7 @@
[l (list* #f #f l)] ; obsolete `functional?' info [l (list* #f #f l)] ; obsolete `functional?' info
[l (cons lang-info l)] ; lang-info [l (cons lang-info l)] ; lang-info
[l (cons self-modidx l)] [l (cons self-modidx l)]
[l (cons srcname l)]
[l (cons name l)]) [l (cons name l)])
(make-module-decl l)) (make-module-decl l))
out)])) out)]))

View File

@ -205,7 +205,7 @@
(define (read-module v) (define (read-module v)
(match v (match v
[`(,name ,self-modidx ,lang-info ,functional? ,et-functional? [`(,name ,srcname ,self-modidx ,lang-info ,functional? ,et-functional?
,rename ,max-let-depth ,dummy ,rename ,max-let-depth ,dummy
,prefix ,prefix
,indirect-et-provides ,num-indirect-et-provides ,indirect-et-provides ,num-indirect-et-provides
@ -218,7 +218,7 @@
[`(,syntax-body ,body [`(,syntax-body ,body
,requires ,syntax-requires ,template-requires ,label-requires ,requires ,syntax-requires ,template-requires ,label-requires
,more-requires-count . ,more-requires) ,more-requires-count . ,more-requires)
(make-mod name self-modidx (make-mod name srcname self-modidx
prefix (let loop ([l phase-data]) prefix (let loop ([l phase-data])
(if (null? l) (if (null? l)
null null

View File

@ -90,6 +90,7 @@
[max-let-depth exact-nonnegative-integer?])) [max-let-depth exact-nonnegative-integer?]))
(define-form-struct (mod form) ([name symbol?] (define-form-struct (mod form) ([name symbol?]
[srcname symbol?]
[self-modidx module-path-index?] [self-modidx module-path-index?]
[prefix prefix?] [prefix prefix?]
[provides (listof (list/c (or/c exact-integer? #f) [provides (listof (list/c (or/c exact-integer? #f)