diff --git a/Makefile b/Makefile index 81071094d2..cbf6a631e7 100644 --- a/Makefile +++ b/Makefile @@ -869,6 +869,7 @@ site-from-installers: plain-site-from-installers: rm -rf build/docs + rm -rf "build/zo`pwd`/build/docs" $(USER_RACKET) -l- distro-build/install-for-docs build/docs $(CONFIG_MODE_q) "$(PKGS)" $(DOC_CATALOGS) $(USER_RACKET) -l- distro-build/assemble-site $(CONFIG_MODE_q) diff --git a/racket/src/expander/compile/form.rkt b/racket/src/expander/compile/form.rkt index 1e883f6734..6e187928df 100644 --- a/racket/src/expander/compile/form.rkt +++ b/racket/src/expander/compile/form.rkt @@ -280,6 +280,7 @@ #:module-prompt? module-prompt? #:module-use*s module-use*s #:cross-linklet-inlining? cross-linklet-inlining? + #:load-modules? #f #:namespace (compile-context-namespace cctx))])) (values phase (cons linklet new-module-use*s)))) @@ -396,6 +397,7 @@ #:module-prompt? module-prompt? #:module-use*s module-use*s #:cross-linklet-inlining? cross-linklet-inlining? + #:load-modules? load-modules? #:namespace namespace) (define-values (linklet new-module-use*s) (performance-region @@ -420,6 +422,7 @@ ;; to a linklet and an optional vector of keys for that linklet's ;; imports: (make-module-use-to-linklet cross-linklet-inlining? + load-modules? namespace get-module-linklet-info module-use*s)))) @@ -428,7 +431,8 @@ ;; ---------------------------------------- -(define (make-module-use-to-linklet cross-linklet-inlining? ns get-module-linklet-info init-mu*s) +(define (make-module-use-to-linklet cross-linklet-inlining? load-modules? + ns get-module-linklet-info init-mu*s) ;; Inlining might reach the same module though different indirections; ;; use a consistent `module-use` value so that the compiler knows to ;; collapse them to a single import @@ -460,7 +464,7 @@ (values #f #f)] [mu*-or-instance (define mu* mu*-or-instance) - (define mod-name (module-path-index-resolve (module-use-module mu*))) + (define mod-name (module-path-index-resolve (module-use-module mu*) load-modules?)) (define mli (or (get-module-linklet-info mod-name (module-use-phase mu*)) (namespace->module-linklet-info ns mod-name diff --git a/racket/src/expander/compile/recompile.rkt b/racket/src/expander/compile/recompile.rkt index 138dee5eb3..1055919d1a 100644 --- a/racket/src/expander/compile/recompile.rkt +++ b/racket/src/expander/compile/recompile.rkt @@ -178,6 +178,7 @@ #:module-prompt? #t #:module-use*s module-use*s #:cross-linklet-inlining? #t + #:load-modules? #t #:namespace ns)) (values phase (cons linklet new-module-use*s)))) diff --git a/racket/src/racket/src/startup.inc b/racket/src/racket/src/startup.inc index 9e5b79e566..b3ac66e158 100644 --- a/racket/src/racket/src/startup.inc +++ b/racket/src/racket/src/startup.inc @@ -30259,11 +30259,11 @@ static const char *startup_source = "(define-values" "(empty-syntax-literals-instance)" "(1/make-instance 'empty-stx #f 'constant get-syntax-literal!-id(lambda(pos_0) #f) 'get-encoded-root-expand-ctx #f))" -"(void(1/instance-describe-variable! empty-syntax-literals-instance 'get-syntax-literal!-id '(procedure/succeeds 2)))" +"(void(1/instance-describe-variable! empty-syntax-literals-instance get-syntax-literal!-id '(procedure/succeeds 2)))" "(define-values" "(empty-module-body-instance)" "(let-values(((temp21_0)(lambda(name_0 val_0)(void))))(make-module-body-instance-instance18.1 temp21_0)))" -"(void(1/instance-describe-variable! empty-module-body-instance 'set-transformer!-id '(procedure/succeeds 4)))" +"(void(1/instance-describe-variable! empty-module-body-instance set-transformer!-id '(procedure/succeeds 4)))" "(define-values" "(empty-top-syntax-literal-instance)" "(1/make-instance 'top-syntax-literal #f 'constant mpi-vector-id #f syntax-literals-id #f))" @@ -31837,26 +31837,26 @@ static const char *startup_source = "(let-values()" "(cons" "(let-values()" -"(let-values(((header59_0)" +"(let-values(((header61_0)" " header_0)" -"((temp60_0)" +"((temp62_0)" "(compile-context-self" " cctx_0))" -"((phase61_0)" +"((phase63_0)" " phase_1)" -"((binding-sym62_0)" +"((binding-sym64_0)" " binding-sym_0)" -"((temp63_0)" +"((temp65_0)" " #f)" -"((temp64_0)" +"((temp66_0)" " #t))" "(register-required-variable-use!19.1" -" temp64_0" -" header59_0" -" temp60_0" -" phase61_0" -" binding-sym62_0" -" temp63_0)))" +" temp66_0" +" header61_0" +" temp62_0" +" phase63_0" +" binding-sym64_0" +" temp65_0)))" " fold-var_1))))" "(values" " fold-var_2)))))" @@ -31878,14 +31878,14 @@ static const char *startup_source = " cctx_0))" "(if(compile-context?" " the-struct_0)" -"(let-values(((phase65_0)" +"(let-values(((phase67_0)" " phase_1)" -"((header66_0)" +"((header68_0)" " header_0))" "(compile-context1.1" "(compile-context-namespace" " the-struct_0)" -" phase65_0" +" phase67_0" "(compile-context-self" " the-struct_0)" "(compile-context-module-self" @@ -31894,7 +31894,7 @@ static const char *startup_source = " the-struct_0)" "(compile-context-lazy-syntax-literals?" " the-struct_0)" -" header66_0))" +" header68_0))" "(raise-argument-error" " 'struct-copy" " \"compile-context?\"" @@ -32001,14 +32001,14 @@ static const char *startup_source = " cctx_0))" "(if(compile-context?" " the-struct_0)" -"(let-values(((phase67_0)" +"(let-values(((phase69_0)" " phase_1)" -"((header68_0)" +"((header70_0)" " header_0))" "(compile-context1.1" "(compile-context-namespace" " the-struct_0)" -" phase67_0" +" phase69_0" "(compile-context-self" " the-struct_0)" "(compile-context-module-self" @@ -32017,7 +32017,7 @@ static const char *startup_source = " the-struct_0)" "(compile-context-lazy-syntax-literals?" " the-struct_0)" -" header68_0))" +" header70_0))" "(raise-argument-error" " 'struct-copy" " \"compile-context?\"" @@ -32097,15 +32097,15 @@ static const char *startup_source = " cctx_0))" "(if(compile-context?" " the-struct_0)" -"(let-values(((phase69_0)" +"(let-values(((phase71_0)" "(add1" " phase_1))" -"((header70_0)" +"((header72_0)" " next-header_0))" "(compile-context1.1" "(compile-context-namespace" " the-struct_0)" -" phase69_0" +" phase71_0" "(compile-context-self" " the-struct_0)" "(compile-context-module-self" @@ -32114,7 +32114,7 @@ static const char *startup_source = " the-struct_0)" "(compile-context-lazy-syntax-literals?" " the-struct_0)" -" header70_0))" +" header72_0))" "(raise-argument-error" " 'struct-copy" " \"compile-context?\"" @@ -32237,14 +32237,14 @@ static const char *startup_source = " cctx_0))" "(if(compile-context?" " the-struct_0)" -"(let-values(((phase71_0)" +"(let-values(((phase73_0)" " phase_1)" -"((header72_0)" +"((header74_0)" " header_0))" "(compile-context1.1" "(compile-context-namespace" " the-struct_0)" -" phase71_0" +" phase73_0" "(compile-context-self" " the-struct_0)" "(compile-context-module-self" @@ -32253,7 +32253,7 @@ static const char *startup_source = " the-struct_0)" "(compile-context-lazy-syntax-literals?" " the-struct_0)" -" header72_0))" +" header74_0))" "(raise-argument-error" " 'struct-copy" " \"compile-context?\"" @@ -32292,14 +32292,14 @@ static const char *startup_source = " cctx_0))" "(if(compile-context?" " the-struct_0)" -"(let-values(((phase73_0)" +"(let-values(((phase75_0)" " phase_1)" -"((header74_0)" +"((header76_0)" " header_0))" "(compile-context1.1" "(compile-context-namespace" " the-struct_0)" -" phase73_0" +" phase75_0" "(compile-context-self" " the-struct_0)" "(compile-context-module-self" @@ -32308,7 +32308,7 @@ static const char *startup_source = " the-struct_0)" "(compile-context-lazy-syntax-literals?" " the-struct_0)" -" header74_0))" +" header76_0))" "(raise-argument-error" " 'struct-copy" " \"compile-context?\"" @@ -32334,14 +32334,14 @@ static const char *startup_source = " cctx_0))" "(if(compile-context?" " the-struct_0)" -"(let-values(((phase75_0)" +"(let-values(((phase77_0)" " phase_1)" -"((header76_0)" +"((header78_0)" " header_0))" "(compile-context1.1" "(compile-context-namespace" " the-struct_0)" -" phase75_0" +" phase77_0" "(compile-context-self" " the-struct_0)" "(compile-context-module-self" @@ -32350,7 +32350,7 @@ static const char *startup_source = " the-struct_0)" "(compile-context-lazy-syntax-literals?" " the-struct_0)" -" header76_0))" +" header78_0))" "(raise-argument-error" " 'struct-copy" " \"compile-context?\"" @@ -32409,15 +32409,15 @@ static const char *startup_source = " #f)" " #f)))" "(let-values(((phases-in-order_0)" -"(let-values(((temp77_0)" +"(let-values(((temp79_0)" "(hash-keys" " phase-to-body_0))" -"((<78_0) <))" +"((<80_0) <))" "(sort7.1" " #f" " #f" -" temp77_0" -" <78_0))))" +" temp79_0" +" <80_0))))" "(let-values(((min-phase_0)" "(if(pair? phases-in-order_0)" "(car phases-in-order_0)" @@ -32626,36 +32626,39 @@ static const char *startup_source = " 'module)" " module-use*s_0))" "(let-values()" -"(let-values(((body-linklet79_0)" +"(let-values(((body-linklet81_0)" " body-linklet_0)" -"((body-imports80_0)" +"((body-imports82_0)" " body-imports_0)" -"((body-import-instances81_0)" +"((body-import-instances83_0)" " body-import-instances_0)" -"((get-module-linklet-info82_0)" +"((get-module-linklet-info84_0)" " get-module-linklet-info_0)" -"((serializable?83_0)" +"((serializable?85_0)" " serializable?_0)" -"((module-prompt?84_0)" +"((module-prompt?86_0)" " module-prompt?_0)" -"((module-use*s85_0)" +"((module-use*s87_0)" " module-use*s_0)" -"((cross-linklet-inlining?86_0)" +"((cross-linklet-inlining?88_0)" " cross-linklet-inlining?_0)" -"((temp87_0)" +"((temp89_0)" +" #f)" +"((temp90_0)" "(compile-context-namespace" " cctx_0)))" -"(compile-module-linklet55.1" -" body-import-instances81_0" -" body-imports80_0" +"(compile-module-linklet57.1" +" body-import-instances83_0" +" body-imports82_0" " unsafe-undefined" -" cross-linklet-inlining?86_0" -" get-module-linklet-info82_0" -" module-prompt?84_0" -" module-use*s85_0" -" temp87_0" -" serializable?83_0" -" body-linklet79_0))))))" +" cross-linklet-inlining?88_0" +" get-module-linklet-info84_0" +" temp89_0" +" module-prompt?86_0" +" module-use*s87_0" +" temp90_0" +" serializable?85_0" +" body-linklet81_0))))))" "(values" " phase_1" "(cons" @@ -33029,20 +33032,21 @@ static const char *startup_source = "(let-values(((v_0)(syntax-property$1 orig-s_0 'compiler-hint:cross-module-inline)))" "(if v_0(correlated-property e_0 'compiler-hint:cross-module-inline v_0) e_0)))))" "(define-values" -"(compile-module-linklet55.1)" +"(compile-module-linklet57.1)" "(lambda(body-import-instances38_0" " body-imports37_0" " compile-linklet36_0" " cross-linklet-inlining?43_0" " get-module-linklet-info39_0" +" load-modules?44_0" " module-prompt?41_0" " module-use*s42_0" -" namespace44_0" +" namespace45_0" " serializable?40_0" -" body-linklet54_0)" +" body-linklet56_0)" "(begin" -" 'compile-module-linklet55" -"(let-values(((body-linklet_0) body-linklet54_0))" +" 'compile-module-linklet57" +"(let-values(((body-linklet_0) body-linklet56_0))" "(let-values(((compile-linklet_0)" "(if(eq? compile-linklet36_0 unsafe-undefined) 1/compile-linklet compile-linklet36_0)))" "(let-values(((body-imports_0) body-imports37_0))" @@ -33052,7 +33056,8 @@ static const char *startup_source = "(let-values(((module-prompt?_0) module-prompt?41_0))" "(let-values(((module-use*s_0) module-use*s42_0))" "(let-values(((cross-linklet-inlining?_0) cross-linklet-inlining?43_0))" -"(let-values(((namespace_0) namespace44_0))" +"(let-values(((load-modules?_0) load-modules?44_0))" +"(let-values(((namespace_0) namespace45_0))" "(let-values()" "(let-values(((linklet_0 new-module-use*s_0)" "(begin" @@ -33075,16 +33080,19 @@ static const char *startup_source = "(list->vector(append body-import-instances_0 module-use*s_0))" "(make-module-use-to-linklet" " cross-linklet-inlining?_0" +" load-modules?_0" " namespace_0" " get-module-linklet-info_0" " module-use*s_0)))" -"(if log-performance?(let-values()(end-performance-region))(void))))))" +"(if log-performance?" +"(let-values()(end-performance-region))" +"(void))))))" "(values" " linklet_0" -"(list-tail(vector->list new-module-use*s_0)(length body-imports_0))))))))))))))))))" +"(list-tail(vector->list new-module-use*s_0)(length body-imports_0)))))))))))))))))))" "(define-values" "(make-module-use-to-linklet)" -"(lambda(cross-linklet-inlining?_0 ns_0 get-module-linklet-info_0 init-mu*s_0)" +"(lambda(cross-linklet-inlining?_0 load-modules?_0 ns_0 get-module-linklet-info_0 init-mu*s_0)" "(begin" "(let-values(((mu*-intern-table_0)(make-hash)))" "(let-values(((intern-module-use*_0)" @@ -33132,7 +33140,8 @@ static const char *startup_source = "(if mu*-or-instance_0" "(let-values()" "(let-values(((mu*_0) mu*-or-instance_0))" -"(let-values(((mod-name_0)(1/module-path-index-resolve(module-use-module mu*_0))))" +"(let-values(((mod-name_0)" +"(1/module-path-index-resolve(module-use-module mu*_0) load-modules?_0)))" "(let-values(((mli_0)" "(let-values(((or-part_0)" "(get-module-linklet-info_0 mod-name_0(module-use-phase mu*_0))))" @@ -40380,17 +40389,20 @@ static const char *startup_source = " module-use*s_0)" "((temp11_0)" " #t)" -"((ns12_0)" +"((temp12_0)" +" #t)" +"((ns13_0)" " ns_0))" -"(compile-module-linklet55.1" +"(compile-module-linklet57.1" " temp6_0" " temp5_0" " temp4_0" " temp11_0" " find-submodule7_0" +" temp12_0" " temp9_0" " module-use*s10_0" -" ns12_0" +" ns13_0" " temp8_0" " temp3_0))))" "(values"