From bff31f076873f1183f45ec1e9c7f5291c00e6b78 Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Wed, 28 Apr 2021 08:04:48 -0600 Subject: [PATCH] expander: allow `syntax-local-lift-require` during `#%module-begin` expansion Making `syntax-local-lift-require` during `#%module-begin` expansion provides a solution to a long-standing problem with composing languages via `#%module-begin`, where the bindings of some lanuage should be made available for expanding the module body by `#%module-begin` expansion (i.e., the language is *not* the initial import). If the language does not support `require`, then there was no way to expand and expose the language import dependency. Closes #1352 --- pkgs/racket-test-core/tests/racket/macro.rktl | 4 +- .../racket-test-core/tests/racket/module.rktl | 55 + racket/src/bc/src/startup.inc | 1409 +++++------ racket/src/cs/schemified/expander.scm | 2085 +++++++++-------- racket/src/expander/expand/lift-context.rkt | 8 +- racket/src/expander/expand/module.rkt | 16 +- 6 files changed, 1856 insertions(+), 1721 deletions(-) diff --git a/pkgs/racket-test-core/tests/racket/macro.rktl b/pkgs/racket-test-core/tests/racket/macro.rktl index 9e1fd292d3..fc7bf92926 100644 --- a/pkgs/racket-test-core/tests/racket/macro.rktl +++ b/pkgs/racket-test-core/tests/racket/macro.rktl @@ -1075,9 +1075,7 @@ (for ([lift-attempt+rx:expected-error (in-list - (list (cons '(syntax-local-lift-require 'racket #'body) - #rx"could not find target context") - (cons '(syntax-local-lift-expression #'body) + (list (cons '(syntax-local-lift-expression #'body) #rx"no lift target") (cons '(syntax-local-lift-module #'(module m racket/base)) #rx"not currently transforming within a module declaration or top level") diff --git a/pkgs/racket-test-core/tests/racket/module.rktl b/pkgs/racket-test-core/tests/racket/module.rktl index f9bd7acbce..50c2f25609 100644 --- a/pkgs/racket-test-core/tests/racket/module.rktl +++ b/pkgs/racket-test-core/tests/racket/module.rktl @@ -2703,6 +2703,61 @@ case of module-leve bindings; it doesn't cover local bindings. (dynamic-require '(submod 'm-use main) #f)) +;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Check that syntax-local-lift-require works in `#%module-begin` expansion + +(module adds-racket-promise-but-without-reachable-bindings racket/base + (require (for-syntax racket/base)) + + (provide (except-out (all-from-out racket/base) + #%module-begin) + (rename-out [module-begin #%module-begin])) + + (define-syntax (module-begin stx) + (syntax-case stx () + [(_ . body) + (syntax-local-lift-require 'racket/promise #'body) + #'(#%module-begin . body)]))) + +(test '(module m 'adds-racket-promise-but-without-reachable-bindings + (#%module-begin + (#%require racket/promise) + (module configure-runtime '#%kernel + (#%module-begin + (#%require racket/runtime-config) + (#%app configure '#f))))) + syntax->datum + (expand '(module m 'adds-racket-promise-but-without-reachable-bindings))) + +(err/rt-test/once (expand '(module m 'adds-racket-promise-but-without-reachable-bindings + force)) + exn:fail:syntax?) + +(module adds-racket-promise-with-reachable-bindings racket/base + (require (for-syntax racket/base)) + + (provide (except-out (all-from-out racket/base) + #%module-begin) + (rename-out [module-begin #%module-begin])) + + (define-syntax (module-begin stx) + (syntax-case stx () + [(_ . body) + (with-syntax ([body (syntax-local-lift-require 'racket/promise #'body)]) + #'(#%module-begin . body))]))) + +(test '(module m 'adds-racket-promise-with-reachable-bindings + (#%module-begin + (#%require racket/promise) + (module configure-runtime '#%kernel + (#%module-begin + (#%require racket/runtime-config) + (#%app configure '#f))) + (#%app call-with-values (lambda () force) print-values))) + syntax->datum + (expand '(module m 'adds-racket-promise-with-reachable-bindings + force))) + ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Make sure that a module can be attached without a recorded namespace syntax context diff --git a/racket/src/bc/src/startup.inc b/racket/src/bc/src/startup.inc index dc998f36fc..dc7ebd35ab 100644 --- a/racket/src/bc/src/startup.inc +++ b/racket/src/bc/src/startup.inc @@ -43732,21 +43732,21 @@ static const char *startup_source = "(cons" "(let-values()" "(let-values(((key_0)" -"(let-values(((id26_0)" +"(let-values(((id29_0)" " id_0)" -"((phase27_0)" +"((phase30_0)" " phase_0)" -"((counter28_0)" +"((counter31_0)" " counter_0)" -"((local-sym29_0)" +"((local-sym32_0)" " local-sym_0))" "(add-local-binding!.1" " #f" " #f" -" local-sym29_0" -" id26_0" -" phase27_0" -" counter28_0))))" +" local-sym32_0" +" id29_0" +" phase30_0" +" counter31_0))))" "(begin" "(set-box!" " lift-env_0" @@ -44025,7 +44025,22 @@ static const char *startup_source = "(make-struct-field-accessor -ref_0 2 'requires))))" "(define-values" "(make-require-lift-context)" -"(lambda(wrt-phase_0 do-require_0)(begin(require-lift-context16.1 do-require_0 wrt-phase_0(box null)))))" +"(let-values(((make-require-lift-context_0)" +"(lambda(wrt-phase18_0 do-require19_0 initial-lifts17_0)" +"(begin" +" 'make-require-lift-context" +"(let-values(((wrt-phase_0) wrt-phase18_0))" +"(let-values(((do-require_0) do-require19_0))" +"(let-values(((initial-lifts_0) initial-lifts17_0))" +"(let-values()" +"(require-lift-context16.1 do-require_0 wrt-phase_0(box initial-lifts_0))))))))))" +"(case-lambda" +"((wrt-phase_0 do-require_0)(begin(make-require-lift-context_0 wrt-phase_0 do-require_0 null)))" +"((wrt-phase_0 do-require_0 initial-lifts17_0)" +"(make-require-lift-context_0 wrt-phase_0 do-require_0 initial-lifts17_0)))))" +"(define-values" +"(get-require-lifts)" +"(lambda(require-lifts_0)(begin(unbox(require-lift-context-requires require-lifts_0)))))" "(define-values" "(get-and-clear-require-lifts!)" "(lambda(require-lifts_0)(begin(box-clear!(require-lift-context-requires require-lifts_0)))))" @@ -44038,7 +44053,7 @@ static const char *startup_source = "(box-cons!(require-lift-context-requires require-lifts_0) s_0)))))" "(define-values" "(struct:to-module-lift-context" -" to-module-lift-context17.1" +" to-module-lift-context20.1" " to-module-lift-context?" " to-module-lift-context-wrt-phase" " to-module-lift-context-provides" @@ -44069,13 +44084,13 @@ static const char *startup_source = "(make-struct-field-accessor -ref_0 3 'ends))))" "(define-values" "(make-to-module-lift-context.1)" -"(lambda(end-as-expressions?19_0 shared-module-ends18_0 phase22_0)" +"(lambda(end-as-expressions?22_0 shared-module-ends21_0 phase25_0)" "(begin" " 'make-to-module-lift-context" -"(let-values(((phase_0) phase22_0))" -"(let-values(((ends_0) shared-module-ends18_0))" -"(let-values(((end-as-expressions?_0) end-as-expressions?19_0))" -"(let-values()(to-module-lift-context17.1 phase_0(box null) end-as-expressions?_0 ends_0))))))))" +"(let-values(((phase_0) phase25_0))" +"(let-values(((ends_0) shared-module-ends21_0))" +"(let-values(((end-as-expressions?_0) end-as-expressions?22_0))" +"(let-values()(to-module-lift-context20.1 phase_0(box null) end-as-expressions?_0 ends_0))))))))" "(define-values(make-shared-module-ends)(lambda()(begin(box null))))" "(define-values" "(get-and-clear-end-lifts!)" @@ -79549,11 +79564,16 @@ static const char *startup_source = "(make-hasheq)))" "(let-values(((declared-submodule-names_0)" "(make-hasheq)))" +"(let-values(((initial-lifted-requires_0)" +"(get-require-lifts" +"(expand-context-require-lifts" +" ctx_1))))" "(let-values(((expression-expanded-bodys_0)" "((letrec-values(((pass-1-and-2-loop_0)" "(lambda(bodys_2" " phase_1" -" keep-stops?_0)" +" keep-stops?_0" +" initial-lifted-requires_1)" "(begin" " 'pass-1-and-2-loop" "(let-values(((def-ctx-scopes_0)" @@ -79624,7 +79644,8 @@ static const char *startup_source = " declared-submodule-names314_0" " m-ns311_0" " self312_0" -" requires+provides313_0))))" +" requires+provides313_0))" +" initial-lifted-requires_1))" "((to-module-lifts309_0)" "(let-values(((phase315_0)" " phase_1)" @@ -79688,7 +79709,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" " inner300_0" @@ -79719,7 +79740,7 @@ static const char *startup_source = " the-struct_0)))" "(raise-argument-error" " 'struct-copy" -" \"expand-context/outer?\"" +" \"expand-context/outer?\"" " the-struct_0))))))" "(let-values(((partially-expanded-bodys_0)" "(let-values(((bodys318_0)" @@ -79878,7 +79899,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" " inner336_0" @@ -79910,7 +79931,7 @@ static const char *startup_source = " the-struct_0)))" "(raise-argument-error" " 'struct-copy" -" \"expand-context/outer?\"" +" \"expand-context/outer?\"" " the-struct_0))))))" "(let-values(((partially-expanded-bodys289_0)" " partially-expanded-bodys_0)" @@ -79941,7 +79962,8 @@ static const char *startup_source = " bodys_1" " phase_0" "(stop-at-module*?" -" ctx_1))))" +" ctx_1)" +" initial-lifted-requires_0)))" "(let-values((()" "(begin" "(let-values(((obs_0)" @@ -80015,7 +80037,7 @@ static const char *startup_source = "(let-values()" "(raise-syntax-error$1" " #f" -" \"cannot be cross-phase persistent due to required modules\"" +" \"cannot be cross-phase persistent due to required modules\"" " rebuild-s_0" "(hash-ref" " declared-keywords_0" @@ -80125,7 +80147,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" " inner353_0" @@ -80157,7 +80179,7 @@ static const char *startup_source = " the-struct_0)))" "(raise-argument-error" " 'struct-copy" -" \"expand-context/outer?\"" +" \"expand-context/outer?\"" " the-struct_0))))))" "(let-values(((declare-enclosing-module_0)" "(promise1.1" @@ -80271,7 +80293,7 @@ static const char *startup_source = "(parsed-only" " fully-expanded-bodys_0))))" "(let-values()" -" mb-result-s_0))))))))))))))))))))))))))))))))))" +" mb-result-s_0)))))))))))))))))))))))))))))))))))" "(let-values(((mb-ctx_0)" "(let-values(((v_0)" " ctx_0))" @@ -80298,7 +80320,21 @@ static const char *startup_source = "((to-module-lifts386_0)" " #f)" "((require-lifts387_0)" -" #f))" +"(make-require-lift-context" +" phase_0" +"(let-values(((m-ns388_0)" +" m-ns_0)" +"((self389_0)" +" self_0)" +"((requires+provides390_0)" +" requires+provides_0)" +"((temp391_0)" +"(make-hasheq)))" +"(make-parse-lifted-require.1" +" temp391_0" +" m-ns388_0" +" self389_0" +" requires+provides390_0)))))" "(expand-context/inner2.1" "(root-expand-context/inner-self-mpi" " the-struct_1)" @@ -80398,31 +80434,31 @@ static const char *startup_source = "(box" " null)))" "(let-values(((mb_0)" -"(let-values(((bodys388_0)" +"(let-values(((bodys392_0)" " bodys_0)" -"((module-name-sym389_0)" +"((module-name-sym393_0)" " module-name-sym_0)" -"((mb-scopes-s390_0)" +"((mb-scopes-s394_0)" " mb-scopes-s_0)" -"((m-ns391_0)" +"((m-ns395_0)" " m-ns_0)" -"((mb-ctx392_0)" +"((mb-ctx396_0)" " mb-ctx_0)" -"((mb-def-ctx-scopes393_0)" +"((mb-def-ctx-scopes397_0)" " mb-def-ctx-scopes_0)" -"((phase394_0)" +"((phase398_0)" " phase_0)" -"((s395_0)" +"((s399_0)" " s_0))" "(ensure-module-begin.1" -" mb-ctx392_0" -" mb-def-ctx-scopes393_0" -" m-ns391_0" -" module-name-sym389_0" -" phase394_0" -" s395_0" -" mb-scopes-s390_0" -" bodys388_0))))" +" mb-ctx396_0" +" mb-def-ctx-scopes397_0" +" m-ns395_0" +" module-name-sym393_0" +" phase398_0" +" s399_0" +" mb-scopes-s394_0" +" bodys392_0))))" "(let-values((()" "(begin" "(let-values(((obs_0)" @@ -80446,9 +80482,9 @@ static const char *startup_source = "(void))" "(begin0" "(let-values()" -"(let-values(((mb396_0)" +"(let-values(((mb400_0)" " mb_0)" -"((temp397_0)" +"((temp401_0)" "(let-values(((v_0)" "(accumulate-def-ctx-scopes" " mb-ctx_0" @@ -80457,13 +80493,13 @@ static const char *startup_source = " v_0))" "(if(expand-context/outer?" " the-struct_0)" -"(let-values(((def-ctx-scopes398_0)" +"(let-values(((def-ctx-scopes402_0)" " #f)" -"((inner399_0)" +"((inner403_0)" "(root-expand-context/outer-inner" " v_0)))" "(expand-context/outer1.1" -" inner399_0" +" inner403_0" "(root-expand-context/outer-post-expansion" " the-struct_0)" "(root-expand-context/outer-use-site-scopes" @@ -80476,7 +80512,7 @@ static const char *startup_source = " the-struct_0)" "(expand-context/outer-scopes" " the-struct_0)" -" def-ctx-scopes398_0" +" def-ctx-scopes402_0" "(expand-context/outer-binding-layer" " the-struct_0)" "(expand-context/outer-reference-records" @@ -80498,8 +80534,8 @@ static const char *startup_source = "(expand.1" " #f" " #f" -" mb396_0" -" temp397_0)))" +" mb400_0" +" temp401_0)))" "(if log-performance?" "(let-values()" "(end-performance-region))" @@ -80593,9 +80629,9 @@ static const char *startup_source = " lst_0)))" "(void)" "(let-values(((result-s_0)" -"(let-values(((rebuild-s400_0)" +"(let-values(((rebuild-s404_0)" " rebuild-s_0)" -"((temp401_0)" +"((temp405_0)" "(list" " module200_0" " id:module-name201_0" @@ -80604,20 +80640,20 @@ static const char *startup_source = " expanded-mb_0))))" "(rebuild.1" " #t" -" rebuild-s400_0" -" temp401_0))))" +" rebuild-s404_0" +" temp405_0))))" "(let-values(((result-s_1)" -"(let-values(((result-s402_0)" +"(let-values(((result-s406_0)" " result-s_0)" -"((self403_0)" +"((self407_0)" " self_0)" -"((generic-self404_0)" +"((generic-self408_0)" " generic-self_0))" "(syntax-module-path-index-shift.1" " #f" -" result-s402_0" -" self403_0" -" generic-self404_0" +" result-s406_0" +" self407_0" +" generic-self408_0" " #f))))" "(let-values(((result-s_2)" "(attach-root-expand-context-properties" @@ -80679,22 +80715,22 @@ static const char *startup_source = "(let-values(((v_0) ctx_0))" "(let-values(((the-struct_0) v_0))" "(if(expand-context/outer? the-struct_0)" -"(let-values(((context405_0) 'module-begin)" -"((only-immediate?406_0) #t)" -"((def-ctx-scopes407_0) def-ctx-scopes_0)" -"((inner408_0)(root-expand-context/outer-inner v_0)))" +"(let-values(((context409_0) 'module-begin)" +"((only-immediate?410_0) #t)" +"((def-ctx-scopes411_0) def-ctx-scopes_0)" +"((inner412_0)(root-expand-context/outer-inner v_0)))" "(expand-context/outer1.1" -" inner408_0" +" inner412_0" "(root-expand-context/outer-post-expansion the-struct_0)" "(root-expand-context/outer-use-site-scopes the-struct_0)" "(root-expand-context/outer-frame-id the-struct_0)" -" context405_0" +" context409_0" "(expand-context/outer-env the-struct_0)" "(expand-context/outer-scopes the-struct_0)" -" def-ctx-scopes407_0" +" def-ctx-scopes411_0" "(expand-context/outer-binding-layer the-struct_0)" "(expand-context/outer-reference-records the-struct_0)" -" only-immediate?406_0" +" only-immediate?410_0" "(expand-context/outer-need-eventually-defined the-struct_0)" "(expand-context/outer-current-introduction-scopes the-struct_0)" "(expand-context/outer-current-use-scopes the-struct_0)" @@ -80740,10 +80776,10 @@ static const char *startup_source = "(void))" "(begin0" "(let-values()" -"(let-values(((named-body-s409_0)" +"(let-values(((named-body-s413_0)" " named-body-s_0)" -"((temp410_0)(make-mb-ctx_0)))" -"(expand.1 #f #f named-body-s409_0 temp410_0)))" +"((temp414_0)(make-mb-ctx_0)))" +"(expand.1 #f #f named-body-s413_0 temp414_0)))" "(if log-performance?" "(let-values()(end-performance-region))" "(void))))))" @@ -80754,36 +80790,36 @@ static const char *startup_source = " phase_0))" "(let-values() partly-expanded-body_0)" "(let-values()" -"(let-values(((temp411_0)(list partly-expanded-body_0))" -"((s412_0) s_0)" -"((scopes-s413_0) scopes-s_0)" -"((phase414_0) phase_0)" -"((module-name-sym415_0) module-name-sym_0)" -"((temp416_0)(make-mb-ctx_0))" -"((temp417_0) #f))" +"(let-values(((temp415_0)(list partly-expanded-body_0))" +"((s416_0) s_0)" +"((scopes-s417_0) scopes-s_0)" +"((phase418_0) phase_0)" +"((module-name-sym419_0) module-name-sym_0)" +"((temp420_0)(make-mb-ctx_0))" +"((temp421_0) #f))" "(add-module-begin.1" -" temp417_0" -" temp411_0" -" s412_0" -" scopes-s413_0" -" phase414_0" -" module-name-sym415_0" -" temp416_0))))))))))" +" temp421_0" +" temp415_0" +" s416_0" +" scopes-s417_0" +" phase418_0" +" module-name-sym419_0" +" temp420_0))))))))))" "(let-values()" -"(let-values(((bodys418_0) bodys_0)" -"((s419_0) s_0)" -"((scopes-s420_0) scopes-s_0)" -"((phase421_0) phase_0)" -"((module-name-sym422_0) module-name-sym_0)" -"((temp423_0)(make-mb-ctx_0)))" +"(let-values(((bodys422_0) bodys_0)" +"((s423_0) s_0)" +"((scopes-s424_0) scopes-s_0)" +"((phase425_0) phase_0)" +"((module-name-sym426_0) module-name-sym_0)" +"((temp427_0)(make-mb-ctx_0)))" "(add-module-begin.1" " #t" -" bodys418_0" -" s419_0" -" scopes-s420_0" -" phase421_0" -" module-name-sym422_0" -" temp423_0))))))" +" bodys422_0" +" s423_0" +" scopes-s424_0" +" phase425_0" +" module-name-sym426_0" +" temp427_0))))))" "(let-values(((named-mb_0)(add-enclosing-name-property mb_0 module-name-sym_0)))" "(begin" "(let-values(((obs_0)(expand-context-observer ctx_0)))" @@ -80810,8 +80846,8 @@ static const char *startup_source = "(let-values(((mb-id_0)(datum->syntax$1 disarmed-scopes-s_0 '#%module-begin)))" "(let-values((()" "(begin" -"(if(let-values(((mb-id424_0) mb-id_0)((phase425_0) phase_0))" -"(resolve.1 #f #f null #f mb-id424_0 phase425_0))" +"(if(let-values(((mb-id428_0) mb-id_0)((phase429_0) phase_0))" +"(resolve.1 #f #f null #f mb-id428_0 phase429_0))" "(void)" "(let-values()" "(raise-syntax-error$1" @@ -80849,9 +80885,9 @@ static const char *startup_source = "(void))" "(begin0" "(let-values()" -"(let-values(((named-mb426_0) named-mb_0)" -"((mb-ctx427_0) mb-ctx_0))" -"(expand.1 #f #f named-mb426_0 mb-ctx427_0)))" +"(let-values(((named-mb430_0) named-mb_0)" +"((mb-ctx431_0) mb-ctx_0))" +"(expand.1 #f #f named-mb430_0 mb-ctx431_0)))" "(if log-performance?" "(let-values()(end-performance-region))" "(void))))))" @@ -80896,26 +80932,26 @@ static const char *startup_source = "(let-values(((s-with-suitable-enclosing_0)" "(if keep-enclosing-scope-at-phase_0" "(let-values()" -"(let-values(((s-with-edges432_0) s-with-edges_0)" -"((enclosing-self433_0) enclosing-self_0)" -"((enclosing-mod434_0) enclosing-mod_0))" +"(let-values(((s-with-edges436_0) s-with-edges_0)" +"((enclosing-self437_0) enclosing-self_0)" +"((enclosing-mod438_0) enclosing-mod_0))" "(syntax-module-path-index-shift.1" " #f" -" s-with-edges432_0" -" enclosing-self433_0" -" enclosing-mod434_0" +" s-with-edges436_0" +" enclosing-self437_0" +" enclosing-mod438_0" " #f)))" "(let-values() s-with-edges_0))))" -"(let-values(((s-with-suitable-enclosing428_0) s-with-suitable-enclosing_0)" -"((temp429_0)(make-generic-self-module-path-index self_0))" -"((self430_0) self_0)" -"((temp431_0)(current-code-inspector)))" +"(let-values(((s-with-suitable-enclosing432_0) s-with-suitable-enclosing_0)" +"((temp433_0)(make-generic-self-module-path-index self_0))" +"((self434_0) self_0)" +"((temp435_0)(current-code-inspector)))" "(syntax-module-path-index-shift.1" " #f" -" s-with-suitable-enclosing428_0" -" temp429_0" -" self430_0" -" temp431_0))))))" +" s-with-suitable-enclosing432_0" +" temp433_0" +" self434_0" +" temp435_0))))))" "(if log-performance?(let-values()(end-performance-region))(void))))))))" "(define-values" "(partially-expand-bodys.1)" @@ -81020,15 +81056,15 @@ static const char *startup_source = "(void))" "(begin0" "(let-values()" -"(let-values(((temp435_0)" +"(let-values(((temp439_0)" "(car bodys_1))" -"((partial-body-ctx436_0)" +"((partial-body-ctx440_0)" " partial-body-ctx_0))" "(expand.1" " #f" " #f" -" temp435_0" -" partial-body-ctx436_0)))" +" temp439_0" +" partial-body-ctx440_0)))" "(if log-performance?" "(let-values()" "(end-performance-region))" @@ -81121,14 +81157,14 @@ static const char *startup_source = "(void)))" "(values))))" "(let-values(((ok?_0" -" begin437_0" -" e438_0)" +" begin441_0" +" e442_0)" "(let-values(((s_0)" " disarmed-exp-body_0))" "(let-values(((orig-s_0)" " s_0))" -"(let-values(((begin437_0" -" e438_0)" +"(let-values(((begin441_0" +" e442_0)" "(let-values(((s_1)" "(if(syntax?$1" " s_0)" @@ -81137,12 +81173,12 @@ static const char *startup_source = " s_0)))" "(if(pair?" " s_1)" -"(let-values(((begin439_0)" +"(let-values(((begin443_0)" "(let-values(((s_2)" "(car" " s_1)))" " s_2))" -"((e440_0)" +"((e444_0)" "(let-values(((s_2)" "(cdr" " s_1)))" @@ -81165,16 +81201,16 @@ static const char *startup_source = "(let-values()" " flat-s_0)))))))" "(values" -" begin439_0" -" e440_0))" +" begin443_0" +" e444_0))" "(raise-syntax-error$1" " #f" " \"bad syntax\"" " orig-s_0)))))" "(values" " #t" -" begin437_0" -" e438_0))))))" +" begin441_0" +" e442_0))))))" "(let-values(((track_0)" "(lambda(e_0)" "(begin" @@ -81186,7 +81222,7 @@ static const char *startup_source = "(append" "(map2" " track_0" -" e438_0)" +" e442_0)" " rest-bodys_0)))" "(begin" "(let-values(((obs_0)" @@ -81222,14 +81258,14 @@ static const char *startup_source = "(void)))" "(values))))" "(let-values(((ok?_0" -" begin-for-syntax441_0" -" e442_0)" +" begin-for-syntax445_0" +" e446_0)" "(let-values(((s_0)" " disarmed-exp-body_0))" "(let-values(((orig-s_0)" " s_0))" -"(let-values(((begin-for-syntax441_0" -" e442_0)" +"(let-values(((begin-for-syntax445_0" +" e446_0)" "(let-values(((s_1)" "(if(syntax?$1" " s_0)" @@ -81238,12 +81274,12 @@ static const char *startup_source = " s_0)))" "(if(pair?" " s_1)" -"(let-values(((begin-for-syntax443_0)" +"(let-values(((begin-for-syntax447_0)" "(let-values(((s_2)" "(car" " s_1)))" " s_2))" -"((e444_0)" +"((e448_0)" "(let-values(((s_2)" "(cdr" " s_1)))" @@ -81266,16 +81302,16 @@ static const char *startup_source = "(let-values()" " flat-s_0)))))))" "(values" -" begin-for-syntax443_0" -" e444_0))" +" begin-for-syntax447_0" +" e448_0))" "(raise-syntax-error$1" " #f" " \"bad syntax\"" " orig-s_0)))))" "(values" " #t" -" begin-for-syntax441_0" -" e442_0))))))" +" begin-for-syntax445_0" +" e446_0))))))" "(let-values((()" "(begin" "(let-values(((obs_0)" @@ -81314,10 +81350,11 @@ static const char *startup_source = "(values))))" "(let-values(((nested-bodys_0)" "(pass-1-and-2-loop_0" -" e442_0" +" e446_0" "(add1" " phase_0)" -" #f)))" +" #f" +" null)))" "(begin" "(let-values(((obs_0)" "(expand-context-observer" @@ -81399,7 +81436,7 @@ static const char *startup_source = " null" " lst_0))))))" "(cons" -" begin-for-syntax441_0" +" begin-for-syntax445_0" " s-nested-bodys_0)))))" "(void)))" "(cons" @@ -81428,16 +81465,16 @@ static const char *startup_source = "(void)))" "(values))))" "(let-values(((ok?_0" -" define-values445_0" -" id446_0" -" rhs447_0)" +" define-values449_0" +" id450_0" +" rhs451_0)" "(let-values(((s_0)" " disarmed-exp-body_0))" "(let-values(((orig-s_0)" " s_0))" -"(let-values(((define-values445_0" -" id446_0" -" rhs447_0)" +"(let-values(((define-values449_0" +" id450_0" +" rhs451_0)" "(let-values(((s_1)" "(if(syntax?$1" " s_0)" @@ -81446,13 +81483,13 @@ static const char *startup_source = " s_0)))" "(if(pair?" " s_1)" -"(let-values(((define-values448_0)" +"(let-values(((define-values452_0)" "(let-values(((s_2)" "(car" " s_1)))" " s_2))" -"((id449_0" -" rhs450_0)" +"((id453_0" +" rhs454_0)" "(let-values(((s_2)" "(cdr" " s_1)))" @@ -81464,7 +81501,7 @@ static const char *startup_source = " s_2)))" "(if(pair?" " s_3)" -"(let-values(((id451_0)" +"(let-values(((id455_0)" "(let-values(((s_4)" "(car" " s_3)))" @@ -81513,7 +81550,7 @@ static const char *startup_source = " id_0))" "(let-values(((id_2)" "(let-values()" -"(let-values(((id464_0)" +"(let-values(((id468_0)" "(let-values()" "(if(let-values(((or-part_0)" "(if(syntax?$1" @@ -81533,7 +81570,7 @@ static const char *startup_source = " orig-s_0" " s_6)))))" "(cons" -" id464_0" +" id468_0" " id_1)))))" "(values" " id_2)))))" @@ -81549,7 +81586,7 @@ static const char *startup_source = " lst_0)))))" "(reverse$1" " id_0))))))))" -"((rhs452_0)" +"((rhs456_0)" "(let-values(((s_4)" "(cdr" " s_3)))" @@ -81561,7 +81598,7 @@ static const char *startup_source = " s_4)))" "(if(pair?" " s_5)" -"(let-values(((rhs453_0)" +"(let-values(((rhs457_0)" "(let-values(((s_6)" "(car" " s_5)))" @@ -81584,94 +81621,94 @@ static const char *startup_source = " \"bad syntax\"" " orig-s_0))))))" "(values" -" rhs453_0))" +" rhs457_0))" "(raise-syntax-error$1" " #f" " \"bad syntax\"" " orig-s_0))))))" "(values" -" id451_0" -" rhs452_0))" +" id455_0" +" rhs456_0))" "(raise-syntax-error$1" " #f" " \"bad syntax\"" " orig-s_0))))))" "(values" -" define-values448_0" -" id449_0" -" rhs450_0))" +" define-values452_0" +" id453_0" +" rhs454_0))" "(raise-syntax-error$1" " #f" " \"bad syntax\"" " orig-s_0)))))" "(values" " #t" -" define-values445_0" -" id446_0" -" rhs447_0))))))" +" define-values449_0" +" id450_0" +" rhs451_0))))))" "(let-values(((ids_0)" "(remove-use-site-scopes" -" id446_0" +" id450_0" " partial-body-ctx_0)))" "(let-values((()" "(begin" -"(let-values(((ids454_0)" +"(let-values(((ids458_0)" " ids_0)" -"((phase455_0)" +"((phase459_0)" " phase_0)" -"((exp-body456_0)" +"((exp-body460_0)" " exp-body_0))" "(check-no-duplicate-ids.1" " unsafe-undefined" -" ids454_0" -" phase455_0" -" exp-body456_0" +" ids458_0" +" phase459_0" +" exp-body460_0" " unsafe-undefined))" "(values))))" "(let-values((()" "(begin" -"(let-values(((ids457_0)" +"(let-values(((ids461_0)" " ids_0)" -"((phase458_0)" +"((phase462_0)" " phase_0)" -"((requires+provides459_0)" +"((requires+provides463_0)" " requires+provides_0)" -"((exp-body460_0)" +"((exp-body464_0)" " exp-body_0))" "(check-ids-unbound.1" -" exp-body460_0" -" ids457_0" -" phase458_0" -" requires+provides459_0))" +" exp-body464_0" +" ids461_0" +" phase462_0" +" requires+provides463_0))" "(values))))" "(let-values(((syms_0)" -"(let-values(((ids465_0)" +"(let-values(((ids469_0)" " ids_0)" -"((defined-syms466_0)" +"((defined-syms470_0)" " defined-syms_0)" -"((self467_0)" +"((self471_0)" " self_0)" -"((phase468_0)" +"((phase472_0)" " phase_0)" -"((all-scopes-stx469_0)" +"((all-scopes-stx473_0)" " all-scopes-stx_0)" -"((frame-id470_0)" +"((frame-id474_0)" " frame-id_0)" -"((requires+provides471_0)" +"((requires+provides475_0)" " requires+provides_0)" -"((exp-body472_0)" +"((exp-body476_0)" " exp-body_0))" "(select-defined-syms-and-bind!.1" " #f" -" frame-id470_0" -" exp-body472_0" -" requires+provides471_0" +" frame-id474_0" +" exp-body476_0" +" requires+provides475_0" " #f" -" ids465_0" -" defined-syms466_0" -" self467_0" -" phase468_0" -" all-scopes-stx469_0))))" +" ids469_0" +" defined-syms470_0" +" self471_0" +" phase472_0" +" all-scopes-stx473_0))))" "(begin" "(let-values(((lst_0)" " syms_0))" @@ -81715,17 +81752,17 @@ static const char *startup_source = " for-loop_0)" " lst_0)))" "(void)" -"(let-values(((requires+provides461_0)" +"(let-values(((requires+provides465_0)" " requires+provides_0)" -"((syms462_0)" +"((syms466_0)" " syms_0)" -"((phase463_0)" +"((phase467_0)" " phase_0))" "(add-defined-syms!.1" " #f" -" requires+provides461_0" -" syms462_0" -" phase463_0))" +" requires+provides465_0" +" syms466_0" +" phase467_0))" "(let-values(((obs_0)" "(expand-context-observer" " partial-body-ctx_0)))" @@ -81736,16 +81773,16 @@ static const char *startup_source = " obs_0" " 'exit-case" "(list" -" define-values445_0" +" define-values449_0" " ids_0" -" rhs447_0))))" +" rhs451_0))))" "(void)))" "(cons" "(semi-parsed-define-values2.1" " exp-body_0" " syms_0" " ids_0" -" rhs447_0)" +" rhs451_0)" "(loop_0" " tail?_0" " rest-bodys_0))))))))))" @@ -81768,16 +81805,16 @@ static const char *startup_source = "(void)))" "(values))))" "(let-values(((ok?_0" -" define-syntaxes473_0" -" id474_0" -" rhs475_0)" +" define-syntaxes477_0" +" id478_0" +" rhs479_0)" "(let-values(((s_0)" " disarmed-exp-body_0))" "(let-values(((orig-s_0)" " s_0))" -"(let-values(((define-syntaxes473_0" -" id474_0" -" rhs475_0)" +"(let-values(((define-syntaxes477_0" +" id478_0" +" rhs479_0)" "(let-values(((s_1)" "(if(syntax?$1" " s_0)" @@ -81786,13 +81823,13 @@ static const char *startup_source = " s_0)))" "(if(pair?" " s_1)" -"(let-values(((define-syntaxes476_0)" +"(let-values(((define-syntaxes480_0)" "(let-values(((s_2)" "(car" " s_1)))" " s_2))" -"((id477_0" -" rhs478_0)" +"((id481_0" +" rhs482_0)" "(let-values(((s_2)" "(cdr" " s_1)))" @@ -81804,7 +81841,7 @@ static const char *startup_source = " s_2)))" "(if(pair?" " s_3)" -"(let-values(((id479_0)" +"(let-values(((id483_0)" "(let-values(((s_4)" "(car" " s_3)))" @@ -81853,7 +81890,7 @@ static const char *startup_source = " id_0))" "(let-values(((id_2)" "(let-values()" -"(let-values(((id493_0)" +"(let-values(((id497_0)" "(let-values()" "(if(let-values(((or-part_0)" "(if(syntax?$1" @@ -81873,7 +81910,7 @@ static const char *startup_source = " orig-s_0" " s_6)))))" "(cons" -" id493_0" +" id497_0" " id_1)))))" "(values" " id_2)))))" @@ -81889,7 +81926,7 @@ static const char *startup_source = " lst_0)))))" "(reverse$1" " id_0))))))))" -"((rhs480_0)" +"((rhs484_0)" "(let-values(((s_4)" "(cdr" " s_3)))" @@ -81901,7 +81938,7 @@ static const char *startup_source = " s_4)))" "(if(pair?" " s_5)" -"(let-values(((rhs481_0)" +"(let-values(((rhs485_0)" "(let-values(((s_6)" "(car" " s_5)))" @@ -81924,31 +81961,31 @@ static const char *startup_source = " \"bad syntax\"" " orig-s_0))))))" "(values" -" rhs481_0))" +" rhs485_0))" "(raise-syntax-error$1" " #f" " \"bad syntax\"" " orig-s_0))))))" "(values" -" id479_0" -" rhs480_0))" +" id483_0" +" rhs484_0))" "(raise-syntax-error$1" " #f" " \"bad syntax\"" " orig-s_0))))))" "(values" -" define-syntaxes476_0" -" id477_0" -" rhs478_0))" +" define-syntaxes480_0" +" id481_0" +" rhs482_0))" "(raise-syntax-error$1" " #f" " \"bad syntax\"" " orig-s_0)))))" "(values" " #t" -" define-syntaxes473_0" -" id474_0" -" rhs475_0))))))" +" define-syntaxes477_0" +" id478_0" +" rhs479_0))))))" "(let-values((()" "(begin" "(let-values(((obs_0)" @@ -81982,114 +82019,114 @@ static const char *startup_source = "(values))))" "(let-values(((ids_0)" "(remove-use-site-scopes" -" id474_0" +" id478_0" " partial-body-ctx_0)))" "(let-values((()" "(begin" -"(let-values(((ids482_0)" +"(let-values(((ids486_0)" " ids_0)" -"((phase483_0)" +"((phase487_0)" " phase_0)" -"((exp-body484_0)" +"((exp-body488_0)" " exp-body_0))" "(check-no-duplicate-ids.1" " unsafe-undefined" -" ids482_0" -" phase483_0" -" exp-body484_0" +" ids486_0" +" phase487_0" +" exp-body488_0" " unsafe-undefined))" "(values))))" "(let-values((()" "(begin" -"(let-values(((ids485_0)" +"(let-values(((ids489_0)" " ids_0)" -"((phase486_0)" +"((phase490_0)" " phase_0)" -"((requires+provides487_0)" +"((requires+provides491_0)" " requires+provides_0)" -"((exp-body488_0)" +"((exp-body492_0)" " exp-body_0))" "(check-ids-unbound.1" -" exp-body488_0" -" ids485_0" -" phase486_0" -" requires+provides487_0))" +" exp-body492_0" +" ids489_0" +" phase490_0" +" requires+provides491_0))" "(values))))" "(let-values(((syms_0)" -"(let-values(((ids494_0)" +"(let-values(((ids498_0)" " ids_0)" -"((defined-syms495_0)" +"((defined-syms499_0)" " defined-syms_0)" -"((self496_0)" +"((self500_0)" " self_0)" -"((phase497_0)" +"((phase501_0)" " phase_0)" -"((all-scopes-stx498_0)" +"((all-scopes-stx502_0)" " all-scopes-stx_0)" -"((frame-id499_0)" +"((frame-id503_0)" " frame-id_0)" -"((requires+provides500_0)" +"((requires+provides504_0)" " requires+provides_0)" -"((exp-body501_0)" +"((exp-body505_0)" " exp-body_0)" -"((temp502_0)" +"((temp506_0)" " #t))" "(select-defined-syms-and-bind!.1" -" temp502_0" -" frame-id499_0" -" exp-body501_0" -" requires+provides500_0" +" temp506_0" +" frame-id503_0" +" exp-body505_0" +" requires+provides504_0" " #f" -" ids494_0" -" defined-syms495_0" -" self496_0" -" phase497_0" -" all-scopes-stx498_0))))" +" ids498_0" +" defined-syms499_0" +" self500_0" +" phase501_0" +" all-scopes-stx502_0))))" "(let-values((()" "(begin" -"(let-values(((requires+provides489_0)" +"(let-values(((requires+provides493_0)" " requires+provides_0)" -"((syms490_0)" +"((syms494_0)" " syms_0)" -"((phase491_0)" +"((phase495_0)" " phase_0)" -"((temp492_0)" +"((temp496_0)" " #t))" "(add-defined-syms!.1" -" temp492_0" -" requires+provides489_0" -" syms490_0" -" phase491_0))" +" temp496_0" +" requires+provides493_0" +" syms494_0" +" phase495_0))" "(values))))" "(let-values(((exp-rhs_0" " parsed-rhs_0" " vals_0)" -"(let-values(((temp503_0)" +"(let-values(((temp507_0)" " 'define-syntaxes)" -"((temp504_0)" -" rhs475_0)" -"((ids505_0)" +"((temp508_0)" +" rhs479_0)" +"((ids509_0)" " ids_0)" -"((temp506_0)" +"((temp510_0)" "(let-values(((v_0)" " partial-body-ctx_0))" "(let-values(((the-struct_0)" " v_0))" "(if(expand-context/outer?" " the-struct_0)" -"(let-values(((need-eventually-defined508_0)" +"(let-values(((need-eventually-defined512_0)" " need-eventually-defined_0)" -"((inner509_0)" +"((inner513_0)" "(let-values(((the-struct_1)" "(root-expand-context/outer-inner" " v_0)))" "(if(expand-context/inner?" " the-struct_1)" -"(let-values(((lifts510_0)" +"(let-values(((lifts514_0)" " #f)" -"((module-lifts511_0)" +"((module-lifts515_0)" " #f)" -"((to-module-lifts512_0)" +"((to-module-lifts516_0)" " #f))" "(expand-context/inner2.1" "(root-expand-context/inner-self-mpi" @@ -82126,13 +82163,13 @@ static const char *startup_source = " the-struct_1)" "(expand-context/inner-declared-submodule-names" " the-struct_1)" -" lifts510_0" +" lifts514_0" "(expand-context/inner-lift-envs" " the-struct_1)" -" module-lifts511_0" +" module-lifts515_0" "(expand-context/inner-require-lifts" " the-struct_1)" -" to-module-lifts512_0" +" to-module-lifts516_0" "(expand-context/inner-requires+provides" " the-struct_1)" "(expand-context/inner-observer" @@ -82152,7 +82189,7 @@ static const char *startup_source = " \"expand-context/inner?\"" " the-struct_1)))))" "(expand-context/outer1.1" -" inner509_0" +" inner513_0" "(root-expand-context/outer-post-expansion" " the-struct_0)" "(root-expand-context/outer-use-site-scopes" @@ -82173,7 +82210,7 @@ static const char *startup_source = " the-struct_0)" "(expand-context/outer-only-immediate?" " the-struct_0)" -" need-eventually-defined508_0" +" need-eventually-defined512_0" "(expand-context/outer-current-introduction-scopes" " the-struct_0)" "(expand-context/outer-current-use-scopes" @@ -82184,14 +82221,14 @@ static const char *startup_source = " 'struct-copy" " \"expand-context/outer?\"" " the-struct_0)))))" -"((temp507_0)" +"((temp511_0)" " #f))" "(expand+eval-for-syntaxes-binding.1" +" temp511_0" " temp507_0" -" temp503_0" -" temp504_0" -" ids505_0" -" temp506_0))))" +" temp508_0" +" ids509_0" +" temp510_0))))" "(let-values((()" "(begin" "(let-values(((lst_0)" @@ -82296,7 +82333,7 @@ static const char *startup_source = " obs_0" " 'exit-case" "(list" -" define-syntaxes473_0" +" define-syntaxes477_0" " ids_0" " exp-rhs_0))))" "(void)))" @@ -82313,17 +82350,17 @@ static const char *startup_source = " partial-body-ctx_0)" " parsed-body_0" "(expanded+parsed1.1" -"(let-values(((exp-body513_0)" +"(let-values(((exp-body517_0)" " exp-body_0)" -"((temp514_0)" +"((temp518_0)" "(list" -" define-syntaxes473_0" +" define-syntaxes477_0" " ids_0" " exp-rhs_0)))" "(rebuild.1" " #t" -" exp-body513_0" -" temp514_0))" +" exp-body517_0" +" temp518_0))" " parsed-body_0))" "(loop_0" " tail?_0" @@ -82351,14 +82388,14 @@ static const char *startup_source = " disarmed-exp-body_0" " partial-body-ctx_0)))" "(let-values(((ok?_0" -" #%require515_0" -" req516_0)" +" #%require519_0" +" req520_0)" "(let-values(((s_0)" " ready-body_0))" "(let-values(((orig-s_0)" " s_0))" -"(let-values(((#%require515_0" -" req516_0)" +"(let-values(((#%require519_0" +" req520_0)" "(let-values(((s_1)" "(if(syntax?$1" " s_0)" @@ -82367,12 +82404,12 @@ static const char *startup_source = " s_0)))" "(if(pair?" " s_1)" -"(let-values(((#%require517_0)" +"(let-values(((#%require521_0)" "(let-values(((s_2)" "(car" " s_1)))" " s_2))" -"((req518_0)" +"((req522_0)" "(let-values(((s_2)" "(cdr" " s_1)))" @@ -82395,51 +82432,51 @@ static const char *startup_source = "(let-values()" " flat-s_0)))))))" "(values" -" #%require517_0" -" req518_0))" +" #%require521_0" +" req522_0))" "(raise-syntax-error$1" " #f" " \"bad syntax\"" " orig-s_0)))))" "(values" " #t" -" #%require515_0" -" req516_0))))))" +" #%require519_0" +" req520_0))))))" "(begin" -"(let-values(((temp519_0)" -" req516_0)" -"((exp-body520_0)" +"(let-values(((temp523_0)" +" req520_0)" +"((exp-body524_0)" " exp-body_0)" -"((self521_0)" +"((self525_0)" " self_0)" -"((m-ns522_0)" +"((m-ns526_0)" " m-ns_0)" -"((phase523_0)" +"((phase527_0)" " phase_0)" -"((phase524_0)" +"((phase528_0)" " phase_0)" -"((requires+provides525_0)" +"((requires+provides529_0)" " requires+provides_0)" -"((declared-submodule-names526_0)" +"((declared-submodule-names530_0)" " declared-submodule-names_0)" -"((temp527_0)" +"((temp531_0)" " 'module))" "(parse-and-perform-requires!.1" " #f" " #f" -" declared-submodule-names526_0" +" declared-submodule-names530_0" " #f" -" phase524_0" +" phase528_0" " #f" -" self521_0" +" self525_0" " #f" " #t" -" temp527_0" -" temp519_0" -" exp-body520_0" -" m-ns522_0" -" phase523_0" -" requires+provides525_0))" +" temp531_0" +" temp523_0" +" exp-body524_0" +" m-ns526_0" +" phase527_0" +" requires+provides529_0))" "(let-values(((obs_0)" "(expand-context-observer" " partial-body-ctx_0)))" @@ -82500,34 +82537,34 @@ static const char *startup_source = " exp-body_0" " partial-body-ctx_0)))" "(let-values(((submod_0)" -"(let-values(((ready-body528_0)" +"(let-values(((ready-body532_0)" " ready-body_0)" -"((self529_0)" +"((self533_0)" " self_0)" -"((partial-body-ctx530_0)" +"((partial-body-ctx534_0)" " partial-body-ctx_0)" -"((temp531_0)" +"((temp535_0)" " #f)" -"((declared-submodule-names532_0)" +"((declared-submodule-names536_0)" " declared-submodule-names_0)" -"((mpis-to-reset533_0)" +"((mpis-to-reset537_0)" " mpis-to-reset_0)" -"((compiled-submodules534_0)" +"((compiled-submodules538_0)" " compiled-submodules_0)" -"((modules-being-compiled535_0)" +"((modules-being-compiled539_0)" " modules-being-compiled_0))" "(expand-submodule.1" -" compiled-submodules534_0" -" declared-submodule-names532_0" +" compiled-submodules538_0" +" declared-submodule-names536_0" " #f" " #f" -" temp531_0" +" temp535_0" " #f" -" modules-being-compiled535_0" -" mpis-to-reset533_0" -" ready-body528_0" -" self529_0" -" partial-body-ctx530_0))))" +" modules-being-compiled539_0" +" mpis-to-reset537_0" +" ready-body532_0" +" self533_0" +" partial-body-ctx534_0))))" "(cons" " submod_0" "(loop_0" @@ -82573,14 +82610,14 @@ static const char *startup_source = "(void)))" "(values))))" "(let-values(((ok?_0" -" #%declare536_0" -" kw537_0)" +" #%declare540_0" +" kw541_0)" "(let-values(((s_0)" " disarmed-exp-body_0))" "(let-values(((orig-s_0)" " s_0))" -"(let-values(((#%declare536_0" -" kw537_0)" +"(let-values(((#%declare540_0" +" kw541_0)" "(let-values(((s_1)" "(if(syntax?$1" " s_0)" @@ -82589,12 +82626,12 @@ static const char *startup_source = " s_0)))" "(if(pair?" " s_1)" -"(let-values(((#%declare538_0)" +"(let-values(((#%declare542_0)" "(let-values(((s_2)" "(car" " s_1)))" " s_2))" -"((kw539_0)" +"((kw543_0)" "(let-values(((s_2)" "(cdr" " s_1)))" @@ -82617,20 +82654,20 @@ static const char *startup_source = "(let-values()" " flat-s_0)))))))" "(values" -" #%declare538_0" -" kw539_0))" +" #%declare542_0" +" kw543_0))" "(raise-syntax-error$1" " #f" " \"bad syntax\"" " orig-s_0)))))" "(values" " #t" -" #%declare536_0" -" kw537_0))))))" +" #%declare540_0" +" kw541_0))))))" "(let-values((()" "(begin" "(let-values(((lst_0)" -" kw537_0))" +" kw541_0))" "(begin" "(if(variable-reference-from-unsafe?" "(#%variable-reference))" @@ -82803,24 +82840,24 @@ static const char *startup_source = " null" " lst_0))))))" "(let-values(((syms_0)" -"(let-values(((scoped-ids540_0) scoped-ids_0)" -"((defined-syms541_0) defined-syms_0)" -"((self542_0) self_0)" -"((phase543_0) phase_0)" -"((all-scopes-stx544_0) all-scopes-stx_0)" -"((frame-id545_0) frame-id_0)" -"((requires+provides546_0) requires+provides_0))" +"(let-values(((scoped-ids544_0) scoped-ids_0)" +"((defined-syms545_0) defined-syms_0)" +"((self546_0) self_0)" +"((phase547_0) phase_0)" +"((all-scopes-stx548_0) all-scopes-stx_0)" +"((frame-id549_0) frame-id_0)" +"((requires+provides550_0) requires+provides_0))" "(select-defined-syms-and-bind!.1" " #f" -" frame-id545_0" +" frame-id549_0" " #f" -" requires+provides546_0" +" requires+provides550_0" " #f" -" scoped-ids540_0" -" defined-syms541_0" -" self542_0" -" phase543_0" -" all-scopes-stx544_0))))" +" scoped-ids544_0" +" defined-syms545_0" +" self546_0" +" phase547_0" +" all-scopes-stx548_0))))" "(let-values(((s_0)" "(add-scope" "(datum->syntax$1" @@ -82958,9 +82995,9 @@ static const char *startup_source = "(semi-parsed-define-values-s" " body_0)))" "(let-values(((ok?_0" -" define-values547_0" -" _548_0" -" _549_0)" +" define-values551_0" +" _552_0" +" _553_0)" "(let-values(((s_1)" "(syntax-disarm$1" " s_0)))" @@ -82971,9 +83008,9 @@ static const char *startup_source = " #f)" "(let-values(((orig-s_0)" " s_1))" -"(let-values(((define-values547_0" -" _548_0" -" _549_0)" +"(let-values(((define-values551_0" +" _552_0" +" _553_0)" "(let-values(((s_2)" "(if(syntax?$1" " s_1)" @@ -82982,13 +83019,13 @@ static const char *startup_source = " s_1)))" "(if(pair?" " s_2)" -"(let-values(((define-values550_0)" +"(let-values(((define-values554_0)" "(let-values(((s_3)" "(car" " s_2)))" " s_3))" -"((_551_0" -" _552_0)" +"((_555_0" +" _556_0)" "(let-values(((s_3)" "(cdr" " s_2)))" @@ -83000,12 +83037,12 @@ static const char *startup_source = " s_3)))" "(if(pair?" " s_4)" -"(let-values(((_553_0)" +"(let-values(((_557_0)" "(let-values(((s_5)" "(car" " s_4)))" " s_5))" -"((_554_0)" +"((_558_0)" "(let-values(((s_5)" "(cdr" " s_4)))" @@ -83017,7 +83054,7 @@ static const char *startup_source = " s_5)))" "(if(pair?" " s_6)" -"(let-values(((_555_0)" +"(let-values(((_559_0)" "(let-values(((s_7)" "(car" " s_6)))" @@ -83040,49 +83077,49 @@ static const char *startup_source = " \"bad syntax\"" " orig-s_0))))))" "(values" -" _555_0))" +" _559_0))" "(raise-syntax-error$1" " #f" " \"bad syntax\"" " orig-s_0))))))" "(values" -" _553_0" -" _554_0))" +" _557_0" +" _558_0))" "(raise-syntax-error$1" " #f" " \"bad syntax\"" " orig-s_0))))))" "(values" -" define-values550_0" -" _551_0" -" _552_0))" +" define-values554_0" +" _555_0" +" _556_0))" "(raise-syntax-error$1" " #f" " \"bad syntax\"" " orig-s_0)))))" "(values" " #t" -" define-values547_0" -" _548_0" -" _549_0)))" +" define-values551_0" +" _552_0" +" _553_0)))" "(values" " #f" " #f" " #f" " #f)))))" "(let-values(((rebuild-s_0)" -"(let-values(((rhs-ctx556_0)" +"(let-values(((rhs-ctx560_0)" " rhs-ctx_0)" -"((s557_0)" +"((s561_0)" " s_0)" -"((temp558_0)" +"((temp562_0)" " #t))" "(keep-as-needed.1" " #f" " #f" -" temp558_0" -" rhs-ctx556_0" -" s557_0))))" +" temp562_0" +" rhs-ctx560_0" +" s561_0))))" "(let-values((()" "(begin" "(let-values(((obs_0)" @@ -83116,16 +83153,16 @@ static const char *startup_source = "(void))" "(begin0" "(let-values()" -"(let-values(((temp559_0)" +"(let-values(((temp563_0)" "(semi-parsed-define-values-rhs" " body_0))" -"((rhs-ctx560_0)" +"((rhs-ctx564_0)" " rhs-ctx_0))" "(expand.1" " #f" " #f" -" temp559_0" -" rhs-ctx560_0)))" +" temp563_0" +" rhs-ctx564_0)))" "(if log-performance?" "(let-values()" "(end-performance-region))" @@ -83152,31 +83189,31 @@ static const char *startup_source = "(if(expand-context-to-parsed?" " rhs-ctx_0)" " exp-rhs_0" -"(let-values(((exp-rhs561_0)" +"(let-values(((exp-rhs565_0)" " exp-rhs_0)" -"((temp562_0)" +"((temp566_0)" "(as-to-parsed-context" " rhs-ctx_0)))" "(expand.1" " #f" " #f" -" exp-rhs561_0" -" temp562_0))))))" +" exp-rhs565_0" +" temp566_0))))))" "(if(expand-context-to-parsed?" " rhs-ctx_0)" " comp-form_0" "(expanded+parsed1.1" -"(let-values(((rebuild-s563_0)" +"(let-values(((rebuild-s567_0)" " rebuild-s_0)" -"((temp564_0)" +"((temp568_0)" "(list" -" define-values547_0" +" define-values551_0" " ids_0" " exp-rhs_0)))" "(rebuild.1" " #t" -" rebuild-s563_0" -" temp564_0))" +" rebuild-s567_0" +" temp568_0))" " comp-form_0)))))))))))))" "(let-values()" "(let-values(((disarmed-body_0)" @@ -83202,31 +83239,31 @@ static const char *startup_source = "(begin0" "(let-values()" "(let-values(((exp-body_0)" -"(let-values(((body565_0)" +"(let-values(((body569_0)" " body_0)" -"((temp566_0)" +"((temp570_0)" "(as-expression-context" " body-ctx_0)))" "(expand.1" " #f" " #f" -" body565_0" -" temp566_0))))" +" body569_0" +" temp570_0))))" "(if(expand-context-to-parsed?" " body-ctx_0)" " exp-body_0" "(expanded+parsed1.1" " exp-body_0" -"(let-values(((exp-body567_0)" +"(let-values(((exp-body571_0)" " exp-body_0)" -"((temp568_0)" +"((temp572_0)" "(as-to-parsed-context" " body-ctx_0)))" "(expand.1" " #f" " #f" -" exp-body567_0" -" temp568_0))))))" +" exp-body571_0" +" temp572_0))))))" "(if log-performance?" "(let-values()" "(end-performance-region))" @@ -83269,29 +83306,29 @@ static const char *startup_source = "(void)))))" "(values))))" "(let-values(((exp-lifted-modules_0)" -"(let-values(((lifted-modules569_0)" +"(let-values(((lifted-modules573_0)" " lifted-modules_0)" -"((phase570_0) phase_0)" -"((self571_0) self_0)" -"((body-ctx572_0)" +"((phase574_0) phase_0)" +"((self575_0) self_0)" +"((body-ctx576_0)" " body-ctx_0)" -"((mpis-to-reset573_0)" +"((mpis-to-reset577_0)" " mpis-to-reset_0)" -"((declared-submodule-names574_0)" +"((declared-submodule-names578_0)" " declared-submodule-names_0)" -"((compiled-submodules575_0)" +"((compiled-submodules579_0)" " compiled-submodules_0)" -"((modules-being-compiled576_0)" +"((modules-being-compiled580_0)" " modules-being-compiled_0))" "(expand-non-module*-submodules.1" -" compiled-submodules575_0" -" declared-submodule-names574_0" -" modules-being-compiled576_0" -" mpis-to-reset573_0" -" lifted-modules569_0" -" phase570_0" -" self571_0" -" body-ctx572_0))))" +" compiled-submodules579_0" +" declared-submodule-names578_0" +" modules-being-compiled580_0" +" mpis-to-reset577_0" +" lifted-modules573_0" +" phase574_0" +" self575_0" +" body-ctx576_0))))" "(let-values((()" "(begin" "(if no-lifts?_0" @@ -83381,9 +83418,9 @@ static const char *startup_source = "(begin" "(let-values()" "(let-values(((b_0)" -"(let-values(((id577_0)" +"(let-values(((id581_0)" " id_0)" -"((phase578_0)" +"((phase582_0)" " phase_0))" "(resolve+shift.1" " #f" @@ -83391,8 +83428,8 @@ static const char *startup_source = " null" " unsafe-undefined" " #f" -" id577_0" -" phase578_0))))" +" id581_0" +" phase582_0))))" "(let-values(((bound-here?_0)" "(if b_0" "(if(module-binding?" @@ -83541,10 +83578,10 @@ static const char *startup_source = "(cons" "(let-values(((the-struct_0)(car bodys_0)))" "(if(semi-parsed-begin-for-syntax? the-struct_0)" -"(let-values(((body579_0) nested-bodys_0))" +"(let-values(((body583_0) nested-bodys_0))" "(semi-parsed-begin-for-syntax3.1" "(semi-parsed-begin-for-syntax-s the-struct_0)" -" body579_0))" +" body583_0))" "(raise-argument-error" " 'struct-copy" " \"semi-parsed-begin-for-syntax?\"" @@ -83576,11 +83613,11 @@ static const char *startup_source = " disarmed-body_0))))" "(void)))" "(values))))" -"(let-values(((ok?_0 #%provide580_0 spec581_0)" +"(let-values(((ok?_0 #%provide584_0 spec585_0)" "(let-values(((s_0) disarmed-body_0))" "(let-values(((orig-s_0) s_0))" -"(let-values(((#%provide580_0" -" spec581_0)" +"(let-values(((#%provide584_0" +" spec585_0)" "(let-values(((s_1)" "(if(syntax?$1" " s_0)" @@ -83588,12 +83625,12 @@ static const char *startup_source = " s_0)" " s_0)))" "(if(pair? s_1)" -"(let-values(((#%provide582_0)" +"(let-values(((#%provide586_0)" "(let-values(((s_2)" "(car" " s_1)))" " s_2))" -"((spec583_0)" +"((spec587_0)" "(let-values(((s_2)" "(cdr" " s_1)))" @@ -83616,19 +83653,19 @@ static const char *startup_source = "(let-values()" " flat-s_0)))))))" "(values" -" #%provide582_0" -" spec583_0))" +" #%provide586_0" +" spec587_0))" "(raise-syntax-error$1" " #f" " \"bad syntax\"" " orig-s_0)))))" "(values" " #t" -" #%provide580_0" -" spec581_0))))))" +" #%provide584_0" +" spec585_0))))))" "(let-values(((track-stxes_0 specs_0)" "(parse-and-expand-provides!" -" spec581_0" +" spec585_0" "(car bodys_0)" " requires+provides_0" " self_0" @@ -83638,23 +83675,23 @@ static const char *startup_source = " v_0))" "(if(expand-context/outer?" " the-struct_0)" -"(let-values(((context584_0)" +"(let-values(((context588_0)" " 'top-level)" -"((inner585_0)" +"((inner589_0)" "(let-values(((the-struct_1)" "(root-expand-context/outer-inner" " v_0)))" "(if(expand-context/inner?" " the-struct_1)" -"(let-values(((phase586_0)" +"(let-values(((phase590_0)" " phase_1)" -"((namespace587_0)" +"((namespace591_0)" "(namespace->namespace-at-phase" " m-ns_0" " phase_1))" -"((requires+provides588_0)" +"((requires+provides592_0)" " requires+provides_0)" -"((declared-submodule-names589_0)" +"((declared-submodule-names593_0)" " declared-submodule-names_0))" "(expand-context/inner2.1" "(root-expand-context/inner-self-mpi" @@ -83673,8 +83710,8 @@ static const char *startup_source = " the-struct_1)" "(expand-context/inner-to-parsed?" " the-struct_1)" -" phase586_0" -" namespace587_0" +" phase590_0" +" namespace591_0" "(expand-context/inner-just-once?" " the-struct_1)" "(expand-context/inner-module-begin-k" @@ -83687,7 +83724,7 @@ static const char *startup_source = " the-struct_1)" "(expand-context/inner-stops" " the-struct_1)" -" declared-submodule-names589_0" +" declared-submodule-names593_0" "(expand-context/inner-lifts" " the-struct_1)" "(expand-context/inner-lift-envs" @@ -83698,7 +83735,7 @@ static const char *startup_source = " the-struct_1)" "(expand-context/inner-to-module-lifts" " the-struct_1)" -" requires+provides588_0" +" requires+provides592_0" "(expand-context/inner-observer" " the-struct_1)" "(expand-context/inner-for-serializable?" @@ -83716,14 +83753,14 @@ static const char *startup_source = " \"expand-context/inner?\"" " the-struct_1)))))" "(expand-context/outer1.1" -" inner585_0" +" inner589_0" "(root-expand-context/outer-post-expansion" " the-struct_0)" "(root-expand-context/outer-use-site-scopes" " the-struct_0)" "(root-expand-context/outer-frame-id" " the-struct_0)" -" context584_0" +" context588_0" "(expand-context/outer-env" " the-struct_0)" "(expand-context/outer-scopes" @@ -83754,16 +83791,16 @@ static const char *startup_source = "(let-values(((new-s_0)" "(syntax-track-origin*" " track-stxes_0" -"(let-values(((temp590_0)" +"(let-values(((temp594_0)" "(car bodys_0))" -"((temp591_0)" +"((temp595_0)" "(list*" -" #%provide580_0" +" #%provide584_0" " specs_0)))" "(rebuild.1" " #t" -" temp590_0" -" temp591_0)))))" +" temp594_0" +" temp595_0)))))" "(begin" "(let-values(((obs_0)" "(expand-context-observer" @@ -83842,35 +83879,35 @@ static const char *startup_source = "(let-values(((or-part_0) enclosing-self_0))" "(if or-part_0 or-part_0 self_0)))))" "(let-values(((compiled-module_0)" -"(let-values(((parsed-mod592_0) parsed-mod_0)" -"((temp593_0)" -"(let-values(((m-ns598_0) m-ns_0)" -"((enclosing-self599_0) enclosing-self_0)" -"((temp600_0)" +"(let-values(((parsed-mod596_0) parsed-mod_0)" +"((temp597_0)" +"(let-values(((m-ns602_0) m-ns_0)" +"((enclosing-self603_0) enclosing-self_0)" +"((temp604_0)" "(if enclosing-self_0" "(1/resolved-module-path-name" " module-name_0)" " #f)))" "(make-compile-context.1" -" temp600_0" +" temp604_0" " unsafe-undefined" -" enclosing-self599_0" -" m-ns598_0" +" enclosing-self603_0" +" m-ns602_0" " unsafe-undefined" " unsafe-undefined)))" -"((temp594_0)(expand-context-for-serializable? ctx_0))" -"((temp595_0)" +"((temp598_0)(expand-context-for-serializable? ctx_0))" +"((temp599_0)" "(expand-context-to-correlated-linklet? ctx_0))" -"((modules-being-compiled596_0) modules-being-compiled_0)" -"((temp597_0) #f))" +"((modules-being-compiled600_0) modules-being-compiled_0)" +"((temp601_0) #f))" "(compile-module.1" " #f" -" modules-being-compiled596_0" -" temp597_0" -" temp594_0" -" temp595_0" -" parsed-mod592_0" -" temp593_0))))" +" modules-being-compiled600_0" +" temp601_0" +" temp598_0" +" temp599_0" +" parsed-mod596_0" +" temp597_0))))" "(let-values((()" "(begin" "(set-box! compiled-module-box_0 compiled-module_0)" @@ -83886,12 +83923,12 @@ static const char *startup_source = " 1/current-module-declare-name" "(1/make-resolved-module-path root-module-name_0))" "(let-values()" -"(let-values(((compiled-module601_0) compiled-module_0)((temp602_0) #f))" +"(let-values(((compiled-module605_0) compiled-module_0)((temp606_0) #f))" "(eval-module.1" " unsafe-undefined" " #f" -" temp602_0" -" compiled-module601_0)))))))))))))))))))))))))" +" temp606_0" +" compiled-module605_0)))))))))))))))))))))))))" "(define-values" "(attach-root-expand-context-properties)" "(lambda(s_0 root-ctx_0 orig-self_0 new-self_0)" @@ -83959,13 +83996,13 @@ static const char *startup_source = " 'enter-begin-for-syntax)))" "(void)))" "(values))))" -"(let-values(((ok?_0 begin-for-syntax603_0 _604_0)" +"(let-values(((ok?_0 begin-for-syntax607_0 _608_0)" "(let-values(((s_0)" "(syntax-disarm$1" " body-s_0)))" "(let-values(((orig-s_0) s_0))" -"(let-values(((begin-for-syntax603_0" -" _604_0)" +"(let-values(((begin-for-syntax607_0" +" _608_0)" "(let-values(((s_1)" "(if(syntax?$1" " s_0)" @@ -83973,12 +84010,12 @@ static const char *startup_source = " s_0)" " s_0)))" "(if(pair? s_1)" -"(let-values(((begin-for-syntax605_0)" +"(let-values(((begin-for-syntax609_0)" "(let-values(((s_2)" "(car" " s_1)))" " s_2))" -"((_606_0)" +"((_610_0)" "(let-values(((s_2)" "(cdr" " s_1)))" @@ -84001,27 +84038,27 @@ static const char *startup_source = "(let-values()" " flat-s_0)))))))" "(values" -" begin-for-syntax605_0" -" _606_0))" +" begin-for-syntax609_0" +" _610_0))" "(raise-syntax-error$1" " #f" " \"bad syntax\"" " orig-s_0)))))" "(values" " #t" -" begin-for-syntax603_0" -" _604_0))))))" +" begin-for-syntax607_0" +" _608_0))))))" "(let-values(((rebuild-body-s_0)" -"(let-values(((submod-ctx607_0)" +"(let-values(((submod-ctx611_0)" " submod-ctx_0)" -"((body-s608_0)" +"((body-s612_0)" " body-s_0))" "(keep-as-needed.1" " #f" " #f" " #f" -" submod-ctx607_0" -" body-s608_0))))" +" submod-ctx611_0" +" body-s612_0))))" "(let-values(((nested-bodys_0)" "(loop_0" "(semi-parsed-begin-for-syntax-body" @@ -84048,17 +84085,17 @@ static const char *startup_source = " submod-ctx_0)" " parsed-bfs_0" "(expanded+parsed1.1" -"(let-values(((rebuild-body-s609_0)" +"(let-values(((rebuild-body-s613_0)" " rebuild-body-s_0)" -"((temp610_0)" +"((temp614_0)" "(list*" -" begin-for-syntax603_0" +" begin-for-syntax607_0" "(syntax-only" " nested-bodys_0))))" "(rebuild.1" " #t" -" rebuild-body-s609_0" -" temp610_0))" +" rebuild-body-s613_0" +" temp614_0))" " parsed-bfs_0))" "(loop_0 rest-bodys_0 phase_1))))))))))" "(if(let-values(((or-part_0)(parsed? body_0)))" @@ -84095,9 +84132,9 @@ static const char *startup_source = " body_0" " submod-ctx_0)))" "(let-values(((ok?_0" -" module*611_0" -" name612_0" -" _613_0)" +" module*615_0" +" name616_0" +" _617_0)" "(let-values(((s_0)" " disarmed-body_0))" "(if(let-values(((s_1)" @@ -84160,22 +84197,22 @@ static const char *startup_source = " #f)" " #f))" "(let-values()" -"(let-values(((module*611_0" -" name612_0" -" _613_0)" +"(let-values(((module*615_0" +" name616_0" +" _617_0)" "(let-values(((s_1)" "(if(syntax?$1" " s_0)" "(syntax-e$1" " s_0)" " s_0)))" -"(let-values(((module*614_0)" +"(let-values(((module*618_0)" "(let-values(((s_2)" "(car" " s_1)))" " s_2))" -"((name615_0" -" _616_0)" +"((name619_0" +" _620_0)" "(let-values(((s_2)" "(cdr" " s_1)))" @@ -84185,12 +84222,12 @@ static const char *startup_source = "(syntax-e$1" " s_2)" " s_2)))" -"(let-values(((name617_0)" +"(let-values(((name621_0)" "(let-values(((s_4)" "(car" " s_3)))" " s_4))" -"((_618_0)" +"((_622_0)" "(let-values(((s_4)" "(cdr" " s_3)))" @@ -84211,25 +84248,25 @@ static const char *startup_source = " s_6)" " s_6)))" "(values))))" -"((_619_0)" +"((_623_0)" "(let-values(((s_6)" "(cdr" " s_5)))" " s_6)))" "(values" -" _619_0))))))" +" _623_0))))))" "(values" -" name617_0" -" _618_0))))))" +" name621_0" +" _622_0))))))" "(values" -" module*614_0" -" name615_0" -" _616_0)))))" +" module*618_0" +" name619_0" +" _620_0)))))" "(values" " #t" -" module*611_0" -" name612_0" -" _613_0)))" +" module*615_0" +" name616_0" +" _617_0)))" "(values" " #f" " #f" @@ -84247,40 +84284,40 @@ static const char *startup_source = " ready-body_0" " neg-phase_0)))" "(let-values(((submod_0)" -"(let-values(((shifted-s620_0)" +"(let-values(((shifted-s624_0)" " shifted-s_0)" -"((self621_0)" +"((self625_0)" " self_0)" -"((submod-ctx622_0)" +"((submod-ctx626_0)" " submod-ctx_0)" -"((temp623_0)" +"((temp627_0)" " #t)" -"((neg-phase624_0)" +"((neg-phase628_0)" " neg-phase_0)" -"((requires+provides625_0)" +"((requires+provides629_0)" " requires+provides_0)" -"((enclosing-is-cross-phase-persistent?626_0)" +"((enclosing-is-cross-phase-persistent?630_0)" " enclosing-is-cross-phase-persistent?_0)" -"((mpis-to-reset627_0)" +"((mpis-to-reset631_0)" " mpis-to-reset_0)" -"((declared-submodule-names628_0)" +"((declared-submodule-names632_0)" " declared-submodule-names_0)" -"((compiled-submodules629_0)" +"((compiled-submodules633_0)" " compiled-submodules_0)" -"((modules-being-compiled630_0)" +"((modules-being-compiled634_0)" " modules-being-compiled_0))" "(expand-submodule.1" -" compiled-submodules629_0" -" declared-submodule-names628_0" -" enclosing-is-cross-phase-persistent?626_0" -" requires+provides625_0" -" temp623_0" -" neg-phase624_0" -" modules-being-compiled630_0" -" mpis-to-reset627_0" -" shifted-s620_0" -" self621_0" -" submod-ctx622_0))))" +" compiled-submodules633_0" +" declared-submodule-names632_0" +" enclosing-is-cross-phase-persistent?630_0" +" requires+provides629_0" +" temp627_0" +" neg-phase628_0" +" modules-being-compiled634_0" +" mpis-to-reset631_0" +" shifted-s624_0" +" self625_0" +" submod-ctx626_0))))" "(if(parsed?" " submod_0)" "(let-values()" @@ -84292,13 +84329,13 @@ static const char *startup_source = " submod_0))" "(if(expanded+parsed?" " the-struct_0)" -"(let-values(((s631_0)" +"(let-values(((s635_0)" "(syntax-shift-phase-level$1" "(expanded+parsed-s" " submod_0)" " phase_1)))" "(expanded+parsed1.1" -" s631_0" +" s635_0" "(expanded+parsed-parsed" " the-struct_0)))" "(raise-argument-error" @@ -84310,34 +84347,34 @@ static const char *startup_source = " submod_0" " phase_1))))))))" "(let-values()" -"(let-values(((ready-body632_0)" +"(let-values(((ready-body636_0)" " ready-body_0)" -"((self633_0)" +"((self637_0)" " self_0)" -"((submod-ctx634_0)" +"((submod-ctx638_0)" " submod-ctx_0)" -"((temp635_0)" +"((temp639_0)" " #t)" -"((mpis-to-reset636_0)" +"((mpis-to-reset640_0)" " mpis-to-reset_0)" -"((declared-submodule-names637_0)" +"((declared-submodule-names641_0)" " declared-submodule-names_0)" -"((compiled-submodules638_0)" +"((compiled-submodules642_0)" " compiled-submodules_0)" -"((modules-being-compiled639_0)" +"((modules-being-compiled643_0)" " modules-being-compiled_0))" "(expand-submodule.1" -" compiled-submodules638_0" -" declared-submodule-names637_0" +" compiled-submodules642_0" +" declared-submodule-names641_0" " #f" " #f" -" temp635_0" +" temp639_0" " #f" -" modules-being-compiled639_0" -" mpis-to-reset636_0" -" ready-body632_0" -" self633_0" -" submod-ctx634_0))))))" +" modules-being-compiled643_0" +" mpis-to-reset640_0" +" ready-body636_0" +" self637_0" +" submod-ctx638_0))))))" "(cons" " submod_0" "(loop_0 rest-bodys_0 phase_1)))))))" @@ -84397,23 +84434,23 @@ static const char *startup_source = "(let-values()" "(begin" "(let-values()" -"(let-values(((requires+provides640_0)" +"(let-values(((requires+provides644_0)" " requires+provides_0)" -"((id641_0) id_0)" -"((phase642_0) phase_0)" -"((s643_0) s_0)" -"((temp644_0) 'module))" +"((id645_0) id_0)" +"((phase646_0) phase_0)" +"((s647_0) s_0)" +"((temp648_0) 'module))" "(check-not-defined.1" " #f" " #f" " #f" -" s643_0" +" s647_0" " #f" " #f" -" temp644_0" -" requires+provides640_0" -" id641_0" -" phase642_0)))" +" temp648_0" +" requires+provides644_0" +" id645_0" +" phase646_0)))" "(values)))))" "(values)))))" "(if(not #f)(for-loop_0 rest_0)(values))))" @@ -84572,16 +84609,16 @@ static const char *startup_source = "(eval-single-top" "(compile-single" " p_0" -"(let-values(((m-ns645_0)" +"(let-values(((m-ns649_0)" " m-ns_0)" -"((phase646_0)" +"((phase650_0)" " phase_0))" "(make-compile-context.1" " #f" " unsafe-undefined" " #f" -" m-ns645_0" -" phase646_0" +" m-ns649_0" +" phase650_0" " unsafe-undefined)))" " m-ns_0)))))))))))" "(values)))))" @@ -84632,43 +84669,43 @@ static const char *startup_source = " #f))))" "(void)))" "(values))))" -"(let-values(((ok?_0 module647_0 name648_0 _649_0)" +"(let-values(((ok?_0 module651_0 name652_0 _653_0)" "(let-values(((s_1) s_0))" "(let-values(((orig-s_0) s_1))" -"(let-values(((module647_0 name648_0 _649_0)" +"(let-values(((module651_0 name652_0 _653_0)" "(let-values(((s_2)" "(if(syntax?$1 s_1)" "(syntax-e$1 s_1)" " s_1)))" "(if(pair? s_2)" -"(let-values(((module650_0)" +"(let-values(((module654_0)" "(let-values(((s_3)(car s_2))) s_3))" -"((name651_0 _652_0)" +"((name655_0 _656_0)" "(let-values(((s_3)(cdr s_2)))" "(let-values(((s_4)" "(if(syntax?$1 s_3)" "(syntax-e$1 s_3)" " s_3)))" "(if(pair? s_4)" -"(let-values(((name653_0)" +"(let-values(((name657_0)" "(let-values(((s_5)" "(car" " s_4)))" " s_5))" -"((_654_0)" +"((_658_0)" "(let-values(((s_5)" "(cdr" " s_4)))" " s_5)))" -"(values name653_0 _654_0))" +"(values name657_0 _658_0))" "(raise-syntax-error$1" " #f" " \"bad syntax\"" " orig-s_0))))))" -"(values module650_0 name651_0 _652_0))" +"(values module654_0 name655_0 _656_0))" " (raise-syntax-error$1 #f \"bad syntax\" orig-s_0)))))" -"(values #t module647_0 name648_0 _649_0))))))" -"(let-values(((name_0)(syntax-e$1 name648_0)))" +"(values #t module651_0 name652_0 _653_0))))))" +"(let-values(((name_0)(syntax-e$1 name652_0)))" "(let-values((()" "(begin" "(if(hash-ref declared-submodule-names_0 name_0 #f)" @@ -84685,7 +84722,7 @@ static const char *startup_source = "(hash-set!" " declared-submodule-names_0" " name_0" -"(syntax-e$1 module647_0))" +"(syntax-e$1 module651_0))" "(values))))" "(let-values((()" "(begin" @@ -84697,20 +84734,20 @@ static const char *startup_source = "(void)))" "(values))))" "(let-values(((submod_0)" -"(let-values(((s655_0) s_0)" -"((temp656_0)" +"(let-values(((s659_0) s_0)" +"((temp660_0)" "(let-values(((v_0) ctx_0))" "(let-values(((the-struct_0) v_0))" "(if(expand-context/outer? the-struct_0)" -"(let-values(((context664_0) 'module)" -"((post-expansion665_0) #f)" -"((inner666_0)" +"(let-values(((context668_0) 'module)" +"((post-expansion669_0) #f)" +"((inner670_0)" "(let-values(((the-struct_1)" "(root-expand-context/outer-inner" " v_0)))" "(if(expand-context/inner?" " the-struct_1)" -"(let-values(((stops667_0)" +"(let-values(((stops671_0)" " empty-free-id-set))" "(expand-context/inner2.1" "(root-expand-context/inner-self-mpi" @@ -84743,7 +84780,7 @@ static const char *startup_source = " the-struct_1)" "(expand-context/inner-keep-#%expression?" " the-struct_1)" -" stops667_0" +" stops671_0" "(expand-context/inner-declared-submodule-names" " the-struct_1)" "(expand-context/inner-lifts" @@ -84775,13 +84812,13 @@ static const char *startup_source = " \"expand-context/inner?\"" " the-struct_1)))))" "(expand-context/outer1.1" -" inner666_0" -" post-expansion665_0" +" inner670_0" +" post-expansion669_0" "(root-expand-context/outer-use-site-scopes" " the-struct_0)" "(root-expand-context/outer-frame-id" " the-struct_0)" -" context664_0" +" context668_0" "(expand-context/outer-env the-struct_0)" "(expand-context/outer-scopes" " the-struct_0)" @@ -84805,26 +84842,26 @@ static const char *startup_source = " 'struct-copy" " \"expand-context/outer?\"" " the-struct_0)))))" -"((self657_0) self_0)" -"((temp658_0) #t)" -"((keep-enclosing-scope-at-phase659_0)" +"((self661_0) self_0)" +"((temp662_0) #t)" +"((keep-enclosing-scope-at-phase663_0)" " keep-enclosing-scope-at-phase_0)" -"((enclosing-r+p660_0) enclosing-r+p_0)" -"((enclosing-is-cross-phase-persistent?661_0)" +"((enclosing-r+p664_0) enclosing-r+p_0)" +"((enclosing-is-cross-phase-persistent?665_0)" " enclosing-is-cross-phase-persistent?_0)" -"((mpis-to-reset662_0) mpis-to-reset_0)" -"((modules-being-compiled663_0)" +"((mpis-to-reset666_0) mpis-to-reset_0)" +"((modules-being-compiled667_0)" " modules-being-compiled_0))" "(expand-module.1" -" temp658_0" -" enclosing-is-cross-phase-persistent?661_0" -" enclosing-r+p660_0" -" keep-enclosing-scope-at-phase659_0" -" modules-being-compiled663_0" -" mpis-to-reset662_0" -" s655_0" -" temp656_0" -" self657_0))))" +" temp662_0" +" enclosing-is-cross-phase-persistent?665_0" +" enclosing-r+p664_0" +" keep-enclosing-scope-at-phase663_0" +" modules-being-compiled667_0" +" mpis-to-reset666_0" +" s659_0" +" temp660_0" +" self661_0))))" "(let-values((()" "(begin" "(let-values(((obs_0)(expand-context-observer ctx_0)))" @@ -84842,41 +84879,41 @@ static const char *startup_source = "(let-values(((root-module-name_0)" "(resolved-module-path-root-name module-name_0)))" "(let-values(((compiled-submodule_0)" -"(let-values(((temp668_0)" +"(let-values(((temp672_0)" "(if(expanded+parsed? submod_0)" "(expanded+parsed-parsed submod_0)" " submod_0))" -"((temp669_0)" -"(let-values(((ns675_0) ns_0)" -"((self676_0) self_0)" -"((temp677_0)" +"((temp673_0)" +"(let-values(((ns679_0) ns_0)" +"((self680_0) self_0)" +"((temp681_0)" "(1/resolved-module-path-name" " module-name_0)))" "(make-compile-context.1" -" temp677_0" +" temp681_0" " unsafe-undefined" -" self676_0" -" ns675_0" +" self680_0" +" ns679_0" " unsafe-undefined" " unsafe-undefined)))" -"((temp670_0) #t)" -"((temp671_0)" +"((temp674_0) #t)" +"((temp675_0)" "(expand-context-for-serializable?" " ctx_0))" -"((temp672_0)" +"((temp676_0)" "(expand-context-to-correlated-linklet?" " ctx_0))" -"((modules-being-compiled673_0)" +"((modules-being-compiled677_0)" " modules-being-compiled_0)" -"((temp674_0) #f))" +"((temp678_0) #f))" "(compile-module.1" -" temp670_0" -" modules-being-compiled673_0" " temp674_0" -" temp671_0" +" modules-being-compiled677_0" +" temp678_0" +" temp675_0" +" temp676_0" " temp672_0" -" temp668_0" -" temp669_0))))" +" temp673_0))))" "(begin" "(hash-set!" " compiled-submodules_0" @@ -84891,28 +84928,28 @@ static const char *startup_source = " 1/current-module-declare-name" "(1/make-resolved-module-path root-module-name_0))" "(let-values()" -"(let-values(((compiled-submodule678_0) compiled-submodule_0)" -"((temp679_0) #f))" +"(let-values(((compiled-submodule682_0) compiled-submodule_0)" +"((temp683_0) #f))" "(eval-module.1" " unsafe-undefined" " #f" -" temp679_0" -" compiled-submodule678_0))))" +" temp683_0" +" compiled-submodule682_0))))" "(if(not is-star?_0)" "(let-values() submod_0)" "(if(expanded+parsed? submod_0)" "(let-values()" "(let-values(((the-struct_0) submod_0))" "(if(expanded+parsed? the-struct_0)" -"(let-values(((parsed680_0)" +"(let-values(((parsed684_0)" "(let-values(((the-struct_1)" "(expanded+parsed-parsed" " submod_0)))" "(if(parsed-module? the-struct_1)" -"(let-values(((star?681_0) #t))" +"(let-values(((star?685_0) #t))" "(parsed-module25.1" "(parsed-s the-struct_1)" -" star?681_0" +" star?685_0" "(parsed-module-name-id" " the-struct_1)" "(parsed-module-self the-struct_1)" @@ -84935,7 +84972,7 @@ static const char *startup_source = " the-struct_1)))))" "(expanded+parsed1.1" "(expanded+parsed-s the-struct_0)" -" parsed680_0))" +" parsed684_0))" "(raise-argument-error" " 'struct-copy" " \"expanded+parsed?\"" @@ -84943,10 +84980,10 @@ static const char *startup_source = "(let-values()" "(let-values(((the-struct_0) submod_0))" "(if(parsed-module? the-struct_0)" -"(let-values(((star?682_0) #t))" +"(let-values(((star?686_0) #t))" "(parsed-module25.1" "(parsed-s the-struct_0)" -" star?682_0" +" star?686_0" "(parsed-module-name-id the-struct_0)" "(parsed-module-self the-struct_0)" "(parsed-module-requires the-struct_0)" @@ -85018,34 +85055,34 @@ static const char *startup_source = " phase_0)))" "(if(equal? tmp_0 'module)" "(let-values()" -"(let-values(((body683_0)" +"(let-values(((body687_0)" " body_0)" -"((self684_0)" +"((self688_0)" " self_0)" -"((ctx685_0)" +"((ctx689_0)" " ctx_0)" -"((temp686_0)" +"((temp690_0)" " #f)" -"((mpis-to-reset687_0)" +"((mpis-to-reset691_0)" " mpis-to-reset_0)" -"((declared-submodule-names688_0)" +"((declared-submodule-names692_0)" " declared-submodule-names_0)" -"((compiled-submodules689_0)" +"((compiled-submodules693_0)" " compiled-submodules_0)" -"((modules-being-compiled690_0)" +"((modules-being-compiled694_0)" " modules-being-compiled_0))" "(expand-submodule.1" -" compiled-submodules689_0" -" declared-submodule-names688_0" +" compiled-submodules693_0" +" declared-submodule-names692_0" " #f" " #f" -" temp686_0" +" temp690_0" " #f" -" modules-being-compiled690_0" -" mpis-to-reset687_0" -" body683_0" -" self684_0" -" ctx685_0)))" +" modules-being-compiled694_0" +" mpis-to-reset691_0" +" body687_0" +" self688_0" +" ctx689_0)))" "(let-values()" " body_0)))))" " fold-var_1))))" @@ -85066,22 +85103,22 @@ static const char *startup_source = "(let-values(((declared-submodule-names_0) declared-submodule-names189_0))" "(let-values()" "(lambda(s_0 phase_0)" -"(let-values(((ok?_0 #%require691_0 req692_0)" +"(let-values(((ok?_0 #%require695_0 req696_0)" "(let-values(((s_1)(syntax-disarm$1 s_0)))" "(let-values(((orig-s_0) s_1))" -"(let-values(((#%require691_0 req692_0)" +"(let-values(((#%require695_0 req696_0)" "(let-values(((s_2)(if(syntax?$1 s_1)(syntax-e$1 s_1) s_1)))" "(if(pair? s_2)" -"(let-values(((#%require693_0)" +"(let-values(((#%require697_0)" "(let-values(((s_3)(car s_2))) s_3))" -"((req694_0)" +"((req698_0)" "(let-values(((s_3)(cdr s_2)))" "(let-values(((s_4)" "(if(syntax?$1 s_3)" "(syntax-e$1 s_3)" " s_3)))" "(if(pair? s_4)" -"(let-values(((req695_0)" +"(let-values(((req699_0)" "(let-values(((s_5)(car s_4)))" " s_5))" "(()" @@ -85098,39 +85135,39 @@ static const char *startup_source = " #f" " \"bad syntax\"" " orig-s_0))))))" -"(values req695_0))" +"(values req699_0))" "(raise-syntax-error$1" " #f" " \"bad syntax\"" " orig-s_0))))))" -"(values #%require693_0 req694_0))" +"(values #%require697_0 req698_0))" " (raise-syntax-error$1 #f \"bad syntax\" orig-s_0)))))" -"(values #t #%require691_0 req692_0))))))" -"(let-values(((temp696_0)(list req692_0))" -"((s697_0) s_0)" -"((self698_0) self_0)" -"((m-ns699_0) m-ns_0)" -"((phase700_0) phase_0)" -"((phase701_0) phase_0)" -"((requires+provides702_0) requires+provides_0)" -"((declared-submodule-names703_0) declared-submodule-names_0)" -"((temp704_0) 'require))" +"(values #t #%require695_0 req696_0))))))" +"(let-values(((temp700_0)(list req696_0))" +"((s701_0) s_0)" +"((self702_0) self_0)" +"((m-ns703_0) m-ns_0)" +"((phase704_0) phase_0)" +"((phase705_0) phase_0)" +"((requires+provides706_0) requires+provides_0)" +"((declared-submodule-names707_0) declared-submodule-names_0)" +"((temp708_0) 'require))" "(parse-and-perform-requires!.1" " #f" " #f" -" declared-submodule-names703_0" +" declared-submodule-names707_0" " #f" -" phase701_0" +" phase705_0" " #f" -" self698_0" +" self702_0" " #f" " #t" -" temp704_0" -" temp696_0" -" s697_0" -" m-ns699_0" -" phase700_0" -" requires+provides702_0))))))))))))" +" temp708_0" +" temp700_0" +" s701_0" +" m-ns703_0" +" phase704_0" +" requires+provides706_0))))))))))))" "(define-values" "(defn-extract-syntax)" "(lambda(defn_0)" diff --git a/racket/src/cs/schemified/expander.scm b/racket/src/cs/schemified/expander.scm index 163da0815b..1caf7cf0d3 100644 --- a/racket/src/cs/schemified/expander.scm +++ b/racket/src/cs/schemified/expander.scm @@ -49721,8 +49721,26 @@ require-lift-context-requires (record-accessor struct:require-lift-context 2))) (define make-require-lift-context - (lambda (wrt-phase_0 do-require_0) - (require-lift-context16.1 do-require_0 wrt-phase_0 (box null)))) + (let ((make-require-lift-context_0 + (|#%name| + make-require-lift-context + (lambda (wrt-phase18_0 do-require19_0 initial-lifts17_0) + (begin + (require-lift-context16.1 + do-require19_0 + wrt-phase18_0 + (box initial-lifts17_0))))))) + (case-lambda + ((wrt-phase_0 do-require_0) + (make-require-lift-context_0 wrt-phase_0 do-require_0 null)) + ((wrt-phase_0 do-require_0 initial-lifts17_0) + (make-require-lift-context_0 + wrt-phase_0 + do-require_0 + initial-lifts17_0))))) +(define get-require-lifts + (lambda (require-lifts_0) + (unbox (require-lift-context-requires require-lifts_0)))) (define get-and-clear-require-lifts! (lambda (require-lifts_0) (box-clear! (require-lift-context-requires require-lifts_0)))) @@ -49753,7 +49771,7 @@ 4 0)) (define effect_3069 (finish_2755 struct:to-module-lift-context)) -(define to-module-lift-context17.1 +(define to-module-lift-context20.1 (|#%name| to-module-lift-context (record-constructor @@ -49781,13 +49799,13 @@ (define make-to-module-lift-context.1 (|#%name| make-to-module-lift-context - (lambda (end-as-expressions?19_0 shared-module-ends18_0 phase22_0) + (lambda (end-as-expressions?22_0 shared-module-ends21_0 phase25_0) (begin - (to-module-lift-context17.1 - phase22_0 + (to-module-lift-context20.1 + phase25_0 (box null) - end-as-expressions?19_0 - shared-module-ends18_0))))) + end-as-expressions?22_0 + shared-module-ends21_0))))) (define make-shared-module-ends (lambda () (box null))) (define get-and-clear-end-lifts! (lambda (to-module-lifts_0) @@ -58348,126 +58366,118 @@ (let ((lift-ctx_0 (let ((temp171_0 (make-top-level-lift ctx_0))) (make-lift-context.1 #f temp171_0)))) - (let ((wrt-phase_0 (namespace-phase ns_0))) - (let ((require-lift-ctx_0 - (let ((do-require_0 - (make-parse-top-lifted-require ns_0))) - (let ((wrt-phase_1 wrt-phase_0)) - (begin-unsafe - (require-lift-context16.1 - do-require_0 - wrt-phase_1 - (box null))))))) - (let ((exp-s_0 - (let ((temp173_0 - (if (expand-context/outer? ctx_0) - (let ((the-struct_0 - (root-expand-context/outer-inner - ctx_0))) - (let ((inner174_0 - (if (expand-context/inner? - the-struct_0) - (expand-context/inner2.1 - (root-expand-context/inner-self-mpi - the-struct_0) - (root-expand-context/inner-module-scopes - the-struct_0) - (root-expand-context/inner-top-level-bind-scope - the-struct_0) - (root-expand-context/inner-all-scopes-stx - the-struct_0) - (root-expand-context/inner-defined-syms - the-struct_0) - (root-expand-context/inner-counter - the-struct_0) - (root-expand-context/inner-lift-key - the-struct_0) - (expand-context/inner-to-parsed? - the-struct_0) - (expand-context/inner-phase - the-struct_0) - (expand-context/inner-namespace - the-struct_0) - (expand-context/inner-just-once? - the-struct_0) - (expand-context/inner-module-begin-k - the-struct_0) - (expand-context/inner-allow-unbound? - the-struct_0) - (expand-context/inner-in-local-expand? - the-struct_0) - (|expand-context/inner-keep-#%expression?| - the-struct_0) - (expand-context/inner-stops - the-struct_0) - (expand-context/inner-declared-submodule-names - the-struct_0) - lift-ctx_0 - (expand-context/inner-lift-envs - the-struct_0) - lift-ctx_0 - require-lift-ctx_0 - (expand-context/inner-to-module-lifts - the-struct_0) - (expand-context/inner-requires+provides - the-struct_0) - (expand-context/inner-observer - the-struct_0) - (expand-context/inner-for-serializable? - the-struct_0) - (expand-context/inner-to-correlated-linklet? - the-struct_0) - (expand-context/inner-normalize-locals? - the-struct_0) - (expand-context/inner-parsing-expanded? - the-struct_0) - (expand-context/inner-skip-visit-available? - the-struct_0)) - (raise-argument-error - 'struct-copy - "expand-context/inner?" - the-struct_0)))) - (expand-context/outer1.1 - inner174_0 - (root-expand-context/outer-post-expansion - ctx_0) - (root-expand-context/outer-use-site-scopes - ctx_0) - (root-expand-context/outer-frame-id - ctx_0) - (expand-context/outer-context ctx_0) - (expand-context/outer-env ctx_0) - (expand-context/outer-scopes ctx_0) - (expand-context/outer-def-ctx-scopes - ctx_0) - (expand-context/outer-binding-layer - ctx_0) - (expand-context/outer-reference-records - ctx_0) - (expand-context/outer-only-immediate? - ctx_0) - (expand-context/outer-need-eventually-defined - ctx_0) - (expand-context/outer-current-introduction-scopes - ctx_0) - (expand-context/outer-current-use-scopes - ctx_0) - (expand-context/outer-name ctx_0)))) - (raise-argument-error - 'struct-copy - "expand-context/outer?" - ctx_0)))) - (expand.1 #f #f s_0 temp173_0)))) - (let ((app_0 - (begin-unsafe - (box-clear! - (require-lift-context-requires - require-lift-ctx_0))))) - (values - app_0 - (begin-unsafe - (box-clear! (lift-context-lifts lift-ctx_0))) - exp-s_0)))))))) + (let ((require-lift-ctx_0 + (make-require-lift-context + (namespace-phase ns_0) + (make-parse-top-lifted-require ns_0)))) + (let ((exp-s_0 + (let ((temp173_0 + (if (expand-context/outer? ctx_0) + (let ((the-struct_0 + (root-expand-context/outer-inner + ctx_0))) + (let ((inner174_0 + (if (expand-context/inner? + the-struct_0) + (expand-context/inner2.1 + (root-expand-context/inner-self-mpi + the-struct_0) + (root-expand-context/inner-module-scopes + the-struct_0) + (root-expand-context/inner-top-level-bind-scope + the-struct_0) + (root-expand-context/inner-all-scopes-stx + the-struct_0) + (root-expand-context/inner-defined-syms + the-struct_0) + (root-expand-context/inner-counter + the-struct_0) + (root-expand-context/inner-lift-key + the-struct_0) + (expand-context/inner-to-parsed? + the-struct_0) + (expand-context/inner-phase + the-struct_0) + (expand-context/inner-namespace + the-struct_0) + (expand-context/inner-just-once? + the-struct_0) + (expand-context/inner-module-begin-k + the-struct_0) + (expand-context/inner-allow-unbound? + the-struct_0) + (expand-context/inner-in-local-expand? + the-struct_0) + (|expand-context/inner-keep-#%expression?| + the-struct_0) + (expand-context/inner-stops + the-struct_0) + (expand-context/inner-declared-submodule-names + the-struct_0) + lift-ctx_0 + (expand-context/inner-lift-envs + the-struct_0) + lift-ctx_0 + require-lift-ctx_0 + (expand-context/inner-to-module-lifts + the-struct_0) + (expand-context/inner-requires+provides + the-struct_0) + (expand-context/inner-observer + the-struct_0) + (expand-context/inner-for-serializable? + the-struct_0) + (expand-context/inner-to-correlated-linklet? + the-struct_0) + (expand-context/inner-normalize-locals? + the-struct_0) + (expand-context/inner-parsing-expanded? + the-struct_0) + (expand-context/inner-skip-visit-available? + the-struct_0)) + (raise-argument-error + 'struct-copy + "expand-context/inner?" + the-struct_0)))) + (expand-context/outer1.1 + inner174_0 + (root-expand-context/outer-post-expansion + ctx_0) + (root-expand-context/outer-use-site-scopes + ctx_0) + (root-expand-context/outer-frame-id ctx_0) + (expand-context/outer-context ctx_0) + (expand-context/outer-env ctx_0) + (expand-context/outer-scopes ctx_0) + (expand-context/outer-def-ctx-scopes + ctx_0) + (expand-context/outer-binding-layer ctx_0) + (expand-context/outer-reference-records + ctx_0) + (expand-context/outer-only-immediate? + ctx_0) + (expand-context/outer-need-eventually-defined + ctx_0) + (expand-context/outer-current-introduction-scopes + ctx_0) + (expand-context/outer-current-use-scopes + ctx_0) + (expand-context/outer-name ctx_0)))) + (raise-argument-error + 'struct-copy + "expand-context/outer?" + ctx_0)))) + (expand.1 #f #f s_0 temp173_0)))) + (let ((app_0 + (begin-unsafe + (box-clear! + (require-lift-context-requires + require-lift-ctx_0))))) + (values + app_0 + (begin-unsafe + (box-clear! (lift-context-lifts lift-ctx_0))) + exp-s_0))))))) (if log-performance? (end-performance-region) (void)))))) (define make-parse-top-lifted-require (lambda (ns_0) @@ -88341,368 +88351,359 @@ (make-hasheq))) (let ((declared-submodule-names_0 (make-hasheq))) - (let ((expression-expanded-bodys_0 - (letrec* - ((pass-1-and-2-loop_0 - (|#%name| - pass-1-and-2-loop - (lambda (bodys_1 - phase_0 - keep-stops?_0) - (begin - (let ((def-ctx-scopes_0 - (box - null))) - (let ((partial-body-ctx_0 - (if (expand-context/outer? - ctx_1) - (let ((the-struct_0 - (root-expand-context/outer-inner - ctx_1))) - (let ((inner300_0 - (if (expand-context/inner? - the-struct_0) - (let ((namespace302_0 - (namespace->namespace-at-phase - m-ns_0 - phase_0))) - (let ((stops303_0 - (free-id-set - phase_0 - (module-expand-stop-ids - phase_0)))) - (let ((lift-key305_0 - (generate-lift-key))) - (let ((lifts306_0 - (let ((temp310_0 - (let ((app_0 - defined-syms_0)) - (make-wrap-as-definition - self_0 - frame-id_0 - inside-scope_0 - initial-require-s_0 - app_0 - requires+provides_0)))) - (make-lift-context.1 - #f - temp310_0)))) - (let ((module-lifts307_0 - (begin-unsafe - (module-lift-context15.1 - phase_0 - (box - null) - #t)))) - (let ((require-lifts308_0 - (let ((do-require_0 - (let ((requires+provides313_0 - requires+provides_0)) - (make-parse-lifted-require.1 - declared-submodule-names_0 - m-ns_0 + (let ((require-lifts_0 + (begin-unsafe + (expand-context/inner-require-lifts + (root-expand-context/outer-inner + ctx_1))))) + (let ((initial-lifted-requires_0 + (begin-unsafe + (unbox + (require-lift-context-requires + require-lifts_0))))) + (let ((expression-expanded-bodys_0 + (letrec* + ((pass-1-and-2-loop_0 + (|#%name| + pass-1-and-2-loop + (lambda (bodys_1 + phase_0 + keep-stops?_0 + initial-lifted-requires_1) + (begin + (let ((def-ctx-scopes_0 + (box + null))) + (let ((partial-body-ctx_0 + (if (expand-context/outer? + ctx_1) + (let ((the-struct_0 + (root-expand-context/outer-inner + ctx_1))) + (let ((inner300_0 + (if (expand-context/inner? + the-struct_0) + (let ((namespace302_0 + (namespace->namespace-at-phase + m-ns_0 + phase_0))) + (let ((stops303_0 + (free-id-set + phase_0 + (module-expand-stop-ids + phase_0)))) + (let ((lift-key305_0 + (generate-lift-key))) + (let ((lifts306_0 + (let ((temp310_0 + (let ((app_0 + defined-syms_0)) + (make-wrap-as-definition self_0 - requires+provides313_0)))) + frame-id_0 + inside-scope_0 + initial-require-s_0 + app_0 + requires+provides_0)))) + (make-lift-context.1 + #f + temp310_0)))) + (let ((module-lifts307_0 (begin-unsafe - (require-lift-context16.1 - do-require_0 + (module-lift-context15.1 phase_0 (box - null)))))) - (let ((to-module-lifts309_0 - (make-to-module-lift-context.1 - #f - module-ends_0 - phase_0))) - (let ((require-lifts308_1 - require-lifts308_0) - (module-lifts307_1 - module-lifts307_0) - (lifts306_1 - lifts306_0) - (lift-key305_1 - lift-key305_0) - (stops303_1 - stops303_0) - (namespace302_1 - namespace302_0)) - (expand-context/inner2.1 - (root-expand-context/inner-self-mpi - the-struct_0) - (root-expand-context/inner-module-scopes - the-struct_0) - (root-expand-context/inner-top-level-bind-scope - the-struct_0) - (root-expand-context/inner-all-scopes-stx - the-struct_0) - (root-expand-context/inner-defined-syms - the-struct_0) - (root-expand-context/inner-counter - the-struct_0) - lift-key305_1 - (expand-context/inner-to-parsed? - the-struct_0) - phase_0 - namespace302_1 - (expand-context/inner-just-once? - the-struct_0) - (expand-context/inner-module-begin-k - the-struct_0) - (expand-context/inner-allow-unbound? - the-struct_0) - (expand-context/inner-in-local-expand? - the-struct_0) - (|expand-context/inner-keep-#%expression?| - the-struct_0) - stops303_1 - declared-submodule-names_0 - lifts306_1 - (expand-context/inner-lift-envs - the-struct_0) - module-lifts307_1 - require-lifts308_1 - to-module-lifts309_0 - (expand-context/inner-requires+provides - the-struct_0) - (expand-context/inner-observer - the-struct_0) - (expand-context/inner-for-serializable? - the-struct_0) - (expand-context/inner-to-correlated-linklet? - the-struct_0) - (expand-context/inner-normalize-locals? - the-struct_0) - (expand-context/inner-parsing-expanded? - the-struct_0) - (expand-context/inner-skip-visit-available? - the-struct_0)))))))))) - (raise-argument-error - 'struct-copy - "expand-context/inner?" - the-struct_0)))) - (expand-context/outer1.1 - inner300_0 - (root-expand-context/outer-post-expansion - ctx_1) - (root-expand-context/outer-use-site-scopes - ctx_1) - (root-expand-context/outer-frame-id - ctx_1) - 'module - (expand-context/outer-env - ctx_1) - (expand-context/outer-scopes - ctx_1) - def-ctx-scopes_0 - (expand-context/outer-binding-layer - ctx_1) - (expand-context/outer-reference-records - ctx_1) - (expand-context/outer-only-immediate? - ctx_1) - need-eventually-defined_0 - (expand-context/outer-current-introduction-scopes - ctx_1) - (expand-context/outer-current-use-scopes - ctx_1) - (expand-context/outer-name - ctx_1)))) - (raise-argument-error - 'struct-copy - "expand-context/outer?" - ctx_1)))) - (let ((partially-expanded-bodys_0 - (let ((requires+provides324_0 - requires+provides_0)) - (let ((defined-syms327_0 - defined-syms_0)) - (let ((compiled-submodules330_0 - compiled-submodules_0)) - (let ((defined-syms327_1 - defined-syms327_0) - (requires+provides324_1 - requires+provides324_0)) - (partially-expand-bodys.1 - initial-require-s_0 - compiled-submodules330_0 - partial-body-ctx_0 - declared-keywords_0 - declared-submodule-names_0 - defined-syms327_1 - frame-id_0 - pass-1-and-2-loop_0 - modules-being-compiled_0 - mpis-to-reset_0 - m-ns_0 + null) + #t)))) + (let ((require-lifts308_0 + (make-require-lift-context + phase_0 + (let ((requires+provides313_0 + requires+provides_0)) + (make-parse-lifted-require.1 + declared-submodule-names_0 + m-ns_0 + self_0 + requires+provides313_0)) + initial-lifted-requires_1))) + (let ((to-module-lifts309_0 + (make-to-module-lift-context.1 + #f + module-ends_0 + phase_0))) + (let ((require-lifts308_1 + require-lifts308_0) + (module-lifts307_1 + module-lifts307_0) + (lifts306_1 + lifts306_0) + (lift-key305_1 + lift-key305_0) + (stops303_1 + stops303_0) + (namespace302_1 + namespace302_0)) + (expand-context/inner2.1 + (root-expand-context/inner-self-mpi + the-struct_0) + (root-expand-context/inner-module-scopes + the-struct_0) + (root-expand-context/inner-top-level-bind-scope + the-struct_0) + (root-expand-context/inner-all-scopes-stx + the-struct_0) + (root-expand-context/inner-defined-syms + the-struct_0) + (root-expand-context/inner-counter + the-struct_0) + lift-key305_1 + (expand-context/inner-to-parsed? + the-struct_0) + phase_0 + namespace302_1 + (expand-context/inner-just-once? + the-struct_0) + (expand-context/inner-module-begin-k + the-struct_0) + (expand-context/inner-allow-unbound? + the-struct_0) + (expand-context/inner-in-local-expand? + the-struct_0) + (|expand-context/inner-keep-#%expression?| + the-struct_0) + stops303_1 + declared-submodule-names_0 + lifts306_1 + (expand-context/inner-lift-envs + the-struct_0) + module-lifts307_1 + require-lifts308_1 + to-module-lifts309_0 + (expand-context/inner-requires+provides + the-struct_0) + (expand-context/inner-observer + the-struct_0) + (expand-context/inner-for-serializable? + the-struct_0) + (expand-context/inner-to-correlated-linklet? + the-struct_0) + (expand-context/inner-normalize-locals? + the-struct_0) + (expand-context/inner-parsing-expanded? + the-struct_0) + (expand-context/inner-skip-visit-available? + the-struct_0)))))))))) + (raise-argument-error + 'struct-copy + "expand-context/inner?" + the-struct_0)))) + (expand-context/outer1.1 + inner300_0 + (root-expand-context/outer-post-expansion + ctx_1) + (root-expand-context/outer-use-site-scopes + ctx_1) + (root-expand-context/outer-frame-id + ctx_1) + 'module + (expand-context/outer-env + ctx_1) + (expand-context/outer-scopes + ctx_1) + def-ctx-scopes_0 + (expand-context/outer-binding-layer + ctx_1) + (expand-context/outer-reference-records + ctx_1) + (expand-context/outer-only-immediate? + ctx_1) need-eventually-defined_0 - phase_0 - requires+provides324_1 - self_0 - bodys_1))))))) - (begin - (let ((obs_0 - (begin-unsafe - (expand-context/inner-observer - (root-expand-context/outer-inner - partial-body-ctx_0))))) - (if obs_0 - (call-expand-observe - obs_0 - 'next-group) - (void))) - (let ((body-ctx_0 - (let ((v_0 - (accumulate-def-ctx-scopes - partial-body-ctx_0 - def-ctx-scopes_0))) - (if (expand-context/outer? - v_0) - (let ((the-struct_0 - (root-expand-context/outer-inner - v_0))) - (let ((inner336_0 - (if (expand-context/inner? - the-struct_0) - (let ((stops337_0 - (if keep-stops?_0 - (begin-unsafe - (expand-context/inner-stops - (root-expand-context/outer-inner - ctx_1))) - empty-free-id-set))) - (let ((to-module-lifts338_0 - (make-to-module-lift-context.1 - #t - module-ends_0 - phase_0))) - (let ((stops337_1 - stops337_0)) - (expand-context/inner2.1 - (root-expand-context/inner-self-mpi - the-struct_0) - (root-expand-context/inner-module-scopes - the-struct_0) - (root-expand-context/inner-top-level-bind-scope - the-struct_0) - (root-expand-context/inner-all-scopes-stx - the-struct_0) - (root-expand-context/inner-defined-syms - the-struct_0) - (root-expand-context/inner-counter - the-struct_0) - (root-expand-context/inner-lift-key - the-struct_0) - (expand-context/inner-to-parsed? - the-struct_0) - (expand-context/inner-phase - the-struct_0) - (expand-context/inner-namespace - the-struct_0) - (expand-context/inner-just-once? - the-struct_0) - (expand-context/inner-module-begin-k - the-struct_0) - (expand-context/inner-allow-unbound? - the-struct_0) - (expand-context/inner-in-local-expand? - the-struct_0) - (|expand-context/inner-keep-#%expression?| - the-struct_0) - stops337_1 - (expand-context/inner-declared-submodule-names - the-struct_0) - (expand-context/inner-lifts - the-struct_0) - (expand-context/inner-lift-envs - the-struct_0) - (expand-context/inner-module-lifts - the-struct_0) - (expand-context/inner-require-lifts - the-struct_0) - to-module-lifts338_0 - (expand-context/inner-requires+provides - the-struct_0) - (expand-context/inner-observer - the-struct_0) - (expand-context/inner-for-serializable? - the-struct_0) - (expand-context/inner-to-correlated-linklet? - the-struct_0) - (expand-context/inner-normalize-locals? - the-struct_0) - (expand-context/inner-parsing-expanded? - the-struct_0) - (expand-context/inner-skip-visit-available? - the-struct_0))))) - (raise-argument-error - 'struct-copy - "expand-context/inner?" - the-struct_0)))) - (expand-context/outer1.1 - inner336_0 - #f - (root-expand-context/outer-use-site-scopes - v_0) - (root-expand-context/outer-frame-id - v_0) - (expand-context/outer-context - v_0) - (expand-context/outer-env - v_0) - (expand-context/outer-scopes - v_0) - #f - (expand-context/outer-binding-layer - v_0) - (expand-context/outer-reference-records - v_0) - (expand-context/outer-only-immediate? - v_0) - (expand-context/outer-need-eventually-defined - v_0) - (expand-context/outer-current-introduction-scopes - v_0) - (expand-context/outer-current-use-scopes - v_0) - (expand-context/outer-name - v_0)))) - (raise-argument-error - 'struct-copy - "expand-context/outer?" - v_0))))) - (let ((compiled-submodules294_0 - compiled-submodules_0)) - (finish-expanding-body-expressions.1 - compiled-submodules294_0 - body-ctx_0 - declared-submodule-names_0 - modules-being-compiled_0 - mpis-to-reset_0 - phase_0 - self_0 - partially-expanded-bodys_0)))))))))))) - (pass-1-and-2-loop_0 - body270_0 - 0 - (stop-at-module*? - ctx_1))))) - (begin - (let ((obs_0 - (begin-unsafe - (expand-context/inner-observer - (root-expand-context/outer-inner - ctx_1))))) - (if obs_0 - (call-expand-observe - obs_0 - 'next-group) - (void))) - (begin - (check-defined-by-now - need-eventually-defined_0 - self_0 - ctx_1 - requires+provides_0) + (expand-context/outer-current-introduction-scopes + ctx_1) + (expand-context/outer-current-use-scopes + ctx_1) + (expand-context/outer-name + ctx_1)))) + (raise-argument-error + 'struct-copy + "expand-context/outer?" + ctx_1)))) + (let ((partially-expanded-bodys_0 + (let ((requires+provides324_0 + requires+provides_0)) + (let ((defined-syms327_0 + defined-syms_0)) + (let ((compiled-submodules330_0 + compiled-submodules_0)) + (let ((defined-syms327_1 + defined-syms327_0) + (requires+provides324_1 + requires+provides324_0)) + (partially-expand-bodys.1 + initial-require-s_0 + compiled-submodules330_0 + partial-body-ctx_0 + declared-keywords_0 + declared-submodule-names_0 + defined-syms327_1 + frame-id_0 + pass-1-and-2-loop_0 + modules-being-compiled_0 + mpis-to-reset_0 + m-ns_0 + need-eventually-defined_0 + phase_0 + requires+provides324_1 + self_0 + bodys_1))))))) + (begin + (let ((obs_0 + (begin-unsafe + (expand-context/inner-observer + (root-expand-context/outer-inner + partial-body-ctx_0))))) + (if obs_0 + (call-expand-observe + obs_0 + 'next-group) + (void))) + (let ((body-ctx_0 + (let ((v_0 + (accumulate-def-ctx-scopes + partial-body-ctx_0 + def-ctx-scopes_0))) + (if (expand-context/outer? + v_0) + (let ((the-struct_0 + (root-expand-context/outer-inner + v_0))) + (let ((inner336_0 + (if (expand-context/inner? + the-struct_0) + (let ((stops337_0 + (if keep-stops?_0 + (begin-unsafe + (expand-context/inner-stops + (root-expand-context/outer-inner + ctx_1))) + empty-free-id-set))) + (let ((to-module-lifts338_0 + (make-to-module-lift-context.1 + #t + module-ends_0 + phase_0))) + (let ((stops337_1 + stops337_0)) + (expand-context/inner2.1 + (root-expand-context/inner-self-mpi + the-struct_0) + (root-expand-context/inner-module-scopes + the-struct_0) + (root-expand-context/inner-top-level-bind-scope + the-struct_0) + (root-expand-context/inner-all-scopes-stx + the-struct_0) + (root-expand-context/inner-defined-syms + the-struct_0) + (root-expand-context/inner-counter + the-struct_0) + (root-expand-context/inner-lift-key + the-struct_0) + (expand-context/inner-to-parsed? + the-struct_0) + (expand-context/inner-phase + the-struct_0) + (expand-context/inner-namespace + the-struct_0) + (expand-context/inner-just-once? + the-struct_0) + (expand-context/inner-module-begin-k + the-struct_0) + (expand-context/inner-allow-unbound? + the-struct_0) + (expand-context/inner-in-local-expand? + the-struct_0) + (|expand-context/inner-keep-#%expression?| + the-struct_0) + stops337_1 + (expand-context/inner-declared-submodule-names + the-struct_0) + (expand-context/inner-lifts + the-struct_0) + (expand-context/inner-lift-envs + the-struct_0) + (expand-context/inner-module-lifts + the-struct_0) + (expand-context/inner-require-lifts + the-struct_0) + to-module-lifts338_0 + (expand-context/inner-requires+provides + the-struct_0) + (expand-context/inner-observer + the-struct_0) + (expand-context/inner-for-serializable? + the-struct_0) + (expand-context/inner-to-correlated-linklet? + the-struct_0) + (expand-context/inner-normalize-locals? + the-struct_0) + (expand-context/inner-parsing-expanded? + the-struct_0) + (expand-context/inner-skip-visit-available? + the-struct_0))))) + (raise-argument-error + 'struct-copy + "expand-context/inner?" + the-struct_0)))) + (expand-context/outer1.1 + inner336_0 + #f + (root-expand-context/outer-use-site-scopes + v_0) + (root-expand-context/outer-frame-id + v_0) + (expand-context/outer-context + v_0) + (expand-context/outer-env + v_0) + (expand-context/outer-scopes + v_0) + #f + (expand-context/outer-binding-layer + v_0) + (expand-context/outer-reference-records + v_0) + (expand-context/outer-only-immediate? + v_0) + (expand-context/outer-need-eventually-defined + v_0) + (expand-context/outer-current-introduction-scopes + v_0) + (expand-context/outer-current-use-scopes + v_0) + (expand-context/outer-name + v_0)))) + (raise-argument-error + 'struct-copy + "expand-context/outer?" + v_0))))) + (let ((compiled-submodules294_0 + compiled-submodules_0)) + (finish-expanding-body-expressions.1 + compiled-submodules294_0 + body-ctx_0 + declared-submodule-names_0 + modules-being-compiled_0 + mpis-to-reset_0 + phase_0 + self_0 + partially-expanded-bodys_0)))))))))))) + (pass-1-and-2-loop_0 + body270_0 + 0 + (stop-at-module*? + ctx_1) + initial-lifted-requires_0)))) (begin (let ((obs_0 (begin-unsafe @@ -88714,232 +88715,249 @@ obs_0 'next-group) (void))) - (let ((fully-expanded-bodys-except-post-submodules_0 - (let ((requires+provides343_0 - requires+provides_0)) - (resolve-provides.1 - ctx_1 - declared-submodule-names_0 - m-ns_0 - 0 - requires+provides343_0 - self_0 - expression-expanded-bodys_0)))) - (let ((is-cross-phase-persistent?_0 - (hash-ref - declared-keywords_0 - kw2208 - #f))) - (begin - (if is-cross-phase-persistent?_0 - (begin - (if (requires+provides-can-cross-phase-persistent? - requires+provides_0) - (void) - (raise-syntax-error$1 - #f - "cannot be cross-phase persistent due to required modules" - rebuild-s_0 + (begin + (check-defined-by-now + need-eventually-defined_0 + self_0 + ctx_1 + requires+provides_0) + (begin + (let ((obs_0 + (begin-unsafe + (expand-context/inner-observer + (root-expand-context/outer-inner + ctx_1))))) + (if obs_0 + (call-expand-observe + obs_0 + 'next-group) + (void))) + (let ((fully-expanded-bodys-except-post-submodules_0 + (let ((requires+provides343_0 + requires+provides_0)) + (resolve-provides.1 + ctx_1 + declared-submodule-names_0 + m-ns_0 + 0 + requires+provides343_0 + self_0 + expression-expanded-bodys_0)))) + (let ((is-cross-phase-persistent?_0 (hash-ref declared-keywords_0 - kw2208))) - (check-cross-phase-persistent-form - fully-expanded-bodys-except-post-submodules_0 - self_0)) - (void)) - (begin - (let ((obs_0 - (begin-unsafe - (expand-context/inner-observer - (root-expand-context/outer-inner - ctx_1))))) - (if obs_0 - (call-expand-observe - obs_0 - 'next-group) - (void))) - (let ((submod-m-ns_0 - (make-m-ns_0 - #t - m-ns_0))) - (let ((submod-ctx_0 - (if (expand-context/outer? - ctx_1) - (let ((the-struct_0 + kw2208 + #f))) + (begin + (if is-cross-phase-persistent?_0 + (begin + (if (requires+provides-can-cross-phase-persistent? + requires+provides_0) + (void) + (raise-syntax-error$1 + #f + "cannot be cross-phase persistent due to required modules" + rebuild-s_0 + (hash-ref + declared-keywords_0 + kw2208))) + (check-cross-phase-persistent-form + fully-expanded-bodys-except-post-submodules_0 + self_0)) + (void)) + (begin + (let ((obs_0 + (begin-unsafe + (expand-context/inner-observer + (root-expand-context/outer-inner + ctx_1))))) + (if obs_0 + (call-expand-observe + obs_0 + 'next-group) + (void))) + (let ((submod-m-ns_0 + (make-m-ns_0 + #t + m-ns_0))) + (let ((submod-ctx_0 + (if (expand-context/outer? + ctx_1) + (let ((the-struct_0 + (root-expand-context/outer-inner + ctx_1))) + (let ((inner353_0 + (if (expand-context/inner? + the-struct_0) + (expand-context/inner2.1 + (root-expand-context/inner-self-mpi + the-struct_0) + (root-expand-context/inner-module-scopes + the-struct_0) + (root-expand-context/inner-top-level-bind-scope + the-struct_0) + (root-expand-context/inner-all-scopes-stx + the-struct_0) + (root-expand-context/inner-defined-syms + the-struct_0) + (root-expand-context/inner-counter + the-struct_0) + (root-expand-context/inner-lift-key + the-struct_0) + (expand-context/inner-to-parsed? + the-struct_0) + (expand-context/inner-phase + the-struct_0) + submod-m-ns_0 + (expand-context/inner-just-once? + the-struct_0) + (expand-context/inner-module-begin-k + the-struct_0) + (expand-context/inner-allow-unbound? + the-struct_0) + (expand-context/inner-in-local-expand? + the-struct_0) + (|expand-context/inner-keep-#%expression?| + the-struct_0) + (expand-context/inner-stops + the-struct_0) + (expand-context/inner-declared-submodule-names + the-struct_0) + (expand-context/inner-lifts + the-struct_0) + (expand-context/inner-lift-envs + the-struct_0) + (expand-context/inner-module-lifts + the-struct_0) + (expand-context/inner-require-lifts + the-struct_0) + (expand-context/inner-to-module-lifts + the-struct_0) + (expand-context/inner-requires+provides + the-struct_0) + (expand-context/inner-observer + the-struct_0) + (expand-context/inner-for-serializable? + the-struct_0) + (expand-context/inner-to-correlated-linklet? + the-struct_0) + (expand-context/inner-normalize-locals? + the-struct_0) + (expand-context/inner-parsing-expanded? + the-struct_0) + (expand-context/inner-skip-visit-available? + the-struct_0)) + (raise-argument-error + 'struct-copy + "expand-context/inner?" + the-struct_0)))) + (expand-context/outer1.1 + inner353_0 + #f + (root-expand-context/outer-use-site-scopes + ctx_1) + #f + (expand-context/outer-context + ctx_1) + (expand-context/outer-env + ctx_1) + (expand-context/outer-scopes + ctx_1) + (expand-context/outer-def-ctx-scopes + ctx_1) + (expand-context/outer-binding-layer + ctx_1) + (expand-context/outer-reference-records + ctx_1) + (expand-context/outer-only-immediate? + ctx_1) + (expand-context/outer-need-eventually-defined + ctx_1) + (expand-context/outer-current-introduction-scopes + ctx_1) + (expand-context/outer-current-use-scopes + ctx_1) + (expand-context/outer-name + ctx_1)))) + (raise-argument-error + 'struct-copy + "expand-context/outer?" + ctx_1)))) + (let ((declare-enclosing-module_0 + (promise1.1 + (lambda () + (let ((requires+provides358_0 + requires+provides_0)) + (let ((compiled-module-box365_0 + compiled-module-box_0)) + (let ((requires+provides358_1 + requires+provides358_0)) + (declare-module-for-expansion.1 + submod-ctx_0 + enclosing-self15_0 + compiled-module-box365_0 + id:module-name201_0 + modules-being-compiled_0 + submod-m-ns_0 + rebuild-s_0 + requires+provides358_1 + root-ctx_0 + self_0 + fully-expanded-bodys-except-post-submodules_0))))) + #f))) + (let ((fully-expanded-bodys_0 + (if (stop-at-module*? + submod-ctx_0) + fully-expanded-bodys-except-post-submodules_0 + (let ((requires+provides370_0 + requires+provides_0)) + (let ((compiled-submodules375_0 + compiled-submodules_0)) + (let ((requires+provides370_1 + requires+provides370_0)) + (expand-post-submodules.1 + initial-require-s_0 + compiled-submodules375_0 + submod-ctx_0 + declare-enclosing-module_0 + declared-submodule-names_0 + is-cross-phase-persistent?_0 + modules-being-compiled_0 + mpis-to-reset_0 + 0 + requires+provides370_1 + self_0 + fully-expanded-bodys-except-post-submodules_0))))))) + (if (begin-unsafe + (expand-context/inner-to-parsed? (root-expand-context/outer-inner - ctx_1))) - (let ((inner353_0 - (if (expand-context/inner? - the-struct_0) - (expand-context/inner2.1 - (root-expand-context/inner-self-mpi - the-struct_0) - (root-expand-context/inner-module-scopes - the-struct_0) - (root-expand-context/inner-top-level-bind-scope - the-struct_0) - (root-expand-context/inner-all-scopes-stx - the-struct_0) - (root-expand-context/inner-defined-syms - the-struct_0) - (root-expand-context/inner-counter - the-struct_0) - (root-expand-context/inner-lift-key - the-struct_0) - (expand-context/inner-to-parsed? - the-struct_0) - (expand-context/inner-phase - the-struct_0) - submod-m-ns_0 - (expand-context/inner-just-once? - the-struct_0) - (expand-context/inner-module-begin-k - the-struct_0) - (expand-context/inner-allow-unbound? - the-struct_0) - (expand-context/inner-in-local-expand? - the-struct_0) - (|expand-context/inner-keep-#%expression?| - the-struct_0) - (expand-context/inner-stops - the-struct_0) - (expand-context/inner-declared-submodule-names - the-struct_0) - (expand-context/inner-lifts - the-struct_0) - (expand-context/inner-lift-envs - the-struct_0) - (expand-context/inner-module-lifts - the-struct_0) - (expand-context/inner-require-lifts - the-struct_0) - (expand-context/inner-to-module-lifts - the-struct_0) - (expand-context/inner-requires+provides - the-struct_0) - (expand-context/inner-observer - the-struct_0) - (expand-context/inner-for-serializable? - the-struct_0) - (expand-context/inner-to-correlated-linklet? - the-struct_0) - (expand-context/inner-normalize-locals? - the-struct_0) - (expand-context/inner-parsing-expanded? - the-struct_0) - (expand-context/inner-skip-visit-available? - the-struct_0)) - (raise-argument-error - 'struct-copy - "expand-context/inner?" - the-struct_0)))) - (expand-context/outer1.1 - inner353_0 - #f - (root-expand-context/outer-use-site-scopes - ctx_1) - #f - (expand-context/outer-context - ctx_1) - (expand-context/outer-env - ctx_1) - (expand-context/outer-scopes - ctx_1) - (expand-context/outer-def-ctx-scopes - ctx_1) - (expand-context/outer-binding-layer - ctx_1) - (expand-context/outer-reference-records - ctx_1) - (expand-context/outer-only-immediate? - ctx_1) - (expand-context/outer-need-eventually-defined - ctx_1) - (expand-context/outer-current-introduction-scopes - ctx_1) - (expand-context/outer-current-use-scopes - ctx_1) - (expand-context/outer-name - ctx_1)))) - (raise-argument-error - 'struct-copy - "expand-context/outer?" - ctx_1)))) - (let ((declare-enclosing-module_0 - (promise1.1 - (lambda () - (let ((requires+provides358_0 - requires+provides_0)) - (let ((compiled-module-box365_0 - compiled-module-box_0)) - (let ((requires+provides358_1 - requires+provides358_0)) - (declare-module-for-expansion.1 - submod-ctx_0 - enclosing-self15_0 - compiled-module-box365_0 - id:module-name201_0 - modules-being-compiled_0 - submod-m-ns_0 - rebuild-s_0 - requires+provides358_1 - root-ctx_0 - self_0 - fully-expanded-bodys-except-post-submodules_0))))) - #f))) - (let ((fully-expanded-bodys_0 - (if (stop-at-module*? - submod-ctx_0) - fully-expanded-bodys-except-post-submodules_0 - (let ((requires+provides370_0 - requires+provides_0)) - (let ((compiled-submodules375_0 - compiled-submodules_0)) - (let ((requires+provides370_1 - requires+provides370_0)) - (expand-post-submodules.1 - initial-require-s_0 - compiled-submodules375_0 - submod-ctx_0 - declare-enclosing-module_0 - declared-submodule-names_0 - is-cross-phase-persistent?_0 - modules-being-compiled_0 - mpis-to-reset_0 - 0 - requires+provides370_1 - self_0 - fully-expanded-bodys-except-post-submodules_0))))))) - (if (begin-unsafe - (expand-context/inner-to-parsed? - (root-expand-context/outer-inner - submod-ctx_0))) - (|parsed-#%module-begin24.1| - rebuild-mb-s_0 - (parsed-only - fully-expanded-bodys_0)) - (let ((mb-result-s_0 - (let ((temp379_0 - (list* - |#%module-begin269_0| - (syntax-only - fully-expanded-bodys_0)))) - (rebuild.1 - #t + submod-ctx_0))) + (|parsed-#%module-begin24.1| + rebuild-mb-s_0 + (parsed-only + fully-expanded-bodys_0)) + (let ((mb-result-s_0 + (let ((temp379_0 + (list* + |#%module-begin269_0| + (syntax-only + fully-expanded-bodys_0)))) + (rebuild.1 + #t + rebuild-mb-s_0 + temp379_0)))) + (if (not + (begin-unsafe + (expand-context/inner-in-local-expand? + (root-expand-context/outer-inner + submod-ctx_0)))) + (expanded+parsed1.1 + mb-result-s_0 + (|parsed-#%module-begin24.1| rebuild-mb-s_0 - temp379_0)))) - (if (not - (begin-unsafe - (expand-context/inner-in-local-expand? - (root-expand-context/outer-inner - submod-ctx_0)))) - (expanded+parsed1.1 - mb-result-s_0 - (|parsed-#%module-begin24.1| - rebuild-mb-s_0 - (parsed-only - fully-expanded-bodys_0))) - mb-result-s_0)))))))))))))))))))))) + (parsed-only + fully-expanded-bodys_0))) + mb-result-s_0)))))))))))))))))))))))) (args (raise-binding-result-arity-error 3 @@ -88953,59 +88971,73 @@ (let ((inner381_0 (if (expand-context/inner? the-struct_0) - (expand-context/inner2.1 - (root-expand-context/inner-self-mpi - the-struct_0) - (root-expand-context/inner-module-scopes - the-struct_0) - (root-expand-context/inner-top-level-bind-scope - the-struct_0) - (root-expand-context/inner-all-scopes-stx - the-struct_0) - (root-expand-context/inner-defined-syms - the-struct_0) - (root-expand-context/inner-counter - the-struct_0) - (root-expand-context/inner-lift-key - the-struct_0) - (expand-context/inner-to-parsed? - the-struct_0) - (expand-context/inner-phase - the-struct_0) - (expand-context/inner-namespace - the-struct_0) - (expand-context/inner-just-once? - the-struct_0) - module-begin-k_0 - (expand-context/inner-allow-unbound? - the-struct_0) - #f - (|expand-context/inner-keep-#%expression?| - the-struct_0) - (expand-context/inner-stops - the-struct_0) - (expand-context/inner-declared-submodule-names - the-struct_0) - #f - (expand-context/inner-lift-envs - the-struct_0) - #f - #f - #f - (expand-context/inner-requires+provides - the-struct_0) - (expand-context/inner-observer - the-struct_0) - (expand-context/inner-for-serializable? - the-struct_0) - (expand-context/inner-to-correlated-linklet? - the-struct_0) - (expand-context/inner-normalize-locals? - the-struct_0) - (expand-context/inner-parsing-expanded? - the-struct_0) - (expand-context/inner-skip-visit-available? - the-struct_0)) + (let ((require-lifts387_0 + (make-require-lift-context + 0 + (let ((requires+provides390_0 + requires+provides_0)) + (let ((temp391_0 + (make-hasheq))) + (let ((requires+provides390_1 + requires+provides390_0)) + (make-parse-lifted-require.1 + temp391_0 + m-ns_0 + self_0 + requires+provides390_1))))))) + (expand-context/inner2.1 + (root-expand-context/inner-self-mpi + the-struct_0) + (root-expand-context/inner-module-scopes + the-struct_0) + (root-expand-context/inner-top-level-bind-scope + the-struct_0) + (root-expand-context/inner-all-scopes-stx + the-struct_0) + (root-expand-context/inner-defined-syms + the-struct_0) + (root-expand-context/inner-counter + the-struct_0) + (root-expand-context/inner-lift-key + the-struct_0) + (expand-context/inner-to-parsed? + the-struct_0) + (expand-context/inner-phase + the-struct_0) + (expand-context/inner-namespace + the-struct_0) + (expand-context/inner-just-once? + the-struct_0) + module-begin-k_0 + (expand-context/inner-allow-unbound? + the-struct_0) + #f + (|expand-context/inner-keep-#%expression?| + the-struct_0) + (expand-context/inner-stops + the-struct_0) + (expand-context/inner-declared-submodule-names + the-struct_0) + #f + (expand-context/inner-lift-envs + the-struct_0) + #f + require-lifts387_0 + #f + (expand-context/inner-requires+provides + the-struct_0) + (expand-context/inner-observer + the-struct_0) + (expand-context/inner-for-serializable? + the-struct_0) + (expand-context/inner-to-correlated-linklet? + the-struct_0) + (expand-context/inner-normalize-locals? + the-struct_0) + (expand-context/inner-parsing-expanded? + the-struct_0) + (expand-context/inner-skip-visit-available? + the-struct_0))) (raise-argument-error 'struct-copy "expand-context/inner?" @@ -89081,18 +89113,18 @@ 'module-begin) (void)) (begin0 - (let ((temp397_0 + (let ((temp401_0 (let ((v_0 (accumulate-def-ctx-scopes mb-ctx_0 mb-def-ctx-scopes_0))) (if (expand-context/outer? v_0) - (let ((inner399_0 + (let ((inner403_0 (root-expand-context/outer-inner v_0))) (expand-context/outer1.1 - inner399_0 + inner403_0 (root-expand-context/outer-post-expansion v_0) (root-expand-context/outer-use-site-scopes @@ -89128,7 +89160,7 @@ #f #f mb_0 - temp397_0)) + temp401_0)) (if log-performance? (end-performance-region) (void)))))) @@ -89220,7 +89252,7 @@ (for-loop_0 lst_0)))) (void) - (let ((temp401_0 + (let ((temp405_0 (list module200_0 id:module-name201_0 @@ -89231,7 +89263,7 @@ (rebuild.1 #t rebuild-s_0 - temp401_0))) + temp405_0))) (let ((result-s_1 (syntax-module-path-index-shift.1 #f @@ -89300,10 +89332,10 @@ (lambda () (begin (if (expand-context/outer? ctx20_0) - (let ((inner408_0 + (let ((inner412_0 (root-expand-context/outer-inner ctx20_0))) (expand-context/outer1.1 - inner408_0 + inner412_0 (root-expand-context/outer-post-expansion ctx20_0) (root-expand-context/outer-use-site-scopes ctx20_0) (root-expand-context/outer-frame-id ctx20_0) @@ -89359,8 +89391,8 @@ 'module-begin) (void)) (begin0 - (let ((temp410_0 (make-mb-ctx_0))) - (expand.1 #f #f named-body-s_0 temp410_0)) + (let ((temp414_0 (make-mb-ctx_0))) + (expand.1 #f #f named-body-s_0 temp414_0)) (if log-performance? (end-performance-region) (void)))))) @@ -89370,18 +89402,18 @@ (syntax-disarm$1 partly-expanded-body_0) phase22_0)) partly-expanded-body_0 - (let ((temp411_0 (list partly-expanded-body_0))) - (let ((temp416_0 (make-mb-ctx_0))) - (let ((temp411_1 temp411_0)) + (let ((temp415_0 (list partly-expanded-body_0))) + (let ((temp420_0 (make-mb-ctx_0))) + (let ((temp415_1 temp415_0)) (add-module-begin.1 #f - temp411_1 + temp415_1 s23_0 scopes-s18_0 phase22_0 module-name-sym17_0 - temp416_0))))))))) - (let ((temp423_0 (make-mb-ctx_0))) + temp420_0))))))))) + (let ((temp427_0 (make-mb-ctx_0))) (add-module-begin.1 #t bodys31_0 @@ -89389,7 +89421,7 @@ scopes-s18_0 phase22_0 module-name-sym17_0 - temp423_0))))) + temp427_0))))) (let ((named-mb_0 (begin-unsafe (syntax-property$1 @@ -89527,15 +89559,15 @@ enclosing-mod_0 #f) s-with-edges_0))) - (let ((temp429_0 (make-generic-self-module-path-index self_0))) - (let ((temp431_0 (current-code-inspector))) - (let ((temp429_1 temp429_0)) + (let ((temp433_0 (make-generic-self-module-path-index self_0))) + (let ((temp435_0 (current-code-inspector))) + (let ((temp433_1 temp433_0)) (syntax-module-path-index-shift.1 #f s-with-suitable-enclosing_0 - temp429_1 + temp433_1 self_0 - temp431_0))))))) + temp435_0))))))) (if log-performance? (end-performance-region) (void))))))) (define partially-expand-bodys.1 (|#%name| @@ -89624,8 +89656,8 @@ 'form-in-module/1) (void)) (begin0 - (let ((temp435_0 (car bodys_0))) - (expand.1 #f #f temp435_0 ctx43_0)) + (let ((temp439_0 (car bodys_0))) + (expand.1 #f #f temp439_0 ctx43_0)) (if log-performance? (end-performance-region) (void)))))) @@ -89737,12 +89769,12 @@ disarmed-exp-body_0))) (if (pair? s_0) - (let ((begin439_0 + (let ((begin443_0 (let ((s_1 (car s_0))) s_1))) - (let ((e440_0 + (let ((e444_0 (let ((s_1 (cdr s_0))) @@ -89762,30 +89794,30 @@ "bad syntax" disarmed-exp-body_0) flat-s_0)))))) - (let ((begin439_1 - begin439_0)) + (let ((begin443_1 + begin443_0)) (values - begin439_1 - e440_0)))) + begin443_1 + e444_0)))) (raise-syntax-error$1 #f "bad syntax" disarmed-exp-body_0)))) (case-lambda - ((begin437_0 - e438_0) + ((begin441_0 + e442_0) (values #t - begin437_0 - e438_0)) + begin441_0 + e442_0)) (args (raise-binding-result-arity-error 2 args))))) (case-lambda ((ok?_0 - begin437_0 - e438_0) + begin441_0 + e442_0) (let ((track_0 (|#%name| track @@ -89798,7 +89830,7 @@ (append (map_1346 track_0 - e438_0) + e442_0) rest-bodys_0))) (begin (let ((obs_0 @@ -89846,12 +89878,12 @@ disarmed-exp-body_0))) (if (pair? s_0) - (let ((begin-for-syntax443_0 + (let ((begin-for-syntax447_0 (let ((s_1 (car s_0))) s_1))) - (let ((e444_0 + (let ((e448_0 (let ((s_1 (cdr s_0))) @@ -89871,30 +89903,30 @@ "bad syntax" disarmed-exp-body_0) flat-s_0)))))) - (let ((begin-for-syntax443_1 - begin-for-syntax443_0)) + (let ((begin-for-syntax447_1 + begin-for-syntax447_0)) (values - begin-for-syntax443_1 - e444_0)))) + begin-for-syntax447_1 + e448_0)))) (raise-syntax-error$1 #f "bad syntax" disarmed-exp-body_0)))) (case-lambda - ((begin-for-syntax441_0 - e442_0) + ((begin-for-syntax445_0 + e446_0) (values #t - begin-for-syntax441_0 - e442_0)) + begin-for-syntax445_0 + e446_0)) (args (raise-binding-result-arity-error 2 args))))) (case-lambda ((ok?_0 - begin-for-syntax441_0 - e442_0) + begin-for-syntax445_0 + e446_0) (begin (let ((obs_0 (begin-unsafe @@ -89928,10 +89960,11 @@ (let ((nested-bodys_0 (|#%app| loop56_0 - e442_0 + e446_0 (add1 phase42_0) - #f))) + #f + null))) (begin (let ((obs_0 (begin-unsafe @@ -90000,7 +90033,7 @@ null nested-bodys_0)))))) (cons - begin-for-syntax441_0 + begin-for-syntax445_0 s-nested-bodys_0))) (void))) (let ((app_0 @@ -90043,7 +90076,7 @@ disarmed-exp-body_0))) (if (pair? s_0) - (let ((define-values448_0 + (let ((define-values452_0 (let ((s_1 (car s_0))) @@ -90061,7 +90094,7 @@ s_1))) (if (pair? s_2) - (let ((id451_0 + (let ((id455_0 (let ((s_3 (car s_2))) @@ -90099,7 +90132,7 @@ lst_0))) (let ((id_1 (let ((id_1 - (let ((id464_0 + (let ((id468_0 (if (let ((or-part_0 (if (syntax?$1 s_5) @@ -90118,7 +90151,7 @@ disarmed-exp-body_0 s_5)))) (cons - id464_0 + id468_0 id_0)))) (values id_1)))) @@ -90131,7 +90164,7 @@ flat-s_0))))) (reverse$1 id_0)))))))) - (let ((rhs452_0 + (let ((rhs456_0 (let ((s_3 (cdr s_2))) @@ -90143,7 +90176,7 @@ s_3))) (if (pair? s_4) - (let ((rhs453_0 + (let ((rhs457_0 (let ((s_5 (car s_4))) @@ -90168,10 +90201,10 @@ disarmed-exp-body_0))))) (case-lambda (() - (let ((rhs453_1 - rhs453_0)) + (let ((rhs457_1 + rhs457_0)) (values - rhs453_1))) + rhs457_1))) (args (raise-binding-result-arity-error 0 @@ -90180,24 +90213,24 @@ #f "bad syntax" disarmed-exp-body_0)))))) - (let ((id451_1 - id451_0)) + (let ((id455_1 + id455_0)) (values - id451_1 - rhs452_0)))) + id455_1 + rhs456_0)))) (raise-syntax-error$1 #f "bad syntax" disarmed-exp-body_0))))) (case-lambda - ((id449_0 - rhs450_0) - (let ((define-values448_1 - define-values448_0)) + ((id453_0 + rhs454_0) + (let ((define-values452_1 + define-values452_0)) (values - define-values448_1 - id449_0 - rhs450_0))) + define-values452_1 + id453_0 + rhs454_0))) (args (raise-binding-result-arity-error 2 @@ -90207,26 +90240,26 @@ "bad syntax" disarmed-exp-body_0)))) (case-lambda - ((define-values445_0 - id446_0 - rhs447_0) + ((define-values449_0 + id450_0 + rhs451_0) (values #t - define-values445_0 - id446_0 - rhs447_0)) + define-values449_0 + id450_0 + rhs451_0)) (args (raise-binding-result-arity-error 3 args))))) (case-lambda ((ok?_0 - define-values445_0 - id446_0 - rhs447_0) + define-values449_0 + id450_0 + rhs451_0) (let ((ids_0 (remove-use-site-scopes - id446_0 + id450_0 ctx43_0))) (begin (check-no-duplicate-ids.1 @@ -90295,16 +90328,16 @@ obs_0 'exit-case (list - define-values445_0 + define-values449_0 ids_0 - rhs447_0)) + rhs451_0)) (void))) (let ((app_0 (semi-parsed-define-values2.1 exp-body_0 syms_0 ids_0 - rhs447_0))) + rhs451_0))) (cons app_0 (loop_0 @@ -90341,7 +90374,7 @@ disarmed-exp-body_0))) (if (pair? s_0) - (let ((define-syntaxes476_0 + (let ((define-syntaxes480_0 (let ((s_1 (car s_0))) @@ -90359,7 +90392,7 @@ s_1))) (if (pair? s_2) - (let ((id479_0 + (let ((id483_0 (let ((s_3 (car s_2))) @@ -90397,7 +90430,7 @@ lst_0))) (let ((id_1 (let ((id_1 - (let ((id493_0 + (let ((id497_0 (if (let ((or-part_0 (if (syntax?$1 s_5) @@ -90416,7 +90449,7 @@ disarmed-exp-body_0 s_5)))) (cons - id493_0 + id497_0 id_0)))) (values id_1)))) @@ -90429,7 +90462,7 @@ flat-s_0))))) (reverse$1 id_0)))))))) - (let ((rhs480_0 + (let ((rhs484_0 (let ((s_3 (cdr s_2))) @@ -90441,7 +90474,7 @@ s_3))) (if (pair? s_4) - (let ((rhs481_0 + (let ((rhs485_0 (let ((s_5 (car s_4))) @@ -90466,10 +90499,10 @@ disarmed-exp-body_0))))) (case-lambda (() - (let ((rhs481_1 - rhs481_0)) + (let ((rhs485_1 + rhs485_0)) (values - rhs481_1))) + rhs485_1))) (args (raise-binding-result-arity-error 0 @@ -90478,24 +90511,24 @@ #f "bad syntax" disarmed-exp-body_0)))))) - (let ((id479_1 - id479_0)) + (let ((id483_1 + id483_0)) (values - id479_1 - rhs480_0)))) + id483_1 + rhs484_0)))) (raise-syntax-error$1 #f "bad syntax" disarmed-exp-body_0))))) (case-lambda - ((id477_0 - rhs478_0) - (let ((define-syntaxes476_1 - define-syntaxes476_0)) + ((id481_0 + rhs482_0) + (let ((define-syntaxes480_1 + define-syntaxes480_0)) (values - define-syntaxes476_1 - id477_0 - rhs478_0))) + define-syntaxes480_1 + id481_0 + rhs482_0))) (args (raise-binding-result-arity-error 2 @@ -90505,23 +90538,23 @@ "bad syntax" disarmed-exp-body_0)))) (case-lambda - ((define-syntaxes473_0 - id474_0 - rhs475_0) + ((define-syntaxes477_0 + id478_0 + rhs479_0) (values #t - define-syntaxes473_0 - id474_0 - rhs475_0)) + define-syntaxes477_0 + id478_0 + rhs479_0)) (args (raise-binding-result-arity-error 3 args))))) (case-lambda ((ok?_0 - define-syntaxes473_0 - id474_0 - rhs475_0) + define-syntaxes477_0 + id478_0 + rhs479_0) (begin (let ((obs_0 (begin-unsafe @@ -90549,7 +90582,7 @@ (void))) (let ((ids_0 (remove-use-site-scopes - id474_0 + id478_0 ctx43_0))) (begin (check-no-duplicate-ids.1 @@ -90584,13 +90617,13 @@ phase42_0) (call-with-values (lambda () - (let ((temp506_0 + (let ((temp510_0 (if (expand-context/outer? ctx43_0) (let ((the-struct_0 (root-expand-context/outer-inner ctx43_0))) - (let ((inner509_0 + (let ((inner513_0 (if (expand-context/inner? the-struct_0) (expand-context/inner2.1 @@ -90654,7 +90687,7 @@ "expand-context/inner?" the-struct_0)))) (expand-context/outer1.1 - inner509_0 + inner513_0 (root-expand-context/outer-post-expansion ctx43_0) (root-expand-context/outer-use-site-scopes @@ -90689,9 +90722,9 @@ (expand+eval-for-syntaxes-binding.1 #f 'define-syntaxes - rhs475_0 + rhs479_0 ids_0 - temp506_0))) + temp510_0))) (case-lambda ((exp-rhs_0 parsed-rhs_0 @@ -90764,7 +90797,7 @@ obs_0 'exit-case (list - define-syntaxes473_0 + define-syntaxes477_0 ids_0 exp-rhs_0)) (void))) @@ -90782,15 +90815,15 @@ ctx43_0))) parsed-body_0 (expanded+parsed1.1 - (let ((temp514_0 + (let ((temp518_0 (list - define-syntaxes473_0 + define-syntaxes477_0 ids_0 exp-rhs_0))) (rebuild.1 #t exp-body_0 - temp514_0)) + temp518_0)) parsed-body_0)))) (cons app_0 @@ -90836,12 +90869,12 @@ ready-body_0))) (if (pair? s_0) - (let ((|#%require517_0| + (let ((|#%require521_0| (let ((s_1 (car s_0))) s_1))) - (let ((req518_0 + (let ((req522_0 (let ((s_1 (cdr s_0))) @@ -90861,30 +90894,30 @@ "bad syntax" ready-body_0) flat-s_0)))))) - (let ((|#%require517_1| - |#%require517_0|)) + (let ((|#%require521_1| + |#%require521_0|)) (values - |#%require517_1| - req518_0)))) + |#%require521_1| + req522_0)))) (raise-syntax-error$1 #f "bad syntax" ready-body_0)))) (case-lambda - ((|#%require515_0| - req516_0) + ((|#%require519_0| + req520_0) (values #t - |#%require515_0| - req516_0)) + |#%require519_0| + req520_0)) (args (raise-binding-result-arity-error 2 args))))) (case-lambda ((ok?_0 - |#%require515_0| - req516_0) + |#%require519_0| + req520_0) (begin (parse-and-perform-requires!.1 #f @@ -90897,7 +90930,7 @@ #f #t 'module - req516_0 + req520_0 exp-body_0 namespace44_0 phase42_0 @@ -91026,12 +91059,12 @@ disarmed-exp-body_0))) (if (pair? s_0) - (let ((|#%declare538_0| + (let ((|#%declare542_0| (let ((s_1 (car s_0))) s_1))) - (let ((kw539_0 + (let ((kw543_0 (let ((s_1 (cdr s_0))) @@ -91051,30 +91084,30 @@ "bad syntax" disarmed-exp-body_0) flat-s_0)))))) - (let ((|#%declare538_1| - |#%declare538_0|)) + (let ((|#%declare542_1| + |#%declare542_0|)) (values - |#%declare538_1| - kw539_0)))) + |#%declare542_1| + kw543_0)))) (raise-syntax-error$1 #f "bad syntax" disarmed-exp-body_0)))) (case-lambda - ((|#%declare536_0| - kw537_0) + ((|#%declare540_0| + kw541_0) (values #t - |#%declare536_0| - kw537_0)) + |#%declare540_0| + kw541_0)) (args (raise-binding-result-arity-error 2 args))))) (case-lambda ((ok?_0 - |#%declare536_0| - kw537_0) + |#%declare540_0| + kw541_0) (begin (begin (letrec* @@ -91146,7 +91179,7 @@ rest_0)))) (values))))))) (for-loop_0 - kw537_0))) + kw541_0))) (let ((parsed-body_0 (|parsed-#%declare22.1| exp-body_0))) @@ -91393,7 +91426,7 @@ (syntax-e$1 s_1) s_1))) (if (pair? s_2) - (let ((define-values550_0 + (let ((define-values554_0 (let ((s_3 (car s_2))) @@ -91475,10 +91508,10 @@ s_1))))) (case-lambda ((_0 _1) - (let ((define-values550_1 - define-values550_0)) + (let ((define-values554_1 + define-values554_0)) (values - define-values550_1 + define-values554_1 _0 _1))) (args @@ -91490,10 +91523,10 @@ "bad syntax" s_1)))) (case-lambda - ((define-values547_0 _0 _1) + ((define-values551_0 _0 _1) (values #t - define-values547_0 + define-values551_0 _0 _1)) (args @@ -91502,7 +91535,7 @@ args)))) (values #f #f #f #f)))) (case-lambda - ((ok?_0 define-values547_0 _0 _1) + ((ok?_0 define-values551_0 _0 _1) (let ((rebuild-s_0 (keep-as-needed.1 #f @@ -91539,13 +91572,13 @@ 'form-in-module/2) (void)) (begin0 - (let ((temp559_0 + (let ((temp563_0 (semi-parsed-define-values-rhs body_0))) (expand.1 #f #f - temp559_0 + temp563_0 rhs-ctx_0)) (if log-performance? (end-performance-region) @@ -91572,29 +91605,29 @@ (root-expand-context/outer-inner rhs-ctx_0))) exp-rhs_0 - (let ((temp562_0 + (let ((temp566_0 (as-to-parsed-context rhs-ctx_0))) (expand.1 #f #f exp-rhs_0 - temp562_0)))))) + temp566_0)))))) (if (begin-unsafe (expand-context/inner-to-parsed? (root-expand-context/outer-inner rhs-ctx_0))) comp-form_0 (expanded+parsed1.1 - (let ((temp564_0 + (let ((temp568_0 (list - define-values547_0 + define-values551_0 ids_0 exp-rhs_0))) (rebuild.1 #t rebuild-s_0 - temp564_0)) + temp568_0)) comp-form_0)))))))) (args (raise-binding-result-arity-error @@ -91620,14 +91653,14 @@ (void)) (begin0 (let ((exp-body_0 - (let ((temp566_0 + (let ((temp570_0 (as-expression-context ctx75_0))) (expand.1 #f #f body_0 - temp566_0)))) + temp570_0)))) (if (begin-unsafe (expand-context/inner-to-parsed? (root-expand-context/outer-inner @@ -91635,14 +91668,14 @@ exp-body_0 (expanded+parsed1.1 exp-body_0 - (let ((temp568_0 + (let ((temp572_0 (as-to-parsed-context ctx75_0))) (expand.1 #f #f exp-body_0 - temp568_0))))) + temp572_0))))) (if log-performance? (end-performance-region) (void))))))))))) @@ -91967,9 +92000,9 @@ (syntax-e$1 disarmed-body_0) disarmed-body_0))) (if (pair? s_0) - (let ((|#%provide582_0| + (let ((|#%provide586_0| (let ((s_1 (car s_0))) s_1))) - (let ((spec583_0 + (let ((spec587_0 (let ((s_1 (cdr s_0))) (let ((s_2 (if (syntax?$1 @@ -91985,29 +92018,29 @@ "bad syntax" disarmed-body_0) flat-s_0)))))) - (let ((|#%provide582_1| - |#%provide582_0|)) + (let ((|#%provide586_1| + |#%provide586_0|)) (values - |#%provide582_1| - spec583_0)))) + |#%provide586_1| + spec587_0)))) (raise-syntax-error$1 #f "bad syntax" disarmed-body_0)))) (case-lambda - ((|#%provide580_0| spec581_0) - (values #t |#%provide580_0| spec581_0)) + ((|#%provide584_0| spec585_0) + (values #t |#%provide584_0| spec585_0)) (args (raise-binding-result-arity-error 2 args))))) (case-lambda - ((ok?_0 |#%provide580_0| spec581_0) + ((ok?_0 |#%provide584_0| spec585_0) (call-with-values (lambda () (let ((app_0 (car bodys_0))) (parse-and-expand-provides! - spec581_0 + spec585_0 app_0 requires-and-provides90_0 self94_0 @@ -92016,10 +92049,10 @@ (let ((the-struct_0 (root-expand-context/outer-inner ctx95_0))) - (let ((inner585_0 + (let ((inner589_0 (if (expand-context/inner? the-struct_0) - (let ((namespace587_0 + (let ((namespace591_0 (namespace->namespace-at-phase namespace92_0 phase_0))) @@ -92041,7 +92074,7 @@ (expand-context/inner-to-parsed? the-struct_0) phase_0 - namespace587_0 + namespace591_0 (expand-context/inner-just-once? the-struct_0) (expand-context/inner-module-begin-k @@ -92083,7 +92116,7 @@ "expand-context/inner?" the-struct_0)))) (expand-context/outer1.1 - inner585_0 + inner589_0 (root-expand-context/outer-post-expansion ctx95_0) (root-expand-context/outer-use-site-scopes @@ -92125,18 +92158,18 @@ (let ((new-s_0 (syntax-track-origin* track-stxes_0 - (let ((temp590_0 + (let ((temp594_0 (car bodys_0))) - (let ((temp591_0 + (let ((temp595_0 (list* - |#%provide580_0| + |#%provide584_0| specs_0))) - (let ((temp590_1 - temp590_0)) + (let ((temp594_1 + temp594_0)) (rebuild.1 #t - temp590_1 - temp591_0))))))) + temp594_1 + temp595_0))))))) (begin (let ((obs_0 (begin-unsafe @@ -92230,37 +92263,37 @@ (1/module-path-index-resolve (if enclosing109_0 enclosing109_0 self108_0)))) (let ((compiled-module_0 - (let ((temp593_0 - (let ((temp600_0 + (let ((temp597_0 + (let ((temp604_0 (if enclosing109_0 (1/resolved-module-path-name module-name_0) #f))) (make-compile-context.1 - temp600_0 + temp604_0 unsafe-undefined enclosing109_0 namespace107_0 unsafe-undefined unsafe-undefined)))) - (let ((temp594_0 + (let ((temp598_0 (begin-unsafe (expand-context/inner-for-serializable? (root-expand-context/outer-inner ctx111_0))))) - (let ((temp595_0 + (let ((temp599_0 (begin-unsafe (expand-context/inner-to-correlated-linklet? (root-expand-context/outer-inner ctx111_0))))) - (let ((temp594_1 temp594_0) (temp593_1 temp593_0)) + (let ((temp598_1 temp598_0) (temp597_1 temp597_0)) (compile-module.1 #f modules-being-compiled112_0 #f - temp594_1 - temp595_0 + temp598_1 + temp599_0 parsed-mod_0 - temp593_1))))))) + temp597_1))))))) (begin (set-box! fill113_0 compiled-module_0) (let ((root-module-name_0 @@ -92352,7 +92385,7 @@ (syntax-e$1 s_0) s_0))) (if (pair? s_1) - (let ((begin-for-syntax605_0 + (let ((begin-for-syntax609_0 (let ((s_2 (car s_1))) s_2))) (let ((_0 (let ((s_2 (cdr s_1))) @@ -92369,24 +92402,24 @@ "bad syntax" s_0) flat-s_0)))))) - (let ((begin-for-syntax605_1 - begin-for-syntax605_0)) + (let ((begin-for-syntax609_1 + begin-for-syntax609_0)) (values - begin-for-syntax605_1 + begin-for-syntax609_1 _0)))) (raise-syntax-error$1 #f "bad syntax" s_0)))) (case-lambda - ((begin-for-syntax603_0 _0) - (values #t begin-for-syntax603_0 _0)) + ((begin-for-syntax607_0 _0) + (values #t begin-for-syntax607_0 _0)) (args (raise-binding-result-arity-error 2 args)))))) (case-lambda - ((ok?_0 begin-for-syntax603_0 _0) + ((ok?_0 begin-for-syntax607_0 _0) (let ((rebuild-body-s_0 (keep-as-needed.1 #f @@ -92421,15 +92454,15 @@ ctx136_0))) parsed-bfs_0 (expanded+parsed1.1 - (let ((temp610_0 + (let ((temp614_0 (list* - begin-for-syntax603_0 + begin-for-syntax607_0 (syntax-only nested-bodys_0)))) (rebuild.1 #t rebuild-body-s_0 - temp610_0)) + temp614_0)) parsed-bfs_0)))) (cons app_0 @@ -92516,7 +92549,7 @@ (syntax-e$1 disarmed-body_0) disarmed-body_0))) - (let ((module*614_0 + (let ((module*618_0 (let ((s_1 (car s_0))) s_1))) (call-with-values @@ -92526,7 +92559,7 @@ (if (syntax?$1 s_1) (syntax-e$1 s_1) s_1))) - (let ((name617_0 + (let ((name621_0 (let ((s_3 (car s_2))) s_3))) @@ -92566,29 +92599,29 @@ (raise-binding-result-arity-error 0 args)))))))) - (let ((name617_1 - name617_0)) + (let ((name621_1 + name621_0)) (values - name617_1 + name621_1 _0))))))) (case-lambda - ((name615_0 _0) - (let ((module*614_1 - module*614_0)) + ((name619_0 _0) + (let ((module*618_1 + module*618_0)) (values - module*614_1 - name615_0 + module*618_1 + name619_0 _0))) (args (raise-binding-result-arity-error 2 args))))))) (case-lambda - ((module*611_0 name612_0 _0) + ((module*615_0 name616_0 _0) (values #t - module*611_0 - name612_0 + module*615_0 + name616_0 _0)) (args (raise-binding-result-arity-error @@ -92596,7 +92629,7 @@ args)))) (values #f #f #f #f))) (case-lambda - ((ok?_0 module*611_0 name612_0 _0) + ((ok?_0 module*615_0 name616_0 _0) (let ((submod_0 (if ok?_0 (let ((neg-phase_0 @@ -92624,13 +92657,13 @@ submod_0) (if (expanded+parsed? submod_0) - (let ((s631_0 + (let ((s635_0 (syntax-shift-phase-level$1 (expanded+parsed-s submod_0) phase_0))) (expanded+parsed1.1 - s631_0 + s635_0 (expanded+parsed-parsed submod_0))) (raise-argument-error @@ -92860,30 +92893,30 @@ (lambda () (let ((s_0 (if (syntax?$1 s172_0) (syntax-e$1 s172_0) s172_0))) (if (pair? s_0) - (let ((module650_0 (let ((s_1 (car s_0))) s_1))) + (let ((module654_0 (let ((s_1 (car s_0))) s_1))) (call-with-values (lambda () (let ((s_1 (cdr s_0))) (let ((s_2 (if (syntax?$1 s_1) (syntax-e$1 s_1) s_1))) (if (pair? s_2) - (let ((name653_0 (let ((s_3 (car s_2))) s_3))) + (let ((name657_0 (let ((s_3 (car s_2))) s_3))) (let ((_0 (let ((s_3 (cdr s_2))) s_3))) - (let ((name653_1 name653_0)) - (values name653_1 _0)))) + (let ((name657_1 name657_0)) + (values name657_1 _0)))) (raise-syntax-error$1 #f "bad syntax" s172_0))))) (case-lambda - ((name651_0 _0) - (let ((module650_1 module650_0)) - (values module650_1 name651_0 _0))) + ((name655_0 _0) + (let ((module654_1 module654_0)) + (values module654_1 name655_0 _0))) (args (raise-binding-result-arity-error 2 args))))) (raise-syntax-error$1 #f "bad syntax" s172_0)))) (case-lambda - ((module647_0 name648_0 _0) (values #t module647_0 name648_0 _0)) + ((module651_0 name652_0 _0) (values #t module651_0 name652_0 _0)) (args (raise-binding-result-arity-error 3 args))))) (case-lambda - ((ok?_0 module647_0 name648_0 _0) - (let ((name_0 (syntax-e$1 name648_0))) + ((ok?_0 module651_0 name652_0 _0) + (let ((name_0 (syntax-e$1 name652_0))) (begin (if (hash-ref declared-submodule-names161_0 name_0 #f) (raise-syntax-error$1 @@ -92896,7 +92929,7 @@ (hash-set! declared-submodule-names161_0 name_0 - (syntax-e$1 module647_0)) + (syntax-e$1 module651_0)) (begin (let ((obs_0 (begin-unsafe @@ -92906,12 +92939,12 @@ (call-expand-observe obs_0 'enter-prim s172_0) (void))) (let ((submod_0 - (let ((temp656_0 + (let ((temp660_0 (if (expand-context/outer? ctx174_0) (let ((the-struct_0 (root-expand-context/outer-inner ctx174_0))) - (let ((inner666_0 + (let ((inner670_0 (if (expand-context/inner? the-struct_0) (expand-context/inner2.1 @@ -92977,7 +93010,7 @@ "expand-context/inner?" the-struct_0)))) (expand-context/outer1.1 - inner666_0 + inner670_0 #f (root-expand-context/outer-use-site-scopes ctx174_0) @@ -93014,7 +93047,7 @@ modules-being-compiled163_0 mpis-to-reset160_0 s172_0 - temp656_0 + temp660_0 self173_0)))) (begin (let ((obs_0 @@ -93037,42 +93070,42 @@ (resolved-module-path-root-name module-name_0))) (let ((compiled-submodule_0 - (let ((temp668_0 + (let ((temp672_0 (if (expanded+parsed? submod_0) (expanded+parsed-parsed submod_0) submod_0))) - (let ((temp669_0 - (let ((temp677_0 + (let ((temp673_0 + (let ((temp681_0 (1/resolved-module-path-name module-name_0))) (make-compile-context.1 - temp677_0 + temp681_0 unsafe-undefined self173_0 ns_0 unsafe-undefined unsafe-undefined)))) - (let ((temp671_0 + (let ((temp675_0 (begin-unsafe (expand-context/inner-for-serializable? (root-expand-context/outer-inner ctx174_0))))) - (let ((temp672_0 + (let ((temp676_0 (begin-unsafe (expand-context/inner-to-correlated-linklet? (root-expand-context/outer-inner ctx174_0))))) - (let ((temp671_1 temp671_0) - (temp669_1 temp669_0) - (temp668_1 temp668_0)) + (let ((temp675_1 temp675_0) + (temp673_1 temp673_0) + (temp672_1 temp672_0)) (compile-module.1 #t modules-being-compiled163_0 #f - temp671_1 - temp672_0 - temp668_1 - temp669_1)))))))) + temp675_1 + temp676_0 + temp672_1 + temp673_1)))))))) (begin (hash-set! compiled-submodules162_0 @@ -93104,7 +93137,7 @@ (let ((the-struct_0 (expanded+parsed-parsed submod_0))) - (let ((parsed680_0 + (let ((parsed684_0 (if (parsed-module? the-struct_0) (parsed-module25.1 @@ -93134,7 +93167,7 @@ the-struct_0)))) (expanded+parsed1.1 (expanded+parsed-s submod_0) - parsed680_0))) + parsed684_0))) (raise-argument-error 'struct-copy "expanded+parsed?" @@ -93235,15 +93268,15 @@ (lambda () (let ((s_2 (if (syntax?$1 s_1) (syntax-e$1 s_1) s_1))) (if (pair? s_2) - (let ((|#%require693_0| (let ((s_3 (car s_2))) s_3))) - (let ((req694_0 + (let ((|#%require697_0| (let ((s_3 (car s_2))) s_3))) + (let ((req698_0 (let ((s_3 (cdr s_2))) (let ((s_4 (if (syntax?$1 s_3) (syntax-e$1 s_3) s_3))) (if (pair? s_4) - (let ((req695_0 + (let ((req699_0 (let ((s_5 (car s_4))) s_5))) (call-with-values (lambda () @@ -93260,8 +93293,8 @@ s_1))))) (case-lambda (() - (let ((req695_1 req695_0)) - (values req695_1))) + (let ((req699_1 req699_0)) + (values req699_1))) (args (raise-binding-result-arity-error 0 @@ -93270,16 +93303,16 @@ #f "bad syntax" s_1)))))) - (let ((|#%require693_1| |#%require693_0|)) - (values |#%require693_1| req694_0)))) + (let ((|#%require697_1| |#%require697_0|)) + (values |#%require697_1| req698_0)))) (raise-syntax-error$1 #f "bad syntax" s_1)))) (case-lambda - ((|#%require691_0| req692_0) - (values #t |#%require691_0| req692_0)) + ((|#%require695_0| req696_0) + (values #t |#%require695_0| req696_0)) (args (raise-binding-result-arity-error 2 args)))))) (case-lambda - ((ok?_0 |#%require691_0| req692_0) - (let ((temp696_0 (list req692_0))) + ((ok?_0 |#%require695_0| req696_0) + (let ((temp700_0 (list req696_0))) (parse-and-perform-requires!.1 #f #f @@ -93291,7 +93324,7 @@ #f #t 'require - temp696_0 + temp700_0 s_0 m-ns191_0 phase_0 diff --git a/racket/src/expander/expand/lift-context.rkt b/racket/src/expander/expand/lift-context.rkt index d71d9cb8ae..6b50198d90 100644 --- a/racket/src/expander/expand/lift-context.rkt +++ b/racket/src/expander/expand/lift-context.rkt @@ -30,6 +30,7 @@ make-require-lift-context add-lifted-require! + get-require-lifts get-and-clear-require-lifts! require-lift-context-wrt-phase @@ -182,8 +183,11 @@ requires) ; records lifted requires #:authentic) -(define (make-require-lift-context wrt-phase do-require) - (require-lift-context do-require wrt-phase (box null))) +(define (make-require-lift-context wrt-phase do-require [initial-lifts null]) + (require-lift-context do-require wrt-phase (box initial-lifts))) + +(define (get-require-lifts require-lifts) + (unbox (require-lift-context-requires require-lifts))) (define (get-and-clear-require-lifts! require-lifts) (box-clear! (require-lift-context-requires require-lifts))) diff --git a/racket/src/expander/expand/module.rkt b/racket/src/expander/expand/module.rkt index 2a4918d9f3..b60aa98df6 100644 --- a/racket/src/expander/expand/module.rkt +++ b/racket/src/expander/expand/module.rkt @@ -282,6 +282,9 @@ ;; Accumulated declared submodule names for `syntax-local-submodules` (define declared-submodule-names (make-hasheq)) + + ;; Requires that were lifted during `#%module-begin` expansion: + (define initial-lifted-requires (get-require-lifts (expand-context-require-lifts ctx))) ;; Module expansion always parses the module body along the way, ;; even if `to-parsed?` in `ctx` is not true. The body is parsed @@ -298,7 +301,8 @@ ;; Passes 1 and 2 are nested via `begin-for-syntax`: (define expression-expanded-bodys - (let pass-1-and-2-loop ([bodys bodys] [phase phase] [keep-stops? (stop-at-module*? ctx)]) + (let pass-1-and-2-loop ([bodys bodys] [phase phase] [keep-stops? (stop-at-module*? ctx)] + [initial-lifted-requires initial-lifted-requires]) ;; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ;; Pass 1: partially expand to discover all bindings and install all @@ -325,7 +329,8 @@ [require-lifts (make-require-lift-context phase (make-parse-lifted-require m-ns self requires+provides - #:declared-submodule-names declared-submodule-names))] + #:declared-submodule-names declared-submodule-names) + initial-lifted-requires)] [to-module-lifts (make-to-module-lift-context phase #:shared-module-ends module-ends @@ -481,7 +486,10 @@ [lifts #f] [module-lifts #f] [to-module-lifts #f] - [require-lifts #f])) + [require-lifts (make-require-lift-context + phase + (make-parse-lifted-require m-ns self requires+provides + #:declared-submodule-names (make-hasheq)))])) (define mb-scopes-s (if keep-enclosing-scope-at-phase @@ -773,7 +781,7 @@ (define ct-m-ns (namespace->namespace-at-phase m-ns (add1 phase))) (prepare-next-phase-namespace partial-body-ctx) (log-expand partial-body-ctx 'phase-up) - (define nested-bodys (pass-1-and-2-loop (m 'e) (add1 phase) #f)) + (define nested-bodys (pass-1-and-2-loop (m 'e) (add1 phase) #f null)) (log-expand partial-body-ctx 'next-group) (namespace-run-available-modules! m-ns (add1 phase)) ; to support running `begin-for-syntax` (eval-nested-bodys nested-bodys (add1 phase) ct-m-ns self partial-body-ctx)