diff --git a/racket/src/expander/common/module-path.rkt b/racket/src/expander/common/module-path.rkt index 117849b388..adfc93d26c 100644 --- a/racket/src/expander/common/module-path.rkt +++ b/racket/src/expander/common/module-path.rkt @@ -2,6 +2,7 @@ (require racket/private/place-local ffi/unsafe/atomic "../compile/serialize-property.rkt" + "../common/performance.rkt" "contract.rkt" "parse-module-path.rkt" "intern.rkt") @@ -200,13 +201,15 @@ (define/who (module-path-index-resolve mpi [load? #f]) (check who module-path-index? mpi) (or (module-path-index-resolved mpi) - (let ([mod-name ((current-module-name-resolver) - (module-path-index-path mpi) - (module-path-index-resolve/maybe - (module-path-index-base mpi) - load?) - #f - load?)]) + (let ([mod-name (performance-region + ['eval 'resolver] + ((current-module-name-resolver) + (module-path-index-path mpi) + (module-path-index-resolve/maybe + (module-path-index-base mpi) + load?) + #f + load?))]) (unless (resolved-module-path? mod-name) (raise-arguments-error 'module-path-index-resolve "current module name resolver's result is not a resolved module path" diff --git a/racket/src/expander/namespace/module.rkt b/racket/src/expander/namespace/module.rkt index 1044fd13b9..0fd46499ba 100644 --- a/racket/src/expander/namespace/module.rkt +++ b/racket/src/expander/namespace/module.rkt @@ -372,9 +372,7 @@ #:seen [seen #hasheq()]) (unless (module-path-index? mpi) (error "not a module path index:" mpi)) - (define name (performance-region - ['eval 'resolve] - (module-path-index-resolve mpi #t))) + (define name (module-path-index-resolve mpi #t)) (define m (namespace->module ns name)) (unless m (raise-unknown-module-error 'instantiate name)) (define (instantiate! instance-phase run-phase ns) diff --git a/racket/src/racket/src/startup.inc b/racket/src/racket/src/startup.inc index 1c03209f61..eaa3f90a81 100644 --- a/racket/src/racket/src/startup.inc +++ b/racket/src/racket/src/startup.inc @@ -3091,6 +3091,524 @@ static const char *startup_source = "(prop:binding-reach-scopes binding-reach-scopes? binding-reach-scopes-ref)" "(make-struct-type-property 'binding-reach-scopes))" "(define-values" +"(log-performance?)" +" (if (environment-variables-ref (current-environment-variables) #\"PLT_EXPANDER_TIMES\") #t #f))" +"(define-values(cell.1$7)(unsafe-make-place-local #f))" +"(define-values(cell.2$4)(unsafe-make-place-local(make-hasheq)))" +"(define-values(performance-place-init!)(lambda()(begin(unsafe-place-local-set! cell.2$4(make-hasheq)))))" +"(define-values" +"(struct:region" +" region1.1" +" region?" +" region-path" +" region-start" +" region-start-memory" +" region-as-nested" +" region-as-nested-memory" +" set-region-start!" +" set-region-start-memory!" +" set-region-as-nested!" +" set-region-as-nested-memory!)" +"(let-values(((struct:_0 make-_0 ?_0 -ref_0 -set!_0)" +"(let-values()" +"(let-values()(make-struct-type 'region #f 5 0 #f null(current-inspector) #f '(0) #f 'region)))))" +"(values" +" struct:_0" +" make-_0" +" ?_0" +"(make-struct-field-accessor -ref_0 0 'path)" +"(make-struct-field-accessor -ref_0 1 'start)" +"(make-struct-field-accessor -ref_0 2 'start-memory)" +"(make-struct-field-accessor -ref_0 3 'as-nested)" +"(make-struct-field-accessor -ref_0 4 'as-nested-memory)" +"(make-struct-field-mutator -set!_0 1 'start)" +"(make-struct-field-mutator -set!_0 2 'start-memory)" +"(make-struct-field-mutator -set!_0 3 'as-nested)" +"(make-struct-field-mutator -set!_0 4 'as-nested-memory))))" +"(define-values" +"(struct:stat stat2.1 stat? stat-msecs stat-memory stat-count set-stat-msecs! set-stat-memory! set-stat-count!)" +"(let-values(((struct:_0 make-_0 ?_0 -ref_0 -set!_0)" +"(let-values()" +"(let-values()(make-struct-type 'stat #f 3 0 #f null(current-inspector) #f '() #f 'stat)))))" +"(values" +" struct:_0" +" make-_0" +" ?_0" +"(make-struct-field-accessor -ref_0 0 'msecs)" +"(make-struct-field-accessor -ref_0 1 'memory)" +"(make-struct-field-accessor -ref_0 2 'count)" +"(make-struct-field-mutator -set!_0 0 'msecs)" +"(make-struct-field-mutator -set!_0 1 'memory)" +"(make-struct-field-mutator -set!_0 2 'count))))" +"(define-values(stat-key)(gensym))" +"(define-values" +"(start-performance-region)" +"(lambda path_0" +"(begin" +"(unsafe-place-local-set!" +" cell.1$7" +"(cons" +"(region1.1" +"(if(unsafe-place-local-ref cell.1$7)" +"((letrec-values(((loop_0)" +"(lambda(path_1 enclosing-path_0)" +"(begin" +" 'loop" +"(if(null? path_1)" +" null" +"(cons" +"(if(if(eq? '_(car path_1))(pair? enclosing-path_0) #f)" +"(car enclosing-path_0)" +"(car path_1))" +"(loop_0" +"(cdr path_1)" +"(if(pair? enclosing-path_0)(cdr enclosing-path_0) null))))))))" +" loop_0)" +" path_0" +"(region-path(car(unsafe-place-local-ref cell.1$7))))" +" path_0)" +"(current-inexact-milliseconds)" +"(current-memory-use 'cumulative)" +" 0.0" +" 0)" +"(unsafe-place-local-ref cell.1$7))))))" +"(define-values" +"(end-performance-region)" +"(lambda()" +"(begin" +"(let-values(((now_0)(current-inexact-milliseconds)))" +"(let-values(((now-memory_0)(current-memory-use 'cumulative)))" +"(let-values(((r_0)(car(unsafe-place-local-ref cell.1$7))))" +"(let-values((()" +"(begin(unsafe-place-local-set! cell.1$7(cdr(unsafe-place-local-ref cell.1$7)))(values))))" +"(let-values(((full-delta_0)(- now_0(region-start r_0))))" +"(let-values(((delta_0)(- full-delta_0(region-as-nested r_0))))" +"(let-values(((full-delta-memory_0)(- now-memory_0(region-start-memory r_0))))" +"(let-values(((delta-memory_0)(- full-delta-memory_0(region-as-nested-memory r_0))))" +"(begin" +"((letrec-values(((loop_0)" +"(lambda(accums_0 path_0)" +"(begin" +" 'loop" +"(let-values(((key_0)(car path_0)))" +"(let-values(((accum_0)" +"(let-values(((or-part_0)(hash-ref accums_0 key_0 #f)))" +"(if or-part_0" +" or-part_0" +"(let-values(((accum_0)(make-hasheq)))" +"(begin" +"(hash-set! accums_0 key_0 accum_0)" +" accum_0))))))" +"(let-values(((s_0)" +"(let-values(((or-part_0)" +"(hash-ref accum_0 stat-key #f)))" +"(if or-part_0" +" or-part_0" +"(let-values(((s_0)(stat2.1 0.0 0 0)))" +"(begin(hash-set! accum_0 stat-key s_0) s_0))))))" +"(begin" +"(set-stat-msecs! s_0(+ delta_0(stat-msecs s_0)))" +"(set-stat-memory! s_0(+ delta-memory_0(stat-memory s_0)))" +"(if(null?(cdr path_0))" +"(let-values()(set-stat-count! s_0(add1(stat-count s_0))))" +"(void))" +"(if(null?(cdr path_0))" +"(void)" +"(let-values()(loop_0 accum_0(cdr path_0))))))))))))" +" loop_0)" +"(unsafe-place-local-ref cell.2$4)" +"(region-path r_0))" +"(if(unsafe-place-local-ref cell.1$7)" +"(let-values()" +"(begin" +"(set-region-as-nested!" +"(car(unsafe-place-local-ref cell.1$7))" +"(+(region-as-nested(car(unsafe-place-local-ref cell.1$7))) full-delta_0))" +"(set-region-as-nested-memory!" +"(car(unsafe-place-local-ref cell.1$7))" +"(+" +"(region-as-nested-memory(car(unsafe-place-local-ref cell.1$7)))" +" full-delta-memory_0))))" +"(void))))))))))))))" +"(call-with-values" +"(lambda()" +"(if log-performance?" +"(let-values()" +"(void" +"(plumber-add-flush!" +"(current-plumber)" +"(lambda(h_0)" +"(let-values(((whole-len_0)" +"(lambda(s_0)" +"(begin" +" 'whole-len" +"(caar" +" (let-values (((or-part_0) (regexp-match-positions '#rx\"[.]\" s_0)))" +"(if or-part_0 or-part_0 '(0))))))))" +"(let-values(((kb_0)" +"(lambda(b_0)" +"(begin" +" 'kb" +"(let-values(((s_0)(number->string(quotient b_0 1024))))" +"(list->string" +"(let-values(((lst_0)(reverse$1(string->list s_0)))((start_0) 0))" +"(begin" +"(if(variable-reference-from-unsafe?(#%variable-reference))" +"(void)" +"(let-values()(check-list lst_0)))" +"(if(variable-reference-from-unsafe?(#%variable-reference))" +"(void)" +"(let-values()(check-naturals start_0)))" +"((letrec-values(((for-loop_0)" +"(lambda(l_0 lst_1 pos_0)" +"(begin" +" 'for-loop" +"(if(if(pair? lst_1) #t #f)" +"(let-values(((c_0)(unsafe-car lst_1))" +"((rest_0)(unsafe-cdr lst_1))" +"((i_0) pos_0))" +"(let-values(((l_1)" +"(let-values(((l_1) l_0))" +"(let-values(((l_2)" +"(let-values()" +"(if(if(positive? i_0)" +"(zero?" +"(modulo i_0 3))" +" #f)" +"(let-values()" +"(list*" +" c_0" +" '#\\," +" l_1))" +"(let-values()" +"(cons c_0 l_1))))))" +"(values l_2)))))" +"(if(not #f)" +"(for-loop_0 l_1 rest_0(+ pos_0 1))" +" l_1)))" +" l_0)))))" +" for-loop_0)" +" null" +" lst_0" +" start_0)))))))))" +"(let-values(((label-max-len_0 value-max-len_0 memory-max-len_0 count-max-len_0)" +"((letrec-values(((loop_0)" +"(lambda(accums_0" +" label-len_0" +" value-len_0" +" memory-len_0" +" count-len_0" +" indent_0)" +"(begin" +" 'loop" +"(let-values(((ht_0) accums_0))" +"(begin" +"(if(variable-reference-from-unsafe?(#%variable-reference))" +"(void)" +"(let-values()(check-in-hash ht_0)))" +"((letrec-values(((for-loop_0)" +"(lambda(label-len_1" +" value-len_1" +" memory-len_1" +" count-len_1" +" i_0)" +"(begin" +" 'for-loop" +"(if i_0" +"(let-values(((k_0 v_0)" +"(hash-iterate-key+value" +" ht_0" +" i_0)))" +"(let-values(((label-len_2" +" value-len_2" +" memory-len_2" +" count-len_2)" +"(let-values(((label-len_2)" +" label-len_1)" +"((value-len_2)" +" value-len_1)" +"((memory-len_2)" +" memory-len_1)" +"((count-len_2)" +" count-len_1))" +"(let-values(((label-len_3" +" value-len_3" +" memory-len_3" +" count-len_3)" +"(let-values()" +"(if(eq?" +" k_0" +" stat-key)" +"(let-values()" +"(values" +" label-len_2" +"(max" +" value-len_2" +"(whole-len_0" +"(format" +" \"~a\"" +"(stat-msecs" +" v_0))))" +"(max" +" memory-len_2" +"(string-length" +"(format" +" \"~a\"" +"(kb_0" +"(stat-memory" +" v_0)))))" +"(max" +" count-len_2" +"(string-length" +"(format" +" \"~a\"" +"(stat-count" +" v_0))))))" +"(let-values()" +"(loop_0" +" v_0" +"(max" +" label-len_2" +"(+" +" indent_0" +"(string-length" +"(format" +" \"~a\"" +" k_0))))" +" value-len_2" +" memory-len_2" +" count-len_2" +"(+" +" 2" +" indent_0)))))))" +"(values" +" label-len_3" +" value-len_3" +" memory-len_3" +" count-len_3)))))" +"(if(not #f)" +"(for-loop_0" +" label-len_2" +" value-len_2" +" memory-len_2" +" count-len_2" +"(hash-iterate-next ht_0 i_0))" +"(values" +" label-len_2" +" value-len_2" +" memory-len_2" +" count-len_2))))" +"(values" +" label-len_1" +" value-len_1" +" memory-len_1" +" count-len_1))))))" +" for-loop_0)" +" label-len_0" +" value-len_0" +" memory-len_0" +" count-len_0" +"(hash-iterate-first ht_0))))))))" +" loop_0)" +"(unsafe-place-local-ref cell.2$4)" +" 6" +" 5" +" 4" +" 5" +" 2)))" +"(begin" +"(let-values(((l_0)(current-logger)))" +"(if(log-level? l_0 'error(logger-name l_0))" +"(let-values()" +"(log-message" +" l_0" +" 'error" +"(format" +" \"REGION ~aMSECS ~aMEMK ~aCOUNT\"" +"(make-string(-(+ label-max-len_0 value-max-len_0) 11) '#\\space)" +"(make-string(- memory-max-len_0 4) '#\\space)" +"(make-string(- count-max-len_0 5) '#\\space))" +"(current-continuation-marks)))" +"(void)))" +"((letrec-values(((loop_0)" +"(lambda(name_0 accums_0 indent_0 newline?_0)" +"(begin" +" 'loop" +"(let-values((()" +"(begin" +"(if name_0" +"(let-values()" +"(let-values(((v_0)(hash-ref accums_0 stat-key)))" +"(let-values(((l_0)(current-logger)))" +"(if(log-level? l_0 'error(logger-name l_0))" +"(let-values()" +"(log-message" +" l_0" +" 'error" +"(format" +" \"~a~a ~a~a ~a~a ~a~a\"" +" indent_0" +" name_0" +"(make-string" +"(+" +"(-" +" label-max-len_0" +" (string-length (format \"~a\" name_0))" +"(string-length indent_0))" +"(-" +" value-max-len_0" +"(whole-len_0" +" (format \"~a\" (stat-msecs v_0)))))" +" '#\\space)" +"(regexp-replace" +" '#rx\"[.](..).*\"" +" (format \"~a00\" (stat-msecs v_0))" +" \".\\\\1\")" +"(make-string" +"(-" +" memory-max-len_0" +"(string-length" +" (format \"~a\" (kb_0 (stat-memory v_0)))))" +" '#\\space)" +"(kb_0(stat-memory v_0))" +"(make-string" +"(-" +" count-max-len_0" +"(string-length" +" (format \"~a\" (stat-count v_0))))" +" '#\\space)" +"(stat-count v_0))" +"(current-continuation-marks)))" +"(void)))))" +"(void))" +"(values))))" +"(let-values(((keys_0)" +"(let-values(((temp5_0)" +"(reverse$1" +"(let-values(((ht_0) accums_0))" +"(begin" +"(if(variable-reference-from-unsafe?" +"(#%variable-reference))" +"(void)" +"(let-values()" +"(check-in-hash-keys ht_0)))" +"((letrec-values(((for-loop_0)" +"(lambda(fold-var_0 i_0)" +"(begin" +" 'for-loop" +"(if i_0" +"(let-values(((k_0)" +"(hash-iterate-key" +" ht_0" +" i_0)))" +"(let-values(((fold-var_1)" +"(let-values(((fold-var_1)" +" fold-var_0))" +"(if(not" +"(eq?" +" k_0" +" stat-key))" +"(let-values(((fold-var_2)" +" fold-var_1))" +"(let-values(((fold-var_3)" +"(let-values()" +"(cons" +"(let-values()" +" k_0)" +" fold-var_2))))" +"(values" +" fold-var_3)))" +" fold-var_1))))" +"(if(not #f)" +"(for-loop_0" +" fold-var_1" +"(hash-iterate-next" +" ht_0" +" i_0))" +" fold-var_1)))" +" fold-var_0)))))" +" for-loop_0)" +" null" +"(hash-iterate-first ht_0))))))" +"((>6_0) >)" +"((temp7_0)" +"(lambda(key_0)" +"(stat-msecs" +"(hash-ref" +"(hash-ref accums_0 key_0)" +" stat-key)))))" +"(sort7.1 #f temp7_0 temp5_0 >6_0))))" +"(begin" +"(let-values(((lst_0) keys_0)((start_0) 0))" +"(begin" +"(if(variable-reference-from-unsafe?(#%variable-reference))" +"(void)" +"(let-values()(check-list lst_0)))" +"(if(variable-reference-from-unsafe?(#%variable-reference))" +"(void)" +"(let-values()(check-naturals start_0)))" +"((letrec-values(((for-loop_0)" +"(lambda(lst_1 pos_0)" +"(begin" +" 'for-loop" +"(if(if(pair? lst_1) #t #f)" +"(let-values(((k_0)(unsafe-car lst_1))" +"((rest_0)(unsafe-cdr lst_1))" +"((i_0) pos_0))" +"(let-values((()" +"(let-values()" +"(let-values((()" +"(let-values()" +"(begin" +"(let-values()" +"(begin" +"(if(if newline?_0" +"(positive?" +" i_0)" +" #f)" +"(let-values()" +"(let-values(((l_0)" +"(current-logger)))" +"(if(log-level?" +" l_0" +" 'error" +"(logger-name" +" l_0))" +"(let-values()" +"(log-message" +" l_0" +" 'error" +" \"\"" +"(current-continuation-marks)))" +"(void))))" +"(void))" +"(loop_0" +" k_0" +"(hash-ref" +" accums_0" +" k_0)" +"(string-append" +" indent_0" +" \" \")" +" #f)))" +"(values)))))" +"(values)))))" +"(if(not #f)" +"(for-loop_0 rest_0(+ pos_0 1))" +"(values))))" +"(values))))))" +" for-loop_0)" +" lst_0" +" start_0)))" +"(void))))))))" +" loop_0)" +" #f" +"(unsafe-place-local-ref cell.2$4)" +" \"\"" +" #t)))))))))" +"(void)))" +" print-values)" +"(define-values" "(1/module-path?)" "(lambda(v_0)" "(begin" @@ -4298,13 +4816,22 @@ static const char *startup_source = "(if or-part_0" " or-part_0" "(let-values(((mod-name_0)" +"(begin" +"(if log-performance?" +"(let-values()(start-performance-region 'eval 'resolver))" +"(void))" +"(begin0" +"(let-values()" "((1/current-module-name-resolver)" "(module-path-index-path mpi_0)" "(module-path-index-resolve/maybe" "(module-path-index-base mpi_0)" " load?_0)" " #f" -" load?_0)))" +" load?_0))" +"(if log-performance?" +"(let-values()(end-performance-region))" +"(void))))))" "(begin" "(if(1/resolved-module-path? mod-name_0)" "(void)" @@ -4458,9 +4985,9 @@ static const char *startup_source = "(make-self-module-path-index" "(let-values(((name25_0) name_0)((temp26_0)(if enclosing_0(1/module-path-index-resolve enclosing_0) #f)))" "(build-module-name16.1 unsafe-undefined name25_0 temp26_0))))))" -"(define-values(cell.1$7)(unsafe-make-place-local(make-weak-hash)))" +"(define-values(cell.1$6)(unsafe-make-place-local(make-weak-hash)))" "(define-values(generic-module-name) '|expanded module|)" -"(define-values(module-path-place-init!)(lambda()(begin(unsafe-place-local-set! cell.1$7(make-weak-hash)))))" +"(define-values(module-path-place-init!)(lambda()(begin(unsafe-place-local-set! cell.1$6(make-weak-hash)))))" "(define-values" "(make-generic-self-module-path-index)" "(lambda(self_0)" @@ -4470,12 +4997,12 @@ static const char *startup_source = "(start-atomic)" "(begin0" "(let-values(((or-part_0)" -"(let-values(((e_0)(hash-ref(unsafe-place-local-ref cell.1$7) r_0 #f)))" +"(let-values(((e_0)(hash-ref(unsafe-place-local-ref cell.1$6) r_0 #f)))" "(if e_0(ephemeron-value e_0) #f))))" "(if or-part_0" " or-part_0" "(let-values(((mpi_0)(module-path-index2.1 #f #f r_0 #f)))" -"(begin(hash-set!(unsafe-place-local-ref cell.1$7) r_0(make-ephemeron r_0 mpi_0)) mpi_0))))" +"(begin(hash-set!(unsafe-place-local-ref cell.1$6) r_0(make-ephemeron r_0 mpi_0)) mpi_0))))" "(end-atomic)))))))" "(define-values" "(resolved-module-path-to-generic-resolved-module-path)" @@ -7922,20 +8449,20 @@ static const char *startup_source = "(fallback->list)" "(lambda(smss_0)(begin(if(fallback? smss_0)(fallback-search-list smss_0)(list smss_0)))))" "(define-values(make-cache)(lambda()(begin(box(make-weak-box #f)))))" -"(define-values(cell.1$6)(unsafe-make-place-local(make-cache)))" -"(define-values(resolve-cache-place-init!)(lambda()(begin(unsafe-place-local-set! cell.1$6(make-cache)))))" +"(define-values(cell.1$5)(unsafe-make-place-local(make-cache)))" +"(define-values(resolve-cache-place-init!)(lambda()(begin(unsafe-place-local-set! cell.1$5(make-cache)))))" "(define-values" "(clear-resolve-cache!)" "(case-lambda" "((sym_0)" "(begin" -"(let-values(((c_0)(weak-box-value(unbox*(unsafe-place-local-ref cell.1$6)))))" +"(let-values(((c_0)(weak-box-value(unbox*(unsafe-place-local-ref cell.1$5)))))" "(begin" "(if c_0(let-values()(hash-remove! c_0 sym_0))(void))" -"(set-box*!(unsafe-place-local-ref cell.2$4) #f)))))" +"(set-box*!(unsafe-place-local-ref cell.2$3) #f)))))" "(()" -"(let-values(((c_0)(weak-box-value(unbox*(unsafe-place-local-ref cell.1$6)))))" -"(begin(if c_0(let-values()(hash-clear! c_0))(void))(set-box*!(unsafe-place-local-ref cell.2$4) #f))))))" +"(let-values(((c_0)(weak-box-value(unbox*(unsafe-place-local-ref cell.1$5)))))" +"(begin(if c_0(let-values()(hash-clear! c_0))(void))(set-box*!(unsafe-place-local-ref cell.2$3) #f))))))" "(define-values" "(struct:entry entry1.1 entry? entry-scs entry-smss entry-phase entry-binding)" "(let-values(((struct:_0 make-_0 ?_0 -ref_0 -set!_0)" @@ -7965,7 +8492,7 @@ static const char *startup_source = "(resolve-cache-get)" "(lambda(sym_0 phase_0 scs_0 smss_0)" "(begin" -"(let-values(((c_0)(weak-box-value(unbox*(unsafe-place-local-ref cell.1$6)))))" +"(let-values(((c_0)(weak-box-value(unbox*(unsafe-place-local-ref cell.1$5)))))" "(if c_0" "(let-values(((v_0)(hash-ref c_0 sym_0 #f)))" "(if v_0" @@ -7978,16 +8505,16 @@ static const char *startup_source = "(resolve-cache-set!)" "(lambda(sym_0 phase_0 scs_0 smss_0 b_0)" "(begin" -"(let-values(((wb_0)(unbox*(unsafe-place-local-ref cell.1$6))))" +"(let-values(((wb_0)(unbox*(unsafe-place-local-ref cell.1$5))))" "(let-values(((c_0)(weak-box-value wb_0)))" "(if(not c_0)" "(let-values()" "(begin" -"(box-cas!(unsafe-place-local-ref cell.1$6) wb_0(make-weak-box(make-hasheq)))" +"(box-cas!(unsafe-place-local-ref cell.1$5) wb_0(make-weak-box(make-hasheq)))" "(resolve-cache-set! sym_0 phase_0 scs_0 smss_0 b_0)))" "(let-values()(hash-set! c_0 sym_0(entry1.1 scs_0 smss_0 phase_0 b_0)))))))))" "(define-values(SHIFTED-CACHE-SIZE) 16)" -"(define-values(cell.2$4)(unsafe-make-place-local(box #f)))" +"(define-values(cell.2$3)(unsafe-make-place-local(box #f)))" "(define-values(cell.3$1)(unsafe-make-place-local 0))" "(define-values" "(struct:shifted-entry shifted-entry2.1 shifted-entry? shifted-entry-s shifted-entry-phase shifted-entry-binding)" @@ -8017,13 +8544,13 @@ static const char *startup_source = "(shifted-cache-vector)" "(lambda()" "(begin" -"(let-values(((wb_0)(unbox*(unsafe-place-local-ref cell.2$4))))" +"(let-values(((wb_0)(unbox*(unsafe-place-local-ref cell.2$3))))" "(let-values(((c1_0)(if wb_0(weak-box-value wb_0) #f)))" "(if c1_0" "((lambda(vec_0) vec_0) c1_0)" "(let-values()" "(let-values(((vec_0)(make-vector SHIFTED-CACHE-SIZE #f)))" -"(begin(set-box*!(unsafe-place-local-ref cell.2$4)(make-weak-box vec_0)) vec_0)))))))))" +"(begin(set-box*!(unsafe-place-local-ref cell.2$3)(make-weak-box vec_0)) vec_0)))))))))" "(define-values" "(resolve+shift-cache-get)" "(lambda(s_0 phase_0)" @@ -8581,20 +9108,20 @@ static const char *startup_source = " #f" " 'shifted-to-label-phase)))))" "(values struct:_0 make-_0 ?_0(make-struct-field-accessor -ref_0 0 'from))))" -"(define-values(cell.1$5)(unsafe-make-place-local 0))" +"(define-values(cell.1$4)(unsafe-make-place-local 0))" "(define-values" "(new-scope-id!)" "(lambda()" "(begin" "(begin" -"(unsafe-place-local-set! cell.1$5(add1(unsafe-place-local-ref cell.1$5)))" -"(unsafe-place-local-ref cell.1$5)))))" +"(unsafe-place-local-set! cell.1$4(add1(unsafe-place-local-ref cell.1$4)))" +"(unsafe-place-local-ref cell.1$4)))))" "(define-values(new-deserialize-scope-id!)(lambda()(begin(-(new-scope-id!)))))" "(define-values(deserialized-scope-id?)(lambda(scope-id_0)(begin(negative? scope-id_0))))" "(define-values(top-level-common-scope)(scope1.1 0 'module empty-binding-table))" "(define-values(new-scope)(lambda(kind_0)(begin(scope1.1(new-scope-id!) kind_0 empty-binding-table))))" -"(define-values(cell.2$3)(unsafe-make-place-local(make-weak-hasheq)))" -"(define-values(scope-place-init!)(lambda()(begin(unsafe-place-local-set! cell.2$3(make-weak-hasheq)))))" +"(define-values(cell.2$2)(unsafe-make-place-local(make-weak-hasheq)))" +"(define-values(scope-place-init!)(lambda()(begin(unsafe-place-local-set! cell.2$2(make-weak-hasheq)))))" "(define-values" "(make-interned-scope)" "(lambda(sym_0)" @@ -8608,11 +9135,11 @@ static const char *startup_source = "(interned-scope2.1(-(new-scope-id!)) 'interned empty-binding-table sym_0))))))" "(call-as-atomic" "(lambda()" -"(let-values(((or-part_0)(ephemeron-value(hash-ref!(unsafe-place-local-ref cell.2$3) sym_0 make_0))))" +"(let-values(((or-part_0)(ephemeron-value(hash-ref!(unsafe-place-local-ref cell.2$2) sym_0 make_0))))" "(if or-part_0" " or-part_0" "(let-values(((new_0)(make_0)))" -"(begin(hash-set!(unsafe-place-local-ref cell.2$3) sym_0 new_0)(ephemeron-value new_0)))))))))))" +"(begin(hash-set!(unsafe-place-local-ref cell.2$2) sym_0 new_0)(ephemeron-value new_0)))))))))))" "(define-values" "(new-multi-scope)" "(let-values(((new-multi-scope8_0)" @@ -12985,524 +13512,6 @@ static const char *startup_source = "(define-values(current-previously-unbound)(lambda()(begin #f)))" "(define-values(set-current-previously-unbound!)(lambda(proc_0)(begin(set! current-previously-unbound proc_0))))" "(define-values" -"(log-performance?)" -" (if (environment-variables-ref (current-environment-variables) #\"PLT_EXPANDER_TIMES\") #t #f))" -"(define-values(cell.1$4)(unsafe-make-place-local #f))" -"(define-values(cell.2$2)(unsafe-make-place-local(make-hasheq)))" -"(define-values(performance-place-init!)(lambda()(begin(unsafe-place-local-set! cell.2$2(make-hasheq)))))" -"(define-values" -"(struct:region" -" region1.1" -" region?" -" region-path" -" region-start" -" region-start-memory" -" region-as-nested" -" region-as-nested-memory" -" set-region-start!" -" set-region-start-memory!" -" set-region-as-nested!" -" set-region-as-nested-memory!)" -"(let-values(((struct:_0 make-_0 ?_0 -ref_0 -set!_0)" -"(let-values()" -"(let-values()(make-struct-type 'region #f 5 0 #f null(current-inspector) #f '(0) #f 'region)))))" -"(values" -" struct:_0" -" make-_0" -" ?_0" -"(make-struct-field-accessor -ref_0 0 'path)" -"(make-struct-field-accessor -ref_0 1 'start)" -"(make-struct-field-accessor -ref_0 2 'start-memory)" -"(make-struct-field-accessor -ref_0 3 'as-nested)" -"(make-struct-field-accessor -ref_0 4 'as-nested-memory)" -"(make-struct-field-mutator -set!_0 1 'start)" -"(make-struct-field-mutator -set!_0 2 'start-memory)" -"(make-struct-field-mutator -set!_0 3 'as-nested)" -"(make-struct-field-mutator -set!_0 4 'as-nested-memory))))" -"(define-values" -"(struct:stat stat2.1 stat? stat-msecs stat-memory stat-count set-stat-msecs! set-stat-memory! set-stat-count!)" -"(let-values(((struct:_0 make-_0 ?_0 -ref_0 -set!_0)" -"(let-values()" -"(let-values()(make-struct-type 'stat #f 3 0 #f null(current-inspector) #f '() #f 'stat)))))" -"(values" -" struct:_0" -" make-_0" -" ?_0" -"(make-struct-field-accessor -ref_0 0 'msecs)" -"(make-struct-field-accessor -ref_0 1 'memory)" -"(make-struct-field-accessor -ref_0 2 'count)" -"(make-struct-field-mutator -set!_0 0 'msecs)" -"(make-struct-field-mutator -set!_0 1 'memory)" -"(make-struct-field-mutator -set!_0 2 'count))))" -"(define-values(stat-key)(gensym))" -"(define-values" -"(start-performance-region)" -"(lambda path_0" -"(begin" -"(unsafe-place-local-set!" -" cell.1$4" -"(cons" -"(region1.1" -"(if(unsafe-place-local-ref cell.1$4)" -"((letrec-values(((loop_0)" -"(lambda(path_1 enclosing-path_0)" -"(begin" -" 'loop" -"(if(null? path_1)" -" null" -"(cons" -"(if(if(eq? '_(car path_1))(pair? enclosing-path_0) #f)" -"(car enclosing-path_0)" -"(car path_1))" -"(loop_0" -"(cdr path_1)" -"(if(pair? enclosing-path_0)(cdr enclosing-path_0) null))))))))" -" loop_0)" -" path_0" -"(region-path(car(unsafe-place-local-ref cell.1$4))))" -" path_0)" -"(current-inexact-milliseconds)" -"(current-memory-use 'cumulative)" -" 0.0" -" 0)" -"(unsafe-place-local-ref cell.1$4))))))" -"(define-values" -"(end-performance-region)" -"(lambda()" -"(begin" -"(let-values(((now_0)(current-inexact-milliseconds)))" -"(let-values(((now-memory_0)(current-memory-use 'cumulative)))" -"(let-values(((r_0)(car(unsafe-place-local-ref cell.1$4))))" -"(let-values((()" -"(begin(unsafe-place-local-set! cell.1$4(cdr(unsafe-place-local-ref cell.1$4)))(values))))" -"(let-values(((full-delta_0)(- now_0(region-start r_0))))" -"(let-values(((delta_0)(- full-delta_0(region-as-nested r_0))))" -"(let-values(((full-delta-memory_0)(- now-memory_0(region-start-memory r_0))))" -"(let-values(((delta-memory_0)(- full-delta-memory_0(region-as-nested-memory r_0))))" -"(begin" -"((letrec-values(((loop_0)" -"(lambda(accums_0 path_0)" -"(begin" -" 'loop" -"(let-values(((key_0)(car path_0)))" -"(let-values(((accum_0)" -"(let-values(((or-part_0)(hash-ref accums_0 key_0 #f)))" -"(if or-part_0" -" or-part_0" -"(let-values(((accum_0)(make-hasheq)))" -"(begin" -"(hash-set! accums_0 key_0 accum_0)" -" accum_0))))))" -"(let-values(((s_0)" -"(let-values(((or-part_0)" -"(hash-ref accum_0 stat-key #f)))" -"(if or-part_0" -" or-part_0" -"(let-values(((s_0)(stat2.1 0.0 0 0)))" -"(begin(hash-set! accum_0 stat-key s_0) s_0))))))" -"(begin" -"(set-stat-msecs! s_0(+ delta_0(stat-msecs s_0)))" -"(set-stat-memory! s_0(+ delta-memory_0(stat-memory s_0)))" -"(if(null?(cdr path_0))" -"(let-values()(set-stat-count! s_0(add1(stat-count s_0))))" -"(void))" -"(if(null?(cdr path_0))" -"(void)" -"(let-values()(loop_0 accum_0(cdr path_0))))))))))))" -" loop_0)" -"(unsafe-place-local-ref cell.2$2)" -"(region-path r_0))" -"(if(unsafe-place-local-ref cell.1$4)" -"(let-values()" -"(begin" -"(set-region-as-nested!" -"(car(unsafe-place-local-ref cell.1$4))" -"(+(region-as-nested(car(unsafe-place-local-ref cell.1$4))) full-delta_0))" -"(set-region-as-nested-memory!" -"(car(unsafe-place-local-ref cell.1$4))" -"(+" -"(region-as-nested-memory(car(unsafe-place-local-ref cell.1$4)))" -" full-delta-memory_0))))" -"(void))))))))))))))" -"(call-with-values" -"(lambda()" -"(if log-performance?" -"(let-values()" -"(void" -"(plumber-add-flush!" -"(current-plumber)" -"(lambda(h_0)" -"(let-values(((whole-len_0)" -"(lambda(s_0)" -"(begin" -" 'whole-len" -"(caar" -" (let-values (((or-part_0) (regexp-match-positions '#rx\"[.]\" s_0)))" -"(if or-part_0 or-part_0 '(0))))))))" -"(let-values(((kb_0)" -"(lambda(b_0)" -"(begin" -" 'kb" -"(let-values(((s_0)(number->string(quotient b_0 1024))))" -"(list->string" -"(let-values(((lst_0)(reverse$1(string->list s_0)))((start_0) 0))" -"(begin" -"(if(variable-reference-from-unsafe?(#%variable-reference))" -"(void)" -"(let-values()(check-list lst_0)))" -"(if(variable-reference-from-unsafe?(#%variable-reference))" -"(void)" -"(let-values()(check-naturals start_0)))" -"((letrec-values(((for-loop_0)" -"(lambda(l_0 lst_1 pos_0)" -"(begin" -" 'for-loop" -"(if(if(pair? lst_1) #t #f)" -"(let-values(((c_0)(unsafe-car lst_1))" -"((rest_0)(unsafe-cdr lst_1))" -"((i_0) pos_0))" -"(let-values(((l_1)" -"(let-values(((l_1) l_0))" -"(let-values(((l_2)" -"(let-values()" -"(if(if(positive? i_0)" -"(zero?" -"(modulo i_0 3))" -" #f)" -"(let-values()" -"(list*" -" c_0" -" '#\\," -" l_1))" -"(let-values()" -"(cons c_0 l_1))))))" -"(values l_2)))))" -"(if(not #f)" -"(for-loop_0 l_1 rest_0(+ pos_0 1))" -" l_1)))" -" l_0)))))" -" for-loop_0)" -" null" -" lst_0" -" start_0)))))))))" -"(let-values(((label-max-len_0 value-max-len_0 memory-max-len_0 count-max-len_0)" -"((letrec-values(((loop_0)" -"(lambda(accums_0" -" label-len_0" -" value-len_0" -" memory-len_0" -" count-len_0" -" indent_0)" -"(begin" -" 'loop" -"(let-values(((ht_0) accums_0))" -"(begin" -"(if(variable-reference-from-unsafe?(#%variable-reference))" -"(void)" -"(let-values()(check-in-hash ht_0)))" -"((letrec-values(((for-loop_0)" -"(lambda(label-len_1" -" value-len_1" -" memory-len_1" -" count-len_1" -" i_0)" -"(begin" -" 'for-loop" -"(if i_0" -"(let-values(((k_0 v_0)" -"(hash-iterate-key+value" -" ht_0" -" i_0)))" -"(let-values(((label-len_2" -" value-len_2" -" memory-len_2" -" count-len_2)" -"(let-values(((label-len_2)" -" label-len_1)" -"((value-len_2)" -" value-len_1)" -"((memory-len_2)" -" memory-len_1)" -"((count-len_2)" -" count-len_1))" -"(let-values(((label-len_3" -" value-len_3" -" memory-len_3" -" count-len_3)" -"(let-values()" -"(if(eq?" -" k_0" -" stat-key)" -"(let-values()" -"(values" -" label-len_2" -"(max" -" value-len_2" -"(whole-len_0" -"(format" -" \"~a\"" -"(stat-msecs" -" v_0))))" -"(max" -" memory-len_2" -"(string-length" -"(format" -" \"~a\"" -"(kb_0" -"(stat-memory" -" v_0)))))" -"(max" -" count-len_2" -"(string-length" -"(format" -" \"~a\"" -"(stat-count" -" v_0))))))" -"(let-values()" -"(loop_0" -" v_0" -"(max" -" label-len_2" -"(+" -" indent_0" -"(string-length" -"(format" -" \"~a\"" -" k_0))))" -" value-len_2" -" memory-len_2" -" count-len_2" -"(+" -" 2" -" indent_0)))))))" -"(values" -" label-len_3" -" value-len_3" -" memory-len_3" -" count-len_3)))))" -"(if(not #f)" -"(for-loop_0" -" label-len_2" -" value-len_2" -" memory-len_2" -" count-len_2" -"(hash-iterate-next ht_0 i_0))" -"(values" -" label-len_2" -" value-len_2" -" memory-len_2" -" count-len_2))))" -"(values" -" label-len_1" -" value-len_1" -" memory-len_1" -" count-len_1))))))" -" for-loop_0)" -" label-len_0" -" value-len_0" -" memory-len_0" -" count-len_0" -"(hash-iterate-first ht_0))))))))" -" loop_0)" -"(unsafe-place-local-ref cell.2$2)" -" 6" -" 5" -" 4" -" 5" -" 2)))" -"(begin" -"(let-values(((l_0)(current-logger)))" -"(if(log-level? l_0 'error(logger-name l_0))" -"(let-values()" -"(log-message" -" l_0" -" 'error" -"(format" -" \"REGION ~aMSECS ~aMEMK ~aCOUNT\"" -"(make-string(-(+ label-max-len_0 value-max-len_0) 11) '#\\space)" -"(make-string(- memory-max-len_0 4) '#\\space)" -"(make-string(- count-max-len_0 5) '#\\space))" -"(current-continuation-marks)))" -"(void)))" -"((letrec-values(((loop_0)" -"(lambda(name_0 accums_0 indent_0 newline?_0)" -"(begin" -" 'loop" -"(let-values((()" -"(begin" -"(if name_0" -"(let-values()" -"(let-values(((v_0)(hash-ref accums_0 stat-key)))" -"(let-values(((l_0)(current-logger)))" -"(if(log-level? l_0 'error(logger-name l_0))" -"(let-values()" -"(log-message" -" l_0" -" 'error" -"(format" -" \"~a~a ~a~a ~a~a ~a~a\"" -" indent_0" -" name_0" -"(make-string" -"(+" -"(-" -" label-max-len_0" -" (string-length (format \"~a\" name_0))" -"(string-length indent_0))" -"(-" -" value-max-len_0" -"(whole-len_0" -" (format \"~a\" (stat-msecs v_0)))))" -" '#\\space)" -"(regexp-replace" -" '#rx\"[.](..).*\"" -" (format \"~a00\" (stat-msecs v_0))" -" \".\\\\1\")" -"(make-string" -"(-" -" memory-max-len_0" -"(string-length" -" (format \"~a\" (kb_0 (stat-memory v_0)))))" -" '#\\space)" -"(kb_0(stat-memory v_0))" -"(make-string" -"(-" -" count-max-len_0" -"(string-length" -" (format \"~a\" (stat-count v_0))))" -" '#\\space)" -"(stat-count v_0))" -"(current-continuation-marks)))" -"(void)))))" -"(void))" -"(values))))" -"(let-values(((keys_0)" -"(let-values(((temp5_0)" -"(reverse$1" -"(let-values(((ht_0) accums_0))" -"(begin" -"(if(variable-reference-from-unsafe?" -"(#%variable-reference))" -"(void)" -"(let-values()" -"(check-in-hash-keys ht_0)))" -"((letrec-values(((for-loop_0)" -"(lambda(fold-var_0 i_0)" -"(begin" -" 'for-loop" -"(if i_0" -"(let-values(((k_0)" -"(hash-iterate-key" -" ht_0" -" i_0)))" -"(let-values(((fold-var_1)" -"(let-values(((fold-var_1)" -" fold-var_0))" -"(if(not" -"(eq?" -" k_0" -" stat-key))" -"(let-values(((fold-var_2)" -" fold-var_1))" -"(let-values(((fold-var_3)" -"(let-values()" -"(cons" -"(let-values()" -" k_0)" -" fold-var_2))))" -"(values" -" fold-var_3)))" -" fold-var_1))))" -"(if(not #f)" -"(for-loop_0" -" fold-var_1" -"(hash-iterate-next" -" ht_0" -" i_0))" -" fold-var_1)))" -" fold-var_0)))))" -" for-loop_0)" -" null" -"(hash-iterate-first ht_0))))))" -"((>6_0) >)" -"((temp7_0)" -"(lambda(key_0)" -"(stat-msecs" -"(hash-ref" -"(hash-ref accums_0 key_0)" -" stat-key)))))" -"(sort7.1 #f temp7_0 temp5_0 >6_0))))" -"(begin" -"(let-values(((lst_0) keys_0)((start_0) 0))" -"(begin" -"(if(variable-reference-from-unsafe?(#%variable-reference))" -"(void)" -"(let-values()(check-list lst_0)))" -"(if(variable-reference-from-unsafe?(#%variable-reference))" -"(void)" -"(let-values()(check-naturals start_0)))" -"((letrec-values(((for-loop_0)" -"(lambda(lst_1 pos_0)" -"(begin" -" 'for-loop" -"(if(if(pair? lst_1) #t #f)" -"(let-values(((k_0)(unsafe-car lst_1))" -"((rest_0)(unsafe-cdr lst_1))" -"((i_0) pos_0))" -"(let-values((()" -"(let-values()" -"(let-values((()" -"(let-values()" -"(begin" -"(let-values()" -"(begin" -"(if(if newline?_0" -"(positive?" -" i_0)" -" #f)" -"(let-values()" -"(let-values(((l_0)" -"(current-logger)))" -"(if(log-level?" -" l_0" -" 'error" -"(logger-name" -" l_0))" -"(let-values()" -"(log-message" -" l_0" -" 'error" -" \"\"" -"(current-continuation-marks)))" -"(void))))" -"(void))" -"(loop_0" -" k_0" -"(hash-ref" -" accums_0" -" k_0)" -"(string-append" -" indent_0" -" \" \")" -" #f)))" -"(values)))))" -"(values)))))" -"(if(not #f)" -"(for-loop_0 rest_0(+ pos_0 1))" -"(values))))" -"(values))))))" -" for-loop_0)" -" lst_0" -" start_0)))" -"(void))))))))" -" loop_0)" -" #f" -"(unsafe-place-local-ref cell.2$2)" -" \"\"" -" #t)))))))))" -"(void)))" -" print-values)" -"(define-values" "(struct:module-use module-use1.1 module-use? module-use-module module-use-phase)" "(let-values(((struct:_0 make-_0 ?_0 -ref_0 -set!_0)" "(let-values()" @@ -14195,14 +14204,7 @@ static const char *startup_source = "(void)" " (let-values () (error \"not a module path index:\" mpi_0)))" "(values))))" -"(let-values(((name_0)" -"(begin" -"(if log-performance?" -"(let-values()(start-performance-region 'eval 'resolve))" -"(void))" -"(begin0" -"(let-values()(1/module-path-index-resolve mpi_0 #t))" -"(if log-performance?(let-values()(end-performance-region))(void))))))" +"(let-values(((name_0)(1/module-path-index-resolve mpi_0 #t)))" "(let-values(((m_0)(namespace->module ns_0 name_0)))" "(let-values((()" "(begin"