diff --git a/racket/src/expander/common/performance.rkt b/racket/src/expander/common/performance.rkt index 947bbd091e..98ff88e0b4 100644 --- a/racket/src/expander/common/performance.rkt +++ b/racket/src/expander/common/performance.rkt @@ -32,166 +32,154 @@ ;; Beware that `body ...` is not in tail position when ;; performance measurement is enabled. -;; ------------------------------------------------------------ -;; Re-export this submodule to enable performance measurements +(provide performance-region) -(module measure-mode racket/base - (provide performance-region) +(define log-performance? (and (environment-variables-ref + (current-environment-variables) + #"PLT_EXPAND_TIMES") + #t)) + +(define-syntax-rule (performance-region [tag0-expr tag-expr ...] body ...) + (begin + (when log-performance? + (start-performance-region tag0-expr tag-expr ...)) + (begin0 + (let () body ...) + (when log-performance? + (end-performance-region))))) + +(define region-stack #f) +(define accums (make-hasheq)) + +(struct region (path + [start #:mutable] ; start time + [start-memory #:mutable] ; memory allocated before start time + [as-nested #:mutable] ; time accumulated for nested regions + [as-nested-memory #:mutable])) ; ditto, for memory +(struct stat ([msecs #:mutable] [memory #:mutable] [count #:mutable])) + +(define stat-key (gensym)) + +(define (start-performance-region . path) + (set! region-stack (cons (region (if region-stack + ;; Replace '_ elements: + (let loop ([path path] + [enclosing-path (region-path (car region-stack))]) + (if (null? path) + null + (cons (if (and (eq? '_ (car path)) + (pair? enclosing-path)) + (car enclosing-path) + (car path)) + (loop (cdr path) + (if (pair? enclosing-path) + (cdr enclosing-path) + null))))) + path) + (current-inexact-milliseconds) + (current-memory-use 'cumulative) + 0.0 + 0) + region-stack))) + +(define (end-performance-region) + (define now (current-inexact-milliseconds)) + (define now-memory (current-memory-use 'cumulative)) + (define r (car region-stack)) + (set! region-stack (cdr region-stack)) + + (define full-delta (- now (region-start r))) + (define delta (- full-delta (region-as-nested r))) + + (define full-delta-memory (- now-memory (region-start-memory r))) + (define delta-memory (- full-delta-memory (region-as-nested-memory r))) + + (let loop ([accums accums] [path (region-path r)]) + (define key (car path)) + (let ([accum (or (hash-ref accums key #f) + (let ([accum (make-hasheq)]) + (hash-set! accums key accum) + accum))]) + (define s (or (hash-ref accum stat-key #f) + (let ([s (stat 0.0 0 0)]) + (hash-set! accum stat-key s) + s))) + (set-stat-msecs! s (+ delta (stat-msecs s))) + (set-stat-memory! s (+ delta-memory (stat-memory s))) + (when (null? (cdr path)) + (set-stat-count! s (add1 (stat-count s)))) + (unless (null? (cdr path)) + (loop accum (cdr path))))) - (define-syntax-rule (performance-region [tag0-expr tag-expr ...] body ...) - (begin - (start-performance-region tag0-expr tag-expr ...) - (begin0 - (let () body ...) - (end-performance-region)))) - - (define region-stack #f) - (define accums (make-hasheq)) + (when region-stack + (set-region-as-nested! (car region-stack) + (+ (region-as-nested (car region-stack)) + full-delta)) + (set-region-as-nested-memory! (car region-stack) + (+ (region-as-nested-memory (car region-stack)) + full-delta-memory)))) - (struct region (path - [start #:mutable] ; start time - [start-memory #:mutable] ; memory allocated before start time - [as-nested #:mutable] ; time accumulated for nested regions - [as-nested-memory #:mutable])) ; ditto, for memory - (struct stat ([msecs #:mutable] [memory #:mutable] [count #:mutable])) - - (define stat-key (gensym)) - - (define-logger performance) - - (define (start-performance-region . path) - (set! region-stack (cons (region (if region-stack - ;; Replace '_ elements: - (let loop ([path path] - [enclosing-path (region-path (car region-stack))]) - (if (null? path) - null - (cons (if (and (eq? '_ (car path)) - (pair? enclosing-path)) - (car enclosing-path) - (car path)) - (loop (cdr path) - (if (pair? enclosing-path) - (cdr enclosing-path) - null))))) - path) - (current-inexact-milliseconds) - (current-memory-use 'cumulative) - 0.0 - 0) - region-stack))) - - (define (end-performance-region) - (define now (current-inexact-milliseconds)) - (define now-memory (current-memory-use 'cumulative)) - (define r (car region-stack)) - (set! region-stack (cdr region-stack)) - - (define full-delta (- now (region-start r))) - (define delta (- full-delta (region-as-nested r))) - - (define full-delta-memory (- now-memory (region-start-memory r))) - (define delta-memory (- full-delta-memory (region-as-nested-memory r))) - - (let loop ([accums accums] [path (region-path r)]) - (define key (car path)) - (let ([accum (or (hash-ref accums key #f) - (let ([accum (make-hasheq)]) - (hash-set! accums key accum) - accum))]) - (define s (or (hash-ref accum stat-key #f) - (let ([s (stat 0.0 0 0)]) - (hash-set! accum stat-key s) - s))) - (set-stat-msecs! s (+ delta (stat-msecs s))) - (set-stat-memory! s (+ delta-memory (stat-memory s))) - (when (null? (cdr path)) - (set-stat-count! s (add1 (stat-count s)))) - (unless (null? (cdr path)) - (loop accum (cdr path))))) - - (when region-stack - (set-region-as-nested! (car region-stack) - (+ (region-as-nested (car region-stack)) - full-delta)) - (set-region-as-nested-memory! (car region-stack) - (+ (region-as-nested-memory (car region-stack)) - full-delta-memory)))) - - (void (plumber-add-flush! (current-plumber) - (lambda (h) - (define (whole-len s) - (caar (or (regexp-match-positions #rx"[.]" s) '(0)))) - (define (kb b) - (define s (number->string (quotient b 1024))) - (list->string - (for/fold ([l null]) ([c (in-list (reverse (string->list s)))] - [i (in-naturals)]) - (cond - [(and (positive? i) (zero? (modulo i 3))) - (list* c #\, l)] - [else (cons c l)])))) - (define-values (label-max-len value-max-len memory-max-len count-max-len) - (let loop ([accums accums] [label-len 6] [value-len 5] [memory-len 4] [count-len 5] [indent 2]) - (for/fold ([label-len label-len] - [value-len value-len] - [memory-len memory-len] - [count-len count-len]) - ([(k v) (in-hash accums)]) - (cond - [(eq? k stat-key) - (values label-len - (max value-len (whole-len (format "~a" (stat-msecs v)))) - (max memory-len (string-length (format "~a" (kb (stat-memory v))))) - (max count-len (string-length (format "~a" (stat-count v)))))] - [else (loop v - (max label-len (+ indent (string-length (format "~a" k)))) - value-len - memory-len - count-len - (+ 2 indent))])))) - (log-performance-info "REGION ~aMSECS ~aMEMK ~aCOUNT" - (make-string (- (+ label-max-len value-max-len) 11) - #\space) - (make-string (- memory-max-len 4) - #\space) - (make-string (- count-max-len 5) - #\space)) - (let loop ([name #f] [accums accums] [indent ""] [newline? #t]) - (when name - (define v (hash-ref accums stat-key)) - (log-performance-info "~a~a ~a~a ~a~a ~a~a" - indent - name - (make-string (+ (- label-max-len (string-length (format "~a" name)) (string-length indent)) - (- value-max-len (whole-len (format "~a" (stat-msecs v))))) - #\space) - (regexp-replace #rx"[.](..).*" (format "~a00" (stat-msecs v)) ".\\1") - (make-string (- memory-max-len (string-length (format "~a" (kb (stat-memory v))))) - #\space) - (kb (stat-memory v)) - (make-string (- count-max-len (string-length (format "~a" (stat-count v)))) - #\space) - (stat-count v))) - (define keys (sort (for/list ([k (in-hash-keys accums)] #:when (not (eq? k stat-key))) k) - > - #:key (lambda (key) (stat-msecs (hash-ref (hash-ref accums key) stat-key))))) - (for ([k (in-list keys)] - [i (in-naturals)]) - (when (and newline? (positive? i)) (log-performance-info "")) - (loop k (hash-ref accums k) (string-append indent " ") #f))))))) - -;; ------------------------------------------------------------ -;; Re-export this submodule to disable measurements - -(module no-measure-mode racket/base - (provide performance-region) - - (define-syntax-rule (performance-region [tag0-expr tag-expr ...] body ...) - (let () body ...))) - - -;; ------------------------------------------------------------ -;; Select whether to measure (has overhead) or not: - -(require (submod "." no-measure-mode)) +(when log-performance? + (void + (plumber-add-flush! (current-plumber) + (lambda (h) + (define (whole-len s) + (caar (or (regexp-match-positions #rx"[.]" s) '(0)))) + (define (kb b) + (define s (number->string (quotient b 1024))) + (list->string + (for/fold ([l null]) ([c (in-list (reverse (string->list s)))] + [i (in-naturals)]) + (cond + [(and (positive? i) (zero? (modulo i 3))) + (list* c #\, l)] + [else (cons c l)])))) + (define-values (label-max-len value-max-len memory-max-len count-max-len) + (let loop ([accums accums] [label-len 6] [value-len 5] [memory-len 4] [count-len 5] [indent 2]) + (for/fold ([label-len label-len] + [value-len value-len] + [memory-len memory-len] + [count-len count-len]) + ([(k v) (in-hash accums)]) + (cond + [(eq? k stat-key) + (values label-len + (max value-len (whole-len (format "~a" (stat-msecs v)))) + (max memory-len (string-length (format "~a" (kb (stat-memory v))))) + (max count-len (string-length (format "~a" (stat-count v)))))] + [else (loop v + (max label-len (+ indent (string-length (format "~a" k)))) + value-len + memory-len + count-len + (+ 2 indent))])))) + (log-error "REGION ~aMSECS ~aMEMK ~aCOUNT" + (make-string (- (+ label-max-len value-max-len) 11) + #\space) + (make-string (- memory-max-len 4) + #\space) + (make-string (- count-max-len 5) + #\space)) + (let loop ([name #f] [accums accums] [indent ""] [newline? #t]) + (when name + (define v (hash-ref accums stat-key)) + (log-error "~a~a ~a~a ~a~a ~a~a" + indent + name + (make-string (+ (- label-max-len (string-length (format "~a" name)) (string-length indent)) + (- value-max-len (whole-len (format "~a" (stat-msecs v))))) + #\space) + (regexp-replace #rx"[.](..).*" (format "~a00" (stat-msecs v)) ".\\1") + (make-string (- memory-max-len (string-length (format "~a" (kb (stat-memory v))))) + #\space) + (kb (stat-memory v)) + (make-string (- count-max-len (string-length (format "~a" (stat-count v)))) + #\space) + (stat-count v))) + (define keys (sort (for/list ([k (in-hash-keys accums)] #:when (not (eq? k stat-key))) k) + > + #:key (lambda (key) (stat-msecs (hash-ref (hash-ref accums key) stat-key))))) + (for ([k (in-list keys)] + [i (in-naturals)]) + (when (and newline? (positive? i)) (log-error "")) + (loop k (hash-ref accums k) (string-append indent " ") #f))))))) diff --git a/racket/src/racket/src/jit.c b/racket/src/racket/src/jit.c index 196de999a2..6977ad166d 100644 --- a/racket/src/racket/src/jit.c +++ b/racket/src/racket/src/jit.c @@ -489,39 +489,41 @@ Scheme_Object *scheme_extract_closure_local(Scheme_Object *obj, mz_jit_state *ji } -Scheme_Object *scheme_specialize_to_constant(Scheme_Object *obj, mz_jit_state *jitter, int extra_push) +Scheme_Object *scheme_specialize_to_constant(Scheme_Object *obj, mz_jit_state *jitter, int extra_push, int extract_static) { Scheme_Object *c; if (PAST_LIMIT()) return obj; - if (!jitter->nc) return obj; + /* We can always specialize static toplevel references */ + if (extract_static + && SAME_TYPE(SCHEME_TYPE(obj), scheme_static_toplevel_type) + && (SCHEME_TOPLEVEL_FLAGS(obj) & SCHEME_TOPLEVEL_FLAGS_MASK) >= SCHEME_TOPLEVEL_FIXED) { + c = SCHEME_STATIC_TOPLEVEL_PREFIX(obj)->a[SCHEME_TOPLEVEL_POS(obj)]; + c = ((Scheme_Bucket *)c)->val; + if (c) + return c; + } - if (SCHEME_NATIVE_LAMBDA_FLAGS(jitter->nc->code) & NATIVE_SPECIALIZED) { - if (SAME_TYPE(SCHEME_TYPE(obj), scheme_local_type)) { - c = scheme_extract_closure_local(obj, jitter, extra_push, 1); - if (c) { - MZ_ASSERT(SCHEME_TYPE(c) != scheme_prefix_type); - return c; - } - } - - if (SAME_TYPE(SCHEME_TYPE(obj), scheme_toplevel_type) - && (SCHEME_TOPLEVEL_FLAGS(obj) & SCHEME_TOPLEVEL_FLAGS_MASK) >= SCHEME_TOPLEVEL_FIXED) { - c = scheme_extract_global(obj, jitter->nc, 0); - if (c) { - c = ((Scheme_Bucket *)c)->val; - if (c) + if (jitter->nc) { + if (SCHEME_NATIVE_LAMBDA_FLAGS(jitter->nc->code) & NATIVE_SPECIALIZED) { + if (SAME_TYPE(SCHEME_TYPE(obj), scheme_local_type)) { + c = scheme_extract_closure_local(obj, jitter, extra_push, 1); + if (c) { + MZ_ASSERT(SCHEME_TYPE(c) != scheme_prefix_type); return c; + } } - } - if (SAME_TYPE(SCHEME_TYPE(obj), scheme_static_toplevel_type) - && (SCHEME_TOPLEVEL_FLAGS(obj) & SCHEME_TOPLEVEL_FLAGS_MASK) >= SCHEME_TOPLEVEL_FIXED) { - c = SCHEME_STATIC_TOPLEVEL_PREFIX(obj)->a[SCHEME_TOPLEVEL_POS(obj)]; - c = ((Scheme_Bucket *)c)->val; - if (c) - return c; + if (SAME_TYPE(SCHEME_TYPE(obj), scheme_toplevel_type) + && (SCHEME_TOPLEVEL_FLAGS(obj) & SCHEME_TOPLEVEL_FLAGS_MASK) >= SCHEME_TOPLEVEL_FIXED) { + c = scheme_extract_global(obj, jitter->nc, 0); + if (c) { + c = ((Scheme_Bucket *)c)->val; + if (c) + return c; + } + } } } @@ -547,7 +549,7 @@ int scheme_native_closure_preserves_marks(Scheme_Object *p) int scheme_is_noncm(Scheme_Object *a, mz_jit_state *jitter, int depth, int stack_start) { - a = scheme_specialize_to_constant(a, jitter, stack_start); + a = scheme_specialize_to_constant(a, jitter, stack_start, 0); if (SCHEME_PRIMP(a)) { int opts; @@ -677,7 +679,8 @@ int scheme_is_simple(Scheme_Object *obj, int depth, int just_markless, mz_jit_st { Scheme_Object *rator; rator = scheme_specialize_to_constant(((Scheme_App_Rec *)obj)->args[0], jitter, - stack_start + ((Scheme_App_Rec *)obj)->num_args); + stack_start + ((Scheme_App_Rec *)obj)->num_args, + 0); if (scheme_inlined_nary_prim(rator, obj, jitter) && !SAME_OBJ(rator, scheme_values_proc)) return 1; @@ -690,7 +693,7 @@ int scheme_is_simple(Scheme_Object *obj, int depth, int just_markless, mz_jit_st case scheme_application2_type: { Scheme_Object *rator; - rator = scheme_specialize_to_constant(((Scheme_App2_Rec *)obj)->rator, jitter, stack_start + 1); + rator = scheme_specialize_to_constant(((Scheme_App2_Rec *)obj)->rator, jitter, stack_start + 1, 0); if (scheme_inlined_unary_prim(rator, obj, jitter)) return 1; else if (just_markless) { @@ -701,7 +704,7 @@ int scheme_is_simple(Scheme_Object *obj, int depth, int just_markless, mz_jit_st case scheme_application3_type: { Scheme_Object *rator; - rator = scheme_specialize_to_constant(((Scheme_App3_Rec *)obj)->rator, jitter, stack_start + 2); + rator = scheme_specialize_to_constant(((Scheme_App3_Rec *)obj)->rator, jitter, stack_start + 2, 0); if (scheme_inlined_binary_prim(rator, obj, jitter) && !SAME_OBJ(rator, scheme_values_proc)) return 1; @@ -991,7 +994,7 @@ int scheme_native_closure_is_single_result(Scheme_Object *rator) static int produces_single_value(Scheme_Object *rator, int num_args, mz_jit_state *jitter) { - rator = scheme_specialize_to_constant(rator, jitter, num_args); + rator = scheme_specialize_to_constant(rator, jitter, num_args, 1); if (SAME_TYPE(SCHEME_TYPE(rator), scheme_native_closure_type)) return scheme_native_closure_is_single_result(rator); @@ -2104,7 +2107,7 @@ int scheme_generate(Scheme_Object *obj, mz_jit_state *jitter, int is_tail, int w } #endif - obj = scheme_specialize_to_constant(obj, jitter, 0); + obj = scheme_specialize_to_constant(obj, jitter, 0, 0); orig_target = target; result_ignored = (target < 0); @@ -2504,8 +2507,8 @@ int scheme_generate(Scheme_Object *obj, mz_jit_state *jitter, int is_tail, int w v = SCHEME_PTR1_VAL(obj); p = SCHEME_PTR2_VAL(obj); - v = scheme_specialize_to_constant(v, jitter, 0); - p = scheme_specialize_to_constant(p, jitter, 0); + v = scheme_specialize_to_constant(v, jitter, 0, 1); + p = scheme_specialize_to_constant(p, jitter, 0, 1); if (is_single_valued(p, jitter)) { /* We might discover late that `v` produces a single value, @@ -2965,7 +2968,15 @@ int scheme_generate(Scheme_Object *obj, mz_jit_state *jitter, int is_tail, int w } case scheme_branch_type: { - return generate_branch(obj, jitter, is_tail, wcm_may_replace, multi_ok, orig_target, result_ignored, for_branch); + Scheme_Branch_Rec *branch = (Scheme_Branch_Rec *)obj; + Scheme_Object *tst; + tst = scheme_specialize_to_constant(branch->test, jitter, 0, 1); + if (SCHEME_TYPE(tst) > _scheme_values_types_) { + return scheme_generate((SCHEME_TRUEP(tst) ? branch->tbranch : branch->fbranch), + jitter, is_tail, wcm_may_replace, + multi_ok, orig_target, for_branch, for_values); + } else + return generate_branch(obj, jitter, is_tail, wcm_may_replace, multi_ok, orig_target, result_ignored, for_branch); } case scheme_lambda_type: { diff --git a/racket/src/racket/src/jit.h b/racket/src/racket/src/jit.h index 01774e1728..3cac690596 100644 --- a/racket/src/racket/src/jit.h +++ b/racket/src/racket/src/jit.h @@ -1612,7 +1612,7 @@ int scheme_jit_check_closure_extflonum_bit(Scheme_Lambda *data, int pos, int del Scheme_Object *scheme_extract_global(Scheme_Object *o, Scheme_Native_Closure *nc, int local_only); Scheme_Object *scheme_extract_closure_local(Scheme_Object *obj, mz_jit_state *jitter, int extra_push, int get_constant); -Scheme_Object *scheme_specialize_to_constant(Scheme_Object *obj, mz_jit_state *jitter, int extra_push); +Scheme_Object *scheme_specialize_to_constant(Scheme_Object *obj, mz_jit_state *jitter, int extra_push, int extract_static); void scheme_jit_register_traversers(void); #ifdef MZ_USE_LWC diff --git a/racket/src/racket/src/jitcall.c b/racket/src/racket/src/jitcall.c index 401e368a4c..d050cbdf16 100644 --- a/racket/src/racket/src/jitcall.c +++ b/racket/src/racket/src/jitcall.c @@ -1818,7 +1818,7 @@ int scheme_generate_app(Scheme_App_Rec *app, Scheme_Object **alt_rands, int num_ rator = (alt_rands ? alt_rands[0] : app->args[0]); - rator = scheme_specialize_to_constant(rator, jitter, num_pushes); + rator = scheme_specialize_to_constant(rator, jitter, num_pushes, 0); if (no_call == 2) { direct_prim = 1; diff --git a/racket/src/racket/src/jitinline.c b/racket/src/racket/src/jitinline.c index d2647a441a..af02d57c79 100644 --- a/racket/src/racket/src/jitinline.c +++ b/racket/src/racket/src/jitinline.c @@ -1271,7 +1271,7 @@ int scheme_generate_inlined_unary(mz_jit_state *jitter, Scheme_App2_Rec *app, in { Scheme_Object *rator = app->rator; - rator = scheme_specialize_to_constant(rator, jitter, 1); + rator = scheme_specialize_to_constant(rator, jitter, 1, 0); { int k; @@ -2577,8 +2577,8 @@ int scheme_generate_two_args(Scheme_Object *rand1, Scheme_Object *rand2, mz_jit_ { int simple1, simple2, direction = 1; - rand1 = scheme_specialize_to_constant(rand1, jitter, skipped); - rand2 = scheme_specialize_to_constant(rand2, jitter, skipped); + rand1 = scheme_specialize_to_constant(rand1, jitter, skipped, 1); + rand2 = scheme_specialize_to_constant(rand2, jitter, skipped, 1); simple1 = scheme_is_relatively_constant_and_avoids_r1(rand1, rand2); simple2 = scheme_is_relatively_constant_and_avoids_r1(rand2, rand1); @@ -3042,7 +3042,7 @@ int scheme_generate_inlined_binary(mz_jit_state *jitter, Scheme_App3_Rec *app, i { Scheme_Object *rator = app->rator; - rator = scheme_specialize_to_constant(rator, jitter, 2); + rator = scheme_specialize_to_constant(rator, jitter, 2, 0); if (SCHEME_PRIMP(rator) && IS_NAMED_PRIM(rator, "ptr-ref")) { Scheme_App_Rec *app2; @@ -4549,7 +4549,7 @@ int scheme_generate_inlined_nary(mz_jit_state *jitter, Scheme_App_Rec *app, int { Scheme_Object *rator = app->args[0]; - rator = scheme_specialize_to_constant(rator, jitter, app->num_args); + rator = scheme_specialize_to_constant(rator, jitter, app->num_args, 0); if (!for_branch) { int k; diff --git a/racket/src/racket/src/startup.inc b/racket/src/racket/src/startup.inc index 6748f3829f..1885c24334 100644 --- a/racket/src/racket/src/startup.inc +++ b/racket/src/racket/src/startup.inc @@ -12774,6 +12774,519 @@ 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_EXPAND_TIMES\") #t #f))" +"(define-values(region-stack) #f)" +"(define-values(accums)(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" +"(set! region-stack" +"(cons" +"(region1.1" +"(if region-stack" +"((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 region-stack)))" +" path_0)" +"(current-inexact-milliseconds)" +"(current-memory-use 'cumulative)" +" 0.0" +" 0)" +" region-stack)))))" +"(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 region-stack)))" +"(let-values((()(begin(set! region-stack(cdr region-stack))(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)" +" accums" +"(region-path r_0))" +"(if region-stack" +"(let-values()" +"(begin" +"(set-region-as-nested!" +"(car region-stack)" +"(+(region-as-nested(car region-stack)) full-delta_0))" +"(set-region-as-nested-memory!" +"(car region-stack)" +"(+(region-as-nested-memory(car region-stack)) 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)" +" accums" +" 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" +" accums" +" \"\"" +" #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()" @@ -13466,7 +13979,14 @@ static const char *startup_source = "(void)" " (let-values () (error \"not a module path index:\" mpi_0)))" "(values))))" -"(let-values(((name_0)(let-values()(1/module-path-index-resolve mpi_0 #t))))" +"(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(((m_0)(namespace->module ns_0 name_0)))" "(let-values((()" "(begin" @@ -13579,6 +14099,9 @@ static const char *startup_source = "(let-values(((otherwise-available?_0) otherwise-available?117_0))" "(let-values(((seen_0)(if(eq? seen118_0 unsafe-undefined) '#hasheq() seen118_0)))" "(let-values()" +"(begin" +"(if log-performance?(let-values()(start-performance-region 'eval 'requires))(void))" +"(begin0" "(let-values()" "(let-values(((m-ns_0)(module-instance-namespace mi_0)))" "(let-values(((instance-phase_0)(namespace-0-phase m-ns_0)))" @@ -13605,7 +14128,7 @@ static const char *startup_source = "(let-values()" "(error" " 'require" -" \"import cycle detected; trying to run module being expanded\")))" +" \"import cycle detected; trying to run module being expanded\")))" "(values))))" "(let-values(((mpi_0)(namespace-mpi m-ns_0)))" "(let-values(((phase-shift_0) instance-phase_0))" @@ -13614,7 +14137,9 @@ static const char *startup_source = "(begin" "(if(hash-ref seen_0 mi_0 #f)" "(let-values()" -" (error 'require \"import cycle detected during module instantiation\"))" +"(error" +" 'require" +" \"import cycle detected during module instantiation\"))" "(void))" "(if(module-instance-shifted-requires mi_0)" "(void)" @@ -13715,7 +14240,8 @@ static const char *startup_source = "(begin" " 'for-loop" "(if(pair? lst_1)" -"(let-values(((phase+mpis_0)(unsafe-car lst_1))" +"(let-values(((phase+mpis_0)" +"(unsafe-car lst_1))" "((rest_0)(unsafe-cdr lst_1)))" "(let-values((()" "(let-values()" @@ -13795,7 +14321,9 @@ static const char *startup_source = "(void))))" "(values)))))" "(values)))))" -"(if(not #f)(for-loop_0 rest_0)(values))))" +"(if(not #f)" +"(for-loop_0 rest_0)" +"(values))))" "(values))))))" " for-loop_0)" " lst_0)))" @@ -13937,7 +14465,8 @@ static const char *startup_source = "(small-hash-set!" "(module-instance-phase-level-to-state mi_0)" " run-phase-level_0" -" 'started)))))))))))))))))))))))))" +" 'started)))))))))))))))" +"(if log-performance?(let-values()(end-performance-region))(void))))))))))))))" "(define-values" "(namespace-visit-available-modules!)" "(let-values(((namespace-visit-available-modules!130_0)" @@ -24695,8 +25224,14 @@ static const char *startup_source = "(let-values(((bind?_0) bind?57_0))" "(let-values(((who_0) who58_0))" "(let-values()" +"(begin" +"(if log-performance?" +"(let-values()(start-performance-region 'expand 'require))" +"(void))" +"(begin0" "(let-values()" -"(let-values(((module-name_0)(1/module-path-index-resolve mpi_0 #t)))" +"(let-values(((module-name_0)" +"(1/module-path-index-resolve mpi_0 #t)))" "(let-values(((bind-in-stx_0)" "(if(adjust-rename? adjust_0)" "(adjust-rename-to-id adjust_0)" @@ -24764,9 +25299,12 @@ static const char *startup_source = "(if(not" "(let-values(((or-part_0)" " visit?_0))" -"(if or-part_0 or-part_0 run?_0)))" +"(if or-part_0" +" or-part_0" +" run?_0)))" "(let-values()" -"(let-values(((m-ns259_0) m-ns_0)" +"(let-values(((m-ns259_0)" +" m-ns_0)" "((interned-mpi260_0)" " interned-mpi_0)" "((phase-shift261_0)" @@ -24798,13 +25336,15 @@ static const char *startup_source = "(if(adjust-prefix? adjust_0)" "(let-values()" "(adjust-prefix-sym adjust_0))" -"(if(adjust-all-except? adjust_0)" +"(if(adjust-all-except?" +" adjust_0)" "(let-values()" "(adjust-all-except-prefix-sym" " adjust_0))" "(let-values() #f)))))" "(let-values(((bulk-excepts_0)" -"(if(adjust-all-except? adjust_0)" +"(if(adjust-all-except?" +" adjust_0)" "(let-values()" "(adjust-all-except-syms" " adjust_0))" @@ -24815,7 +25355,8 @@ static const char *startup_source = " #f)))" "(let-values((()" "(begin" -"(let-values(((m235_0) m_0)" +"(let-values(((m235_0)" +" m_0)" "((bind-in-stx236_0)" " bind-in-stx_0)" "((phase-shift237_0)" @@ -24975,7 +25516,7 @@ static const char *startup_source = "(let-values()" "(string->symbol" "(format" -" \"~a~a\"" +" \"~a~a\"" "(adjust-prefix-sym" " adjust_0)" " sym_0)))" @@ -24994,7 +25535,7 @@ static const char *startup_source = " #f))" "(string->symbol" "(format" -" \"~a~a\"" +" \"~a~a\"" "(adjust-all-except-prefix-sym" " adjust_0)" " sym_0))" @@ -25177,7 +25718,8 @@ static const char *startup_source = "(void))" "(values))))" "(let-values(((need-syms_0)" -"(if(adjust-only? adjust_0)" +"(if(adjust-only?" +" adjust_0)" "(let-values()" "(adjust-only-syms" " adjust_0))" @@ -25202,7 +25744,8 @@ static const char *startup_source = " #f)" "(let-values()" "(begin" -"(let-values(((ht_0) need-syms_0))" +"(let-values(((ht_0)" +" need-syms_0))" "(begin" "(if(variable-reference-from-unsafe?" "(#%variable-reference))" @@ -25233,7 +25776,7 @@ static const char *startup_source = "(let-values()" "(raise-syntax-error$1" " who_0" -" \"not in nested spec\"" +" \"not in nested spec\"" " orig-s_0" " sym_0))))" "(values)))))" @@ -25250,7 +25793,10 @@ static const char *startup_source = "(unsafe-immutable-hash-iterate-first" " ht_0))))" "(void)))" -"(void))))))))))))))))))))))))))))))))))))))))))" +"(void)))))))))))))))))))" +"(if log-performance?" +"(let-values()(end-performance-region))" +"(void)))))))))))))))))))))))))))" "(define-values" "(bind-all-provides!107.1)" "(lambda(bind?85_0" @@ -28968,6 +29514,15 @@ static const char *startup_source = " li_0))))" "(let-values(((linklet_0" " new-module-use*s_0)" +"(begin" +"(if log-performance?" +"(let-values()" +"(start-performance-region" +" 'compile" +" '_" +" 'linklet))" +"(void))" +"(begin0" "(let-values()" "((if to-source?_0" "(lambda(l_0" @@ -29069,7 +29624,11 @@ static const char *startup_source = "(compile-context-namespace" " cctx_0)" " get-module-linklet-info_0" -" module-use*s_0)))))" +" module-use*s_0)))" +"(if log-performance?" +"(let-values()" +"(end-performance-region))" +"(void))))))" "(values" " phase_1" "(cons" @@ -32698,6 +33257,11 @@ static const char *startup_source = "(let-values(((single-expression?_0) single-expression?2_0))" "(let-values(((to-source?_0) to-source?3_0))" "(let-values()" +"(begin" +"(if log-performance?" +"(let-values()(start-performance-region 'compile(if single-expression?_0 'transformer 'top)))" +"(void))" +"(begin0" "(let-values()" "(let-values(((phase_0)(compile-context-phase cctx_0)))" "(let-values(((mpis_0)(make-module-path-index-table)))" @@ -32732,7 +33296,8 @@ static const char *startup_source = "(lambda(e_0 expected-results_0 phase_1 required-reference?_0)" "(if(if purely-functional?_0" "(let-values(((e27_0) e_0)" -"((expected-results28_0) expected-results_0)" +"((expected-results28_0)" +" expected-results_0)" "((required-reference?29_0)" " required-reference?_0))" "(any-side-effects?9.1" @@ -32772,24 +33337,46 @@ static const char *startup_source = "(begin" " 'add-metadata" "(let-values(((ht_1)(hash-set ht_0 'original-phase phase_0)))" -"(let-values(((ht_2)(hash-set ht_1 'max-phase max-phase_0))) ht_2))))))" +"(let-values(((ht_2)(hash-set ht_1 'max-phase max-phase_0)))" +" ht_2))))))" "(let-values(((bundle_0)" "((if to-source?_0 values 1/hash->linklet-bundle)" "(add-metadata_0" "(if serializable?_0" "(let-values()" "(let-values(((syntax-literals-expr_0)" +"(begin" +"(if log-performance?" +"(let-values()" +"(start-performance-region" +" 'compile" +" 'top" +" 'serialize))" +"(void))" +"(begin0" "(let-values()" "(generate-eager-syntax-literals!" " syntax-literals_0" " mpis_0" " phase_0" "(compile-context-self cctx_0)" -"(compile-context-namespace cctx_0)))))" +"(compile-context-namespace cctx_0)))" +"(if log-performance?" +"(let-values()(end-performance-region))" +"(void))))))" "(let-values(((link-linklet_0)" "((if to-source?_0" " values" "(lambda(s_0)" +"(begin" +"(if log-performance?" +"(let-values()" +"(start-performance-region" +" 'compile" +" 'top" +" 'linklet))" +"(void))" +"(begin0" "(let-values()" "(let-values(((linklet_0 new-keys_0)" "(1/compile-linklet" @@ -32800,10 +33387,16 @@ static const char *startup_source = " empty-eager-instance-instance)" "(lambda(inst_0)" "(values inst_0 #f)))))" -" linklet_0))))" +" linklet_0))" +"(if log-performance?" +"(let-values()" +"(end-performance-region))" +"(void))))))" "(list" " 'linklet" -"(list deserialize-imports eager-instance-imports)" +"(list" +" deserialize-imports" +" eager-instance-imports)" "(list" " mpi-vector-id" " deserialized-syntax-vector-id" @@ -32812,7 +33405,8 @@ static const char *startup_source = "(list" " 'define-values" "(list mpi-vector-id)" -"(generate-module-path-index-deserialize mpis_0))" +"(generate-module-path-index-deserialize" +" mpis_0))" "(list" " 'define-values" "(list deserialized-syntax-vector-id)" @@ -32843,7 +33437,8 @@ static const char *startup_source = " null" " null" "(extract-namespace-scopes(compile-context-namespace cctx_0))" -" purely-functional?_0)))))))))))))))))))" +" purely-functional?_0))))))))))" +"(if log-performance?(let-values()(end-performance-region))(void)))))))))))))" "(define-values" "(compile-top-level-require)" "(lambda(p_0 cctx_0)" @@ -33596,6 +34191,9 @@ static const char *startup_source = "(let-values(((with-submodules?_0) with-submodules?2_0))" "(let-values(((supermodule-name_0) supermodule-name3_0))" "(let-values()" +"(begin" +"(if log-performance?(let-values()(start-performance-region 'eval 'module))(void))" +"(begin0" "(let-values()" "(let-values(((dh_0 h_0 data-instance_0 declaration-instance_0)" "(compiled-module->dh+h+data-instance+declaration-instance c_0)))" @@ -33622,7 +34220,8 @@ static const char *startup_source = "(if(null? pre-submodule-names_0)" "(if(null? post-submodule-names_0)(hash-ref h_0 'hash-code #f) #f)" " #f))))" -"(let-values(((cross-phase-persistent?_0)(hash-ref h_0 'cross-phase-persistent? #f)))" +"(let-values(((cross-phase-persistent?_0)" +"(hash-ref h_0 'cross-phase-persistent? #f)))" "(let-values(((min-phase_0)(hash-ref h_0 'min-phase 0)))" "(let-values(((max-phase_0)(hash-ref h_0 'max-phase 0)))" "(let-values(((language-info_0)(hash-ref h_0 'language-info #f)))" @@ -33631,7 +34230,8 @@ static const char *startup_source = "((end_0)(add1 max-phase_0))" "((inc_0) 1))" "(begin" -"(if(variable-reference-from-unsafe?(#%variable-reference))" +"(if(variable-reference-from-unsafe?" +"(#%variable-reference))" "(void)" "(let-values()(check-range start_0 end_0 inc_0)))" "((letrec-values(((for-loop_0)" @@ -33639,7 +34239,8 @@ static const char *startup_source = "(begin" " 'for-loop" "(if(< pos_0 end_0)" -"(let-values(((phase-level_0) pos_0))" +"(let-values(((phase-level_0)" +" pos_0))" "(let-values(((table_1)" "(let-values(((v_0)" "(hash-ref" @@ -33696,7 +34297,8 @@ static const char *startup_source = " #f)))" "(let-values(((phase-to-link-extra-inspectorsss_0)" "(if(compiled-in-memory? c_0)" -"(compiled-in-memory-phase-to-link-extra-inspectorsss c_0)" +"(compiled-in-memory-phase-to-link-extra-inspectorsss" +" c_0)" " '#hasheqv())))" "(let-values(((requires_0)(decl_0 'requires)))" "(let-values(((provides_0)(decl_0 'provides)))" @@ -33709,7 +34311,10 @@ static const char *startup_source = " phases-h_0)))" "(let-values(((declare-submodules_0)" "(if dh_0" -"(lambda(ns_1 names_0 declare-name_0 pre?_0)" +"(lambda(ns_1" +" names_0" +" declare-name_0" +" pre?_0)" "(begin" " 'declare-submodules" "(if(compiled-in-memory? c_0)" @@ -33802,7 +34407,7 @@ static const char *startup_source = "(void)" "(let-values()" "(error" -" \"missing submodule declaration:\"" +" \"missing submodule declaration:\"" " name_0)))" "(let-values(((sm-cd15_0)" " sm-cd_0)" @@ -33917,6 +34522,14 @@ static const char *startup_source = " self_0" " bulk-binding-registry_0" " insp_0)" +"(begin" +"(if log-performance?" +"(let-values()" +"(start-performance-region" +" 'eval" +" 'instantiate))" +"(void))" +"(begin0" "(let-values()" "(let-values(((syntax-literals-instance_0)" "(instance-data-syntax-literals-instance" @@ -34126,7 +34739,11 @@ static const char *startup_source = " insp_0)" "(let-values()" "(instantiate-body_0))))))))))))" -"(void))))))))" +"(void)))))" +"(if log-performance?" +"(let-values()" +"(end-performance-region))" +"(void)))))))" "(make-module39.1" " cross-phase-persistent?29_0" " temp35_0" @@ -34184,8 +34801,8 @@ static const char *startup_source = " cache-key_0" " declare-this-module_0))" "(void))" -"(declare-this-module_0" -" ns_0)))))))))))))))))))))))))))))))))" +"(declare-this-module_0 ns_0)))))))))))))))))))))))))" +"(if log-performance?(let-values()(end-performance-region))(void))))))))))))" "(define-values" "(struct:instance-data instance-data11.1 instance-data? instance-data-syntax-literals-instance instance-data-cache-key)" "(let-values(((struct:_0 make-_0 ?_0 -ref_0 -set!_0)" @@ -35397,6 +36014,9 @@ static const char *startup_source = "(let-values(((post-submodules_0) post-submodules22_0))" "(let-values(((need-compiled-submodule-rename?_0) need-compiled-submodule-rename?23_0))" "(let-values()" +"(begin" +"(if log-performance?(let-values()(start-performance-region 'compile 'module))(void))" +"(begin0" "(let-values()" "(let-values(((enclosing-self_0)(compile-context-module-self cctx_0)))" "(let-values(((self_0)(parsed-module-self p_0)))" @@ -35404,7 +36024,8 @@ static const char *startup_source = "(let-values(((provides_0)(parsed-module-provides p_0)))" "(let-values(((encoded-root-expand-ctx-box_0)" "(box(parsed-module-encoded-root-ctx p_0))))" -"(let-values(((body-context-simple?_0)(parsed-module-root-ctx-simple? p_0)))" +"(let-values(((body-context-simple?_0)" +"(parsed-module-root-ctx-simple? p_0)))" "(let-values(((language-info_0)" "(filter-language-info" "(syntax-property$1(parsed-s p_0) 'module-language))))" @@ -35430,7 +36051,7 @@ static const char *startup_source = "(compile-context-header the-struct_0)))" "(raise-argument-error" " 'struct-copy" -" \"compile-context?\"" +" \"compile-context?\"" " the-struct_0)))))" "(let-values(((cross-phase-persistent?_0) #f))" "(let-values(((side-effects_0)(make-hasheqv)))" @@ -35456,7 +36077,10 @@ static const char *startup_source = " e52_0" " expected-results53_0))" "(let-values()" -"(hash-set! side-effects_0 phase_0 #t))" +"(hash-set!" +" side-effects_0" +" phase_0" +" #t))" "(void))))))))" "(let-values((()" "(begin" @@ -35469,7 +36093,7 @@ static const char *startup_source = "(void)" "(let-values()" "(error" -" \"internal error: have post submodules, but not already compiled\")))" +" \"internal error: have post submodules, but not already compiled\")))" "(register-compiled-submodules" " modules-being-compiled_0" " pre-submodules_0" @@ -35489,8 +36113,10 @@ static const char *startup_source = "((mpis57_0) mpis_0)" "((temp58_0)" "(list" -"(list get-syntax-literal!-id)" -"(list set-transformer!-id)))" +"(list" +" get-syntax-literal!-id)" +"(list" +" set-transformer!-id)))" "((temp59_0)" "(list" " empty-syntax-literals-instance" @@ -35505,7 +36131,8 @@ static const char *startup_source = " check-side-effects!_0)" "((temp65_0)" "(lambda(body_0 cctx_1)" -"(if(parsed-#%declare? body_0)" +"(if(parsed-#%declare?" +" body_0)" "(let-values()" "(let-values(((ok?_0" " _69_0" @@ -35548,7 +36175,7 @@ static const char *startup_source = "(let-values()" "(raise-syntax-error$1" " #f" -" \"bad syntax\"" +" \"bad syntax\"" " orig-s_0))" "(let-values()" " flat-s_0)))))))" @@ -35557,7 +36184,7 @@ static const char *startup_source = " kw72_0))" "(raise-syntax-error$1" " #f" -" \"bad syntax\"" +" \"bad syntax\"" " orig-s_0)))))" "(values" " #t" @@ -35635,9 +36262,13 @@ static const char *startup_source = " #f)" " #f)))" "(if ht_0" -"(hash-ref ht_0 phase_0 #f)" +"(hash-ref" +" ht_0" +" phase_0" +" #f)" " #f))))" -"((to-source?67_0) to-source?_0)" +"((to-source?67_0)" +" to-source?_0)" "((serializable?68_0)" " serializable?_0))" "(compile-forms31.1" @@ -35663,7 +36294,8 @@ static const char *startup_source = "(let-values()" "(hash-set!" " modules-being-compiled_0" -"(1/module-path-index-resolve self_0)" +"(1/module-path-index-resolve" +" self_0)" "(let-values(((ht_0)" " body-linklets_0))" "(begin" @@ -35725,7 +36357,8 @@ static const char *startup_source = " table_0)))))" " for-loop_0)" " '#hasheq()" -"(hash-iterate-first ht_0))))))" +"(hash-iterate-first" +" ht_0))))))" "(void))" "(values))))" "(let-values(((declaration-linklet_0)" @@ -35733,8 +36366,23 @@ static const char *startup_source = "((if to-source?_0" " values" "(lambda(s_0)" +"(begin" +"(if log-performance?" "(let-values()" -"(1/compile-linklet s_0 'decl))))" +"(start-performance-region" +" 'compile" +" 'module" +" 'linklet))" +"(void))" +"(begin0" +"(let-values()" +"(1/compile-linklet" +" s_0" +" 'decl))" +"(if log-performance?" +"(let-values()" +"(end-performance-region))" +"(void))))))" "(list" " 'linklet" "(list" @@ -35784,6 +36432,15 @@ static const char *startup_source = "((if to-source?_0" " values" "(lambda(s_0)" +"(begin" +"(if log-performance?" +"(let-values()" +"(start-performance-region" +" 'compile" +" 'module" +" 'linklet))" +"(void))" +"(begin0" "(let-values()" "(let-values(((linklet_0" " new-keys_0)" @@ -35802,7 +36459,11 @@ static const char *startup_source = "(if serializable?_0" " '(serializable)" " '()))))" -" linklet_0))))" +" linklet_0))" +"(if log-performance?" +"(let-values()" +"(end-performance-region))" +"(void))))))" "(list*" " 'linklet" "(list" @@ -35820,8 +36481,10 @@ static const char *startup_source = "(qq-append" "(let-values(((syntax-literals79_0)" " syntax-literals_0)" -"((mpis80_0) mpis_0)" -"((self81_0) self_0)" +"((mpis80_0)" +" mpis_0)" +"((self81_0)" +" self_0)" "((temp82_0)" "(not" " serializable?_0)))" @@ -35843,7 +36506,8 @@ static const char *startup_source = " root-ctx-pos_0)))" "(if empty-result-for-module->namespace?_0" "(let-values() ''empty)" -"(let-values() ''#f))))))))" +"(let-values()" +" ''#f))))))))" " #f)))" "(let-values(((syntax-literals-data-linklet_0)" "(if serializable?_0" @@ -35853,10 +36517,23 @@ static const char *startup_source = "((if to-source?_0" " values" "(lambda(s_0)" +"(begin" +"(if log-performance?" +"(let-values()" +"(start-performance-region" +" 'compile" +" 'module" +" 'linklet))" +"(void))" +"(begin0" "(let-values()" "(1/compile-linklet" " s_0" -" 'syntax-literals-data))))" +" 'syntax-literals-data))" +"(if log-performance?" +"(let-values()" +"(end-performance-region))" +"(void))))))" "(list*" " 'linklet" "(list" @@ -35874,10 +36551,23 @@ static const char *startup_source = "(syntax-literals-count" " syntax-literals_0)" " '(#f)))" +"(begin" +"(if log-performance?" +"(let-values()" +"(start-performance-region" +" 'compile" +" 'module" +" 'serialize))" +"(void))" +"(begin0" "(let-values()" "(generate-lazy-syntax-literals-data!" " syntax-literals_0" -" mpis_0))))" +" mpis_0))" +"(if log-performance?" +"(let-values()" +"(end-performance-region))" +"(void))))))" " #f)" " #f)))" "(let-values(((data-linklet_0)" @@ -35885,10 +36575,23 @@ static const char *startup_source = "((if to-source?_0" " values" "(lambda(s_0)" +"(begin" +"(if log-performance?" +"(let-values()" +"(start-performance-region" +" 'compile" +" 'module" +" 'linklet))" +"(void))" +"(begin0" "(let-values()" "(1/compile-linklet" " s_0" -" 'data))))" +" 'data))" +"(if log-performance?" +"(let-values()" +"(end-performance-region))" +"(void))))))" "(list" " 'linklet" "(list deserialize-imports)" @@ -36016,7 +36719,8 @@ static const char *startup_source = "(1/hash->linklet-bundle" " bundle_12))))))))))))))))" "(let-values(((ld_0)" -"(if(if(null? pre-submodules_0)" +"(if(if(null?" +" pre-submodules_0)" "(if(null?" " post-submodules_0)" "(not" @@ -36076,7 +36780,9 @@ static const char *startup_source = " ht_1)))" " ht_0)))))" " for-loop_0)" -"(hasheq #f bundle_0)" +"(hasheq" +" #f" +" bundle_0)" " lst_0))))))))" "(if to-source?_0" "(let-values() ld_0)" @@ -36095,7 +36801,8 @@ static const char *startup_source = "(map2 cdr pre-submodules_0)" "(map2 cdr post-submodules_0)" " #f" -" #f)))))))))))))))))))))))))))))))))))))))))" +" #f)))))))))))))))))))))))))))" +"(if log-performance?(let-values()(end-performance-region))(void))))))))))))))))))" "(define-values" "(update-submodule-names)" "(lambda(cim_0 name_0 full-module-name_0)" @@ -36766,8 +37473,14 @@ static const char *startup_source = "(let-values(((as-tail?_0) as-tail?9_0))" "(let-values(((single-expression?_0) single-expression?7_0))" "(let-values()" +"(begin" +"(if log-performance?" +"(let-values()(start-performance-region 'eval(if single-expression?_0 'transformer 'top)))" +"(void))" +"(begin0" "(let-values()" -"(let-values(((ld_0)(if(compiled-in-memory? c_0)(compiled-in-memory-linklet-directory c_0) c_0)))" +"(let-values(((ld_0)" +"(if(compiled-in-memory? c_0)(compiled-in-memory-linklet-directory c_0) c_0)))" "(let-values(((h_0)(1/linklet-bundle->hash(hash-ref(1/linklet-directory->hash ld_0) #f))))" "(let-values(((link-instance_0)" "(if(compiled-in-memory? c_0)" @@ -36803,7 +37516,9 @@ static const char *startup_source = "(let-values(((phase-to-link-modules_0)" "(if(compiled-in-memory? c_0)" "(compiled-in-memory-phase-to-link-module-uses c_0)" -"(1/instance-variable-value link-instance_0 'phase-to-link-modules))))" +"(1/instance-variable-value" +" link-instance_0" +" 'phase-to-link-modules))))" "(let-values(((thunk_0)" "(let-values(((start_0) max-phase_0)" "((end_0)(sub1 orig-phase_0))" @@ -37077,7 +37792,8 @@ static const char *startup_source = " for-loop_0)" " void" " start_0)))))" -"(thunk_0 as-tail?_0))))))))))))))))))))" +"(thunk_0 as-tail?_0))))))))))))" +"(if log-performance?(let-values()(end-performance-region))(void))))))))))))" "(define-values" "(link-instance-from-compiled-in-memory)" "(lambda(cim_0 to-ns_0)" @@ -38983,12 +39699,16 @@ static const char *startup_source = "(let-values(((binding_0) binding51_0))" "(let-values(((origin-id_0) origin-id44_0))" "(let-values()" +"(begin" +"(if log-performance?(let-values()(start-performance-region 'expand '_ 'macro))(void))" +"(begin0" "(let-values()" "(let-values((()" "(begin" "(let-values(((obs_0)(expand-context-observer ctx_0)))" "(if obs_0" -"(let-values()(let-values()(call-expand-observe obs_0 'enter-macro s_0)))" +"(let-values()" +"(let-values()(call-expand-observe obs_0 'enter-macro s_0)))" "(void)))" "(values))))" "(let-values(((disarmed-s_0)(syntax-disarm$1 s_0)))" @@ -39034,9 +39754,8 @@ static const char *startup_source = "(void)))" "(values" " rearmed-s_0" -"(accumulate-def-ctx-scopes" -" ctx_0" -" def-ctx-scopes_0)))))))))))))))))))))))))))" +"(accumulate-def-ctx-scopes ctx_0 def-ctx-scopes_0))))))))))))))))" +"(if log-performance?(let-values()(end-performance-region))(void)))))))))))))))" "(define-values" "(apply-transformer-in-context)" "(lambda(t_0 cleaned-s_0 ctx_0 insp-of-t_0 intro-scope_0 use-scopes_0 def-ctx-scopes_0 id_0)" @@ -39458,12 +40177,18 @@ static const char *startup_source = "(let-values(((always-wrap?_0) always-wrap?82_0))" "(let-values(((keep-stops?_0) keep-stops?83_0))" "(let-values()" +"(begin" +"(if log-performance?(let-values()(start-performance-region 'expand 'transformer))(void))" +"(begin0" "(let-values()" "(let-values(((trans-ctx_0)" "(let-values(((ctx234_0) ctx_0)" "((context235_0) context_0)" "((keep-stops?236_0) keep-stops?_0))" -"(context->transformer-context99.1 keep-stops?236_0 ctx234_0 context235_0))))" +"(context->transformer-context99.1" +" keep-stops?236_0" +" ctx234_0" +" context235_0))))" "(let-values(((s228_0) s_0)" "((trans-ctx229_0) trans-ctx_0)" "((expand-lifts?230_0) expand-lifts?_0)" @@ -39476,7 +40201,8 @@ static const char *startup_source = " expand-lifts?230_0" " lift-key232_0" " s228_0" -" trans-ctx229_0))))))))))))))))" +" trans-ctx229_0))))" +"(if log-performance?(let-values()(end-performance-region))(void))))))))))))))))" "(define-values" "(context->transformer-context99.1)" "(lambda(keep-stops?95_0 ctx98_0 context97_0)" @@ -45125,13 +45851,19 @@ static const char *startup_source = "(expand-capturing-lifts)" "(lambda(s_0 ctx_0)" "(begin" +"(begin" +"(if log-performance?(let-values()(start-performance-region 'expand 'top))(void))" +"(begin0" "(let-values()" "(let-values(((ns_0)(expand-context-namespace ctx_0)))" "(let-values((()(begin(namespace-visit-available-modules! ns_0)(values))))" "(let-values(((lift-ctx_0)" -"(let-values(((temp154_0)(make-top-level-lift ctx_0)))(make-lift-context6.1 #f temp154_0))))" +"(let-values(((temp154_0)(make-top-level-lift ctx_0)))" +"(make-lift-context6.1 #f temp154_0))))" "(let-values(((require-lift-ctx_0)" -"(make-require-lift-context(namespace-phase ns_0)(make-parse-top-lifted-require ns_0))))" +"(make-require-lift-context" +"(namespace-phase ns_0)" +"(make-parse-top-lifted-require ns_0))))" "(let-values(((exp-s_0)" "(let-values(((s155_0) s_0)" "((temp156_0)" @@ -45140,14 +45872,16 @@ static const char *startup_source = "(if(expand-context/outer? the-struct_0)" "(let-values(((inner157_0)" "(let-values(((the-struct_1)" -"(root-expand-context/outer-inner v_0)))" +"(root-expand-context/outer-inner" +" v_0)))" "(if(expand-context/inner? the-struct_1)" "(let-values(((lifts158_0) lift-ctx_0)" "((module-lifts159_0) lift-ctx_0)" "((require-lifts160_0)" " require-lift-ctx_0))" "(expand-context/inner2.1" -"(root-expand-context/inner-self-mpi the-struct_1)" +"(root-expand-context/inner-self-mpi" +" the-struct_1)" "(root-expand-context/inner-module-scopes" " the-struct_1)" "(root-expand-context/inner-top-level-bind-scope" @@ -45156,12 +45890,16 @@ static const char *startup_source = " the-struct_1)" "(root-expand-context/inner-defined-syms" " the-struct_1)" -"(root-expand-context/inner-counter the-struct_1)" -"(root-expand-context/inner-lift-key the-struct_1)" -"(expand-context/inner-to-parsed? the-struct_1)" +"(root-expand-context/inner-counter" +" the-struct_1)" +"(root-expand-context/inner-lift-key" +" the-struct_1)" +"(expand-context/inner-to-parsed?" +" the-struct_1)" "(expand-context/inner-phase the-struct_1)" "(expand-context/inner-namespace the-struct_1)" -"(expand-context/inner-just-once? the-struct_1)" +"(expand-context/inner-just-once?" +" the-struct_1)" "(expand-context/inner-module-begin-k" " the-struct_1)" "(expand-context/inner-allow-unbound?" @@ -45188,7 +45926,7 @@ static const char *startup_source = " the-struct_1)))" "(raise-argument-error" " 'struct-copy" -" \"expand-context/inner?\"" +" \"expand-context/inner?\"" " the-struct_1)))))" "(expand-context/outer1.1" " inner157_0" @@ -45208,13 +45946,14 @@ static const char *startup_source = "(expand-context/outer-name the-struct_0)))" "(raise-argument-error" " 'struct-copy" -" \"expand-context/outer?\"" +" \"expand-context/outer?\"" " the-struct_0))))))" "(expand9.1 #f #f #f s155_0 temp156_0))))" "(values" "(get-and-clear-require-lifts! require-lift-ctx_0)" "(get-and-clear-lifts! lift-ctx_0)" -" exp-s_0))))))))))" +" exp-s_0)))))))" +"(if log-performance?(let-values()(end-performance-region))(void)))))))" "(define-values" "(make-parse-top-lifted-require)" "(lambda(ns_0)" @@ -56075,6 +56814,9 @@ static const char *startup_source = "(if(eq? readtable5_0 unsafe-undefined)(1/current-readtable) readtable5_0)))" "(let-values(((local-graph?_0) local-graph?6_0))" "(let-values()" +"(begin" +"(if log-performance?(let-values()(start-performance-region 'read))(void))" +"(begin0" "(let-values()" "(let-values(((in40_0) in_0)" "((for-syntax?41_0) for-syntax?_0)" @@ -56104,7 +56846,8 @@ static const char *startup_source = " recursive?42_0" " source43_0" " temp44_0" -" in40_0))))))))))))))" +" in40_0)))" +"(if log-performance?(let-values()(end-performance-region))(void)))))))))))))))" "(define-values" "(read-language$1)" "(lambda(in_0 fail-thunk_0)" @@ -56934,6 +57677,11 @@ static const char *startup_source = "(let-values(((track-to-be-defined?_0) track-to-be-defined?41_0))" "(let-values(((skip-log-exit?_0) skip-log-exit?42_0))" "(let-values()" +"(begin" +"(if log-performance?" +"(let-values()(start-performance-region 'expand 'local-expand))" +"(void))" +"(begin0" "(let-values()" "(let-values(((s_0)(datum->syntax$1 #f s-or-s-exp_0)))" "(let-values((()" @@ -56951,8 +57699,8 @@ static const char *startup_source = "(raise-argument-error" " who_0" "(if as-transformer?_0" -" \"(or/c 'expression 'top-level list?)\"" -" \"(or/c 'expression 'top-level 'module 'module-begin list?)\")" +" \"(or/c 'expression 'top-level list?)\"" +" \"(or/c 'expression 'top-level 'module 'module-begin list?)\")" " context_0)))" "(values))))" "(let-values((()" @@ -56967,7 +57715,7 @@ static const char *startup_source = "(let-values()" "(raise-argument-error" " who_0" -" \"(or/c (listof identifier?) #f)\"" +" \"(or/c (listof identifier?) #f)\"" " stop-ids_0)))" "(values))))" "(let-values((()" @@ -57039,7 +57787,9 @@ static const char *startup_source = "(values))))" "(let-values(((input-s_0)" "(let-values(((temp108_0)" -"(flip-introduction-scopes s_0 ctx_0))" +"(flip-introduction-scopes" +" s_0" +" ctx_0))" "((intdefs109_0) intdefs_0))" "(add-intdef-scopes24.1" " unsafe-undefined" @@ -57097,10 +57847,12 @@ static const char *startup_source = " capture-lifts?_0" " #f)" "(let-values()" -"(let-values(((input-s110_0) input-s_0)" +"(let-values(((input-s110_0)" +" input-s_0)" "((local-ctx111_0)" " local-ctx_0)" -"((context112_0) context_0)" +"((context112_0)" +" context_0)" "((temp113_0) #f)" "((temp114_0) #t)" "((lift-key115_0)" @@ -57204,7 +57956,10 @@ static const char *startup_source = " 'exit-local" " result-s_0)))" "(void)))))" -" result-s_0)))))))))))))))))))))))))))))))))))" +" result-s_0))))))))))))))))))" +"(if log-performance?" +"(let-values()(end-performance-region))" +"(void)))))))))))))))))))))" "(define-values" "(1/syntax-tainted?)" "(lambda(s_0)" @@ -70286,9 +71041,12 @@ static const char *startup_source = "(let-values(((obs_0)(expand-context-observer ctx_0)))" "(if obs_0(let-values()(let-values()(call-expand-observe obs_0 'prim-module)))(void)))" " (raise-syntax-error$1 #f \"allowed only at the top level\" s_0))))" +"(if log-performance?(let-values()(start-performance-region 'expand 'module))(void))" +"(begin0" "(let-values()" "(let-values(((s219_0) s_0)((ctx220_0) ctx_0)((temp221_0) #f))" -"(expand-module16.1 #f #f #f #f unsafe-undefined #f s219_0 ctx220_0 temp221_0)))))))" +"(expand-module16.1 #f #f #f #f unsafe-undefined #f s219_0 ctx220_0 temp221_0)))" +"(if log-performance?(let-values()(end-performance-region))(void)))))))" "(void" "(add-core-form!*" " 'module*" @@ -72095,6 +72853,14 @@ static const char *startup_source = " mb-scopes-s418_0" " bodys416_0))))" "(let-values(((expanded-mb_0)" +"(begin" +"(if log-performance?" +"(let-values()" +"(start-performance-region" +" 'expand" +" 'module-begin))" +"(void))" +"(begin0" "(let-values()" "(let-values(((mb424_0)" " mb_0)" @@ -72143,14 +72909,18 @@ static const char *startup_source = " the-struct_0)))" "(raise-argument-error" " 'struct-copy" -" \"expand-context/outer?\"" +" \"expand-context/outer?\"" " the-struct_0))))))" "(expand9.1" " #f" " #f" " #f" " mb424_0" -" temp425_0)))))" +" temp425_0)))" +"(if log-performance?" +"(let-values()" +"(end-performance-region))" +"(void))))))" "(let-values(((requires_0" " provides_0)" "(extract-requires-and-provides" @@ -72366,13 +73136,22 @@ static const char *startup_source = "(let-values()(car bodys_0))" "(let-values()" "(let-values(((partly-expanded-body_0)" +"(begin" +"(if log-performance?" +"(let-values()" +"(start-performance-region 'expand 'module-begin))" +"(void))" +"(begin0" "(let-values()" "(let-values(((temp437_0)" "(add-enclosing-name-property" "(car bodys_0)" " module-name-sym_0))" "((temp438_0)(make-mb-ctx_0)))" -"(expand9.1 #f #f #f temp437_0 temp438_0)))))" +"(expand9.1 #f #f #f temp437_0 temp438_0)))" +"(if log-performance?" +"(let-values()(end-performance-region))" +"(void))))))" "(if(eq?" " '#%module-begin" "(core-form-sym" @@ -72457,11 +73236,21 @@ static const char *startup_source = "(void))" "(values))))" "(let-values(((partly-expanded-mb_0)" +"(begin" +"(if log-performance?" +"(let-values()(start-performance-region 'expand 'module-begin))" +"(void))" +"(begin0" "(let-values()" "(let-values(((temp454_0)" -"(add-enclosing-name-property mb_0 module-name-sym_0))" +"(add-enclosing-name-property" +" mb_0" +" module-name-sym_0))" "((mb-ctx455_0) mb-ctx_0))" -"(expand9.1 #f #f #f temp454_0 mb-ctx455_0)))))" +"(expand9.1 #f #f #f temp454_0 mb-ctx455_0)))" +"(if log-performance?" +"(let-values()(end-performance-region))" +"(void))))))" "(begin" "(if(eq?" " '#%module-begin" @@ -72488,6 +73277,9 @@ static const char *startup_source = " enclosing-mod_0)" "(begin" "(lambda(s_0)" +"(begin" +"(if log-performance?(let-values()(start-performance-region 'expand 'module 'scopes))(void))" +"(begin0" "(let-values()" "(let-values(((s-without-enclosing_0)" "(if keep-enclosing-scope-at-phase_0" @@ -72519,7 +73311,8 @@ static const char *startup_source = " s-with-suitable-enclosing456_0" " temp457_0" " self458_0" -" temp459_0))))))))))" +" temp459_0))))))" +"(if log-performance?(let-values()(end-performance-region))(void))))))))" "(define-values" "(partially-expand-bodys79.1)" "(lambda(all-scopes-stx55_0" @@ -72627,6 +73420,14 @@ static const char *startup_source = "(void)))" "(values))))" "(let-values(((exp-body_0)" +"(begin" +"(if log-performance?" +"(let-values()" +"(start-performance-region" +" 'expand" +" 'form-in-module/1))" +"(void))" +"(begin0" "(let-values()" "(let-values(((temp463_0)" "(car bodys_1))" @@ -72637,7 +73438,11 @@ static const char *startup_source = " #f" " #f" " temp463_0" -" partial-body-ctx464_0)))))" +" partial-body-ctx464_0)))" +"(if log-performance?" +"(let-values()" +"(end-performance-region))" +"(void))))))" "(let-values(((disarmed-exp-body_0)" "(syntax-disarm$1 exp-body_0)))" "(let-values(((lifted-defns_0)" @@ -74600,6 +75405,14 @@ static const char *startup_source = " body_0)" "(values))))" "(let-values(((exp-rhs_0)" +"(begin" +"(if log-performance?" +"(let-values()" +"(start-performance-region" +" 'expand" +" 'form-in-module/2))" +"(void))" +"(begin0" "(let-values()" "(let-values(((temp587_0)" "(semi-parsed-define-values-rhs" @@ -74611,7 +75424,11 @@ static const char *startup_source = " #f" " #f" " temp587_0" -" rhs-ctx588_0)))))" +" rhs-ctx588_0)))" +"(if log-performance?" +"(let-values()" +"(end-performance-region))" +"(void))))))" "(let-values((()" "(begin" "(log-defn-exit" @@ -74668,6 +75485,14 @@ static const char *startup_source = "(equal? tmp_0 'module*)))" "(let-values() body_0)" "(let-values()" +"(begin" +"(if log-performance?" +"(let-values()" +"(start-performance-region" +" 'expand" +" 'form-in-module/2))" +"(void))" +"(begin0" "(let-values()" "(let-values(((exp-body_0)" "(let-values(((body593_0)" @@ -74696,7 +75521,11 @@ static const char *startup_source = " #f" " #f" " exp-body595_0" -" temp596_0)))))))))))))))" +" temp596_0))))))" +"(if log-performance?" +"(let-values()" +"(end-performance-region))" +"(void)))))))))))))" "(let-values(((lifted-defns_0)" "(get-and-clear-lifts!" "(expand-context-lifts body-ctx_0))))" @@ -74940,6 +75769,9 @@ static const char *startup_source = "(let-values(((self_0) self104_0))" "(let-values(((ctx_0) ctx105_0))" "(let-values()" +"(begin" +"(if log-performance?(let-values()(start-performance-region 'expand 'provide))(void))" +"(begin0" "(let-values()" "((letrec-values(((loop_0)" "(lambda(bodys_0 phase_1)" @@ -74949,12 +75781,14 @@ static const char *startup_source = "(let-values() null)" "(if(let-values(((or-part_0)(parsed?(car bodys_0))))" "(if or-part_0 or-part_0(expanded+parsed?(car bodys_0))))" -"(let-values()(cons(car bodys_0)(loop_0(cdr bodys_0) phase_1)))" +"(let-values()" +"(cons(car bodys_0)(loop_0(cdr bodys_0) phase_1)))" "(if(semi-parsed-begin-for-syntax?(car bodys_0))" "(let-values()" "(let-values(((nested-bodys_0)" "(loop_0" -"(semi-parsed-begin-for-syntax-body(car bodys_0))" +"(semi-parsed-begin-for-syntax-body" +"(car bodys_0))" "(add1 phase_1))))" "(cons" "(let-values(((the-struct_0)(car bodys_0)))" @@ -74965,12 +75799,14 @@ static const char *startup_source = " body607_0))" "(raise-argument-error" " 'struct-copy" -" \"semi-parsed-begin-for-syntax?\"" +" \"semi-parsed-begin-for-syntax?\"" " the-struct_0)))" "(loop_0(cdr bodys_0) phase_1))))" "(let-values()" -"(let-values(((disarmed-body_0)(syntax-disarm$1(car bodys_0))))" -"(let-values(((tmp_0)(core-form-sym disarmed-body_0 phase_1)))" +"(let-values(((disarmed-body_0)" +"(syntax-disarm$1(car bodys_0))))" +"(let-values(((tmp_0)" +"(core-form-sym disarmed-body_0 phase_1)))" "(if(equal? tmp_0 '#%provide)" "(let-values()" "(let-values((()" @@ -75026,7 +75862,7 @@ static const char *startup_source = "(let-values()" "(raise-syntax-error$1" " #f" -" \"bad syntax\"" +" \"bad syntax\"" " orig-s_0))" "(let-values()" " flat-s_0)))))))" @@ -75035,7 +75871,7 @@ static const char *startup_source = " spec611_0))" "(raise-syntax-error$1" " #f" -" \"bad syntax\"" +" \"bad syntax\"" " orig-s_0)))))" "(values" " #t" @@ -75049,7 +75885,8 @@ static const char *startup_source = " self_0" " phase_1" "(let-values(((v_0) ctx_0))" -"(let-values(((the-struct_0) v_0))" +"(let-values(((the-struct_0)" +" v_0))" "(if(expand-context/outer?" " the-struct_0)" "(let-values(((context612_0)" @@ -75121,7 +75958,7 @@ static const char *startup_source = " the-struct_1)))" "(raise-argument-error" " 'struct-copy" -" \"expand-context/inner?\"" +" \"expand-context/inner?\"" " the-struct_1)))))" "(expand-context/outer1.1" " inner613_0" @@ -75154,7 +75991,7 @@ static const char *startup_source = " the-struct_0)))" "(raise-argument-error" " 'struct-copy" -" \"expand-context/outer?\"" +" \"expand-context/outer?\"" " the-struct_0)))))))" "(if(expand-context-to-parsed? ctx_0)" "(let-values()(loop_0(cdr bodys_0) phase_1))" @@ -75193,7 +76030,8 @@ static const char *startup_source = "(loop_0(cdr bodys_0) phase_1))))))))))))))" " loop_0)" " expression-expanded-bodys_0" -" phase_0)))))))))))))" +" phase_0))" +"(if log-performance?(let-values()(end-performance-region))(void)))))))))))))))" "(define-values" "(declare-module-for-expansion137.1)" "(lambda(ctx123_0"