Revert "expander: fix intering of some module path indexes for ".zo""

This reverts commit 91f8d8a72f.
The idea that the same resolved path implies the same module
path index is incorrect.

Related to #3241
This commit is contained in:
Matthew Flatt 2020-06-08 10:41:17 -06:00
parent 1f3a18d637
commit 79e6d1865a
2 changed files with 10 additions and 33 deletions

View File

@ -6,25 +6,18 @@
intern-module-path-index!)
(struct mpi-intern-table (normal ; name[not #f] -[`equal?`-based]-> base -[`eq?`-based]-> module path index
fast ; superset, but `eq?`-keyed for fast already-interned checks
self)) ; name -[`equal?`-based]-> module path index
fast)) ; superset, but `eq?`-keyed for fast already-interned checks
(define (make-module-path-index-intern-table)
(mpi-intern-table (make-hash) (make-hasheq) (make-hash)))
(mpi-intern-table (make-hash) (make-hasheq)))
(define (intern-module-path-index! t mpi)
(or (hash-ref (mpi-intern-table-fast t) mpi #f)
(let-values ([(name base) (module-path-index-split mpi)])
(cond
[(not name)
;; "self" MPIs are equivalent when they have the same resolution
(define r (or (module-path-index-resolved mpi)
'self))
(or (hash-ref (mpi-intern-table-self t) r #f)
(begin
(hash-set! (mpi-intern-table-self t) r mpi)
(hash-set! (mpi-intern-table-fast t) mpi mpi)
mpi))]
mpi]
[else
(define interned-base (and base
(intern-module-path-index! t base)))

View File

@ -20483,25 +20483,20 @@ static const char *startup_source =
"(read-fasl-bytes)"
"(lambda(i_0)(begin(let-values(((len_0)(read-fasl-integer i_0)))(read-bytes/exactly len_0 i_0)))))"
"(define-values"
"(struct:mpi-intern-table"
" mpi-intern-table1.1"
" mpi-intern-table?"
" mpi-intern-table-normal"
" mpi-intern-table-fast"
" mpi-intern-table-self)"
"(struct:mpi-intern-table mpi-intern-table1.1 mpi-intern-table? mpi-intern-table-normal mpi-intern-table-fast)"
"(let-values(((struct:_0 make-_0 ?_0 -ref_0 -set!_0)"
"(let-values()"
"(let-values()"
"(make-struct-type"
" 'mpi-intern-table"
" #f"
" 3"
" 2"
" 0"
" #f"
" null"
"(current-inspector)"
" #f"
" '(0 1 2)"
" '(0 1)"
" #f"
" 'mpi-intern-table)))))"
"(values"
@ -20509,11 +20504,10 @@ static const char *startup_source =
" make-_0"
" ?_0"
"(make-struct-field-accessor -ref_0 0 'normal)"
"(make-struct-field-accessor -ref_0 1 'fast)"
"(make-struct-field-accessor -ref_0 2 'self))))"
"(make-struct-field-accessor -ref_0 1 'fast))))"
"(define-values"
"(make-module-path-index-intern-table)"
"(lambda()(begin(mpi-intern-table1.1(make-hash)(make-hasheq)(make-hash)))))"
"(lambda()(begin(mpi-intern-table1.1(make-hash)(make-hasheq)))))"
"(define-values"
"(intern-module-path-index!)"
"(lambda(t_0 mpi_0)"
@ -20523,17 +20517,7 @@ static const char *startup_source =
" or-part_0"
"(let-values(((name_0 base_0)(1/module-path-index-split mpi_0)))"
"(if(not name_0)"
"(let-values()"
"(let-values(((r_0)"
"(let-values(((or-part_1)(module-path-index-resolved mpi_0)))"
"(if or-part_1 or-part_1 'self))))"
"(let-values(((or-part_1)(hash-ref(mpi-intern-table-self t_0) r_0 #f)))"
"(if or-part_1"
" or-part_1"
"(begin"
"(hash-set!(mpi-intern-table-self t_0) r_0 mpi_0)"
"(hash-set!(mpi-intern-table-fast t_0) mpi_0 mpi_0)"
" mpi_0)))))"
"(let-values()(begin(hash-set!(mpi-intern-table-fast t_0) mpi_0 mpi_0) mpi_0))"
"(let-values()"
"(let-values(((interned-base_0)(if base_0(intern-module-path-index! t_0 base_0) #f)))"
"(let-values(((at-name_0)"