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:
parent
1f3a18d637
commit
79e6d1865a
|
@ -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))]
|
||||
(hash-set! (mpi-intern-table-fast t) mpi mpi)
|
||||
mpi]
|
||||
[else
|
||||
(define interned-base (and base
|
||||
(intern-module-path-index! t base)))
|
||||
|
|
|
@ -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)"
|
||||
|
|
Loading…
Reference in New Issue
Block a user