From 79e6d1865ab24425175bd79b36c7487b5148bfcc Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Mon, 8 Jun 2020 10:41:17 -0600 Subject: [PATCH] Revert "expander: fix intering of some module path indexes for ".zo"" This reverts commit 91f8d8a72ffaa5e5e6a77683318f44b1ae07aaa2. The idea that the same resolved path implies the same module path index is incorrect. Related to #3241 --- .../expander/common/module-path-intern.rkt | 15 +++------- racket/src/racket/src/startup.inc | 28 ++++--------------- 2 files changed, 10 insertions(+), 33 deletions(-) diff --git a/racket/src/expander/common/module-path-intern.rkt b/racket/src/expander/common/module-path-intern.rkt index 1cf6926783..d8e3cedb02 100644 --- a/racket/src/expander/common/module-path-intern.rkt +++ b/racket/src/expander/common/module-path-intern.rkt @@ -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))) diff --git a/racket/src/racket/src/startup.inc b/racket/src/racket/src/startup.inc index 03a93ec7ac..490ca06a27 100644 --- a/racket/src/racket/src/startup.inc +++ b/racket/src/racket/src/startup.inc @@ -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)"