expander: fix another recompilation problem

Fix merging of extra-inspector sets, which recompilation ignores
anyway.
This commit is contained in:
Matthew Flatt 2018-11-23 11:15:25 -07:00
parent 600a6b4c29
commit 1c437793a6
2 changed files with 17 additions and 8 deletions

View File

@ -131,12 +131,16 @@
;; Merge inspectors from potentially different paths through imported linklets
(define (module-use-merge-extra-inspectorss! existing-mu* mu*)
(define extra-inspectorss (module-use*-extra-inspectorss mu*))
(define existing-extra-inspectorss (module-use*-extra-inspectorss existing-mu*))
(define extra-inspectorss (module-use*-extra-inspectorss mu*))
(define new-extra-inspectorss
(for/fold ([new-extra-inspectorss existing-extra-inspectorss]) ([(sym extra-inspectors) (in-hash extra-inspectorss)])
(hash-set new-extra-inspectorss
sym
(extra-inspectors-merge extra-inspectors
(hash-ref new-extra-inspectorss sym (seteq))))))
(cond
[(not existing-extra-inspectorss) extra-inspectorss]
[(not extra-inspectorss) existing-extra-inspectorss]
[else
(for/fold ([new-extra-inspectorss existing-extra-inspectorss]) ([(sym extra-inspectors) (in-hash extra-inspectorss)])
(hash-set new-extra-inspectorss
sym
(extra-inspectors-merge extra-inspectors
(hash-ref new-extra-inspectorss sym (seteq)))))]))
(set-module-use*-extra-inspectorss! existing-mu* new-extra-inspectorss))

View File

@ -31318,9 +31318,14 @@ static const char *startup_source =
"(module-use-merge-extra-inspectorss!)"
"(lambda(existing-mu*_0 mu*_0)"
"(begin"
"(let-values(((extra-inspectorss_0)(module-use*-extra-inspectorss mu*_0)))"
"(let-values(((existing-extra-inspectorss_0)(module-use*-extra-inspectorss existing-mu*_0)))"
"(let-values(((extra-inspectorss_0)(module-use*-extra-inspectorss mu*_0)))"
"(let-values(((new-extra-inspectorss_0)"
"(if(not existing-extra-inspectorss_0)"
"(let-values() extra-inspectorss_0)"
"(if(not extra-inspectorss_0)"
"(let-values() existing-extra-inspectorss_0)"
"(let-values()"
"(let-values(((ht_0) extra-inspectorss_0))"
"(begin"
"(if(variable-reference-from-unsafe?(#%variable-reference))"
@ -31356,7 +31361,7 @@ static const char *startup_source =
" new-extra-inspectorss_0)))))"
" for-loop_0)"
" existing-extra-inspectorss_0"
"(hash-iterate-first ht_0))))))"
"(hash-iterate-first ht_0)))))))))"
"(set-module-use*-extra-inspectorss! existing-mu*_0 new-extra-inspectorss_0)))))))"
"(define-values"
"(struct:link-info"