From 2bbaa64cd656393cc8037c78ca7d7b1ea86dec05 Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Thu, 22 Nov 2018 13:12:49 -0700 Subject: [PATCH] add machine-independent compilation mode The `compile-machine-indendent` parameter controls whether `compile` creates a compiled expression that writes (usually in a ".zo" file) to a machine-independent form that works for anhy Racket platform and virtual machine. The parameter can be set through the `-M`/`--compile-any` command-line flag or the `PLT_COMPILE_ANY` environment variable. Loading machine-independent code is too slow for many purposes, but separating macro expansion from backend compilation seems likely to be a piece of the puzzle from cross-compilation and faster distribution builds. --- pkgs/base/info.rkt | 2 +- .../scribblings/reference/eval.scrbl | 19 + .../scribblings/reference/startup.scrbl | 8 +- racket/src/cs/linklet.sls | 4 + racket/src/cs/main.sps | 9 +- racket/src/cs/primitive/kernel.ss | 1 + .../expander/compile/correlated-linklet.rkt | 125 + racket/src/expander/compile/form.rkt | 111 +- racket/src/expander/compile/linklet.rkt | 21 +- racket/src/expander/compile/module.rkt | 69 +- racket/src/expander/compile/multi-top.rkt | 1 + racket/src/expander/compile/read-linklet.rkt | 11 +- racket/src/expander/compile/top.rkt | 27 +- racket/src/expander/compile/write-linklet.rkt | 115 +- racket/src/expander/eval/main.rkt | 44 +- racket/src/expander/eval/module.rkt | 18 +- racket/src/expander/eval/top.rkt | 5 +- racket/src/expander/expand/context.rkt | 3 + racket/src/expander/expand/module.rkt | 2 + racket/src/racket/cmdline.inc | 11 + racket/src/racket/include/scheme.h | 3 + racket/src/racket/src/eval.c | 14 + racket/src/racket/src/schminc.h | 2 +- racket/src/racket/src/schvers.h | 4 +- racket/src/racket/src/startup.inc | 4644 +++++++++++++---- racket/src/racket/src/thread.c | 1 + 26 files changed, 4064 insertions(+), 1210 deletions(-) create mode 100644 racket/src/expander/compile/correlated-linklet.rkt diff --git a/pkgs/base/info.rkt b/pkgs/base/info.rkt index f00a815163..12f3ad2a71 100644 --- a/pkgs/base/info.rkt +++ b/pkgs/base/info.rkt @@ -12,7 +12,7 @@ (define collection 'multi) -(define version "7.1.0.4") +(define version "7.1.0.5") (define deps `("racket-lib" ["racket" #:version ,version])) diff --git a/pkgs/racket-doc/scribblings/reference/eval.scrbl b/pkgs/racket-doc/scribblings/reference/eval.scrbl index 870055c171..04aeeecc99 100644 --- a/pkgs/racket-doc/scribblings/reference/eval.scrbl +++ b/pkgs/racket-doc/scribblings/reference/eval.scrbl @@ -581,6 +581,25 @@ information to be lost from stack traces (as reported by @racket[continuation-mark-set->context]). The default is @racket[#f], which allows such optimizations.} +@defboolparam[compile-machine-independent on?]{ + +A @tech{parameter} that determines whether a newly compiled expression +writes in a machine-independent format (usually in @filepath{.zo} +files). Machine-independent compiled code works for any platform and +any Racket virtual machine. When the machine-independent compiled +expression is read back in, it is subject to further compilation for +the current platform and virtual machine, which can be considerably +slower than reading a format that is fully compiled for a platform and +virtual machine. + +The default is @racket[#f], unless machine-independent mode is enabled +through the @Flag{M}/@DFlag{compile-any} command-line flag to +stand-alone Racket (or GRacket) or through the +@as-index{@envvar{PLT_COMPILE_ANY}} environment variable (set to any +value). + +@history[#:added "7.1.0.5"]} + @defboolparam[eval-jit-enabled on?]{ @guidealso["JIT"] diff --git a/pkgs/racket-doc/scribblings/reference/startup.scrbl b/pkgs/racket-doc/scribblings/reference/startup.scrbl index 7c433b7ab6..07f6ee5789 100644 --- a/pkgs/racket-doc/scribblings/reference/startup.scrbl +++ b/pkgs/racket-doc/scribblings/reference/startup.scrbl @@ -343,6 +343,11 @@ flags: native-code just-in-time compiler by setting the @racket[eval-jit-enabled] parameter to @racket[#f].} + @item{@FlagFirst{M} or @DFlagFirst{compile-any} : Enables + machine-independent bytecode by setting the + @racket[compile-machine-independent] parameter to + @racket[#t].} + @item{@FlagFirst{d} or @DFlagFirst{no-delay} : Disables on-demand parsing of compiled code and syntax objects by setting the @racket[read-on-demand-source] parameter to @racket[#f].} @@ -456,7 +461,8 @@ of the collapsed set. Extra arguments following the last option are available from the @indexed-racket[current-command-line-arguments] parameter. -@history[#:changed "6.90.0.17" @elem{Added @Flag{O}/@DFlag{stdout}.}] +@history[#:changed "6.90.0.17" @elem{Added @Flag{O}/@DFlag{stdout}.} + #:changed "7.1.0.5" @elem{Added @Flag{M}/@DFlag{compile-any}.}] @; ---------------------------------------------------------------------- diff --git a/racket/src/cs/linklet.sls b/racket/src/cs/linklet.sls index 319a8b717b..f36557a90f 100644 --- a/racket/src/cs/linklet.sls +++ b/racket/src/cs/linklet.sls @@ -31,6 +31,7 @@ compile-enforce-module-constants compile-context-preservation-enabled compile-allow-set!-undefined + compile-machine-independent eval-jit-enabled load-on-demand-enabled @@ -820,6 +821,9 @@ (define compile-allow-set!-undefined (make-parameter #f (lambda (v) (and v #t)))) + (define compile-machine-independent + (make-parameter #f (lambda (v) (and v #t)))) + (define eval-jit-enabled (make-parameter #t (lambda (v) (and v #t)))) diff --git a/racket/src/cs/main.sps b/racket/src/cs/main.sps index 2c702755ee..dd92be9284 100644 --- a/racket/src/cs/main.sps +++ b/racket/src/cs/main.sps @@ -40,7 +40,8 @@ omit-debugging? platform-independent-zo-mode? linklet-performance-init! - linklet-performance-report!)) + linklet-performance-report! + compile-machine-independent)) (linklet-performance-init!) (unless omit-debugging? @@ -108,6 +109,7 @@ [else "compiled"])))) (define user-specific-search-paths? #t) (define load-on-demand? #t) + (define compile-machine-independent? (getenv "PLT_COMPILE_ANY")) (define (see saw . args) (let loop ([saw saw] [args args]) @@ -424,6 +426,9 @@ (loop (cdr args))] [else (raise-bad-switch arg within-arg)])] + [("-M") + (set! compile-machine-independent? #t) + (loop (cdr args))] [("--") (cond [(or (null? (cdr args)) (not (pair? (cadr args)))) @@ -564,6 +569,8 @@ (|#%app| use-compiled-file-paths compiled-file-paths) (|#%app| use-user-specific-search-paths user-specific-search-paths?) (|#%app| load-on-demand-enabled load-on-demand?) + (when compile-machine-independent? + (|#%app| compile-machine-independent #t)) (boot) (when (and stderr-logging (not (null? stderr-logging))) diff --git a/racket/src/cs/primitive/kernel.ss b/racket/src/cs/primitive/kernel.ss index 50aba401c3..5c27dbfde3 100644 --- a/racket/src/cs/primitive/kernel.ss +++ b/racket/src/cs/primitive/kernel.ss @@ -184,6 +184,7 @@ [compile-allow-set!-undefined (known-constant)] [compile-context-preservation-enabled (known-constant)] [compile-enforce-module-constants (known-constant)] + [compile-machine-independent (known-constant)] [complete-path? (known-procedure 2)] [complex? (known-procedure/succeeds 2)] [cons (known-procedure/succeeds 4)] diff --git a/racket/src/expander/compile/correlated-linklet.rkt b/racket/src/expander/compile/correlated-linklet.rkt new file mode 100644 index 0000000000..26282d67b0 --- /dev/null +++ b/racket/src/expander/compile/correlated-linklet.rkt @@ -0,0 +1,125 @@ +#lang racket/base +(require racket/fasl + "../host/linklet.rkt" + "../host/correlate.rkt") + +(provide correlated-linklet? + make-correlated-linklet + + correlated-linklet-expr + correlated-linklet-name + + force-compile-linklet + + correlated-linklet-vm-bytes + write-correlated-linklet-bundle-hash + read-correlated-linklet-bundle-hash) + +(struct correlated-linklet (expr name [compiled #:mutable]) + #:authentic) + +(define (make-correlated-linklet expr name) + (correlated-linklet expr name #f)) + +;; ---------------------------------------- + +(define (force-compile-linklet l) + (cond + [(correlated-linklet? l) + (or (correlated-linklet-compiled l) + (let ([c (compile-linklet (correlated-linklet-expr l) + (correlated-linklet-name l))]) + (set-correlated-linklet-compiled! l c) + c))] + [else l])) + +;; ---------------------------------------- + +(define correlated-linklet-vm-bytes #"linklet") + +(struct faslable-correlated (e source position line column span name) + #:prefab) + +(struct faslable-correlated-linklet (expr name) + #:prefab) + +;; ---------------------------------------- + +(define (write-correlated-linklet-bundle-hash ht o) + (s-exp->fasl (->faslable ht) o)) + +(define (->faslable v) + (cond + [(pair? v) + (define a (->faslable (car v))) + (define d (->faslable (cdr v))) + (if (and (eq? a (car v)) + (eq? d (cdr v))) + v + (cons a d))] + [(correlated? v) + (faslable-correlated + (->faslable (correlated-e v)) + (correlated-source v) + (correlated-position v) + (correlated-line v) + (correlated-column v) + (correlated-span v) + (correlated-property v 'inferred-name))] + [(hash? v) + (cond + [(hash-eq? v) + (for/hasheq ([(key value) (in-hash v)]) + (values (->faslable key) (->faslable value)))] + [(hash-eqv? v) + (for/hasheqv ([(key value) (in-hash v)]) + (values (->faslable key) (->faslable value)))] + [else + (for/hash ([(key value) (in-hash v)]) + (values (->faslable key) (->faslable value)))])] + [(correlated-linklet? v) + (faslable-correlated-linklet (->faslable (correlated-linklet-expr v)) + (->faslable (correlated-linklet-name v)))] + [else v])) + +;; ---------------------------------------- + +(define (read-correlated-linklet-bundle-hash in) + (faslable-> (fasl->s-exp in))) + +(define (faslable-> v) + (cond + [(pair? v) + (define a (faslable-> (car v))) + (define d (faslable-> (cdr v))) + (if (and (eq? a (car v)) + (eq? d (cdr v))) + v + (cons a d))] + [(faslable-correlated? v) + (define name (faslable-correlated-name v)) + (define c (datum->correlated (faslable-> (faslable-correlated-e v)) + (vector + (faslable-correlated-source v) + (faslable-correlated-line v) + (faslable-correlated-column v) + (faslable-correlated-position v) + (faslable-correlated-span v)))) + (if name + (correlated-property c 'inferred-name name) + c)] + [(hash? v) + (cond + [(hash-eq? v) + (for/hasheq ([(key value) (in-hash v)]) + (values (faslable-> key) (faslable-> value)))] + [(hash-eqv? v) + (for/hasheqv ([(key value) (in-hash v)]) + (values (faslable-> key) (faslable-> value)))] + [else + (for/hash ([(key value) (in-hash v)]) + (values (faslable-> key) (faslable-> value)))])] + [(faslable-correlated-linklet? v) + (make-correlated-linklet (faslable-> (faslable-correlated-linklet-expr v)) + (faslable-> (faslable-correlated-linklet-name v)))] + [else v])) diff --git a/racket/src/expander/compile/form.rkt b/racket/src/expander/compile/form.rkt index 9b2a95671c..611a90b0e4 100644 --- a/racket/src/expander/compile/form.rkt +++ b/racket/src/expander/compile/form.rkt @@ -23,7 +23,8 @@ "namespace-scope.rkt" "expr.rkt" "extra-inspector.rkt" - "correlate.rkt") + "correlate.rkt" + "correlated-linklet.rkt") (provide compile-forms @@ -45,6 +46,7 @@ #:other-form-callback [other-form-callback void] #:get-module-linklet-info [get-module-linklet-info (lambda (mod-name p) #f)] ; to support submodules #:serializable? [serializable? #t] + #:to-correlated-linklet? [to-correlated-linklet? #f] #:cross-linklet-inlining? [cross-linklet-inlining? #t]) (define phase (compile-context-phase cctx)) (define self (compile-context-self cctx)) @@ -246,44 +248,38 @@ (define module-use*s (module-uses-add-extra-inspectorsss (link-info-link-module-uses li) (link-info-extra-inspectorsss li))) - ;; Compile the linklet with support for cross-module inlining, which - ;; means that the set of imports can change: + (define body-linklet + `(linklet + ;; imports + (,@body-imports + ,@(link-info-imports li)) + ;; exports + (,@(link-info-def-decls li) + ,@(for/list ([binding-sym (in-list (header-binding-syms-in-order + (hash-ref phase-to-header phase)))]) + (define def-sym (hash-ref binding-sym-to-define-sym binding-sym)) + (if (eq? def-sym binding-sym) + def-sym + `[,def-sym ,binding-sym]))) + ;; body + ,@(reverse bodys) + ,@body-suffix-forms)) (define-values (linklet new-module-use*s) - (performance-region - ['compile '_ 'linklet] - ((lambda (l name keys getter) - (compile-linklet l name keys getter (if serializable? '(serializable) '()))) - `(linklet - ;; imports - (,@body-imports - ,@(link-info-imports li)) - ;; exports - (,@(link-info-def-decls li) - ,@(for/list ([binding-sym (in-list (header-binding-syms-in-order - (hash-ref phase-to-header phase)))]) - (define def-sym (hash-ref binding-sym-to-define-sym binding-sym)) - (if (eq? def-sym binding-sym) - def-sym - `[,def-sym ,binding-sym]))) - ;; body - ,@(reverse bodys) - ,@body-suffix-forms) - 'module - ;; Support for cross-module optimization starts with a vector - ;; of keys for the linklet imports; we use `module-use` values - ;; as keys, plus #f or an instance (=> cannot be pruned) for - ;; each boilerplate linklet - (list->vector (append body-import-instances - module-use*s)) - ;; To complete cross-module support, map a key (which is a `module-use`) - ;; to a linklet and an optional vector of keys for that linklet's - ;; imports: - (make-module-use-to-linklet cross-linklet-inlining? - (compile-context-namespace cctx) - get-module-linklet-info - module-use*s)))) - (values phase (cons linklet (list-tail (vector->list new-module-use*s) - (length body-imports)))))) + (cond + [to-correlated-linklet? + (values (make-correlated-linklet body-linklet 'module) module-use*s)] + [else + ;; Compile the linklet with support for cross-module inlining, which + ;; means that the set of imports can change: + (compile-module-linklet body-linklet + #:body-imports body-imports + #:body-import-instances body-import-instances + #:get-module-linklet-info get-module-linklet-info + #:serializable? serializable? + #:module-use*s module-use*s + #:cross-linklet-inlining? cross-linklet-inlining? + #:namespace (compile-context-namespace cctx))])) + (values phase (cons linklet new-module-use*s)))) (define body-linklets (for/hasheq ([(phase l+mu*s) (in-hash body-linklets+module-use*s)]) @@ -301,7 +297,8 @@ [(extra-inspectorsss) (in-value (module-uses-extract-extra-inspectorsss (cdr l+mu*s) (car l+mu*s) - cross-linklet-inlining? + (and cross-linklet-inlining? + (not to-correlated-linklet?)) (length body-imports)))] #:when extra-inspectorsss) (values phase extra-inspectorsss))) @@ -385,6 +382,42 @@ ;; ---------------------------------------- +;; Compile the linklet with support for cross-module inlining, which +;; means that the set of imports can change: return a compiled linklet +;; and a list of `module-use*` +(define (compile-module-linklet body-linklet + #:body-imports body-imports + #:body-import-instances body-import-instances + #:get-module-linklet-info get-module-linklet-info + #:serializable? serializable? + #:module-use*s module-use*s + #:cross-linklet-inlining? cross-linklet-inlining? + #:namespace namespace) + (define-values (linklet new-module-use*s) + (performance-region + ['compile '_ 'linklet] + ((lambda (l name keys getter) + (compile-linklet l name keys getter (if serializable? '(serializable) '()))) + body-linklet + 'module + ;; Support for cross-module optimization starts with a vector + ;; of keys for the linklet imports; we use `module-use` values + ;; as keys, plus #f or an instance (=> cannot be pruned) for + ;; each boilerplate linklet + (list->vector (append body-import-instances + module-use*s)) + ;; To complete cross-module support, map a key (which is a `module-use`) + ;; to a linklet and an optional vector of keys for that linklet's + ;; imports: + (make-module-use-to-linklet cross-linklet-inlining? + namespace + get-module-linklet-info + module-use*s)))) + (values linklet (list-tail (vector->list new-module-use*s) + (length body-imports)))) + +;; ---------------------------------------- + (define (make-module-use-to-linklet cross-linklet-inlining? ns get-module-linklet-info init-mu*s) ;; Inlining might reach the same module though different indirections; ;; use a consistent `module-use` value so that the compiler knows to diff --git a/racket/src/expander/compile/linklet.rkt b/racket/src/expander/compile/linklet.rkt index bc27097d83..2a49bea70a 100644 --- a/racket/src/expander/compile/linklet.rkt +++ b/racket/src/expander/compile/linklet.rkt @@ -1,7 +1,8 @@ #lang racket/base (require "../common/contract.rkt" "../host/linklet.rkt" - "write-linklet.rkt") + "write-linklet.rkt" + "correlated-linklet.rkt") (provide linklet-directory? linklet-bundle? @@ -15,6 +16,7 @@ (struct linklet-directory (ht) #:property prop:custom-write (lambda (ld port mode) (write-linklet-directory ld + (correlated-linklet-directory? ld) linklet-directory->hash linklet-bundle->hash port))) @@ -22,6 +24,7 @@ (struct linklet-bundle (ht) #:property prop:custom-write (lambda (b port mode) (write-linklet-bundle b + (correlated-linklet-bundle? b) linklet-bundle->hash port))) @@ -73,3 +76,19 @@ (define/who (linklet-bundle->hash ld) (check who linklet-bundle? ld) (linklet-bundle-ht ld)) + +;; ---------------------------------------- + +;; If there are no values that satisfy `linklet?`, then +;; assume that we have `correlated-linklet?` values. + +(define (correlated-linklet-directory? ld) + (for/and ([(k v) (in-hash (linklet-directory->hash ld))]) + (cond + [(not k) (correlated-linklet-bundle? v)] + [(symbol? k) (correlated-linklet-directory? v)] + [else #t]))) + +(define (correlated-linklet-bundle? b) + (for/and ([(k v) (in-hash (linklet-bundle->hash b))]) + (not (linklet? v)))) diff --git a/racket/src/expander/compile/module.rkt b/racket/src/expander/compile/module.rkt index fd4dde4022..83c9ce3e60 100644 --- a/racket/src/expander/compile/module.rkt +++ b/racket/src/expander/compile/module.rkt @@ -22,6 +22,7 @@ "form.rkt" "compiled-in-memory.rkt" "linklet.rkt" + "correlated-linklet.rkt" "../eval/reflect.rkt" "../eval/reflect-name.rkt") @@ -32,6 +33,7 @@ (define (compile-module p cctx #:force-linklet-directory? [force-linklet-directory? #f] #:serializable? [serializable? #f] + #:to-correlated-linklet? [to-correlated-linklet? #f] #:modules-being-compiled [modules-being-compiled (make-hasheq)] #:need-compiled-submodule-rename? [need-compiled-submodule-rename? #t]) @@ -74,6 +76,7 @@ #:full-module-name full-module-name #:force-linklet-directory? force-linklet-directory? #:serializable? serializable? + #:to-correlated-linklet? to-correlated-linklet? #:modules-being-compiled modules-being-compiled #:pre-submodules pre-submodules #:post-submodules post-submodules @@ -85,6 +88,7 @@ #:full-module-name full-module-name #:force-linklet-directory? force-linklet-directory? #:serializable? serializable? + #:to-correlated-linklet? to-correlated-linklet? #:modules-being-compiled modules-being-compiled #:pre-submodules pre-submodules #:post-submodules post-submodules @@ -167,7 +171,8 @@ (define ht (and modules-being-compiled (hash-ref modules-being-compiled mod-name #f))) (and ht (hash-ref ht phase #f))) - #:serializable? serializable?)) + #:serializable? serializable? + #:to-correlated-linklet? to-correlated-linklet?)) (when modules-being-compiled ;; Record this module's linklets for cross-module inlining among (sub)modules @@ -189,9 +194,12 @@ ;; declaration, and is shared among instances (define declaration-linklet (and serializable? - ((lambda (s) (performance-region - ['compile 'module 'linklet] - (compile-linklet s 'decl))) + ((lambda (s) + (if to-correlated-linklet? + (make-correlated-linklet s 'decl) + (performance-region + ['compile 'module 'linklet] + (compile-linklet s 'decl)))) `(linklet ;; imports (,deserialize-imports @@ -214,17 +222,19 @@ (define syntax-literals-linklet (and (not (syntax-literals-empty? syntax-literals)) ((lambda (s) - (performance-region - ['compile 'module 'linklet] - (define-values (linklet new-keys) - (compile-linklet s 'syntax-literals - (vector deserialize-instance - empty-top-syntax-literal-instance - empty-syntax-literals-data-instance - empty-instance-instance) - (lambda (inst) (values inst #f)) - (if serializable? '(serializable) '()))) - linklet)) + (if to-correlated-linklet? + (make-correlated-linklet s 'syntax-literals) + (performance-region + ['compile 'module 'linklet] + (define-values (linklet new-keys) + (compile-linklet s 'syntax-literals + (vector deserialize-instance + empty-top-syntax-literal-instance + empty-syntax-literals-data-instance + empty-instance-instance) + (lambda (inst) (values inst #f)) + (if serializable? '(serializable) '()))) + linklet))) `(linklet ;; imports (,deserialize-imports @@ -262,9 +272,11 @@ (define syntax-literals-data-linklet (and serializable? (not (syntax-literals-empty? syntax-literals)) - ((lambda (s) (performance-region - ['compile 'module 'linklet] - (compile-linklet s 'syntax-literals-data))) + ((lambda (s) (if to-correlated-linklet? + (make-correlated-linklet s 'syntax-literals-data) + (performance-region + ['compile 'module 'linklet] + (compile-linklet s 'syntax-literals-data)))) `(linklet ;; imports (,deserialize-imports @@ -284,9 +296,11 @@ ;; across module instances. (define data-linklet (and serializable? - ((lambda (s) (performance-region - ['compile 'module 'linklet] - (compile-linklet s 'data))) + ((lambda (s) (if to-correlated-linklet? + (make-correlated-linklet s 'data) + (performance-region + ['compile 'module 'linklet] + (compile-linklet s 'data)))) `(linklet ;; imports (,deserialize-imports) @@ -348,12 +362,13 @@ ;; Just use the bundle representation directly: bundle] [else - (hash->linklet-directory - (for/fold ([ht (hasheq #f bundle)]) ([sm (in-list (append pre-submodules post-submodules))]) - (hash-set ht - (car sm) - (compiled-in-memory-linklet-directory - (cdr sm)))))])) + (define ht + (for/fold ([ht (hasheq #f bundle)]) ([sm (in-list (append pre-submodules post-submodules))]) + (hash-set ht + (car sm) + (compiled-in-memory-linklet-directory + (cdr sm))))) + (hash->linklet-directory ht)])) ;; Save mpis and syntax for direct evaluation, instead of unmarshaling: (compiled-in-memory ld diff --git a/racket/src/expander/compile/multi-top.rkt b/racket/src/expander/compile/multi-top.rkt index 4327ade6c3..823830d9ab 100644 --- a/racket/src/expander/compile/multi-top.rkt +++ b/racket/src/expander/compile/multi-top.rkt @@ -19,6 +19,7 @@ ;; top of a tree, we repeat work only twice and avoid non-linear ;; behavior.) (define (compiled-tops->compiled-top all-cims + #:to-correlated-linklet? [to-correlated-linklet? #f] #:merge-serialization? [merge-serialization? #f] #:namespace [ns #f]) ; need for `merge-serialization?` (define cims (remove-nontail-purely-functional all-cims)) diff --git a/racket/src/expander/compile/read-linklet.rkt b/racket/src/expander/compile/read-linklet.rkt index 6c6f9e2646..c60aedee35 100644 --- a/racket/src/expander/compile/read-linklet.rkt +++ b/racket/src/expander/compile/read-linklet.rkt @@ -1,7 +1,8 @@ #lang racket/base (require "version-bytes.rkt" "linklet.rkt" - "../host/linklet.rkt") + "../host/linklet.rkt" + "correlated-linklet.rkt") (provide read-linklet-bundle-or-directory) @@ -23,7 +24,9 @@ in)))) (define vm-len (min 63 (read-byte in))) (define vm (read-bytes vm-len in)) - (unless (equal? vm vm-bytes) + (define as-correlated-linklet? (equal? vm correlated-linklet-vm-bytes)) + (unless (or as-correlated-linklet? + (equal? vm vm-bytes)) (raise-arguments-error 'read-compiled-linklet "virtual-machine mismatch" "expected" (bytes->string/utf-8 vm-bytes) @@ -37,7 +40,9 @@ (cond [(eqv? tag (char->integer #\B)) (define sha-1 (read-bytes 20 in)) - (define b-ht (read-linklet-bundle-hash in)) + (define b-ht (if as-correlated-linklet? + (read-correlated-linklet-bundle-hash in) + (read-linklet-bundle-hash in))) (hash->linklet-bundle (add-hash-code (if initial? (strip-submodule-references b-ht) diff --git a/racket/src/expander/compile/top.rkt b/racket/src/expander/compile/top.rkt index 4a102207d3..2e92dee40e 100644 --- a/racket/src/expander/compile/top.rkt +++ b/racket/src/expander/compile/top.rkt @@ -20,7 +20,8 @@ "form.rkt" "multi-top.rkt" "namespace-scope.rkt" - "side-effect.rkt") + "side-effect.rkt" + "correlated-linklet.rkt") (provide compile-single compile-top) @@ -39,7 +40,8 @@ ;; used. (define (compile-top p cctx #:serializable? [serializable? #t] - #:single-expression? [single-expression? #f]) + #:single-expression? [single-expression? #f] + #:to-correlated-linklet? [to-correlated-linklet? #f]) (performance-region ['compile (if single-expression? 'transformer 'top)] @@ -71,6 +73,7 @@ empty-top-syntax-literal-instance empty-instance-instance) #:serializable? serializable? + #:to-correlated-linklet? to-correlated-linklet? #:definition-callback (lambda () (set! purely-functional? #f)) #:compiled-expression-callback (lambda (e expected-results phase required-reference?) @@ -106,15 +109,17 @@ (define link-linklet ((lambda (s) - (performance-region - ['compile 'top 'linklet] - (define-values (linklet new-keys) - (compile-linklet s - #f - (vector deserialize-instance - empty-eager-instance-instance) - (lambda (inst) (values inst #f)))) - linklet)) + (if to-correlated-linklet? + (make-correlated-linklet s #f) + (performance-region + ['compile 'top 'linklet] + (define-values (linklet new-keys) + (compile-linklet s + #f + (vector deserialize-instance + empty-eager-instance-instance) + (lambda (inst) (values inst #f)))) + linklet))) `(linklet ;; imports (,deserialize-imports diff --git a/racket/src/expander/compile/write-linklet.rkt b/racket/src/expander/compile/write-linklet.rkt index 425c2e90b7..59eb189883 100644 --- a/racket/src/expander/compile/write-linklet.rkt +++ b/racket/src/expander/compile/write-linklet.rkt @@ -1,11 +1,12 @@ #lang racket/base (require "../host/linklet.rkt" - "version-bytes.rkt") + "version-bytes.rkt" + "correlated-linklet.rkt") (provide write-linklet-bundle write-linklet-directory) -(define (write-linklet-bundle b linklet-bundle->hash port) +(define (write-linklet-bundle b as-correlated-linklet? linklet-bundle->hash port) ;; Various tools expect a particular header: ;; "#~" ;; length of version byte string (< 64) as one byte @@ -15,19 +16,24 @@ (write-bytes #"#~" port) (write-bytes (bytes (bytes-length version-bytes)) port) (write-bytes version-bytes port) - (write-bytes (bytes (bytes-length vm-bytes)) port) - (write-bytes vm-bytes port) + (let ([vm-bytes (if as-correlated-linklet? + correlated-linklet-vm-bytes + vm-bytes)]) + (write-bytes (bytes (bytes-length vm-bytes)) port) + (write-bytes vm-bytes port)) (write-bytes #"B" port) (write-bytes (make-bytes 20 0) port) ;; The rest is whatever the VM wants - (write-linklet-bundle-hash (linklet-bundle->hash b) port)) + (if as-correlated-linklet? + (write-correlated-linklet-bundle-hash (linklet-bundle->hash b) port) + (write-linklet-bundle-hash (linklet-bundle->hash b) port))) -(define (linklet-bundle->bytes b linklet-bundle->hash) +(define (linklet-bundle->bytes b as-correlated-linklet? linklet-bundle->hash) (define o (open-output-bytes)) - (write-linklet-bundle b linklet-bundle->hash o) + (write-linklet-bundle b as-correlated-linklet? linklet-bundle->hash o) (get-output-bytes o)) -(define (write-linklet-directory ld linklet-directory->hash linklet-bundle->hash port) +(define (write-linklet-directory ld as-correlated-linklet? linklet-directory->hash linklet-bundle->hash port) ;; Various tools expect a particular header: ;; "#~" ;; length of version byte string (< 64) as one byte @@ -46,51 +52,54 @@ ;; A bundle name corresponds to a list of symbols. Each symbol in the list is ;; prefixed with either: its length as a byte if less than 255; 255 followed by ;; a 4-byte integer for the length. - (write-bytes #"#~" port) - (write-byte (bytes-length version-bytes) port) - (write-bytes version-bytes port) - (write-byte (bytes-length vm-bytes) port) - (write-bytes vm-bytes port) - (write-bytes #"D" port) - ;; Flatten a directory of bundles into a vector of pairs, where - ;; each pair has the encoded bundle name and the bundle bytes - (define (flatten-linklet-directory ld rev-name-prefix accum) - (define-values (new-accum saw-bundle?) - (for/fold ([accum accum] [saw-bundle? #f]) ([(key value) (in-hash (linklet-directory->hash ld))]) - (cond - [(eq? key #f) - (values (cons (cons (encode-name rev-name-prefix) - (linklet-bundle->bytes value linklet-bundle->hash)) - accum) - #t)] - [else - (values (flatten-linklet-directory value (cons key rev-name-prefix) accum) - saw-bundle?)]))) - (cond - [saw-bundle? new-accum] - [else (cons (cons (encode-name rev-name-prefix) - #"#f") - new-accum)])) - (define bundles (list->vector - (sort (flatten-linklet-directory ld '() '()) - (lambda (a b) (byteshash ld))]) + (cond + [(eq? key #f) + (values (cons (cons (encode-name rev-name-prefix) + (linklet-bundle->bytes value as-correlated-linklet? linklet-bundle->hash)) + accum) + #t)] + [else + (values (flatten-linklet-directory value (cons key rev-name-prefix) accum) + saw-bundle?)]))) + (cond + [saw-bundle? new-accum] + [else (cons (cons (encode-name rev-name-prefix) + #"#f") + new-accum)])) + (define bundles (list->vector + (sort (flatten-linklet-directory ld '() '()) + (lambda (a b) (bytescompiled-top cs + #:to-correlated-linklet? to-correlated-linklet? #:merge-serialization? serializable? #:namespace ns))) ;; To communicate lifts from `expand-single` to `compile-single`: (struct lifted-parsed-begin (seq last)) -(define (compile-single s ns expand serializable?) - (define exp-s (expand s ns #f #t serializable?)) +(define (compile-single s ns expand + #:serializable? serializable? + #:to-correlated-linklet? to-correlated-linklet?) + (define exp-s (expand s ns #f #t serializable? to-correlated-linklet?)) (let loop ([exp-s exp-s]) (cond [(parsed-module? exp-s) (compile-module exp-s (make-compile-context #:namespace ns) - #:serializable? serializable?)] + #:serializable? serializable? + #:to-correlated-linklet? to-correlated-linklet?)] [(lifted-parsed-begin? exp-s) ;; expansion must have captured lifts (compiled-tops->compiled-top + #:to-correlated-linklet? to-correlated-linklet? (for/list ([e (in-list (append (lifted-parsed-begin-seq exp-s) (list (lifted-parsed-begin-last exp-s))))]) (loop e)))] [else (compile-top exp-s (make-compile-context #:namespace ns) - #:serializable? serializable?)]))) + #:serializable? serializable? + #:to-correlated-linklet? to-correlated-linklet?)]))) ;; This `expand` is suitable as an expand handler (if such a thing ;; existed) to be called by `expand` and `expand-syntax`. ;; [Don't use keyword arguments here, because the function is ;; exported for use by an embedding runtime system.] -(define (expand s [ns (current-namespace)] [observable? #f] [to-parsed? #f] [serializable? #f]) +(define (expand s + [ns (current-namespace)] [observable? #f] [to-parsed? #f] + [serializable? #f] [to-correlated-linklet? #f]) (define observer (and observable? (current-expand-observe))) (when observer (...log-expand observer ['start-top])) (parameterize ([current-expand-observe #f]) (per-top-level s ns - #:single (lambda (s ns as-tail?) (expand-single s ns observer to-parsed? serializable?)) + #:single (lambda (s ns as-tail?) (expand-single s ns observer to-parsed? + #:serializable? serializable? + #:to-correlated-linklet? to-correlated-linklet?)) #:combine cons #:wrap re-pair #:observer observer))) -(define (expand-single s ns observer to-parsed? serializable?) +(define (expand-single s ns observer to-parsed? + #:serializable? serializable? + #:to-correlated-linklet? [to-correlated-linklet? #f]) (define rebuild-s (keep-properties-only s)) (define ctx (make-expand-context ns #:to-parsed? to-parsed? #:for-serializable? serializable? + #:to-correlated-linklet? to-correlated-linklet? #:observer observer)) (define-values (require-lifts lifts exp-s) (expand-capturing-lifts s ctx)) (cond @@ -143,14 +160,16 @@ lifts exp-s rebuild-s #:adjust-form (lambda (form) - (expand-single form ns observer to-parsed? serializable?)))] + (expand-single form ns observer to-parsed? + #:serializable? serializable?)))] [else (log-top-lift-begin-before ctx require-lifts lifts exp-s ns) (define new-s (wrap-lifts-as-begin (append require-lifts lifts) #:adjust-form (lambda (form) (log-expand ctx 'next) - (expand-single form ns observer to-parsed? serializable?)) + (expand-single form ns observer to-parsed? + #:serializable? serializable?)) #:adjust-body (lambda (form) (cond [to-parsed? form] @@ -159,7 +178,8 @@ ;; This re-expansion should be unnecessary, but we do it ;; for a kind of consistentcy with `expand/capture-lifts` ;; and for expansion observers - (expand-single form ns observer to-parsed? serializable?)])) + (expand-single form ns observer to-parsed? + #:serializable? serializable?)])) exp-s (namespace-phase ns))) (log-top-begin-after ctx new-s) diff --git a/racket/src/expander/eval/module.rkt b/racket/src/expander/eval/module.rkt index 20d50f2513..ca9254551d 100644 --- a/racket/src/expander/eval/module.rkt +++ b/racket/src/expander/eval/module.rkt @@ -14,6 +14,7 @@ "../compile/linklet.rkt" "../compile/instance.rkt" "../compile/compiled-in-memory.rkt" + "../compile/correlated-linklet.rkt" "../expand/context.rkt" "../expand/root-expand-context.rkt" "root-context.rkt" @@ -40,7 +41,7 @@ #:supermodule-name [supermodule-name #f]) ; for submodules declared with module (performance-region ['eval 'module] - + (define-values (dh h data-instance declaration-instance) (compiled-module->dh+h+data-instance+declaration-instance c)) @@ -49,7 +50,7 @@ (make-syntax-literal-data-instance-from-compiled-in-memory c) (let ([l (hash-ref h 'stx-data #f)]) (cond - [l (instantiate-linklet (eval-linklet l) + [l (instantiate-linklet (eval-linklet* l) (list deserialize-instance data-instance))] [(eq? (hash-ref h 'module->namespace #f) 'empty) @@ -83,9 +84,9 @@ (define phases-h (for*/hash ([phase-level (in-range min-phase (add1 max-phase))] [v (in-value (hash-ref h phase-level #f))] #:when v) - (values phase-level (eval-linklet v)))) + (values phase-level (eval-linklet* v)))) (define syntax-literals-linklet (let ([l (hash-ref h 'stx #f)]) - (and l (eval-linklet l)))) + (and l (eval-linklet* l)))) (define extra-inspector (and (compiled-in-memory? c) (compiled-in-memory-compile-time-inspector c))) @@ -350,14 +351,14 @@ (define data-instance (if (compiled-in-memory? c) (make-data-instance-from-compiled-in-memory c) - (instantiate-linklet (eval-linklet (hash-ref h 'data)) + (instantiate-linklet (eval-linklet* (hash-ref h 'data)) (list deserialize-instance)))) (define declaration-instance (if (and (compiled-in-memory? c) (compiled-in-memory-original-self c)) (make-declaration-instance-from-compiled-in-memory c) - (instantiate-linklet (eval-linklet (hash-ref h 'decl)) + (instantiate-linklet (eval-linklet* (hash-ref h 'decl)) (list deserialize-instance data-instance)))) @@ -402,3 +403,8 @@ (for/hash ([(phase linklet) (in-hash phases-h)]) (values phase (linklet-export-variables linklet)))) + +;; ---------------------------------------- + +(define (eval-linklet* l) + (eval-linklet (force-compile-linklet l))) diff --git a/racket/src/expander/eval/top.rkt b/racket/src/expander/eval/top.rkt index eb98daa2cf..06f65ab694 100644 --- a/racket/src/expander/eval/top.rkt +++ b/racket/src/expander/eval/top.rkt @@ -16,6 +16,7 @@ "../compile/namespace-scope.rkt" "../compile/linklet.rkt" "../expand/context.rkt" + "../compile/correlated-linklet.rkt" "top-level-instance.rkt" "multi-top.rkt" "protect.rkt") @@ -82,7 +83,7 @@ (define link-instance (if (compiled-in-memory? c) (link-instance-from-compiled-in-memory c (and (not single-expression?) ns)) - (instantiate-linklet (hash-ref h 'link) + (instantiate-linklet (force-compile-linklet (hash-ref h 'link)) (list deserialize-instance (make-eager-instance-instance #:namespace ns @@ -137,7 +138,7 @@ name val))))) - (define linklet (hash-ref h phase #f)) + (define linklet (force-compile-linklet (hash-ref h phase #f))) (cond [linklet diff --git a/racket/src/expander/expand/context.rkt b/racket/src/expander/expand/context.rkt index 2953856d52..862bab3865 100644 --- a/racket/src/expander/expand/context.rkt +++ b/racket/src/expander/expand/context.rkt @@ -68,11 +68,13 @@ * name ; #f or identifier to name the expression observer ; logging observer (for the macro debugger) for-serializable? ; accumulate submodules as serializable? + to-correlated-linklet? ; compile to machine-independent linklets? should-not-encounter-macros?)) ; #t when "expanding" to parse (define (make-expand-context ns #:to-parsed? [to-parsed? #f] #:for-serializable? [for-serializable? #f] + #:to-correlated-linklet? [to-correlated-linklet? #f] #:observer [observer #f]) (define root-ctx (namespace-get-root-expand-ctx ns)) (expand-context (root-expand-context-self-mpi root-ctx) @@ -114,6 +116,7 @@ #f ; name observer for-serializable? + to-correlated-linklet? #f)) (define (copy-root-expand-context ctx root-ctx) diff --git a/racket/src/expander/expand/module.rkt b/racket/src/expander/expand/module.rkt index 69121ce10a..c48aeb478d 100644 --- a/racket/src/expander/expand/module.rkt +++ b/racket/src/expander/expand/module.rkt @@ -1154,6 +1154,7 @@ #:full-module-name (and enclosing-self (resolved-module-path-name module-name))) #:serializable? (expand-context-for-serializable? ctx) + #:to-correlated-linklet? (expand-context-to-correlated-linklet? ctx) #:modules-being-compiled modules-being-compiled #:need-compiled-submodule-rename? #f)) (set-box! compiled-module-box compiled-module) @@ -1363,6 +1364,7 @@ #:full-module-name (resolved-module-path-name module-name)) #:force-linklet-directory? #t #:serializable? (expand-context-for-serializable? ctx) + #:to-correlated-linklet? (expand-context-to-correlated-linklet? ctx) #:modules-being-compiled modules-being-compiled #:need-compiled-submodule-rename? #f)) (hash-set! compiled-submodules name (cons is-star? compiled-submodule)) diff --git a/racket/src/racket/cmdline.inc b/racket/src/racket/cmdline.inc index dd96746a37..ceed3a6e73 100644 --- a/racket/src/racket/cmdline.inc +++ b/racket/src/racket/cmdline.inc @@ -784,6 +784,8 @@ static int run_from_cmd_line(int argc, char *_argv[], argv[0] = "-q"; else if (!strcmp("--no-jit", argv[0])) argv[0] = "-j"; + else if (!strcmp("--compile-mi", argv[0])) + argv[0] = "-M"; else if (!strcmp("--no-delay", argv[0])) argv[0] = "-d"; else if (!strcmp("--repl", argv[0])) @@ -1064,6 +1066,10 @@ static int run_from_cmd_line(int argc, char *_argv[], scheme_set_startup_use_jit(0); was_config_flag = 1; break; + case 'M': + scheme_set_startup_compile_machine_independent(1); + was_config_flag = 1; + break; case 'd': scheme_set_startup_load_on_demand(0); was_config_flag = 1; @@ -1237,6 +1243,10 @@ static int run_from_cmd_line(int argc, char *_argv[], } } + if (getenv("PLT_COMPILE_ANY")) { + scheme_set_startup_compile_machine_independent(1); + } + scheme_set_logging2_spec(syslog_level, stderr_level, stdout_level); collects_path = adjust_collects_path(collects_path, &skip_coll_dirs); @@ -1414,6 +1424,7 @@ static int run_from_cmd_line(int argc, char *_argv[], # else " -j, --no-jit : No effect, since the just-in-time compiler is unavailable\n" # endif + " -M, --compile-mi : Compile to machine-independent form\n" " -d, --no-delay: Disable on-demand loading of syntax and code\n" " -b, --binary : Read stdin and write stdout/stderr in binary mode\n" " -W , --warn : Set stderr logging to \n" diff --git a/racket/src/racket/include/scheme.h b/racket/src/racket/include/scheme.h index 4021c25727..a368ea7dd4 100644 --- a/racket/src/racket/include/scheme.h +++ b/racket/src/racket/include/scheme.h @@ -1357,6 +1357,7 @@ enum { MZCONFIG_COMPILE_MODULE_CONSTS, MZCONFIG_USE_JIT, MZCONFIG_DISALLOW_INLINE, + MZCONFIG_COMPILE_MACHINE_INDEPENDENT, MZCONFIG_CUSTODIAN, MZCONFIG_INSPECTOR, @@ -1835,6 +1836,7 @@ MZ_EXTERN int scheme_hash_percent_syntax_only; /* Defaults to 0 */ MZ_EXTERN int scheme_hash_percent_globals_only; /* Defaults to 0 */ MZ_EXTERN int scheme_binary_mode_stdio; /* Windows-specific; Defaults to 0 */ MZ_EXTERN int scheme_startup_use_jit; /* Defaults to 1 */ +MZ_EXTERN int scheme_startup_compile_machine_independent; /* Defaults to 0 */ MZ_EXTERN int scheme_ignore_user_paths; /* Defaults to 0 */ MZ_EXTERN int scheme_ignore_link_paths; /* Defaults to 0 */ @@ -1842,6 +1844,7 @@ MZ_EXTERN void scheme_set_case_sensitive(int); MZ_EXTERN void scheme_set_allow_set_undefined(int); MZ_EXTERN void scheme_set_binary_mode_stdio(int); MZ_EXTERN void scheme_set_startup_use_jit(int); +MZ_EXTERN void scheme_set_startup_compile_machine_independent(int); MZ_EXTERN void scheme_set_startup_load_on_demand(int); MZ_EXTERN void scheme_set_ignore_user_paths(int); MZ_EXTERN void scheme_set_ignore_link_paths(int); diff --git a/racket/src/racket/src/eval.c b/racket/src/racket/src/eval.c index 7fc582d6f8..6faa0159b8 100644 --- a/racket/src/racket/src/eval.c +++ b/racket/src/racket/src/eval.c @@ -181,7 +181,11 @@ /* globals */ SHARED_OK int scheme_startup_use_jit = INIT_JIT_ON; +SHARED_OK int scheme_startup_compile_machine_independent = 0; void scheme_set_startup_use_jit(int v) { scheme_startup_use_jit = v; } +void scheme_set_startup_compile_machine_independent(int v) { + scheme_startup_compile_machine_independent = v; +} /* THREAD LOCAL SHARED */ THREAD_LOCAL_DECL(volatile int scheme_fuel_counter); @@ -213,6 +217,7 @@ static Scheme_Object *allow_set_undefined(int argc, Scheme_Object **argv); static Scheme_Object *compile_module_constants(int argc, Scheme_Object **argv); static Scheme_Object *use_jit(int argc, Scheme_Object **argv); static Scheme_Object *disallow_inline(int argc, Scheme_Object **argv); +static Scheme_Object *compile_machine_independent(int argc, Scheme_Object **argv); void scheme_escape_to_continuation(Scheme_Object *obj, int num_rands, Scheme_Object **rands, Scheme_Object *alt_full); @@ -262,6 +267,7 @@ scheme_init_eval (Scheme_Startup_Env *env) ADD_PARAMETER("compile-enforce-module-constants", compile_module_constants, MZCONFIG_COMPILE_MODULE_CONSTS, env); ADD_PARAMETER("eval-jit-enabled", use_jit, MZCONFIG_USE_JIT, env); ADD_PARAMETER("compile-context-preservation-enabled", disallow_inline, MZCONFIG_DISALLOW_INLINE, env); + ADD_PARAMETER("compile-machine-independent", compile_machine_independent, MZCONFIG_COMPILE_MACHINE_INDEPENDENT, env); } void scheme_init_eval_places() @@ -3905,6 +3911,14 @@ static Scheme_Object *disallow_inline(int argc, Scheme_Object **argv) -1, NULL, NULL, 1); } +static Scheme_Object *compile_machine_independent(int argc, Scheme_Object **argv) +{ + return scheme_param_config("compile-machine-independent", + scheme_make_integer(MZCONFIG_COMPILE_MACHINE_INDEPENDENT), + argc, argv, + -1, NULL, NULL, 1); +} + static Scheme_Object * enable_break(int argc, Scheme_Object *argv[]) { diff --git a/racket/src/racket/src/schminc.h b/racket/src/racket/src/schminc.h index 067f9f2531..4f2cdd7b5a 100644 --- a/racket/src/racket/src/schminc.h +++ b/racket/src/racket/src/schminc.h @@ -14,7 +14,7 @@ #define USE_COMPILED_STARTUP 1 -#define EXPECTED_PRIM_COUNT 1446 +#define EXPECTED_PRIM_COUNT 1447 #ifdef MZSCHEME_SOMETHING_OMITTED # undef USE_COMPILED_STARTUP diff --git a/racket/src/racket/src/schvers.h b/racket/src/racket/src/schvers.h index c4bc31cbed..57e34299f6 100644 --- a/racket/src/racket/src/schvers.h +++ b/racket/src/racket/src/schvers.h @@ -13,12 +13,12 @@ consistently.) */ -#define MZSCHEME_VERSION "7.1.0.4" +#define MZSCHEME_VERSION "7.1.0.5" #define MZSCHEME_VERSION_X 7 #define MZSCHEME_VERSION_Y 1 #define MZSCHEME_VERSION_Z 0 -#define MZSCHEME_VERSION_W 4 +#define MZSCHEME_VERSION_W 5 #define MZSCHEME_VERSION_MAJOR ((MZSCHEME_VERSION_X * 100) + MZSCHEME_VERSION_Y) #define MZSCHEME_VERSION_MINOR ((MZSCHEME_VERSION_Z * 1000) + MZSCHEME_VERSION_W) diff --git a/racket/src/racket/src/startup.inc b/racket/src/racket/src/startup.inc index eff93dd44a..927912bbfc 100644 --- a/racket/src/racket/src/startup.inc +++ b/racket/src/racket/src/startup.inc @@ -15591,6 +15591,7 @@ static const char *startup_source = " expand-context/inner-requires+provides" " expand-context/inner-observer" " expand-context/inner-for-serializable?" +" expand-context/inner-to-correlated-linklet?" " expand-context/inner-should-not-encounter-macros?)" "(let-values(((struct:_0 make-_0 ?_0 -ref_0 -set!_0)" "(let-values()" @@ -15598,13 +15599,13 @@ static const char *startup_source = "(make-struct-type" " 'expand-context/inner" " struct:root-expand-context/inner" -" 19" +" 20" " 0" " #f" "(list(cons prop:authentic #t))" "(current-inspector)" " #f" -" '(0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18)" +" '(0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19)" " #f" " 'expand-context/inner)))))" "(values" @@ -15629,7 +15630,8 @@ static const char *startup_source = "(make-struct-field-accessor -ref_0 15 'requires+provides)" "(make-struct-field-accessor -ref_0 16 'observer)" "(make-struct-field-accessor -ref_0 17 'for-serializable?)" -"(make-struct-field-accessor -ref_0 18 'should-not-encounter-macros?))))" +"(make-struct-field-accessor -ref_0 18 'to-correlated-linklet?)" +"(make-struct-field-accessor -ref_0 19 'should-not-encounter-macros?))))" "(define-values" "(expand-context/make)" "(lambda(self-mpi_0" @@ -15671,6 +15673,7 @@ static const char *startup_source = " name_0" " observer_0" " for-serializable?_0" +" to-correlated-linklet?_0" " should-not-encounter-macros?_0)" "(begin" "(expand-context/outer1.1" @@ -15700,6 +15703,7 @@ static const char *startup_source = " requires+provides_0" " observer_0" " for-serializable?_0" +" to-correlated-linklet?_0" " should-not-encounter-macros?_0)" " post-expansion_0" " use-site-scopes_0" @@ -15787,17 +15791,21 @@ static const char *startup_source = "(expand-context-for-serializable?)" "(lambda(v_0)(begin(expand-context/inner-for-serializable?(root-expand-context/outer-inner v_0)))))" "(define-values" +"(expand-context-to-correlated-linklet?)" +"(lambda(v_0)(begin(expand-context/inner-to-correlated-linklet?(root-expand-context/outer-inner v_0)))))" +"(define-values" "(expand-context-should-not-encounter-macros?)" "(lambda(v_0)(begin(expand-context/inner-should-not-encounter-macros?(root-expand-context/outer-inner v_0)))))" "(define-values" -"(make-expand-context10.1)" -"(lambda(for-serializable?4_0 observer5_0 to-parsed?3_0 ns9_0)" +"(make-expand-context12.1)" +"(lambda(for-serializable?4_0 observer6_0 to-correlated-linklet?5_0 to-parsed?3_0 ns11_0)" "(begin" -" 'make-expand-context10" -"(let-values(((ns_0) ns9_0))" +" 'make-expand-context12" +"(let-values(((ns_0) ns11_0))" "(let-values(((to-parsed?_0) to-parsed?3_0))" "(let-values(((for-serializable?_0) for-serializable?4_0))" -"(let-values(((observer_0) observer5_0))" +"(let-values(((to-correlated-linklet?_0) to-correlated-linklet?5_0))" +"(let-values(((observer_0) observer6_0))" "(let-values()" "(let-values(((root-ctx_0)(namespace-get-root-expand-ctx ns_0)))" "(expand-context/make" @@ -15840,7 +15848,8 @@ static const char *startup_source = " #f" " observer_0" " for-serializable?_0" -" #f))))))))))" +" to-correlated-linklet?_0" +" #f)))))))))))" "(define-values" "(copy-root-expand-context)" "(lambda(ctx_0 root-ctx_0)" @@ -15848,29 +15857,29 @@ 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(((post-expansion27_0)(root-expand-context-post-expansion root-ctx_0))" -"((use-site-scopes28_0)(root-expand-context-use-site-scopes root-ctx_0))" -"((frame-id29_0)(root-expand-context-frame-id root-ctx_0))" -"((binding-layer30_0)(root-expand-context-frame-id root-ctx_0))" -"((inner31_0)" +"(let-values(((post-expansion29_0)(root-expand-context-post-expansion root-ctx_0))" +"((use-site-scopes30_0)(root-expand-context-use-site-scopes root-ctx_0))" +"((frame-id31_0)(root-expand-context-frame-id root-ctx_0))" +"((binding-layer32_0)(root-expand-context-frame-id root-ctx_0))" +"((inner33_0)" "(let-values(((the-struct_1)(root-expand-context/outer-inner v_0)))" "(if(expand-context/inner? the-struct_1)" -"(let-values(((self-mpi32_0)(root-expand-context-self-mpi root-ctx_0))" -"((module-scopes33_0)(root-expand-context-module-scopes root-ctx_0))" -"((top-level-bind-scope34_0)" +"(let-values(((self-mpi34_0)(root-expand-context-self-mpi root-ctx_0))" +"((module-scopes35_0)(root-expand-context-module-scopes root-ctx_0))" +"((top-level-bind-scope36_0)" "(root-expand-context-top-level-bind-scope root-ctx_0))" -"((all-scopes-stx35_0)(root-expand-context-all-scopes-stx root-ctx_0))" -"((defined-syms36_0)(root-expand-context-defined-syms root-ctx_0))" -"((counter37_0)(root-expand-context-counter root-ctx_0))" -"((lift-key38_0)(root-expand-context-lift-key root-ctx_0)))" +"((all-scopes-stx37_0)(root-expand-context-all-scopes-stx root-ctx_0))" +"((defined-syms38_0)(root-expand-context-defined-syms root-ctx_0))" +"((counter39_0)(root-expand-context-counter root-ctx_0))" +"((lift-key40_0)(root-expand-context-lift-key root-ctx_0)))" "(expand-context/inner2.1" -" self-mpi32_0" -" module-scopes33_0" -" top-level-bind-scope34_0" -" all-scopes-stx35_0" -" defined-syms36_0" -" counter37_0" -" lift-key38_0" +" self-mpi34_0" +" module-scopes35_0" +" top-level-bind-scope36_0" +" all-scopes-stx37_0" +" defined-syms38_0" +" counter39_0" +" lift-key40_0" "(expand-context/inner-to-parsed? the-struct_1)" "(expand-context/inner-phase the-struct_1)" "(expand-context/inner-namespace the-struct_1)" @@ -15889,18 +15898,19 @@ static const char *startup_source = "(expand-context/inner-requires+provides the-struct_1)" "(expand-context/inner-observer the-struct_1)" "(expand-context/inner-for-serializable? the-struct_1)" +"(expand-context/inner-to-correlated-linklet? the-struct_1)" "(expand-context/inner-should-not-encounter-macros? the-struct_1)))" " (raise-argument-error 'struct-copy \"expand-context/inner?\" the-struct_1)))))" "(expand-context/outer1.1" -" inner31_0" -" post-expansion27_0" -" use-site-scopes28_0" -" frame-id29_0" +" inner33_0" +" post-expansion29_0" +" use-site-scopes30_0" +" frame-id31_0" "(expand-context/outer-context the-struct_0)" "(expand-context/outer-env the-struct_0)" "(expand-context/outer-scopes the-struct_0)" "(expand-context/outer-def-ctx-scopes the-struct_0)" -" binding-layer30_0" +" binding-layer32_0" "(expand-context/outer-reference-records the-struct_0)" "(expand-context/outer-only-immediate? the-struct_0)" "(expand-context/outer-need-eventually-defined the-struct_0)" @@ -15913,12 +15923,12 @@ static const char *startup_source = "(current-expand-context)" "(lambda()(begin(continuation-mark-set-first #f current-expand-context default-val.1$2 root-tag))))" "(define-values" -"(get-current-expand-context16.1)" -"(lambda(fail-ok?13_0 who15_0)" +"(get-current-expand-context18.1)" +"(lambda(fail-ok?15_0 who17_0)" "(begin" -" 'get-current-expand-context16" -"(let-values(((who_0) who15_0))" -"(let-values(((fail-ok?_0) fail-ok?13_0))" +" 'get-current-expand-context18" +"(let-values(((who_0) who17_0))" +"(let-values(((fail-ok?_0) fail-ok?15_0))" "(let-values()" "(let-values(((or-part_0)(force(current-expand-context))))" " (if or-part_0 or-part_0 (if fail-ok?_0 #f (raise-arguments-error who_0 \"not currently expanding\"))))))))))" @@ -15943,16 +15953,16 @@ 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(((context39_0) 'expression)" -"((name40_0) #f)" -"((post-expansion41_0) #f)" -"((inner42_0)(root-expand-context/outer-inner v_0)))" +"(let-values(((context41_0) 'expression)" +"((name42_0) #f)" +"((post-expansion43_0) #f)" +"((inner44_0)(root-expand-context/outer-inner v_0)))" "(expand-context/outer1.1" -" inner42_0" -" post-expansion41_0" +" inner44_0" +" post-expansion43_0" "(root-expand-context/outer-use-site-scopes the-struct_0)" "(root-expand-context/outer-frame-id the-struct_0)" -" context39_0" +" context41_0" "(expand-context/outer-env the-struct_0)" "(expand-context/outer-scopes the-struct_0)" "(expand-context/outer-def-ctx-scopes the-struct_0)" @@ -15962,7 +15972,7 @@ static const char *startup_source = "(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)" -" name40_0))" +" name42_0))" " (raise-argument-error 'struct-copy \"expand-context/outer?\" the-struct_0)))))))))" "(define-values" "(as-begin-expression-context)" @@ -15974,39 +15984,7 @@ 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(((name43_0) #f)((inner44_0)(root-expand-context/outer-inner v_0)))" -"(expand-context/outer1.1" -" inner44_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)" -"(expand-context/outer-context the-struct_0)" -"(expand-context/outer-env the-struct_0)" -"(expand-context/outer-scopes the-struct_0)" -"(expand-context/outer-def-ctx-scopes the-struct_0)" -"(expand-context/outer-binding-layer the-struct_0)" -"(expand-context/outer-reference-records the-struct_0)" -"(expand-context/outer-only-immediate? the-struct_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)" -" name43_0))" -" (raise-argument-error 'struct-copy \"expand-context/outer?\" the-struct_0)))))))))" -"(define-values" -"(as-tail-context22.1)" -"(lambda(wrt19_0 ctx21_0)" -"(begin" -" 'as-tail-context22" -"(let-values(((ctx_0) ctx21_0))" -"(let-values(((wrt-ctx_0) wrt19_0))" -"(let-values()" -"(if(expand-context-name wrt-ctx_0)" -"(let-values()" -"(let-values(((v_0) ctx_0))" -"(let-values(((the-struct_0) v_0))" -"(if(expand-context/outer? the-struct_0)" -"(let-values(((name45_0)(expand-context-name wrt-ctx_0))" -"((inner46_0)(root-expand-context/outer-inner v_0)))" +"(let-values(((name45_0) #f)((inner46_0)(root-expand-context/outer-inner v_0)))" "(expand-context/outer1.1" " inner46_0" "(root-expand-context/outer-post-expansion the-struct_0)" @@ -16023,18 +16001,22 @@ static const char *startup_source = "(expand-context/outer-current-introduction-scopes the-struct_0)" "(expand-context/outer-current-use-scopes the-struct_0)" " name45_0))" -" (raise-argument-error 'struct-copy \"expand-context/outer?\" the-struct_0)))))" -"(let-values() ctx_0))))))))" +" (raise-argument-error 'struct-copy \"expand-context/outer?\" the-struct_0)))))))))" "(define-values" -"(as-named-context)" -"(lambda(ctx_0 ids_0)" +"(as-tail-context24.1)" +"(lambda(wrt21_0 ctx23_0)" "(begin" -"(if(if(pair? ids_0)(null?(cdr ids_0)) #f)" +" 'as-tail-context24" +"(let-values(((ctx_0) ctx23_0))" +"(let-values(((wrt-ctx_0) wrt21_0))" +"(let-values()" +"(if(expand-context-name wrt-ctx_0)" "(let-values()" "(let-values(((v_0) ctx_0))" "(let-values(((the-struct_0) v_0))" "(if(expand-context/outer? the-struct_0)" -"(let-values(((name47_0)(car ids_0))((inner48_0)(root-expand-context/outer-inner v_0)))" +"(let-values(((name47_0)(expand-context-name wrt-ctx_0))" +"((inner48_0)(root-expand-context/outer-inner v_0)))" "(expand-context/outer1.1" " inner48_0" "(root-expand-context/outer-post-expansion the-struct_0)" @@ -16051,6 +16033,34 @@ static const char *startup_source = "(expand-context/outer-current-introduction-scopes the-struct_0)" "(expand-context/outer-current-use-scopes the-struct_0)" " name47_0))" +" (raise-argument-error 'struct-copy \"expand-context/outer?\" the-struct_0)))))" +"(let-values() ctx_0))))))))" +"(define-values" +"(as-named-context)" +"(lambda(ctx_0 ids_0)" +"(begin" +"(if(if(pair? ids_0)(null?(cdr ids_0)) #f)" +"(let-values()" +"(let-values(((v_0) ctx_0))" +"(let-values(((the-struct_0) v_0))" +"(if(expand-context/outer? the-struct_0)" +"(let-values(((name49_0)(car ids_0))((inner50_0)(root-expand-context/outer-inner v_0)))" +"(expand-context/outer1.1" +" inner50_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)" +"(expand-context/outer-context the-struct_0)" +"(expand-context/outer-env the-struct_0)" +"(expand-context/outer-scopes the-struct_0)" +"(expand-context/outer-def-ctx-scopes the-struct_0)" +"(expand-context/outer-binding-layer the-struct_0)" +"(expand-context/outer-reference-records the-struct_0)" +"(expand-context/outer-only-immediate? the-struct_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)" +" name49_0))" " (raise-argument-error 'struct-copy \"expand-context/outer?\" the-struct_0)))))" "(let-values() ctx_0)))))" "(define-values" @@ -16060,12 +16070,12 @@ 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(((inner49_0)" +"(let-values(((inner51_0)" "(let-values(((the-struct_1)(root-expand-context/outer-inner v_0)))" "(if(expand-context/inner? the-struct_1)" -"(let-values(((to-parsed?50_0) #t)" -"((observer51_0) #f)" -"((should-not-encounter-macros?52_0) #t))" +"(let-values(((to-parsed?52_0) #t)" +"((observer53_0) #f)" +"((should-not-encounter-macros?54_0) #t))" "(expand-context/inner2.1" "(root-expand-context/inner-self-mpi the-struct_1)" "(root-expand-context/inner-module-scopes the-struct_1)" @@ -16074,7 +16084,7 @@ static const char *startup_source = "(root-expand-context/inner-defined-syms the-struct_1)" "(root-expand-context/inner-counter the-struct_1)" "(root-expand-context/inner-lift-key the-struct_1)" -" to-parsed?50_0" +" to-parsed?52_0" "(expand-context/inner-phase the-struct_1)" "(expand-context/inner-namespace the-struct_1)" "(expand-context/inner-just-once? the-struct_1)" @@ -16090,12 +16100,13 @@ static const char *startup_source = "(expand-context/inner-require-lifts the-struct_1)" "(expand-context/inner-to-module-lifts the-struct_1)" "(expand-context/inner-requires+provides the-struct_1)" -" observer51_0" +" observer53_0" "(expand-context/inner-for-serializable? the-struct_1)" -" should-not-encounter-macros?52_0))" +"(expand-context/inner-to-correlated-linklet? the-struct_1)" +" should-not-encounter-macros?54_0))" " (raise-argument-error 'struct-copy \"expand-context/inner?\" the-struct_1)))))" "(expand-context/outer1.1" -" inner49_0" +" inner51_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)" @@ -26661,34 +26672,2297 @@ static const char *startup_source = "(define-values(version-bytes$1)(string->bytes/utf-8(version)))" "(define-values(vm-bytes$1)(1/linklet-virtual-machine-bytes))" "(define-values" +"(truncate-path)" +"(lambda(p_0)" +"(begin" +"(let-values(((base1_0 name1_0 dir?_0)(split-path p_0)))" +"(if(path? base1_0)" +"(let-values()" +"(let-values(((base2_0 name2_0 dir?_1)(split-path base1_0)))" +"(if(not base2_0)" +"(let-values()(path->string p_0))" +"(if(symbol? name2_0)" +" (let-values () (string-append \".../\" (path-elem->string name1_0)))" +" (let-values () (string-append \".../\" (path->string name2_0) \"/\" (path-elem->string name1_0)))))))" +"(if(eq? base1_0 'relative)" +"(let-values()(path-elem->string name1_0))" +"(let-values()(path->string p_0))))))))" +"(define-values" +"(path-elem->string)" +"(lambda(p_0)" +"(begin" +"(if(eq? p_0 'same)" +" (let-values () \".\")" +" (if (eq? p_0 'up) (let-values () \"..\") (let-values () (path->string p_0)))))))" +"(define-values" +"(make-path->relative-path-elements4.1)" +"(lambda(who1_0 wr-dir3_0)" +"(begin" +" 'make-path->relative-path-elements4" +"(let-values(((wr-dir_0)(if(eq? wr-dir3_0 unsafe-undefined)(current-write-relative-directory) wr-dir3_0)))" +"(let-values(((who_0) who1_0))" +"(let-values()" +"(begin" +"(if who_0" +"(let-values()" +"(if(let-values(((or-part_0)(not wr-dir_0)))" +"(if or-part_0" +" or-part_0" +"(let-values(((or-part_1)(if(path-string? wr-dir_0)(complete-path? wr-dir_0) #f)))" +"(if or-part_1" +" or-part_1" +"(if(pair? wr-dir_0)" +"(if(path-string?(car wr-dir_0))" +"(if(complete-path?(car wr-dir_0))" +"(if(path-string?(cdr wr-dir_0))(complete-path?(cdr wr-dir_0)) #f)" +" #f)" +" #f)" +" #f)))))" +"(void)" +"(let-values()" +"(raise-argument-error" +" who_0" +"(string-append" +" \"(or/c (and/c path-string? complete-path?)\\n\"" +" \" (cons/c (and/c path-string? complete-path?)\\n\"" +" \" (and/c path-string? complete-path?))\\n\"" +" \" #f)\")" +" wr-dir_0))))" +"(void))" +"(if(not wr-dir_0)" +"(let-values()(lambda(v_0) #f))" +"(let-values()" +"(let-values(((exploded-base-dir_0) 'not-ready))" +"(let-values(((exploded-wrt-rel-dir_0) 'not-ready))" +"(lambda(v_0)" +"(begin" +"(if(if(eq? exploded-base-dir_0 'not-ready)(path? v_0) #f)" +"(let-values()" +"(let-values(((wrt-dir_0)(if wr-dir_0(if(pair? wr-dir_0)(car wr-dir_0) wr-dir_0) #f)))" +"(let-values(((exploded-wrt-dir_0)(explode-path wrt-dir_0)))" +"(let-values(((base-dir_0)" +"(if wr-dir_0(if(pair? wr-dir_0)(cdr wr-dir_0) wr-dir_0) #f)))" +"(begin" +"(set! exploded-base-dir_0(if base-dir_0(explode-path base-dir_0) #f))" +"(set! exploded-wrt-rel-dir_0" +"(if(eq? base-dir_0 wrt-dir_0)" +"(let-values() '())" +"(let-values()" +"(let-values(((exploded-wrt-dir_1)(explode-path wrt-dir_0)))" +"(let-values(((base-len_0)(length exploded-base-dir_0)))" +"(begin" +"(if who_0" +"(let-values()" +"(if(if(>=(length exploded-wrt-dir_1) base-len_0)" +"(let-values(((lst_0) exploded-wrt-dir_1)" +"((lst_1) exploded-base-dir_0))" +"(begin" +"(if(variable-reference-from-unsafe?" +"(#%variable-reference))" +"(void)" +"(let-values()(check-list lst_0)))" +"(if(variable-reference-from-unsafe?" +"(#%variable-reference))" +"(void)" +"(let-values()(check-list lst_1)))" +"((letrec-values(((for-loop_0)" +"(lambda(result_0 lst_2 lst_3)" +"(begin" +" 'for-loop" +"(if(if(pair? lst_2)" +"(pair? lst_3)" +" #f)" +"(let-values(((a_0)" +"(unsafe-car" +" lst_2))" +"((rest_0)" +"(unsafe-cdr" +" lst_2))" +"((b_0)" +"(unsafe-car" +" lst_3))" +"((rest_1)" +"(unsafe-cdr" +" lst_3)))" +"(let-values(((result_1)" +"(let-values()" +"(let-values(((result_1)" +"(let-values()" +"(let-values()" +"(equal?" +" a_0" +" b_0)))))" +"(values" +" result_1)))))" +"(if(if(not" +"((lambda x_0" +"(not result_1))" +" a_0))" +"(if(not" +"((lambda x_0" +"(not" +" result_1))" +" b_0))" +"(not #f)" +" #f)" +" #f)" +"(for-loop_0" +" result_1" +" rest_0" +" rest_1)" +" result_1)))" +" result_0)))))" +" for-loop_0)" +" #t" +" lst_0" +" lst_1)))" +" #f)" +"(void)" +"(let-values()" +"(raise-arguments-error" +" who_0" +" \"relative-directory pair's first path does not extend second path\"" +" \"first path\"" +" wrt-dir_0" +" \"second path\"" +" base-dir_0))))" +"(void))" +"(list-tail exploded-wrt-dir_1 base-len_0))))))))))))" +"(void))" +"(if exploded-base-dir_0" +"(if(path? v_0)" +"(let-values(((exploded_0)(explode-path v_0)))" +"(if(let-values(((lst_0) exploded-base-dir_0)((lst_1) exploded_0))" +"(begin" +"(if(variable-reference-from-unsafe?(#%variable-reference))" +"(void)" +"(let-values()(check-list lst_0)))" +"(if(variable-reference-from-unsafe?(#%variable-reference))" +"(void)" +"(let-values()(check-list lst_1)))" +"((letrec-values(((for-loop_0)" +"(lambda(result_0 lst_2 lst_3)" +"(begin" +" 'for-loop" +"(if(if(pair? lst_2)(pair? lst_3) #f)" +"(let-values(((base-p_0)(unsafe-car lst_2))" +"((rest_0)(unsafe-cdr lst_2))" +"((p_0)(unsafe-car lst_3))" +"((rest_1)(unsafe-cdr lst_3)))" +"(let-values(((result_1)" +"(let-values()" +"(let-values(((result_1)" +"(let-values()" +"(let-values()" +"(equal?" +" base-p_0" +" p_0)))))" +"(values result_1)))))" +"(if(if(not((lambda x_0(not result_1)) base-p_0))" +"(if(not((lambda x_0(not result_1)) p_0))" +"(not #f)" +" #f)" +" #f)" +"(for-loop_0 result_1 rest_0 rest_1)" +" result_1)))" +" result_0)))))" +" for-loop_0)" +" #t" +" lst_0" +" lst_1)))" +"(if(>=(length exploded_0)(length exploded-base-dir_0))" +"((letrec-values(((loop_0)" +"(lambda(exploded-wrt-rel-dir_1 rel_0)" +"(begin" +" 'loop" +"(if(null? exploded-wrt-rel-dir_1)" +"(let-values()" +"(reverse$1" +"(let-values(((lst_0) rel_0))" +"(begin" +"(if(variable-reference-from-unsafe?" +"(#%variable-reference))" +"(void)" +"(let-values()(check-list lst_0)))" +"((letrec-values(((for-loop_0)" +"(lambda(fold-var_0 lst_1)" +"(begin" +" 'for-loop" +"(if(pair? lst_1)" +"(let-values(((p_0)" +"(unsafe-car" +" lst_1))" +"((rest_0)" +"(unsafe-cdr" +" lst_1)))" +"(let-values(((fold-var_1)" +"(let-values(((fold-var_1)" +" fold-var_0))" +"(let-values(((fold-var_2)" +"(let-values()" +"(cons" +"(let-values()" +"(if(path?" +" p_0)" +"(path-element->bytes" +" p_0)" +" p_0))" +" fold-var_1))))" +"(values" +" fold-var_2)))))" +"(if(not #f)" +"(for-loop_0" +" fold-var_1" +" rest_0)" +" fold-var_1)))" +" fold-var_0)))))" +" for-loop_0)" +" null" +" lst_0)))))" +"(if(if(pair? rel_0)" +"(equal?(car rel_0)(car exploded-wrt-rel-dir_1))" +" #f)" +"(let-values()" +"(loop_0(cdr exploded-wrt-rel-dir_1)(cdr rel_0)))" +"(let-values()" +"(append" +"(reverse$1" +"(let-values(((lst_0) exploded-wrt-rel-dir_1))" +"(begin" +"(if(variable-reference-from-unsafe?" +"(#%variable-reference))" +"(void)" +"(let-values()(check-list lst_0)))" +"((letrec-values(((for-loop_0)" +"(lambda(fold-var_0 lst_1)" +"(begin" +" 'for-loop" +"(if(pair? lst_1)" +"(let-values(((p_0)" +"(unsafe-car" +" lst_1))" +"((rest_0)" +"(unsafe-cdr" +" lst_1)))" +"(let-values(((fold-var_1)" +"(let-values(((fold-var_1)" +" fold-var_0))" +"(let-values(((fold-var_2)" +"(let-values()" +"(cons" +"(let-values()" +" 'up)" +" fold-var_1))))" +"(values" +" fold-var_2)))))" +"(if(not #f)" +"(for-loop_0" +" fold-var_1" +" rest_0)" +" fold-var_1)))" +" fold-var_0)))))" +" for-loop_0)" +" null" +" lst_0))))" +"(reverse$1" +"(let-values(((lst_0) rel_0))" +"(begin" +"(if(variable-reference-from-unsafe?" +"(#%variable-reference))" +"(void)" +"(let-values()(check-list lst_0)))" +"((letrec-values(((for-loop_0)" +"(lambda(fold-var_0 lst_1)" +"(begin" +" 'for-loop" +"(if(pair? lst_1)" +"(let-values(((p_0)" +"(unsafe-car" +" lst_1))" +"((rest_0)" +"(unsafe-cdr" +" lst_1)))" +"(let-values(((fold-var_1)" +"(let-values(((fold-var_1)" +" fold-var_0))" +"(let-values(((fold-var_2)" +"(let-values()" +"(cons" +"(let-values()" +"(if(path?" +" p_0)" +"(path-element->bytes" +" p_0)" +" p_0))" +" fold-var_1))))" +"(values" +" fold-var_2)))))" +"(if(not #f)" +"(for-loop_0" +" fold-var_1" +" rest_0)" +" fold-var_1)))" +" fold-var_0)))))" +" for-loop_0)" +" null" +" lst_0))))))))))))" +" loop_0)" +" exploded-wrt-rel-dir_0" +"(list-tail exploded_0(length exploded-base-dir_0)))" +" #f)" +" #f))" +" #f)" +" #f))))))))))))))" +"(define-values(1/write-byte)(lambda(byte_0 out_0)(begin 'write-byte(write-byte byte_0 out_0))))" +"(define-values" +"(1/write-bytes)" +"(let-values(((write-bytes5_0)" +"(lambda(bstr3_0 out4_0 start-pos1_0 end-pos2_0)" +"(begin" +" 'write-bytes5" +"(let-values(((bstr_0) bstr3_0))" +"(let-values(((out_0) out4_0))" +"(let-values(((start-pos_0) start-pos1_0))" +"(let-values(((end-pos_0)" +"(if(eq? end-pos2_0 unsafe-undefined)(bytes-length bstr_0) end-pos2_0)))" +"(let-values()(write-bytes bstr_0 out_0 start-pos_0 end-pos_0))))))))))" +"(case-lambda" +"((bstr_0 out_0)(begin 'write-bytes(write-bytes5_0 bstr_0 out_0 0 unsafe-undefined)))" +"((bstr_0 out_0 start-pos_0 end-pos2_0)(write-bytes5_0 bstr_0 out_0 start-pos_0 end-pos2_0))" +"((bstr_0 out_0 start-pos1_0)(write-bytes5_0 bstr_0 out_0 start-pos1_0 unsafe-undefined)))))" +"(define-values(fasl-graph-def-type) 1)" +"(define-values(fasl-graph-ref-type) 2)" +"(define-values(fasl-false-type) 3)" +"(define-values(fasl-true-type) 4)" +"(define-values(fasl-null-type) 5)" +"(define-values(fasl-void-type) 6)" +"(define-values(fasl-eof-type) 7)" +"(define-values(fasl-integer-type) 8)" +"(define-values(fasl-flonum-type) 9)" +"(define-values(fasl-single-flonum-type) 10)" +"(define-values(fasl-rational-type) 11)" +"(define-values(fasl-complex-type) 12)" +"(define-values(fasl-char-type) 13)" +"(define-values(fasl-symbol-type) 14)" +"(define-values(fasl-unreadable-symbol-type) 15)" +"(define-values(fasl-uninterned-symbol-type) 16)" +"(define-values(fasl-keyword-type) 17)" +"(define-values(fasl-string-type) 18)" +"(define-values(fasl-immutable-string-type) 19)" +"(define-values(fasl-bytes-type) 20)" +"(define-values(fasl-immutable-bytes-type) 21)" +"(define-values(fasl-path-type) 22)" +"(define-values(fasl-relative-path-type) 23)" +"(define-values(fasl-pregexp-type) 24)" +"(define-values(fasl-regexp-type) 25)" +"(define-values(fasl-byte-pregexp-type) 26)" +"(define-values(fasl-byte-regexp-type) 27)" +"(define-values(fasl-list-type) 28)" +"(define-values(fasl-list*-type) 29)" +"(define-values(fasl-pair-type) 30)" +"(define-values(fasl-vector-type) 31)" +"(define-values(fasl-immutable-vector-type) 32)" +"(define-values(fasl-box-type) 33)" +"(define-values(fasl-immutable-box-type) 34)" +"(define-values(fasl-prefab-type) 35)" +"(define-values(fasl-hash-type) 36)" +"(define-values(fasl-immutable-hash-type) 37)" +"(define-values(fasl-srcloc) 38)" +"(define-values(fasl-extflonum-type) 39)" +"(define-values(fasl-small-integer-start) 100)" +"(define-values(fasl-lowest-small-integer) -10)" +"(define-values(fasl-highest-small-integer)(- 255(- fasl-small-integer-start fasl-lowest-small-integer) 1))" +" (define-values (fasl-prefix) #\"racket/fasl:\")" +"(define-values(fasl-prefix-length)(bytes-length fasl-prefix))" +"(define-values(fasl-hash-eq-variant) 0)" +"(define-values(fasl-hash-equal-variant) 1)" +"(define-values(fasl-hash-eqv-variant) 2)" +"(define-values" +"(s-exp->fasl11.1)" +"(lambda(keep-mutable?7_0 v10_0 orig-o9_0)" +"(begin" +" 's-exp->fasl11" +"(let-values(((v_0) v10_0))" +"(let-values(((orig-o_0) orig-o9_0))" +"(let-values(((keep-mutable?_0) keep-mutable?7_0))" +"(let-values()" +"(let-values((()" +"(begin" +"(if orig-o_0" +"(let-values()" +"(if(output-port? orig-o_0)" +"(void)" +"(let-values()" +" (raise-argument-error 'fasl->s-exp \"(or/c output-port? #f)\" orig-o_0))))" +"(void))" +"(values))))" +"(let-values(((o_0)(let-values(((or-part_0) orig-o_0))(if or-part_0 or-part_0(open-output-bytes)))))" +"(let-values(((shared_0)(make-hasheq)))" +"(let-values(((shared-counter_0) 0))" +"(let-values((()" +"(begin" +"((letrec-values(((loop_0)" +"(lambda(v_1)" +"(begin" +" 'loop" +"(if(let-values(((or-part_0)(symbol? v_1)))" +"(if or-part_0" +" or-part_0" +"(let-values(((or-part_1)(keyword? v_1)))" +"(if or-part_1" +" or-part_1" +"(let-values(((or-part_2)(string? v_1)))" +"(if or-part_2" +" or-part_2" +"(let-values(((or-part_3)(bytes? v_1)))" +"(if or-part_3" +" or-part_3" +"(path? v_1)))))))))" +"(let-values()(hash-update! shared_0 v_1 add1 0))" +"(if(pair? v_1)" +"(let-values()" +"(begin(loop_0(car v_1))(loop_0(cdr v_1))))" +"(if(vector? v_1)" +"(let-values()" +"(begin" +"(let-values(((vec_0 len_0)" +"(let-values(((vec_0) v_1))" +"(begin" +"(check-vector vec_0)" +"(values" +" vec_0" +"(unsafe-vector-length" +" vec_0))))))" +"(begin" +" #f" +"((letrec-values(((for-loop_0)" +"(lambda(pos_0)" +"(begin" +" 'for-loop" +"(if(unsafe-fx<" +" pos_0" +" len_0)" +"(let-values(((e_0)" +"(unsafe-vector-ref" +" vec_0" +" pos_0)))" +"(let-values((()" +"(let-values()" +"(let-values((()" +"(let-values()" +"(begin" +"(let-values()" +"(loop_0" +" e_0))" +"(values)))))" +"(values)))))" +"(if(not #f)" +"(for-loop_0" +"(unsafe-fx+" +" 1" +" pos_0))" +"(values))))" +"(values))))))" +" for-loop_0)" +" 0)))" +"(void)))" +"(if(hash? v_1)" +"(let-values()" +"(hash-for-each" +" v_1" +"(lambda(k_0 v_2)" +"(begin(loop_0 k_0)(loop_0 v_2)))" +" #t))" +"(if(box? v_1)" +"(let-values()(loop_0(unbox v_1)))" +"(let-values(((c1_0)(prefab-struct-key v_1)))" +"(if c1_0" +"((lambda(k_0)" +"(begin" +"(loop_0 k_0)" +"(let-values(((v*_0" +" start*_0" +" stop*_0" +" step*_0)" +"(normalise-inputs" +" 'in-vector" +" \"vector\"" +"(lambda(x_0)" +"(vector? x_0))" +"(lambda(x_0)" +"(unsafe-vector-length" +" x_0))" +"(struct->vector v_1)" +" 1" +" #f" +" 1)))" +"(begin" +" #t" +"((letrec-values(((for-loop_0)" +"(lambda(idx_0)" +"(begin" +" 'for-loop" +"(if(unsafe-fx<" +" idx_0" +" stop*_0)" +"(let-values(((e_0)" +"(unsafe-vector-ref" +" v*_0" +" idx_0)))" +"(let-values((()" +"(let-values()" +"(let-values((()" +"(let-values()" +"(begin" +"(let-values()" +"(loop_0" +" e_0))" +"(values)))))" +"(values)))))" +"(if(not" +" #f)" +"(for-loop_0" +"(unsafe-fx+" +" idx_0" +" 1))" +"(values))))" +"(values))))))" +" for-loop_0)" +" start*_0)))" +"(void)))" +" c1_0)" +"(let-values()(void)))))))))))))" +" loop_0)" +" v_0)" +"(values))))" +"(let-values(((treat-immutable?_0)" +"(lambda(v_1)" +"(begin" +" 'treat-immutable?" +"(let-values(((or-part_0)(not keep-mutable?_0)))" +"(if or-part_0 or-part_0(immutable? v_1)))))))" +"(let-values(((path->relative-path-elements_0)" +"(let-values()(make-path->relative-path-elements4.1 #f unsafe-undefined))))" +"(let-values((()(begin(1/write-bytes fasl-prefix o_0)(values))))" +"(let-values(((bstr_0)" +"(let-values(((o_1)(open-output-bytes)))" +"(begin" +"((letrec-values(((loop_0)" +"(lambda(v_1)" +"(begin" +" 'loop" +"(if(not(eq?(hash-ref shared_0 v_1 1) 1))" +"(let-values()" +"(let-values(((c_0)(hash-ref shared_0 v_1)))" +"(if(negative? c_0)" +"(let-values()" +"(begin" +"(1/write-byte fasl-graph-ref-type o_1)" +"(write-fasl-integer" +"(sub1(- c_0))" +" o_1)))" +"(let-values()" +"(let-values(((pos_0) shared-counter_0))" +"(begin" +"(set! shared-counter_0" +"(add1 shared-counter_0))" +"(1/write-byte" +" fasl-graph-def-type" +" o_1)" +"(write-fasl-integer pos_0 o_1)" +"(hash-remove! shared_0 v_1)" +"(loop_0 v_1)" +"(hash-set!" +" shared_0" +" v_1" +"(-(add1 pos_0)))))))))" +"(if(not v_1)" +"(let-values()" +"(1/write-byte fasl-false-type o_1))" +"(if(eq? v_1 #t)" +"(let-values()" +"(1/write-byte fasl-true-type o_1))" +"(if(null? v_1)" +"(let-values()" +"(1/write-byte fasl-null-type o_1))" +"(if(void? v_1)" +"(let-values()" +"(1/write-byte fasl-void-type o_1))" +"(if(eof-object? v_1)" +"(let-values()" +"(1/write-byte fasl-eof-type o_1))" +"(if(exact-integer? v_1)" +"(let-values()" +"(if(<=" +" fasl-lowest-small-integer" +" v_1" +" fasl-highest-small-integer)" +"(let-values()" +"(1/write-byte" +"(+" +" fasl-small-integer-start" +"(-" +" v_1" +" fasl-lowest-small-integer))" +" o_1))" +"(let-values()" +"(begin" +"(1/write-byte" +" fasl-integer-type" +" o_1)" +"(write-fasl-integer" +" v_1" +" o_1)))))" +"(if(flonum? v_1)" +"(let-values()" +"(begin" +"(1/write-byte" +" fasl-flonum-type" +" o_1)" +"(1/write-bytes" +"(real->floating-point-bytes" +" v_1" +" 8" +" #f)" +" o_1)))" +"(if(single-flonum? v_1)" +"(let-values()" +"(begin" +"(1/write-byte" +" fasl-single-flonum-type" +" o_1)" +"(1/write-bytes" +"(real->floating-point-bytes" +" v_1" +" 4" +" #f)" +" o_1)))" +"(if(extflonum? v_1)" +"(let-values()" +"(let-values((()" +"(begin" +"(1/write-byte" +" fasl-extflonum-type" +" o_1)" +"(values))))" +"(let-values(((bstr_0)" +"(string->bytes/utf-8" +"(format" +" \"~a\"" +" v_1))))" +"(begin" +"(write-fasl-integer" +"(bytes-length bstr_0)" +" o_1)" +"(1/write-bytes" +" bstr_0" +" o_1)))))" +"(if(rational? v_1)" +"(let-values()" +"(begin" +"(1/write-byte" +" fasl-rational-type" +" o_1)" +"(loop_0(numerator v_1))" +"(loop_0" +"(denominator v_1))))" +"(if(complex? v_1)" +"(let-values()" +"(begin" +"(1/write-byte" +" fasl-complex-type" +" o_1)" +"(loop_0" +"(real-part v_1))" +"(loop_0" +"(imag-part v_1))))" +"(if(char? v_1)" +"(let-values()" +"(begin" +"(1/write-byte" +" fasl-char-type" +" o_1)" +"(write-fasl-integer" +"(char->integer v_1)" +" o_1)))" +"(if(symbol? v_1)" +"(let-values()" +"(let-values((()" +"(begin" +"(if(symbol-interned?" +" v_1)" +"(let-values()" +"(1/write-byte" +" fasl-symbol-type" +" o_1))" +"(if(symbol-unreadable?" +" v_1)" +"(let-values()" +"(1/write-byte" +" fasl-unreadable-symbol-type" +" o_1))" +"(let-values()" +"(1/write-byte" +" fasl-uninterned-symbol-type" +" o_1))))" +"(values))))" +"(let-values(((bstr_0)" +"(string->bytes/utf-8" +"(symbol->string" +" v_1))))" +"(begin" +"(write-fasl-integer" +"(bytes-length" +" bstr_0)" +" o_1)" +"(1/write-bytes" +" bstr_0" +" o_1)))))" +"(if(keyword? v_1)" +"(let-values()" +"(let-values((()" +"(begin" +"(1/write-byte" +" fasl-keyword-type" +" o_1)" +"(values))))" +"(let-values(((bstr_0)" +"(string->bytes/utf-8" +"(keyword->string" +" v_1))))" +"(begin" +"(write-fasl-integer" +"(bytes-length" +" bstr_0)" +" o_1)" +"(1/write-bytes" +" bstr_0" +" o_1)))))" +"(if(string? v_1)" +"(let-values()" +"(begin" +"(write-fasl-integer" +"(if(treat-immutable?_0" +" v_1)" +" fasl-immutable-string-type" +" fasl-string-type)" +" o_1)" +"(write-fasl-string" +" v_1" +" o_1)))" +"(if(bytes? v_1)" +"(let-values()" +"(begin" +"(write-fasl-integer" +"(if(treat-immutable?_0" +" v_1)" +" fasl-immutable-bytes-type" +" fasl-bytes-type)" +" o_1)" +"(write-fasl-bytes" +" v_1" +" o_1)))" +"(if(path-for-some-system?" +" v_1)" +"(let-values()" +"(let-values(((rel-elems_0)" +"(path->relative-path-elements_0" +" v_1)))" +"(if rel-elems_0" +"(let-values()" +"(begin" +"(1/write-byte" +" fasl-relative-path-type" +" o_1)" +"(loop_0" +" rel-elems_0)))" +"(let-values()" +"(begin" +"(1/write-byte" +" fasl-path-type" +" o_1)" +"(write-fasl-bytes" +"(path->bytes" +" v_1)" +" o_1)" +"(loop_0" +"(path-convention-type" +" v_1)))))))" +"(if(if(srcloc?" +" v_1)" +"(let-values(((src_0)" +"(srcloc-source" +" v_1)))" +"(let-values(((or-part_0)" +"(not" +" src_0)))" +"(if or-part_0" +" or-part_0" +"(let-values(((or-part_1)" +"(path-for-some-system?" +" src_0)))" +"(if or-part_1" +" or-part_1" +"(let-values(((or-part_2)" +"(string?" +" src_0)))" +"(if or-part_2" +" or-part_2" +"(let-values(((or-part_3)" +"(bytes?" +" src_0)))" +"(if or-part_3" +" or-part_3" +"(symbol?" +" src_0))))))))))" +" #f)" +"(let-values()" +"(let-values(((src_0)" +"(srcloc-source" +" v_1)))" +"(let-values(((new-src_0)" +"(if(if(path?" +" src_0)" +"(not" +"(path->relative-path-elements_0" +" src_0))" +" #f)" +"(let-values()" +"(truncate-path" +" src_0))" +"(let-values()" +" src_0))))" +"(begin" +"(write-fasl-integer" +" fasl-srcloc" +" o_1)" +"(loop_0" +" new-src_0)" +"(loop_0" +"(srcloc-line" +" v_1))" +"(loop_0" +"(srcloc-column" +" v_1))" +"(loop_0" +"(srcloc-position" +" v_1))" +"(loop_0" +"(srcloc-span" +" v_1))))))" +"(if(pair?" +" v_1)" +"(let-values()" +"(if(pair?" +"(cdr" +" v_1))" +"(let-values()" +"(let-values(((n_0" +" normal-list?_0)" +"((letrec-values(((loop_1)" +"(lambda(v_2" +" len_0)" +"(begin" +" 'loop" +"(if(null?" +" v_2)" +"(let-values()" +"(values" +" len_0" +" #t))" +"(if(pair?" +" v_2)" +"(let-values()" +"(loop_1" +"(cdr" +" v_2)" +"(add1" +" len_0)))" +"(let-values()" +"(values" +" len_0" +" #f))))))))" +" loop_1)" +" v_1" +" 0)))" +"(begin" +"(1/write-byte" +"(if normal-list?_0" +" fasl-list-type" +" fasl-list*-type)" +" o_1)" +"(write-fasl-integer" +" n_0" +" o_1)" +"((letrec-values(((ploop_0)" +"(lambda(v_2)" +"(begin" +" 'ploop" +"(if(pair?" +" v_2)" +"(let-values()" +"(begin" +"(loop_0" +"(car" +" v_2))" +"(ploop_0" +"(cdr" +" v_2))))" +"(let-values()" +"(if normal-list?_0" +"(void)" +"(let-values()" +"(loop_0" +" v_2)))))))))" +" ploop_0)" +" v_1))))" +"(let-values()" +"(begin" +"(1/write-byte" +" fasl-pair-type" +" o_1)" +"(loop_0" +"(car" +" v_1))" +"(loop_0" +"(cdr" +" v_1))))))" +"(if(vector?" +" v_1)" +"(let-values()" +"(begin" +"(1/write-byte" +"(if(treat-immutable?_0" +" v_1)" +" fasl-immutable-vector-type" +" fasl-vector-type)" +" o_1)" +"(write-fasl-integer" +"(vector-length" +" v_1)" +" o_1)" +"(let-values(((vec_0" +" len_0)" +"(let-values(((vec_0)" +" v_1))" +"(begin" +"(check-vector" +" vec_0)" +"(values" +" vec_0" +"(unsafe-vector-length" +" vec_0))))))" +"(begin" +" #f" +"((letrec-values(((for-loop_0)" +"(lambda(pos_0)" +"(begin" +" 'for-loop" +"(if(unsafe-fx<" +" pos_0" +" len_0)" +"(let-values(((e_0)" +"(unsafe-vector-ref" +" vec_0" +" pos_0)))" +"(let-values((()" +"(let-values()" +"(let-values((()" +"(let-values()" +"(begin" +"(let-values()" +"(loop_0" +" e_0))" +"(values)))))" +"(values)))))" +"(if(not" +" #f)" +"(for-loop_0" +"(unsafe-fx+" +" 1" +" pos_0))" +"(values))))" +"(values))))))" +" for-loop_0)" +" 0)))" +"(void)))" +"(if(box?" +" v_1)" +"(let-values()" +"(begin" +"(1/write-byte" +"(if(treat-immutable?_0" +" v_1)" +" fasl-immutable-box-type" +" fasl-box-type)" +" o_1)" +"(loop_0" +"(unbox" +" v_1))))" +"(let-values(((c2_0)" +"(prefab-struct-key" +" v_1)))" +"(if c2_0" +"((lambda(k_0)" +"(let-values((()" +"(begin" +"(1/write-byte" +" fasl-prefab-type" +" o_1)" +"(values))))" +"(let-values((()" +"(begin" +"(loop_0" +" k_0)" +"(values))))" +"(let-values(((vec_0)" +"(struct->vector" +" v_1)))" +"(begin" +"(write-fasl-integer" +"(sub1" +"(vector-length" +" vec_0))" +" o_1)" +"(let-values(((v*_0" +" start*_0" +" stop*_0" +" step*_0)" +"(normalise-inputs" +" 'in-vector" +" \"vector\"" +"(lambda(x_0)" +"(vector?" +" x_0))" +"(lambda(x_0)" +"(unsafe-vector-length" +" x_0))" +" vec_0" +" 1" +" #f" +" 1)))" +"(begin" +" #t" +"((letrec-values(((for-loop_0)" +"(lambda(idx_0)" +"(begin" +" 'for-loop" +"(if(unsafe-fx<" +" idx_0" +" stop*_0)" +"(let-values(((e_0)" +"(unsafe-vector-ref" +" v*_0" +" idx_0)))" +"(let-values((()" +"(let-values()" +"(let-values((()" +"(let-values()" +"(begin" +"(let-values()" +"(loop_0" +" e_0))" +"(values)))))" +"(values)))))" +"(if(not" +" #f)" +"(for-loop_0" +"(unsafe-fx+" +" idx_0" +" 1))" +"(values))))" +"(values))))))" +" for-loop_0)" +" start*_0)))" +"(void))))))" +" c2_0)" +"(if(hash?" +" v_1)" +"(let-values()" +"(begin" +"(1/write-byte" +"(if(treat-immutable?_0" +" v_1)" +" fasl-immutable-hash-type" +" fasl-hash-type)" +" o_1)" +"(1/write-byte" +"(if(hash-eq?" +" v_1)" +"(let-values()" +" fasl-hash-eq-variant)" +"(if(hash-eqv?" +" v_1)" +"(let-values()" +" fasl-hash-eqv-variant)" +"(let-values()" +" fasl-hash-equal-variant)))" +" o_1)" +"(write-fasl-integer" +"(hash-count" +" v_1)" +" o_1)" +"(hash-for-each" +" v_1" +"(lambda(k_0" +" v_2)" +"(begin" +"(loop_0" +" k_0)" +"(loop_0" +" v_2)))" +" #t)))" +"(if(regexp?" +" v_1)" +"(let-values()" +"(begin" +"(1/write-byte" +"(if(pregexp?" +" v_1)" +" fasl-pregexp-type" +" fasl-regexp-type)" +" o_1)" +"(write-fasl-string" +"(object-name" +" v_1)" +" o_1)))" +"(if(byte-regexp?" +" v_1)" +"(let-values()" +"(begin" +"(1/write-byte" +"(if(byte-pregexp?" +" v_1)" +" fasl-byte-pregexp-type" +" fasl-byte-regexp-type)" +" o_1)" +"(write-fasl-bytes" +"(object-name" +" v_1)" +" o_1)))" +"(let-values()" +"(raise-arguments-error" +" 'fasl-write" +" \"cannot write value\"" +" \"value\"" +" v_1)))))))))))))))))))))))))))))))))" +" loop_0)" +" v_0)" +"(get-output-bytes o_1 #t)))))" +"(begin" +"(write-fasl-integer shared-counter_0 o_0)" +"(write-fasl-integer(bytes-length bstr_0) o_0)" +"(1/write-bytes bstr_0 o_0)" +"(if orig-o_0(void)(get-output-bytes o_0)))))))))))))))))))" +"(define-values" +"(fasl->s-exp17.1)" +"(lambda(datum-intern?14_0 orig-i16_0)" +"(begin" +" 'fasl->s-exp17" +"(let-values(((orig-i_0) orig-i16_0))" +"(let-values(((intern?_0) datum-intern?14_0))" +"(let-values()" +"(let-values(((init-i_0)" +"(if(bytes? orig-i_0)" +"(let-values()(mcons orig-i_0 0))" +"(if(input-port? orig-i_0)" +"(let-values() orig-i_0)" +"(let-values()" +" (raise-argument-error 'fasl->s-exp \"(or/c bytes? input-port?)\" orig-i_0))))))" +"(let-values((()" +"(begin" +"(if(bytes=?(read-bytes/exactly fasl-prefix-length init-i_0) fasl-prefix)" +"(void)" +" (let-values () (read-error \"unrecognized prefix\")))" +"(values))))" +"(let-values(((shared-count_0)(read-fasl-integer init-i_0)))" +"(let-values(((shared_0)(make-vector shared-count_0)))" +"(let-values(((len_0)(read-fasl-integer init-i_0)))" +"(let-values(((i_0)" +"(if(mpair? init-i_0)" +" init-i_0" +"(let-values(((bstr_0)(read-bytes/exactly len_0 init-i_0)))(mcons bstr_0 0)))))" +"(let-values(((intern_0)" +"(lambda(v_0)(begin 'intern(if intern?_0(datum-intern-literal v_0) v_0)))))" +"((letrec-values(((loop_0)" +"(lambda()" +"(begin" +" 'loop" +"(let-values(((type_0)(read-byte/no-eof i_0)))" +"(let-values(((tmp_0) type_0))" +"(let-values(((index_0)" +"(if(fixnum? tmp_0)" +"(if(if(unsafe-fx>= tmp_0 1)" +"(unsafe-fx< tmp_0 40)" +" #f)" +"(let-values(((tbl_0)" +" '#(1" +" 2" +" 3" +" 4" +" 5" +" 6" +" 7" +" 8" +" 9" +" 10" +" 12" +" 13" +" 14" +" 15" +" 16" +" 17" +" 18" +" 19" +" 20" +" 21" +" 22" +" 23" +" 24" +" 25" +" 26" +" 27" +" 28" +" 29" +" 31" +" 30" +" 32" +" 32" +" 33" +" 34" +" 35" +" 36" +" 37" +" 38" +" 11)))" +"(unsafe-vector*-ref tbl_0(unsafe-fx- tmp_0 1)))" +" 0)" +" 0)))" +"(if(unsafe-fx< index_0 19)" +"(if(unsafe-fx< index_0 9)" +"(if(unsafe-fx< index_0 4)" +"(if(unsafe-fx< index_0 1)" +"(let-values()" +"(if(>= type_0 fasl-small-integer-start)" +"(let-values()" +"(+" +"(- type_0 fasl-small-integer-start)" +" fasl-lowest-small-integer))" +"(let-values()" +" (read-error \"unrecognized fasl tag\" \"tag\" type_0))))" +"(if(unsafe-fx< index_0 2)" +"(let-values()" +"(let-values(((pos_0)(read-fasl-integer i_0)))" +"(let-values(((v_0)(loop_0)))" +"(begin" +"(if(< pos_0 shared-count_0)" +"(void)" +"(let-values()" +" (read-error \"bad graph index\")))" +"(vector-set! shared_0 pos_0 v_0)" +" v_0))))" +"(if(unsafe-fx< index_0 3)" +"(let-values()" +"(let-values(((pos_0)(read-fasl-integer i_0)))" +"(begin" +"(if(< pos_0 shared-count_0)" +"(void)" +"(let-values()" +" (read-error \"bad graph index\")))" +"(vector-ref shared_0 pos_0))))" +"(let-values() #f))))" +"(if(unsafe-fx< index_0 6)" +"(if(unsafe-fx< index_0 5)" +"(let-values() #t)" +"(let-values() null))" +"(if(unsafe-fx< index_0 7)" +"(let-values()(void))" +"(if(unsafe-fx< index_0 8)" +"(let-values() eof)" +"(let-values()(intern_0(read-fasl-integer i_0)))))))" +"(if(unsafe-fx< index_0 13)" +"(if(unsafe-fx< index_0 10)" +"(let-values()" +"(floating-point-bytes->real" +"(read-bytes/exactly 8 i_0)" +" #f))" +"(if(unsafe-fx< index_0 11)" +"(let-values()" +"(real->single-flonum" +"(floating-point-bytes->real" +"(read-bytes/exactly 4 i_0)" +" #f)))" +"(if(unsafe-fx< index_0 12)" +"(let-values()" +"(let-values(((bstr_0)" +"(read-bytes/exactly" +"(read-fasl-integer i_0)" +" i_0)))" +"(1/string->number" +"(bytes->string/utf-8 bstr_0)" +" 10" +" 'read)))" +"(let-values()(intern_0(/(loop_0)(loop_0)))))))" +"(if(unsafe-fx< index_0 15)" +"(if(unsafe-fx< index_0 14)" +"(let-values()" +"(intern_0(make-rectangular(loop_0)(loop_0))))" +"(let-values()" +"(intern_0(integer->char(read-fasl-integer i_0)))))" +"(if(unsafe-fx< index_0 16)" +"(let-values()(string->symbol(read-fasl-string i_0)))" +"(if(unsafe-fx< index_0 17)" +"(let-values()" +"(string->unreadable-symbol(read-fasl-string i_0)))" +"(if(unsafe-fx< index_0 18)" +"(let-values()" +"(string->uninterned-symbol" +"(read-fasl-string i_0)))" +"(let-values()" +"(string->keyword(read-fasl-string i_0)))))))))" +"(if(unsafe-fx< index_0 28)" +"(if(unsafe-fx< index_0 23)" +"(if(unsafe-fx< index_0 20)" +"(let-values()(read-fasl-string i_0))" +"(if(unsafe-fx< index_0 21)" +"(let-values()" +"(intern_0" +"(string->immutable-string(read-fasl-string i_0))))" +"(if(unsafe-fx< index_0 22)" +"(let-values()(read-fasl-bytes i_0))" +"(let-values()" +"(intern_0" +"(bytes->immutable-bytes(read-fasl-bytes i_0)))))))" +"(if(unsafe-fx< index_0 25)" +"(if(unsafe-fx< index_0 24)" +"(let-values()" +"(bytes->path(read-fasl-bytes i_0)(loop_0)))" +"(let-values()" +"(let-values(((wrt-dir_0)" +"(current-load-relative-directory)))" +"(let-values(((rel-elems_0)" +"(reverse$1" +"(let-values(((lst_0)(loop_0)))" +"(begin" +"(if(variable-reference-from-unsafe?" +"(#%variable-reference))" +"(void)" +"(let-values()" +"(check-list lst_0)))" +"((letrec-values(((for-loop_0)" +"(lambda(fold-var_0" +" lst_1)" +"(begin" +" 'for-loop" +"(if(pair?" +" lst_1)" +"(let-values(((p_0)" +"(unsafe-car" +" lst_1))" +"((rest_0)" +"(unsafe-cdr" +" lst_1)))" +"(let-values(((fold-var_1)" +"(let-values(((fold-var_1)" +" fold-var_0))" +"(let-values(((fold-var_2)" +"(let-values()" +"(cons" +"(let-values()" +"(if(bytes?" +" p_0)" +"(bytes->path-element" +" p_0)" +" p_0))" +" fold-var_1))))" +"(values" +" fold-var_2)))))" +"(if(not" +" #f)" +"(for-loop_0" +" fold-var_1" +" rest_0)" +" fold-var_1)))" +" fold-var_0)))))" +" for-loop_0)" +" null" +" lst_0))))))" +"(if wrt-dir_0" +"(let-values()" +"(apply build-path wrt-dir_0 rel-elems_0))" +"(if(null? rel-elems_0)" +"(let-values()(build-path 'same))" +"(let-values()" +"(apply build-path rel-elems_0))))))))" +"(if(unsafe-fx< index_0 26)" +"(let-values()" +"(intern_0(pregexp(read-fasl-string i_0))))" +"(if(unsafe-fx< index_0 27)" +"(let-values()" +"(intern_0(regexp(read-fasl-string i_0))))" +"(let-values()" +"(intern_0(byte-pregexp(read-fasl-bytes i_0))))))))" +"(if(unsafe-fx< index_0 33)" +"(if(unsafe-fx< index_0 30)" +"(if(unsafe-fx< index_0 29)" +"(let-values()" +"(intern_0(byte-regexp(read-fasl-bytes i_0))))" +"(let-values()" +"(let-values(((len_1)(read-fasl-integer i_0)))" +"(reverse$1" +"(let-values(((start_0) 0)" +"((end_0) len_1)" +"((inc_0) 1))" +"(begin" +"(if(variable-reference-from-unsafe?" +"(#%variable-reference))" +"(void)" +"(let-values()" +"(check-range start_0 end_0 inc_0)))" +"((letrec-values(((for-loop_0)" +"(lambda(fold-var_0 pos_0)" +"(begin" +" 'for-loop" +"(if(< pos_0 end_0)" +"(let-values()" +"(let-values(((fold-var_1)" +"(let-values(((fold-var_1)" +" fold-var_0))" +"(let-values(((fold-var_2)" +"(let-values()" +"(cons" +"(let-values()" +"(loop_0))" +" fold-var_1))))" +"(values" +" fold-var_2)))))" +"(if(not #f)" +"(for-loop_0" +" fold-var_1" +"(+ pos_0 inc_0))" +" fold-var_1)))" +" fold-var_0)))))" +" for-loop_0)" +" null" +" start_0)))))))" +"(if(unsafe-fx< index_0 31)" +"(let-values()(cons(loop_0)(loop_0)))" +"(if(unsafe-fx< index_0 32)" +"(let-values()" +"(let-values(((len_1)(read-fasl-integer i_0)))" +"((letrec-values(((ploop_0)" +"(lambda(len_2)" +"(begin" +" 'ploop" +"(if(zero? len_2)" +"(loop_0)" +"(cons" +"(loop_0)" +"(ploop_0" +"(sub1 len_2))))))))" +" ploop_0)" +" len_1)))" +"(let-values()" +"(let-values(((len_1)(read-fasl-integer i_0)))" +"(let-values(((vec_0)" +"(let-values(((len_2) len_1))" +"(begin" +"(if(exact-nonnegative-integer?" +" len_2)" +"(void)" +"(let-values()" +"(raise-argument-error" +" 'for/vector" +" \"exact-nonnegative-integer?\"" +" len_2)))" +"(let-values(((v_0)" +"(make-vector" +" len_2" +" 0)))" +"(begin" +"(if(zero? len_2)" +"(void)" +"(let-values()" +"(let-values(((start_0)" +" 0)" +"((end_0)" +" len_1)" +"((inc_0)" +" 1))" +"(begin" +"(if(variable-reference-from-unsafe?" +"(#%variable-reference))" +"(void)" +"(let-values()" +"(check-range" +" start_0" +" end_0" +" inc_0)))" +"((letrec-values(((for-loop_0)" +"(lambda(i_1" +" pos_0)" +"(begin" +" 'for-loop" +"(if(<" +" pos_0" +" end_0)" +"(let-values(((j_0)" +" pos_0))" +"(let-values(((i_2)" +"(let-values(((i_2)" +" i_1))" +"(let-values(((i_3)" +"(let-values()" +"(begin" +"(unsafe-vector*-set!" +" v_0" +" i_2" +"(let-values()" +"(loop_0)))" +"(unsafe-fx+" +" 1" +" i_2)))))" +"(values" +" i_3)))))" +"(if(if(not" +"((lambda x_0" +"(unsafe-fx=" +" i_2" +" len_2))" +" j_0))" +"(not" +" #f)" +" #f)" +"(for-loop_0" +" i_2" +"(+" +" pos_0" +" inc_0))" +" i_2)))" +" i_1)))))" +" for-loop_0)" +" 0" +" start_0)))))" +" v_0))))))" +"(if(eqv? type_0 fasl-immutable-vector-type)" +"(vector->immutable-vector vec_0)" +" vec_0)))))))" +"(if(unsafe-fx< index_0 35)" +"(if(unsafe-fx< index_0 34)" +"(let-values()(box(loop_0)))" +"(let-values()(box-immutable(loop_0))))" +"(if(unsafe-fx< index_0 36)" +"(let-values()" +"(let-values(((key_0)(loop_0)))" +"(let-values(((len_1)(read-fasl-integer i_0)))" +"(apply" +" make-prefab-struct" +" key_0" +"(reverse$1" +"(let-values(((start_0) 0)" +"((end_0) len_1)" +"((inc_0) 1))" +"(begin" +"(if(variable-reference-from-unsafe?" +"(#%variable-reference))" +"(void)" +"(let-values()" +"(check-range start_0 end_0 inc_0)))" +"((letrec-values(((for-loop_0)" +"(lambda(fold-var_0 pos_0)" +"(begin" +" 'for-loop" +"(if(< pos_0 end_0)" +"(let-values()" +"(let-values(((fold-var_1)" +"(let-values(((fold-var_1)" +" fold-var_0))" +"(let-values(((fold-var_2)" +"(let-values()" +"(cons" +"(let-values()" +"(loop_0))" +" fold-var_1))))" +"(values" +" fold-var_2)))))" +"(if(not #f)" +"(for-loop_0" +" fold-var_1" +"(+" +" pos_0" +" inc_0))" +" fold-var_1)))" +" fold-var_0)))))" +" for-loop_0)" +" null" +" start_0))))))))" +"(if(unsafe-fx< index_0 37)" +"(let-values()" +"(let-values(((ht_0)" +"(let-values(((tmp_1)" +"(read-byte/no-eof i_0)))" +"(if(equal? tmp_1 0)" +"(let-values()(make-hasheq))" +"(if(equal? tmp_1 2)" +"(let-values()(make-hasheqv))" +"(let-values()(make-hash)))))))" +"(let-values(((len_1)(read-fasl-integer i_0)))" +"(begin" +"(let-values(((start_0) 0)" +"((end_0) len_1)" +"((inc_0) 1))" +"(begin" +"(if(variable-reference-from-unsafe?" +"(#%variable-reference))" +"(void)" +"(let-values()" +"(check-range start_0 end_0 inc_0)))" +"((letrec-values(((for-loop_0)" +"(lambda(pos_0)" +"(begin" +" 'for-loop" +"(if(< pos_0 end_0)" +"(let-values()" +"(let-values((()" +"(let-values()" +"(let-values((()" +"(let-values()" +"(begin" +"(let-values()" +"(hash-set!" +" ht_0" +"(loop_0)" +"(loop_0)))" +"(values)))))" +"(values)))))" +"(if(not #f)" +"(for-loop_0" +"(+" +" pos_0" +" inc_0))" +"(values))))" +"(values))))))" +" for-loop_0)" +" start_0)))" +"(void)" +" ht_0))))" +"(if(unsafe-fx< index_0 38)" +"(let-values()" +"(let-values(((ht_0)" +"(let-values(((tmp_1)" +"(read-byte/no-eof" +" i_0)))" +"(if(equal? tmp_1 0)" +"(let-values() '#hasheq())" +"(if(equal? tmp_1 2)" +"(let-values() '#hasheqv())" +"(let-values() '#hash()))))))" +"(let-values(((len_1)(read-fasl-integer i_0)))" +"(let-values(((start_0) 0)" +"((end_0) len_1)" +"((inc_0) 1))" +"(begin" +"(if(variable-reference-from-unsafe?" +"(#%variable-reference))" +"(void)" +"(let-values()" +"(check-range start_0 end_0 inc_0)))" +"((letrec-values(((for-loop_0)" +"(lambda(ht_1 pos_0)" +"(begin" +" 'for-loop" +"(if(< pos_0 end_0)" +"(let-values()" +"(let-values(((ht_2)" +"(let-values(((ht_2)" +" ht_1))" +"(let-values(((ht_3)" +"(let-values()" +"(hash-set" +" ht_2" +"(loop_0)" +"(loop_0)))))" +"(values" +" ht_3)))))" +"(if(not #f)" +"(for-loop_0" +" ht_2" +"(+" +" pos_0" +" inc_0))" +" ht_2)))" +" ht_1)))))" +" for-loop_0)" +" ht_0" +" start_0))))))" +"(let-values()" +"(srcloc" +"(loop_0)" +"(loop_0)" +"(loop_0)" +"(loop_0)" +"(loop_0)))))))))))))))))" +" loop_0)))))))))))))))" +"(define-values" +"(write-fasl-integer)" +"(lambda(i_0 o_0)" +"(begin" +"(if(<= -124 i_0 127)" +"(let-values()(if(negative? i_0)(1/write-byte(+ i_0 256) o_0)(1/write-byte i_0 o_0)))" +"(if(<= -32768 i_0 32767)" +"(let-values()(begin(1/write-byte 128 o_0)(1/write-bytes(integer->integer-bytes i_0 2 #t #f) o_0)))" +"(if(<= -2147483648 i_0 2147483647)" +"(let-values()(begin(1/write-byte 129 o_0)(1/write-bytes(integer->integer-bytes i_0 4 #t #f) o_0)))" +"(if(<= -9223372036854775808 i_0 9223372036854775807)" +"(let-values()(begin(1/write-byte 130 o_0)(1/write-bytes(integer->integer-bytes i_0 8 #t #f) o_0)))" +"(let-values()" +"(let-values((()(begin(1/write-byte 131 o_0)(values))))" +" (let-values (((s_0) (format \"~x\" i_0)))" +"(begin(write-fasl-integer(string-length s_0) o_0)(write-string s_0 o_0))))))))))))" +"(define-values" +"(write-fasl-string)" +"(lambda(v_0 o_0)" +"(begin" +"(let-values(((bstr_0)(string->bytes/utf-8 v_0)))" +"(begin(write-fasl-integer(bytes-length bstr_0) o_0)(1/write-bytes bstr_0 o_0))))))" +"(define-values" +"(write-fasl-bytes)" +"(lambda(v_0 o_0)(begin(begin(write-fasl-integer(bytes-length v_0) o_0)(1/write-bytes v_0 o_0)))))" +"(define-values" +"(read-error)" +"(lambda(s_0 . args_0)" +" (begin (apply raise-arguments-error 'fasl-read (string-append \"error parsing fasl stream;\\n\" \" \" s_0) args_0))))" +"(define-values" +"(read-byte/no-eof)" +"(lambda(i_0)" +"(begin" +"(if(mpair? i_0)" +"(let-values()" +"(let-values(((pos_0)(mcdr i_0)))" +"(begin" +" (if (< pos_0 (bytes-length (mcar i_0))) (void) (let-values () (read-error \"truncated stream\")))" +"(set-mcdr! i_0(add1 pos_0))" +"(bytes-ref(mcar i_0) pos_0))))" +"(let-values()" +"(let-values(((b_0)(read-byte i_0)))" +" (begin (if (eof-object? b_0) (let-values () (read-error \"truncated stream\")) (void)) b_0)))))))" +"(define-values" +"(read-bytes/exactly)" +"(lambda(n_0 i_0)" +"(begin" +"(if(mpair? i_0)" +"(let-values()" +"(let-values(((pos_0)(mcdr i_0)))" +"(begin" +" (if (<= (+ pos_0 n_0) (bytes-length (mcar i_0))) (void) (let-values () (read-error \"truncated stream\")))" +"(set-mcdr! i_0(+ pos_0 n_0))" +"(subbytes(mcar i_0) pos_0(+ pos_0 n_0)))))" +"(let-values()" +"(let-values(((bstr_0)(read-bytes n_0 i_0)))" +"(begin" +"(if(if(bytes? bstr_0)(= n_0(bytes-length bstr_0)) #f)" +"(void)" +" (let-values () (read-error \"truncated stream\")))" +" bstr_0)))))))" +"(define-values" +"(read-fasl-integer)" +"(lambda(i_0)" +"(begin" +"(let-values(((b_0)(read-byte/no-eof i_0)))" +"(if(<= b_0 127)" +"(let-values() b_0)" +"(if(>= b_0 132)" +"(let-values()(- b_0 256))" +"(if(eqv? b_0 128)" +"(let-values()(integer-bytes->integer(read-bytes/exactly 2 i_0) #t #f))" +"(if(eqv? b_0 129)" +"(let-values()(integer-bytes->integer(read-bytes/exactly 4 i_0) #t #f))" +"(if(eqv? b_0 130)" +"(let-values()(integer-bytes->integer(read-bytes/exactly 8 i_0) #t #f))" +"(if(eqv? b_0 131)" +"(let-values()" +"(let-values(((len_0)(read-fasl-integer i_0)))" +"(let-values(((str_0)(read-fasl-string i_0 len_0)))" +"(begin" +"(if(if(string? str_0)(= len_0(string-length str_0)) #f)" +"(void)" +" (let-values () (read-error \"truncated stream at number\")))" +"(1/string->number str_0 16)))))" +" (let-values () (read-error \"internal error on integer mode\"))))))))))))" +"(define-values" +"(read-fasl-string)" +"(let-values(((read-fasl-string22_0)" +"(lambda(i21_0 len20_0)" +"(begin" +" 'read-fasl-string22" +"(let-values(((i_0) i21_0))" +"(let-values(((len_0)(if(eq? len20_0 unsafe-undefined)(read-fasl-integer i_0) len20_0)))" +"(let-values()" +"(let-values(((bstr_0)(read-bytes/exactly len_0 i_0)))(bytes->string/utf-8 bstr_0)))))))))" +"(case-lambda" +"((i_0)(begin(read-fasl-string22_0 i_0 unsafe-undefined)))" +"((i_0 len20_0)(read-fasl-string22_0 i_0 len20_0)))))" +"(define-values" +"(read-fasl-bytes)" +"(lambda(i_0)(begin(let-values(((len_0)(read-fasl-integer i_0)))(read-bytes/exactly len_0 i_0)))))" +"(define-values(datum->syntax$3) datum->syntax)" +"(define-values(syntax-property$2) syntax-property)" +"(define-values(syntax-span$2) syntax-span)" +"(define-values(syntax-position$2) syntax-position)" +"(define-values(syntax-column$2) syntax-column)" +"(define-values(syntax-line$2) syntax-line)" +"(define-values(syntax-source$2) syntax-source)" +"(define-values(syntax-e$2) syntax-e)" +"(define-values(1/syntax?) syntax?)" +"(define-values(correlated?)(lambda(e_0)(begin(1/syntax? e_0))))" +"(define-values" +"(datum->correlated)" +"(let-values(((datum->correlated3_0)" +"(lambda(d2_0 srcloc1_0)" +"(begin" +" 'datum->correlated3" +"(let-values(((d_0) d2_0))" +"(let-values(((srcloc_0) srcloc1_0))(let-values()(datum->syntax$3 #f d_0 srcloc_0))))))))" +"(case-lambda((d_0)(begin(datum->correlated3_0 d_0 #f)))((d_0 srcloc1_0)(datum->correlated3_0 d_0 srcloc1_0)))))" +"(define-values(correlated-e)(lambda(e_0)(begin(if(1/syntax? e_0)(syntax-e$2 e_0) e_0))))" +"(define-values(correlated-cadr)(lambda(e_0)(begin(car(correlated-e(cdr(correlated-e e_0)))))))" +"(define-values" +"(correlated-length)" +"(lambda(e_0)(begin(let-values(((l_0)(correlated-e e_0)))(if(list? l_0)(length l_0) #f)))))" +"(define-values" +"(correlated->list)" +"(lambda(e_0)" +"(begin" +"((letrec-values(((loop_0)" +"(lambda(e_1)" +"(begin" +" 'loop" +"(if(list? e_1)" +"(let-values() e_1)" +"(if(pair? e_1)" +"(let-values()(cons(car e_1)(loop_0(cdr e_1))))" +"(if(null? e_1)" +"(let-values() null)" +"(if(1/syntax? e_1)" +"(let-values()(loop_0(syntax-e$2 e_1)))" +" (let-values () (error 'correlated->list \"not a list\"))))))))))" +" loop_0)" +" e_0))))" +"(define-values" +"(correlated-property)" +"(case-lambda((e_0 k_0)(begin(syntax-property$2 e_0 k_0)))((e_0 k_0 v_0)(syntax-property$2 e_0 k_0 v_0))))" +"(define-values" +"(to-syntax-list.1$1)" +"(lambda(s_0)" +"(begin" +" 'to-syntax-list" +"(if(list? s_0)" +"(let-values() s_0)" +"(if(pair? s_0)" +"(let-values()(let-values(((r_0)(to-syntax-list.1$1(cdr s_0))))(if r_0(cons(car s_0) r_0) #f)))" +"(if(1/syntax? s_0)(let-values()(to-syntax-list.1$1(syntax-e$2 s_0)))(let-values() #f)))))))" +"(define-values(correlated-source)(lambda(s_0)(begin(syntax-source$2 s_0))))" +"(define-values(correlated-line)(lambda(s_0)(begin(syntax-line$2 s_0))))" +"(define-values(correlated-column)(lambda(s_0)(begin(syntax-column$2 s_0))))" +"(define-values(correlated-position)(lambda(s_0)(begin(syntax-position$2 s_0))))" +"(define-values(correlated-span)(lambda(s_0)(begin(syntax-span$2 s_0))))" +"(define-values" +"(struct:correlated-linklet" +" correlated-linklet1.1" +" correlated-linklet?" +" correlated-linklet-expr" +" correlated-linklet-name" +" correlated-linklet-compiled" +" set-correlated-linklet-compiled!)" +"(let-values(((struct:_0 make-_0 ?_0 -ref_0 -set!_0)" +"(let-values()" +"(let-values()" +"(make-struct-type" +" 'correlated-linklet" +" #f" +" 3" +" 0" +" #f" +"(list(cons prop:authentic #t))" +"(current-inspector)" +" #f" +" '(0 1)" +" #f" +" 'correlated-linklet)))))" +"(values" +" struct:_0" +" make-_0" +" ?_0" +"(make-struct-field-accessor -ref_0 0 'expr)" +"(make-struct-field-accessor -ref_0 1 'name)" +"(make-struct-field-accessor -ref_0 2 'compiled)" +"(make-struct-field-mutator -set!_0 2 'compiled))))" +"(define-values(make-correlated-linklet)(lambda(expr_0 name_0)(begin(correlated-linklet1.1 expr_0 name_0 #f))))" +"(define-values" +"(force-compile-linklet)" +"(lambda(l_0)" +"(begin" +"(if(correlated-linklet? l_0)" +"(let-values()" +"(let-values(((or-part_0)(correlated-linklet-compiled l_0)))" +"(if or-part_0" +" or-part_0" +"(let-values(((c_0)(1/compile-linklet(correlated-linklet-expr l_0)(correlated-linklet-name l_0))))" +"(begin(set-correlated-linklet-compiled! l_0 c_0) c_0)))))" +"(let-values() l_0)))))" +" (define-values (correlated-linklet-vm-bytes) #\"linklet\")" +"(define-values" +"(struct:faslable-correlated" +" faslable-correlated2.1" +" faslable-correlated?" +" faslable-correlated-e" +" faslable-correlated-source" +" faslable-correlated-position" +" faslable-correlated-line" +" faslable-correlated-column" +" faslable-correlated-span" +" faslable-correlated-name)" +"(let-values(((struct:_0 make-_0 ?_0 -ref_0 -set!_0)" +"(let-values()" +"(let-values()" +"(make-struct-type" +" 'faslable-correlated" +" #f" +" 7" +" 0" +" #f" +" null" +" 'prefab" +" #f" +" '(0 1 2 3 4 5 6)" +" #f" +" 'faslable-correlated)))))" +"(values" +" struct:_0" +" make-_0" +" ?_0" +"(make-struct-field-accessor -ref_0 0 'e)" +"(make-struct-field-accessor -ref_0 1 'source)" +"(make-struct-field-accessor -ref_0 2 'position)" +"(make-struct-field-accessor -ref_0 3 'line)" +"(make-struct-field-accessor -ref_0 4 'column)" +"(make-struct-field-accessor -ref_0 5 'span)" +"(make-struct-field-accessor -ref_0 6 'name))))" +"(define-values" +"(struct:faslable-correlated-linklet" +" faslable-correlated-linklet3.1" +" faslable-correlated-linklet?" +" faslable-correlated-linklet-expr" +" faslable-correlated-linklet-name)" +"(let-values(((struct:_0 make-_0 ?_0 -ref_0 -set!_0)" +"(let-values()" +"(let-values()" +"(make-struct-type" +" 'faslable-correlated-linklet" +" #f" +" 2" +" 0" +" #f" +" null" +" 'prefab" +" #f" +" '(0 1)" +" #f" +" 'faslable-correlated-linklet)))))" +"(values" +" struct:_0" +" make-_0" +" ?_0" +"(make-struct-field-accessor -ref_0 0 'expr)" +"(make-struct-field-accessor -ref_0 1 'name))))" +"(define-values" +"(write-correlated-linklet-bundle-hash)" +"(lambda(ht_0 o_0)" +"(begin(let-values(((temp7_0)(->faslable ht_0))((o8_0) o_0))(s-exp->fasl11.1 #f temp7_0 o8_0)))))" +"(define-values" +"(->faslable)" +"(lambda(v_0)" +"(begin" +"(if(pair? v_0)" +"(let-values()" +"(let-values(((a_0)(->faslable(car v_0))))" +"(let-values(((d_0)(->faslable(cdr v_0))))" +"(if(if(eq? a_0(car v_0))(eq? d_0(cdr v_0)) #f) v_0(cons a_0 d_0)))))" +"(if(correlated? v_0)" +"(let-values()" +"(faslable-correlated2.1" +"(->faslable(correlated-e v_0))" +"(correlated-source v_0)" +"(correlated-position v_0)" +"(correlated-line v_0)" +"(correlated-column v_0)" +"(correlated-span v_0)" +"(correlated-property v_0 'inferred-name)))" +"(if(hash? v_0)" +"(let-values()" +"(if(hash-eq? v_0)" +"(let-values()" +"(let-values(((ht_0) v_0))" +"(begin" +"(if(variable-reference-from-unsafe?(#%variable-reference))" +"(void)" +"(let-values()(check-in-hash ht_0)))" +"((letrec-values(((for-loop_0)" +"(lambda(table_0 i_0)" +"(begin" +" 'for-loop" +"(if i_0" +"(let-values(((key_0 value_0)(hash-iterate-key+value ht_0 i_0)))" +"(let-values(((table_1)" +"(let-values(((table_1) table_0))" +"(let-values(((table_2)" +"(let-values()" +"(let-values(((key_1 val_0)" +"(let-values()" +"(values" +"(->faslable key_0)" +"(->faslable" +" value_0)))))" +"(hash-set table_1 key_1 val_0)))))" +"(values table_2)))))" +"(if(not #f)" +"(for-loop_0 table_1(hash-iterate-next ht_0 i_0))" +" table_1)))" +" table_0)))))" +" for-loop_0)" +" '#hasheq()" +"(hash-iterate-first ht_0)))))" +"(if(hash-eqv? v_0)" +"(let-values()" +"(let-values(((ht_0) v_0))" +"(begin" +"(if(variable-reference-from-unsafe?(#%variable-reference))" +"(void)" +"(let-values()(check-in-hash ht_0)))" +"((letrec-values(((for-loop_0)" +"(lambda(table_0 i_0)" +"(begin" +" 'for-loop" +"(if i_0" +"(let-values(((key_0 value_0)(hash-iterate-key+value ht_0 i_0)))" +"(let-values(((table_1)" +"(let-values(((table_1) table_0))" +"(let-values(((table_2)" +"(let-values()" +"(let-values(((key_1 val_0)" +"(let-values()" +"(values" +"(->faslable key_0)" +"(->faslable" +" value_0)))))" +"(hash-set table_1 key_1 val_0)))))" +"(values table_2)))))" +"(if(not #f)" +"(for-loop_0 table_1(hash-iterate-next ht_0 i_0))" +" table_1)))" +" table_0)))))" +" for-loop_0)" +" '#hasheqv()" +"(hash-iterate-first ht_0)))))" +"(let-values()" +"(let-values(((ht_0) v_0))" +"(begin" +"(if(variable-reference-from-unsafe?(#%variable-reference))" +"(void)" +"(let-values()(check-in-hash ht_0)))" +"((letrec-values(((for-loop_0)" +"(lambda(table_0 i_0)" +"(begin" +" 'for-loop" +"(if i_0" +"(let-values(((key_0 value_0)(hash-iterate-key+value ht_0 i_0)))" +"(let-values(((table_1)" +"(let-values(((table_1) table_0))" +"(let-values(((table_2)" +"(let-values()" +"(let-values(((key_1 val_0)" +"(let-values()" +"(values" +"(->faslable key_0)" +"(->faslable" +" value_0)))))" +"(hash-set table_1 key_1 val_0)))))" +"(values table_2)))))" +"(if(not #f)" +"(for-loop_0 table_1(hash-iterate-next ht_0 i_0))" +" table_1)))" +" table_0)))))" +" for-loop_0)" +" '#hash()" +"(hash-iterate-first ht_0))))))))" +"(if(correlated-linklet? v_0)" +"(let-values()" +"(faslable-correlated-linklet3.1" +"(->faslable(correlated-linklet-expr v_0))" +"(->faslable(correlated-linklet-name v_0))))" +"(let-values() v_0))))))))" +"(define-values" +"(read-correlated-linklet-bundle-hash)" +"(lambda(in_0)(begin(faslable->(let-values(((in9_0) in_0))(fasl->s-exp17.1 #t in9_0))))))" +"(define-values" +"(faslable->)" +"(lambda(v_0)" +"(begin" +"(if(pair? v_0)" +"(let-values()" +"(let-values(((a_0)(faslable->(car v_0))))" +"(let-values(((d_0)(faslable->(cdr v_0))))" +"(if(if(eq? a_0(car v_0))(eq? d_0(cdr v_0)) #f) v_0(cons a_0 d_0)))))" +"(if(faslable-correlated? v_0)" +"(let-values()" +"(let-values(((name_0)(faslable-correlated-name v_0)))" +"(let-values(((c_0)" +"(datum->correlated" +"(faslable->(faslable-correlated-e v_0))" +"(vector" +"(faslable-correlated-source v_0)" +"(faslable-correlated-line v_0)" +"(faslable-correlated-column v_0)" +"(faslable-correlated-position v_0)" +"(faslable-correlated-span v_0)))))" +"(if name_0(correlated-property c_0 'inferred-name name_0) c_0))))" +"(if(hash? v_0)" +"(let-values()" +"(if(hash-eq? v_0)" +"(let-values()" +"(let-values(((ht_0) v_0))" +"(begin" +"(if(variable-reference-from-unsafe?(#%variable-reference))" +"(void)" +"(let-values()(check-in-hash ht_0)))" +"((letrec-values(((for-loop_0)" +"(lambda(table_0 i_0)" +"(begin" +" 'for-loop" +"(if i_0" +"(let-values(((key_0 value_0)(hash-iterate-key+value ht_0 i_0)))" +"(let-values(((table_1)" +"(let-values(((table_1) table_0))" +"(let-values(((table_2)" +"(let-values()" +"(let-values(((key_1 val_0)" +"(let-values()" +"(values" +"(faslable-> key_0)" +"(faslable->" +" value_0)))))" +"(hash-set table_1 key_1 val_0)))))" +"(values table_2)))))" +"(if(not #f)" +"(for-loop_0 table_1(hash-iterate-next ht_0 i_0))" +" table_1)))" +" table_0)))))" +" for-loop_0)" +" '#hasheq()" +"(hash-iterate-first ht_0)))))" +"(if(hash-eqv? v_0)" +"(let-values()" +"(let-values(((ht_0) v_0))" +"(begin" +"(if(variable-reference-from-unsafe?(#%variable-reference))" +"(void)" +"(let-values()(check-in-hash ht_0)))" +"((letrec-values(((for-loop_0)" +"(lambda(table_0 i_0)" +"(begin" +" 'for-loop" +"(if i_0" +"(let-values(((key_0 value_0)(hash-iterate-key+value ht_0 i_0)))" +"(let-values(((table_1)" +"(let-values(((table_1) table_0))" +"(let-values(((table_2)" +"(let-values()" +"(let-values(((key_1 val_0)" +"(let-values()" +"(values" +"(faslable-> key_0)" +"(faslable->" +" value_0)))))" +"(hash-set table_1 key_1 val_0)))))" +"(values table_2)))))" +"(if(not #f)" +"(for-loop_0 table_1(hash-iterate-next ht_0 i_0))" +" table_1)))" +" table_0)))))" +" for-loop_0)" +" '#hasheqv()" +"(hash-iterate-first ht_0)))))" +"(let-values()" +"(let-values(((ht_0) v_0))" +"(begin" +"(if(variable-reference-from-unsafe?(#%variable-reference))" +"(void)" +"(let-values()(check-in-hash ht_0)))" +"((letrec-values(((for-loop_0)" +"(lambda(table_0 i_0)" +"(begin" +" 'for-loop" +"(if i_0" +"(let-values(((key_0 value_0)(hash-iterate-key+value ht_0 i_0)))" +"(let-values(((table_1)" +"(let-values(((table_1) table_0))" +"(let-values(((table_2)" +"(let-values()" +"(let-values(((key_1 val_0)" +"(let-values()" +"(values" +"(faslable-> key_0)" +"(faslable->" +" value_0)))))" +"(hash-set table_1 key_1 val_0)))))" +"(values table_2)))))" +"(if(not #f)" +"(for-loop_0 table_1(hash-iterate-next ht_0 i_0))" +" table_1)))" +" table_0)))))" +" for-loop_0)" +" '#hash()" +"(hash-iterate-first ht_0))))))))" +"(if(faslable-correlated-linklet? v_0)" +"(let-values()" +"(make-correlated-linklet" +"(faslable->(faslable-correlated-linklet-expr v_0))" +"(faslable->(faslable-correlated-linklet-name v_0))))" +"(let-values() v_0))))))))" +"(define-values" "(write-linklet-bundle)" -"(lambda(b_0 linklet-bundle->hash_0 port_0)" +"(lambda(b_0 as-correlated-linklet?_0 linklet-bundle->hash_0 port_0)" "(begin" "(begin" " (write-bytes #\"#~\" port_0)" "(write-bytes(bytes(bytes-length version-bytes$1)) port_0)" "(write-bytes version-bytes$1 port_0)" -"(write-bytes(bytes(bytes-length vm-bytes$1)) port_0)" -"(write-bytes vm-bytes$1 port_0)" +"(let-values(((vm-bytes_0)(if as-correlated-linklet?_0 correlated-linklet-vm-bytes vm-bytes$1)))" +"(begin(write-bytes(bytes(bytes-length vm-bytes_0)) port_0)(write-bytes vm-bytes_0 port_0)))" " (write-bytes #\"B\" port_0)" "(write-bytes(make-bytes 20 0) port_0)" -"(1/write-linklet-bundle-hash(linklet-bundle->hash_0 b_0) port_0)))))" +"(if as-correlated-linklet?_0" +"(write-correlated-linklet-bundle-hash(linklet-bundle->hash_0 b_0) port_0)" +"(1/write-linklet-bundle-hash(linklet-bundle->hash_0 b_0) port_0))))))" "(define-values" "(linklet-bundle->bytes)" -"(lambda(b_0 linklet-bundle->hash_0)" +"(lambda(b_0 as-correlated-linklet?_0 linklet-bundle->hash_0)" "(begin" "(let-values(((o_0)(open-output-bytes)))" -"(begin(write-linklet-bundle b_0 linklet-bundle->hash_0 o_0)(get-output-bytes o_0))))))" +"(begin" +"(write-linklet-bundle b_0 as-correlated-linklet?_0 linklet-bundle->hash_0 o_0)" +"(get-output-bytes o_0))))))" "(define-values" "(write-linklet-directory)" -"(lambda(ld_0 linklet-directory->hash_0 linklet-bundle->hash_0 port_0)" +"(lambda(ld_0 as-correlated-linklet?_0 linklet-directory->hash_0 linklet-bundle->hash_0 port_0)" "(begin" -" (let-values ((() (begin (write-bytes #\"#~\" port_0) (values))))" +"(let-values(((vm-bytes_0)(if as-correlated-linklet?_0 correlated-linklet-vm-bytes vm-bytes$1)))" +" (let-values ((() (begin (write-bytes #\"#~\" port_0) (values))))" "(let-values((()(begin(write-byte(bytes-length version-bytes$1) port_0)(values))))" "(let-values((()(begin(write-bytes version-bytes$1 port_0)(values))))" -"(let-values((()(begin(write-byte(bytes-length vm-bytes$1) port_0)(values))))" -"(let-values((()(begin(write-bytes vm-bytes$1 port_0)(values))))" -" (let-values ((() (begin (write-bytes #\"D\" port_0) (values))))" +"(let-values((()(begin(write-byte(bytes-length vm-bytes_0) port_0)(values))))" +"(let-values((()(begin(write-bytes vm-bytes_0 port_0)(values))))" +" (let-values ((() (begin (write-bytes #\"D\" port_0) (values))))" "(letrec-values(((flatten-linklet-directory_0)" "(lambda(ld_1 rev-name-prefix_0 accum_0)" "(begin" @@ -26708,7 +28982,8 @@ static const char *startup_source = "(hash-iterate-key+value" " ht_0" " i_0)))" -"(let-values(((accum_2 saw-bundle?_1)" +"(let-values(((accum_2" +" saw-bundle?_1)" "(let-values(((accum_2)" " accum_1)" "((saw-bundle?_1)" @@ -26727,6 +29002,7 @@ static const char *startup_source = " rev-name-prefix_0)" "(linklet-bundle->bytes" " value_0" +" as-correlated-linklet?_0" " linklet-bundle->hash_0))" " accum_2)" " #t))" @@ -26747,7 +29023,9 @@ static const char *startup_source = " accum_2" " saw-bundle?_1" "(hash-iterate-next ht_0 i_0))" -"(values accum_2 saw-bundle?_1))))" +"(values" +" accum_2" +" saw-bundle?_1))))" "(values accum_1 saw-bundle?_0))))))" " for-loop_0)" " accum_0" @@ -26756,7 +29034,7 @@ static const char *startup_source = "(if saw-bundle?_0" "(let-values() new-accum_0)" "(let-values()" -" (cons (cons (encode-name rev-name-prefix_0) #\"#f\") new-accum_0))))))))" +" (cons (cons (encode-name rev-name-prefix_0) #\"#f\") new-accum_0))))))))" "(let-values(((bundles_0)" "(list->vector" "(let-values(((temp1_0)(flatten-linklet-directory_0 ld_0 '() '()))" @@ -26765,7 +29043,7 @@ static const char *startup_source = "(sort7.1 #f #f temp1_0 temp2_0)))))" "(let-values(((len_0)(vector-length bundles_0)))" "(let-values(((initial-offset_0)" -"(+ 2 1(bytes-length version-bytes$1) 1(bytes-length vm-bytes$1) 1 4)))" +"(+ 2 1(bytes-length version-bytes$1) 1(bytes-length vm-bytes_0) 1 4)))" "(let-values((()(begin(write-int len_0 port_0)(values))))" "(let-values(((btree-size_0)(compute-btree-size bundles_0 len_0)))" "(let-values(((node-offsets_0)" @@ -26808,7 +29086,7 @@ static const char *startup_source = "(values))))))" " for-loop_0)" " start_0)))" -"(void)))))))))))))))))))" +"(void))))))))))))))))))))" "(define-values" "(encode-name)" "(lambda(rev-name_0)" @@ -26962,7 +29240,12 @@ static const char *startup_source = "(cons" " prop:custom-write" "(lambda(ld_0 port_0 mode_0)" -"(write-linklet-directory ld_0 linklet-directory->hash linklet-bundle->hash port_0))))" +"(write-linklet-directory" +" ld_0" +"(correlated-linklet-directory? ld_0)" +" linklet-directory->hash" +" linklet-bundle->hash" +" port_0))))" "(current-inspector)" " #f" " '(0)" @@ -26983,7 +29266,8 @@ static const char *startup_source = "(list" "(cons" " prop:custom-write" -"(lambda(b_0 port_0 mode_0)(write-linklet-bundle b_0 linklet-bundle->hash port_0))))" +"(lambda(b_0 port_0 mode_0)" +"(write-linklet-bundle b_0(correlated-linklet-bundle? b_0) linklet-bundle->hash port_0))))" "(current-inspector)" " #f" " '(0)" @@ -27133,6 +29417,64 @@ static const char *startup_source = " (let-values () (raise-argument-error 'linklet-bundle->hash \"linklet-bundle?\" ld_0)))" "(linklet-bundle-ht ld_0)))))))" "(define-values" +"(correlated-linklet-directory?)" +"(lambda(ld_0)" +"(begin" +"(let-values(((ht_0)(linklet-directory->hash ld_0)))" +"(begin" +"(if(variable-reference-from-unsafe?(#%variable-reference))(void)(let-values()(check-in-hash ht_0)))" +"((letrec-values(((for-loop_0)" +"(lambda(result_0 i_0)" +"(begin" +" 'for-loop" +"(if i_0" +"(let-values(((k_0 v_0)(hash-iterate-key+value ht_0 i_0)))" +"(let-values(((result_1)" +"(let-values()" +"(let-values(((result_1)" +"(let-values()" +"(let-values()" +"(if(not k_0)" +"(let-values()(correlated-linklet-bundle? v_0))" +"(if(symbol? k_0)" +"(let-values()" +"(correlated-linklet-directory? v_0))" +"(let-values() #t)))))))" +"(values result_1)))))" +"(if(if(not((lambda x_0(not result_1)) k_0 v_0))(not #f) #f)" +"(for-loop_0 result_1(hash-iterate-next ht_0 i_0))" +" result_1)))" +" result_0)))))" +" for-loop_0)" +" #t" +"(hash-iterate-first ht_0)))))))" +"(define-values" +"(correlated-linklet-bundle?)" +"(lambda(b_0)" +"(begin" +"(let-values(((ht_0)(linklet-bundle->hash b_0)))" +"(begin" +"(if(variable-reference-from-unsafe?(#%variable-reference))(void)(let-values()(check-in-hash ht_0)))" +"((letrec-values(((for-loop_0)" +"(lambda(result_0 i_0)" +"(begin" +" 'for-loop" +"(if i_0" +"(let-values(((k_0 v_0)(hash-iterate-key+value ht_0 i_0)))" +"(let-values(((result_1)" +"(let-values()" +"(let-values(((result_1)" +"(let-values()" +"(let-values()(not(1/linklet? v_0))))))" +"(values result_1)))))" +"(if(if(not((lambda x_0(not result_1)) k_0 v_0))(not #f) #f)" +"(for-loop_0 result_1(hash-iterate-next ht_0 i_0))" +" result_1)))" +" result_0)))))" +" for-loop_0)" +" #t" +"(hash-iterate-first ht_0)))))))" +"(define-values" "(struct:namespace-scopes namespace-scopes1.1 namespace-scopes? namespace-scopes-post namespace-scopes-other)" "(let-values(((struct:_0 make-_0 ?_0 -ref_0 -set!_0)" "(let-values()" @@ -27920,57 +30262,6 @@ static const char *startup_source = "(if or-part_1" " or-part_1" "(let-values(((or-part_2)(string? datum_0)))(if or-part_2 or-part_2(bytes? datum_0))))))))))" -"(define-values(datum->syntax$3) datum->syntax)" -"(define-values(syntax-property$2) syntax-property)" -"(define-values(syntax-e$2) syntax-e)" -"(define-values(1/syntax?) syntax?)" -"(define-values(correlated?)(lambda(e_0)(begin(1/syntax? e_0))))" -"(define-values" -"(datum->correlated)" -"(let-values(((datum->correlated3_0)" -"(lambda(d2_0 srcloc1_0)" -"(begin" -" 'datum->correlated3" -"(let-values(((d_0) d2_0))" -"(let-values(((srcloc_0) srcloc1_0))(let-values()(datum->syntax$3 #f d_0 srcloc_0))))))))" -"(case-lambda((d_0)(begin(datum->correlated3_0 d_0 #f)))((d_0 srcloc1_0)(datum->correlated3_0 d_0 srcloc1_0)))))" -"(define-values(correlated-e)(lambda(e_0)(begin(if(1/syntax? e_0)(syntax-e$2 e_0) e_0))))" -"(define-values(correlated-cadr)(lambda(e_0)(begin(car(correlated-e(cdr(correlated-e e_0)))))))" -"(define-values" -"(correlated-length)" -"(lambda(e_0)(begin(let-values(((l_0)(correlated-e e_0)))(if(list? l_0)(length l_0) #f)))))" -"(define-values" -"(correlated->list)" -"(lambda(e_0)" -"(begin" -"((letrec-values(((loop_0)" -"(lambda(e_1)" -"(begin" -" 'loop" -"(if(list? e_1)" -"(let-values() e_1)" -"(if(pair? e_1)" -"(let-values()(cons(car e_1)(loop_0(cdr e_1))))" -"(if(null? e_1)" -"(let-values() null)" -"(if(1/syntax? e_1)" -"(let-values()(loop_0(syntax-e$2 e_1)))" -" (let-values () (error 'correlated->list \"not a list\"))))))))))" -" loop_0)" -" e_0))))" -"(define-values" -"(correlated-property)" -"(case-lambda((e_0 k_0)(begin(syntax-property$2 e_0 k_0)))((e_0 k_0 v_0)(syntax-property$2 e_0 k_0 v_0))))" -"(define-values" -"(to-syntax-list.1$1)" -"(lambda(s_0)" -"(begin" -" 'to-syntax-list" -"(if(list? s_0)" -"(let-values() s_0)" -"(if(pair? s_0)" -"(let-values()(let-values(((r_0)(to-syntax-list.1$1(cdr s_0))))(if r_0(cons(car s_0) r_0) #f)))" -"(if(1/syntax? s_0)(let-values()(to-syntax-list.1$1(syntax-e$2 s_0)))(let-values() #f)))))))" "(define-values" "(srcloc->vector)" "(lambda(s_0)" @@ -29057,12 +31348,12 @@ static const char *startup_source = "(make-struct-field-accessor -ref_0 2 'extra-inspectorsss)" "(make-struct-field-accessor -ref_0 3 'def-decls))))" "(define-values" -"(compile-forms29.1)" +"(compile-forms31.1)" "(lambda(body-import-instances3_0" " body-imports2_0" " body-suffix-forms4_0" " compiled-expression-callback8_0" -" cross-linklet-inlining?13_0" +" cross-linklet-inlining?14_0" " definition-callback9_0" " encoded-root-expand-ctx-box6_0" " force-phases5_0" @@ -29070,14 +31361,15 @@ static const char *startup_source = " other-form-callback10_0" " root-ctx-only-if-syntax?7_0" " serializable?12_0" -" bodys26_0" -" cctx27_0" -" mpis28_0)" +" to-correlated-linklet?13_0" +" bodys28_0" +" cctx29_0" +" mpis30_0)" "(begin" -" 'compile-forms29" -"(let-values(((bodys_0) bodys26_0))" -"(let-values(((cctx_0) cctx27_0))" -"(let-values(((mpis_0) mpis28_0))" +" 'compile-forms31" +"(let-values(((bodys_0) bodys28_0))" +"(let-values(((cctx_0) cctx29_0))" +"(let-values(((mpis_0) mpis30_0))" "(let-values(((body-imports_0) body-imports2_0))" "(let-values(((body-import-instances_0) body-import-instances3_0))" "(let-values(((body-suffix-forms_0) body-suffix-forms4_0))" @@ -29099,7 +31391,8 @@ static const char *startup_source = "(lambda(mod-name_0 p_0)(begin 'get-module-linklet-info #f))" " get-module-linklet-info11_0)))" "(let-values(((serializable?_0) serializable?12_0))" -"(let-values(((cross-linklet-inlining?_0) cross-linklet-inlining?13_0))" +"(let-values(((to-correlated-linklet?_0) to-correlated-linklet?13_0))" +"(let-values(((cross-linklet-inlining?_0) cross-linklet-inlining?14_0))" "(let-values()" "(let-values(((phase_0)(compile-context-phase cctx_0)))" "(let-values(((self_0)(compile-context-self cctx_0)))" @@ -29480,26 +31773,26 @@ static const char *startup_source = "(let-values()" "(cons" "(let-values()" -"(let-values(((header33_0)" +"(let-values(((header53_0)" " header_0)" -"((temp34_0)" +"((temp54_0)" "(compile-context-self" " cctx_0))" -"((phase35_0)" +"((phase55_0)" " phase_1)" -"((binding-sym36_0)" +"((binding-sym56_0)" " binding-sym_0)" -"((temp37_0)" +"((temp57_0)" " #f)" -"((temp38_0)" +"((temp58_0)" " #t))" "(register-required-variable-use!19.1" -" temp38_0" -" header33_0" -" temp34_0" -" phase35_0" -" binding-sym36_0" -" temp37_0)))" +" temp58_0" +" header53_0" +" temp54_0" +" phase55_0" +" binding-sym56_0" +" temp57_0)))" " fold-var_1))))" "(values" " fold-var_2)))))" @@ -29521,14 +31814,14 @@ static const char *startup_source = " cctx_0))" "(if(compile-context?" " the-struct_0)" -"(let-values(((phase39_0)" +"(let-values(((phase59_0)" " phase_1)" -"((header40_0)" +"((header60_0)" " header_0))" "(compile-context1.1" "(compile-context-namespace" " the-struct_0)" -" phase39_0" +" phase59_0" "(compile-context-self" " the-struct_0)" "(compile-context-module-self" @@ -29537,10 +31830,10 @@ static const char *startup_source = " the-struct_0)" "(compile-context-lazy-syntax-literals?" " the-struct_0)" -" header40_0))" +" header60_0))" "(raise-argument-error" " 'struct-copy" -" \"compile-context?\"" +" \"compile-context?\"" " the-struct_0)))" "(if(=" "(length" @@ -29644,14 +31937,14 @@ static const char *startup_source = " cctx_0))" "(if(compile-context?" " the-struct_0)" -"(let-values(((phase41_0)" +"(let-values(((phase61_0)" " phase_1)" -"((header42_0)" +"((header62_0)" " header_0))" "(compile-context1.1" "(compile-context-namespace" " the-struct_0)" -" phase41_0" +" phase61_0" "(compile-context-self" " the-struct_0)" "(compile-context-module-self" @@ -29660,10 +31953,10 @@ static const char *startup_source = " the-struct_0)" "(compile-context-lazy-syntax-literals?" " the-struct_0)" -" header42_0))" +" header62_0))" "(raise-argument-error" " 'struct-copy" -" \"compile-context?\"" +" \"compile-context?\"" " the-struct_0)))" " #f)))))))))))" "(if(parsed-define-syntaxes?" @@ -29740,15 +32033,15 @@ static const char *startup_source = " cctx_0))" "(if(compile-context?" " the-struct_0)" -"(let-values(((phase43_0)" +"(let-values(((phase63_0)" "(add1" " phase_1))" -"((header44_0)" +"((header64_0)" " next-header_0))" "(compile-context1.1" "(compile-context-namespace" " the-struct_0)" -" phase43_0" +" phase63_0" "(compile-context-self" " the-struct_0)" "(compile-context-module-self" @@ -29757,10 +32050,10 @@ static const char *startup_source = " the-struct_0)" "(compile-context-lazy-syntax-literals?" " the-struct_0)" -" header44_0))" +" header64_0))" "(raise-argument-error" " 'struct-copy" -" \"compile-context?\"" +" \"compile-context?\"" " the-struct_0))))))" "(let-values((()" "(begin" @@ -29880,14 +32173,14 @@ static const char *startup_source = " cctx_0))" "(if(compile-context?" " the-struct_0)" -"(let-values(((phase45_0)" +"(let-values(((phase65_0)" " phase_1)" -"((header46_0)" +"((header66_0)" " header_0))" "(compile-context1.1" "(compile-context-namespace" " the-struct_0)" -" phase45_0" +" phase65_0" "(compile-context-self" " the-struct_0)" "(compile-context-module-self" @@ -29896,10 +32189,10 @@ static const char *startup_source = " the-struct_0)" "(compile-context-lazy-syntax-literals?" " the-struct_0)" -" header46_0))" +" header66_0))" "(raise-argument-error" " 'struct-copy" -" \"compile-context?\"" +" \"compile-context?\"" " the-struct_0)))" " gen-syms_0)))))" "(set! saw-define-syntaxes?_0" @@ -29935,14 +32228,14 @@ static const char *startup_source = " cctx_0))" "(if(compile-context?" " the-struct_0)" -"(let-values(((phase47_0)" +"(let-values(((phase67_0)" " phase_1)" -"((header48_0)" +"((header68_0)" " header_0))" "(compile-context1.1" "(compile-context-namespace" " the-struct_0)" -" phase47_0" +" phase67_0" "(compile-context-self" " the-struct_0)" "(compile-context-module-self" @@ -29951,10 +32244,10 @@ static const char *startup_source = " the-struct_0)" "(compile-context-lazy-syntax-literals?" " the-struct_0)" -" header48_0))" +" header68_0))" "(raise-argument-error" " 'struct-copy" -" \"compile-context?\"" +" \"compile-context?\"" " the-struct_0))))))" "(if e_0" "(let-values()" @@ -29977,14 +32270,14 @@ static const char *startup_source = " cctx_0))" "(if(compile-context?" " the-struct_0)" -"(let-values(((phase49_0)" +"(let-values(((phase69_0)" " phase_1)" -"((header50_0)" +"((header70_0)" " header_0))" "(compile-context1.1" "(compile-context-namespace" " the-struct_0)" -" phase49_0" +" phase69_0" "(compile-context-self" " the-struct_0)" "(compile-context-module-self" @@ -29993,10 +32286,10 @@ static const char *startup_source = " the-struct_0)" "(compile-context-lazy-syntax-literals?" " the-struct_0)" -" header50_0))" +" header70_0))" "(raise-argument-error" " 'struct-copy" -" \"compile-context?\"" +" \"compile-context?\"" " the-struct_0)))" " #f" "(=" @@ -30052,11 +32345,11 @@ static const char *startup_source = " #f)" " #f)))" "(let-values(((phases-in-order_0)" -"(let-values(((temp51_0)" +"(let-values(((temp71_0)" "(hash-keys" " phase-to-body_0))" -"((<52_0) <))" -"(sort7.1 #f #f temp51_0 <52_0))))" +"((<72_0) <))" +"(sort7.1 #f #f temp71_0 <72_0))))" "(let-values(((min-phase_0)" "(if(pair? phases-in-order_0)" "(car phases-in-order_0)" @@ -30064,7 +32357,8 @@ static const char *startup_source = "(let-values(((max-phase_0)" "(if(pair? phases-in-order_0)" "(car" -"(reverse$1 phases-in-order_0))" +"(reverse$1" +" phases-in-order_0))" " phase_0)))" "(let-values(((phase-to-link-info_0)" "(let-values(((lst_0)" @@ -30182,30 +32476,7 @@ static const char *startup_source = " li_0)" "(link-info-extra-inspectorsss" " li_0))))" -"(let-values(((linklet_0" -" new-module-use*s_0)" -"(begin" -"(if log-performance?" -"(let-values()" -"(start-performance-region" -" 'compile" -" '_" -" 'linklet))" -"(void))" -"(begin0" -"(let-values()" -"((lambda(l_0" -" name_0" -" keys_0" -" getter_0)" -"(1/compile-linklet" -" l_0" -" name_0" -" keys_0" -" getter_0" -"(if serializable?_0" -" '(serializable)" -" '())))" +"(let-values(((body-linklet_0)" "(list*" " 'linklet" "(qq-append" @@ -30275,31 +32546,48 @@ static const char *startup_source = "(qq-append" "(reverse$1" " bodys_1)" -" body-suffix-forms_0))" -" 'module" -"(list->vector" -"(append" -" body-import-instances_0" -" module-use*s_0))" -"(make-module-use-to-linklet" -" cross-linklet-inlining?_0" -"(compile-context-namespace" -" cctx_0)" -" get-module-linklet-info_0" -" module-use*s_0)))" -"(if log-performance?" +" body-suffix-forms_0))))" +"(let-values(((linklet_0" +" new-module-use*s_0)" +"(if to-correlated-linklet?_0" "(let-values()" -"(end-performance-region))" -"(void))))))" +"(values" +"(make-correlated-linklet" +" body-linklet_0" +" 'module)" +" module-use*s_0))" +"(let-values()" +"(let-values(((body-linklet73_0)" +" body-linklet_0)" +"((body-imports74_0)" +" body-imports_0)" +"((body-import-instances75_0)" +" body-import-instances_0)" +"((get-module-linklet-info76_0)" +" get-module-linklet-info_0)" +"((serializable?77_0)" +" serializable?_0)" +"((module-use*s78_0)" +" module-use*s_0)" +"((cross-linklet-inlining?79_0)" +" cross-linklet-inlining?_0)" +"((temp80_0)" +"(compile-context-namespace" +" cctx_0)))" +"(compile-module-linklet49.1" +" body-import-instances75_0" +" body-imports74_0" +" cross-linklet-inlining?79_0" +" get-module-linklet-info76_0" +" module-use*s78_0" +" temp80_0" +" serializable?77_0" +" body-linklet73_0))))))" "(values" " phase_1" "(cons" " linklet_0" -"(list-tail" -"(vector->list" -" new-module-use*s_0)" -"(length" -" body-imports_0))))))))))))" +" new-module-use*s_0)))))))))))" "(hash-set" " table_1" " key_0" @@ -30453,7 +32741,10 @@ static const char *startup_source = " l+mu*s_0)" "(car" " l+mu*s_0)" -" cross-linklet-inlining?_0" +"(if cross-linklet-inlining?_0" +"(not" +" to-correlated-linklet?_0)" +" #f)" "(length" " body-imports_0))))" "(begin" @@ -30508,7 +32799,7 @@ static const char *startup_source = " phase-to-link-module-uses-expr_0" " phase-to-link-extra-inspectorsss_0" " syntax-literals_0" -" encoded-root-expand-pos_0))))))))))))))))))))))))))))))))))))))))))))" +" encoded-root-expand-pos_0)))))))))))))))))))))))))))))))))))))))))))))" "(define-values" "(compile-top-level-bind)" "(lambda(ids_0 binding-syms_0 cctx_0 trans-exprs_0)" @@ -30665,6 +32956,53 @@ static const char *startup_source = "(let-values(((v_0)(syntax-property$1 orig-s_0 'compiler-hint:cross-module-inline)))" "(if v_0(correlated-property e_0 'compiler-hint:cross-module-inline v_0) e_0)))))" "(define-values" +"(compile-module-linklet49.1)" +"(lambda(body-import-instances35_0" +" body-imports34_0" +" cross-linklet-inlining?39_0" +" get-module-linklet-info36_0" +" module-use*s38_0" +" namespace40_0" +" serializable?37_0" +" body-linklet48_0)" +"(begin" +" 'compile-module-linklet49" +"(let-values(((body-linklet_0) body-linklet48_0))" +"(let-values(((body-imports_0) body-imports34_0))" +"(let-values(((body-import-instances_0) body-import-instances35_0))" +"(let-values(((get-module-linklet-info_0) get-module-linklet-info36_0))" +"(let-values(((serializable?_0) serializable?37_0))" +"(let-values(((module-use*s_0) module-use*s38_0))" +"(let-values(((cross-linklet-inlining?_0) cross-linklet-inlining?39_0))" +"(let-values(((namespace_0) namespace40_0))" +"(let-values()" +"(let-values(((linklet_0 new-module-use*s_0)" +"(begin" +"(if log-performance?" +"(let-values()(start-performance-region 'compile '_ 'linklet))" +"(void))" +"(begin0" +"(let-values()" +"((lambda(l_0 name_0 keys_0 getter_0)" +"(1/compile-linklet" +" l_0" +" name_0" +" keys_0" +" getter_0" +"(if serializable?_0 '(serializable) '())))" +" body-linklet_0" +" 'module" +"(list->vector(append body-import-instances_0 module-use*s_0))" +"(make-module-use-to-linklet" +" cross-linklet-inlining?_0" +" namespace_0" +" get-module-linklet-info_0" +" module-use*s_0)))" +"(if log-performance?(let-values()(end-performance-region))(void))))))" +"(values" +" linklet_0" +"(list-tail(vector->list new-module-use*s_0)(length body-imports_0))))))))))))))))" +"(define-values" "(make-module-use-to-linklet)" "(lambda(cross-linklet-inlining?_0 ns_0 get-module-linklet-info_0 init-mu*s_0)" "(begin" @@ -30997,13 +33335,14 @@ static const char *startup_source = " loop_0)" " cims_0))))" "(define-values" -"(compiled-tops->compiled-top6.1)" -"(lambda(merge-serialization?1_0 namespace2_0 all-cims5_0)" +"(compiled-tops->compiled-top8.1)" +"(lambda(merge-serialization?2_0 namespace3_0 to-correlated-linklet?1_0 all-cims7_0)" "(begin" -" 'compiled-tops->compiled-top6" -"(let-values(((all-cims_0) all-cims5_0))" -"(let-values(((merge-serialization?_0) merge-serialization?1_0))" -"(let-values(((ns_0) namespace2_0))" +" 'compiled-tops->compiled-top8" +"(let-values(((all-cims_0) all-cims7_0))" +"(let-values()" +"(let-values(((merge-serialization?_0) merge-serialization?2_0))" +"(let-values(((ns_0) namespace3_0))" "(let-values()" "(let-values(((cims_0)(remove-nontail-purely-functional all-cims_0)))" "(if(= 1(length cims_0))" @@ -31075,7 +33414,7 @@ static const char *startup_source = " cims_0" " null" " #f" -" #f)))))))))))))" +" #f))))))))))))))" "(define-values" "(compiled-top->compiled-tops)" "(lambda(ld_0)" @@ -33899,17 +36238,18 @@ static const char *startup_source = "(compile-single)" "(lambda(p_0 cctx_0)" "(begin" -"(let-values(((p10_0) p_0)((cctx11_0) cctx_0)((temp12_0) #f)((temp13_0) #t))" -"(compile-top7.1 temp12_0 temp13_0 p10_0 cctx11_0)))))" +"(let-values(((p12_0) p_0)((cctx13_0) cctx_0)((temp14_0) #f)((temp15_0) #t))" +"(compile-top9.1 temp14_0 temp15_0 #f p12_0 cctx13_0)))))" "(define-values" -"(compile-top7.1)" -"(lambda(serializable?1_0 single-expression?2_0 p5_0 cctx6_0)" +"(compile-top9.1)" +"(lambda(serializable?1_0 single-expression?2_0 to-correlated-linklet?3_0 p7_0 cctx8_0)" "(begin" -" 'compile-top7" -"(let-values(((p_0) p5_0))" -"(let-values(((cctx_0) cctx6_0))" +" 'compile-top9" +"(let-values(((p_0) p7_0))" +"(let-values(((cctx_0) cctx8_0))" "(let-values(((serializable?_0) serializable?1_0))" "(let-values(((single-expression?_0) single-expression?2_0))" +"(let-values(((to-correlated-linklet?_0) to-correlated-linklet?3_0))" "(let-values()" "(begin" "(if log-performance?" @@ -33928,61 +36268,64 @@ static const char *startup_source = " phase-to-link-extra-inspectorss_0" " syntax-literals_0" " no-root-context-pos_0)" -"(let-values(((temp14_0)(list p_0))" -"((cctx15_0) cctx_0)" -"((mpis16_0) mpis_0)" -"((temp17_0)" +"(let-values(((temp16_0)(list p_0))" +"((cctx17_0) cctx_0)" +"((mpis18_0) mpis_0)" +"((temp19_0)" "(if single-expression?_0" "(list* '()(list syntax-literals-id) '(()))" "(list" "(list top-level-bind!-id top-level-require!-id)" "(list mpi-vector-id syntax-literals-id)" " instance-imports)))" -"((temp18_0)" +"((temp20_0)" "(list" " top-level-instance" " empty-top-syntax-literal-instance" " empty-instance-instance))" -"((serializable?19_0) serializable?_0)" -"((temp20_0)(lambda()(set! purely-functional?_0 #f)))" -"((temp21_0)" +"((serializable?21_0) serializable?_0)" +"((to-correlated-linklet?22_0) to-correlated-linklet?_0)" +"((temp23_0)(lambda()(set! purely-functional?_0 #f)))" +"((temp24_0)" "(lambda(e_0 expected-results_0 phase_1 required-reference?_0)" "(if(if purely-functional?_0" -"(let-values(((e24_0) e_0)" -"((expected-results25_0) expected-results_0)" -"((required-reference?26_0)" +"(let-values(((e27_0) e_0)" +"((expected-results28_0)" +" expected-results_0)" +"((required-reference?29_0)" " required-reference?_0))" "(any-side-effects?9.1" " unsafe-undefined" " unsafe-undefined" -" required-reference?26_0" -" e24_0" -" expected-results25_0))" +" required-reference?29_0" +" e27_0" +" expected-results28_0))" " #f)" "(let-values()(set! purely-functional?_0 #f))" "(void))))" -"((temp22_0)" +"((temp25_0)" "(lambda(s_0 cctx_1)" "(begin" "(set! purely-functional?_0 #f)" "(compile-top-level-require s_0 cctx_1))))" -"((temp23_0)(not single-expression?_0)))" -"(compile-forms29.1" -" temp18_0" -" temp17_0" -" null" -" temp21_0" -" temp23_0" +"((temp26_0)(not single-expression?_0)))" +"(compile-forms31.1" " temp20_0" +" temp19_0" +" null" +" temp24_0" +" temp26_0" +" temp23_0" " #f" " null" " unsafe-undefined" -" temp22_0" +" temp25_0" " #f" -" serializable?19_0" -" temp14_0" -" cctx15_0" -" mpis16_0))))" +" serializable?21_0" +" to-correlated-linklet?22_0" +" temp16_0" +" cctx17_0" +" mpis18_0))))" "(let-values(((add-metadata_0)" "(lambda(ht_0)" "(begin" @@ -34017,6 +36360,8 @@ static const char *startup_source = "(void))))))" "(let-values(((link-linklet_0)" "((lambda(s_0)" +"(if to-correlated-linklet?_0" +"(make-correlated-linklet s_0 #f)" "(begin" "(if log-performance?" "(let-values()" @@ -34038,11 +36383,14 @@ static const char *startup_source = "(values inst_0 #f)))))" " linklet_0))" "(if log-performance?" -"(let-values()(end-performance-region))" -"(void)))))" +"(let-values()" +"(end-performance-region))" +"(void))))))" "(list" " 'linklet" -"(list deserialize-imports eager-instance-imports)" +"(list" +" deserialize-imports" +" eager-instance-imports)" "(list" " mpi-vector-id" " deserialized-syntax-vector-id" @@ -34051,7 +36399,8 @@ static const char *startup_source = "(list" " 'define-values" "(list mpi-vector-id)" -"(generate-module-path-index-deserialize mpis_0))" +"(generate-module-path-index-deserialize" +" mpis_0))" "(list" " 'define-values" "(list deserialized-syntax-vector-id)" @@ -34080,7 +36429,7 @@ static const char *startup_source = " null" "(extract-namespace-scopes(compile-context-namespace cctx_0))" " purely-functional?_0))))))))" -"(if log-performance?(let-values()(end-performance-region))(void))))))))))))" +"(if log-performance?(let-values()(end-performance-region))(void)))))))))))))" "(define-values" "(compile-top-level-require)" "(lambda(p_0 cctx_0)" @@ -34847,7 +37196,7 @@ static const char *startup_source = "(if l_0" "(let-values()" "(1/instantiate-linklet" -"(1/eval-linklet l_0)" +"(eval-linklet* l_0)" "(list deserialize-instance data-instance_0)))" "(if(eq?(hash-ref h_0 'module->namespace #f) 'empty)" "(let-values() empty-syntax-literals-instance/empty-namespace)" @@ -34910,7 +37259,7 @@ static const char *startup_source = "(let-values()" "(values" " phase-level_0" -"(1/eval-linklet" +"(eval-linklet*" " v_0)))))" "(hash-set" " table_3" @@ -34933,7 +37282,7 @@ static const char *startup_source = " start_0)))))" "(let-values(((syntax-literals-linklet_0)" "(let-values(((l_0)(hash-ref h_0 'stx #f)))" -"(if l_0(1/eval-linklet l_0) #f))))" +"(if l_0(eval-linklet* l_0) #f))))" "(let-values(((extra-inspector_0)" "(if(compiled-in-memory? c_0)" "(compiled-in-memory-compile-time-inspector c_0)" @@ -35374,7 +37723,8 @@ static const char *startup_source = "(lambda()" "(let-values(((ns-153_0)" " ns-1_0))" -"(make-expand-context10.1" +"(make-expand-context12.1" +" #f" " #f" " #f" " #f" @@ -35569,12 +37919,12 @@ static const char *startup_source = "(let-values(((data-instance_0)" "(if(compiled-in-memory? c_0)" "(make-data-instance-from-compiled-in-memory c_0)" -"(1/instantiate-linklet(1/eval-linklet(hash-ref h_0 'data))(list deserialize-instance)))))" +"(1/instantiate-linklet(eval-linklet*(hash-ref h_0 'data))(list deserialize-instance)))))" "(let-values(((declaration-instance_0)" "(if(if(compiled-in-memory? c_0)(compiled-in-memory-original-self c_0) #f)" "(make-declaration-instance-from-compiled-in-memory c_0)" "(1/instantiate-linklet" -"(1/eval-linklet(hash-ref h_0 'decl))" +"(eval-linklet*(hash-ref h_0 'decl))" "(list deserialize-instance data-instance_0)))))" "(values dh_0 h_0 data-instance_0 declaration-instance_0)))))))" "(define-values" @@ -35662,6 +38012,7 @@ static const char *startup_source = " for-loop_0)" " '#hash()" "(hash-iterate-first ht_0)))))))" +"(define-values(eval-linklet*)(lambda(l_0)(begin(1/eval-linklet(force-compile-linklet l_0)))))" "(define-values" "(provides->api-provides)" "(lambda(provides_0 self_0)" @@ -36505,24 +38856,26 @@ static const char *startup_source = "(values))))" "(let-values(((h_0)(compiled-module->h c_0)))(hash-ref h_0 'cross-phase-persistent? #f))))))))" "(define-values" -"(compile-module11.1)" +"(compile-module13.1)" "(lambda(force-linklet-directory?1_0" -" modules-being-compiled3_0" -" need-compiled-submodule-rename?4_0" +" modules-being-compiled4_0" +" need-compiled-submodule-rename?5_0" " serializable?2_0" -" p9_0" -" cctx10_0)" +" to-correlated-linklet?3_0" +" p11_0" +" cctx12_0)" "(begin" -" 'compile-module11" -"(let-values(((p_0) p9_0))" -"(let-values(((cctx_0) cctx10_0))" +" 'compile-module13" +"(let-values(((p_0) p11_0))" +"(let-values(((cctx_0) cctx12_0))" "(let-values(((force-linklet-directory?_0) force-linklet-directory?1_0))" "(let-values(((serializable?_0) serializable?2_0))" +"(let-values(((to-correlated-linklet?_0) to-correlated-linklet?3_0))" "(let-values(((modules-being-compiled_0)" -"(if(eq? modules-being-compiled3_0 unsafe-undefined)" +"(if(eq? modules-being-compiled4_0 unsafe-undefined)" "(make-hasheq)" -" modules-being-compiled3_0)))" -"(let-values(((need-compiled-submodule-rename?_0) need-compiled-submodule-rename?4_0))" +" modules-being-compiled4_0)))" +"(let-values(((need-compiled-submodule-rename?_0) need-compiled-submodule-rename?5_0))" "(let-values()" "(let-values(((full-module-name_0)" "(let-values(((parent-full-name_0)(compile-context-full-module-name cctx_0))" @@ -36549,7 +38902,9 @@ static const char *startup_source = " 'for-loop" "(if i_0" "(let-values(((name_0 star?+compiled_0)" -"(hash-iterate-key+value ht_0 i_0)))" +"(hash-iterate-key+value" +" ht_0" +" i_0)))" "(let-values(((fold-var_1)" "(let-values(((fold-var_1)" " fold-var_0))" @@ -36605,48 +38960,52 @@ static const char *startup_source = "(map2 cdr post-submodules_0)))))" " c1_0)" "(let-values()" -"(let-values(((p33_0) p_0)" -"((cctx34_0) cctx_0)" -"((full-module-name35_0) full-module-name_0)" -"((force-linklet-directory?36_0) force-linklet-directory?_0)" -"((serializable?37_0) serializable?_0)" -"((modules-being-compiled38_0) modules-being-compiled_0)" -"((pre-submodules39_0) pre-submodules_0)" -"((post-submodules40_0) post-submodules_0)" -"((need-compiled-submodule-rename?41_0)" +"(let-values(((p37_0) p_0)" +"((cctx38_0) cctx_0)" +"((full-module-name39_0) full-module-name_0)" +"((force-linklet-directory?40_0) force-linklet-directory?_0)" +"((serializable?41_0) serializable?_0)" +"((to-correlated-linklet?42_0) to-correlated-linklet?_0)" +"((modules-being-compiled43_0) modules-being-compiled_0)" +"((pre-submodules44_0) pre-submodules_0)" +"((post-submodules45_0) post-submodules_0)" +"((need-compiled-submodule-rename?46_0)" " need-compiled-submodule-rename?_0))" -"(compile-module-from-parsed30.1" -" force-linklet-directory?36_0" -" full-module-name35_0" -" modules-being-compiled38_0" -" need-compiled-submodule-rename?41_0" -" post-submodules40_0" -" pre-submodules39_0" -" serializable?37_0" -" p33_0" -" cctx34_0))))))))))))))))))))" +"(compile-module-from-parsed34.1" +" force-linklet-directory?40_0" +" full-module-name39_0" +" modules-being-compiled43_0" +" need-compiled-submodule-rename?46_0" +" post-submodules45_0" +" pre-submodules44_0" +" serializable?41_0" +" to-correlated-linklet?42_0" +" p37_0" +" cctx38_0)))))))))))))))))))))" "(define-values" -"(compile-module-from-parsed30.1)" -"(lambda(force-linklet-directory?15_0" -" full-module-name14_0" -" modules-being-compiled17_0" -" need-compiled-submodule-rename?20_0" -" post-submodules19_0" -" pre-submodules18_0" -" serializable?16_0" -" p28_0" -" cctx29_0)" +"(compile-module-from-parsed34.1)" +"(lambda(force-linklet-directory?17_0" +" full-module-name16_0" +" modules-being-compiled20_0" +" need-compiled-submodule-rename?23_0" +" post-submodules22_0" +" pre-submodules21_0" +" serializable?18_0" +" to-correlated-linklet?19_0" +" p32_0" +" cctx33_0)" "(begin" -" 'compile-module-from-parsed30" -"(let-values(((p_0) p28_0))" -"(let-values(((cctx_0) cctx29_0))" -"(let-values(((full-module-name_0) full-module-name14_0))" -"(let-values(((force-linklet-directory?_0) force-linklet-directory?15_0))" -"(let-values(((serializable?_0) serializable?16_0))" -"(let-values(((modules-being-compiled_0) modules-being-compiled17_0))" -"(let-values(((pre-submodules_0) pre-submodules18_0))" -"(let-values(((post-submodules_0) post-submodules19_0))" -"(let-values(((need-compiled-submodule-rename?_0) need-compiled-submodule-rename?20_0))" +" 'compile-module-from-parsed34" +"(let-values(((p_0) p32_0))" +"(let-values(((cctx_0) cctx33_0))" +"(let-values(((full-module-name_0) full-module-name16_0))" +"(let-values(((force-linklet-directory?_0) force-linklet-directory?17_0))" +"(let-values(((serializable?_0) serializable?18_0))" +"(let-values(((to-correlated-linklet?_0) to-correlated-linklet?19_0))" +"(let-values(((modules-being-compiled_0) modules-being-compiled20_0))" +"(let-values(((pre-submodules_0) pre-submodules21_0))" +"(let-values(((post-submodules_0) post-submodules22_0))" +"(let-values(((need-compiled-submodule-rename?_0) need-compiled-submodule-rename?23_0))" "(let-values()" "(begin" "(if log-performance?(let-values()(start-performance-region 'compile 'module))(void))" @@ -36658,7 +39017,8 @@ static const char *startup_source = "(let-values(((provides_0)(parsed-module-provides p_0)))" "(let-values(((encoded-root-expand-ctx-box_0)" "(box(parsed-module-encoded-root-ctx p_0))))" -"(let-values(((body-context-simple?_0)(parsed-module-root-ctx-simple? p_0)))" +"(let-values(((body-context-simple?_0)" +"(parsed-module-root-ctx-simple? p_0)))" "(let-values(((language-info_0)" "(filter-language-info" "(syntax-property$1(parsed-s p_0) 'module-language))))" @@ -36668,23 +39028,23 @@ static const char *startup_source = "(let-values(((body-cctx_0)" "(let-values(((the-struct_0) cctx_0))" "(if(compile-context? the-struct_0)" -"(let-values(((phase42_0) 0)" -"((self43_0) self_0)" -"((module-self44_0) self_0)" -"((full-module-name45_0)" +"(let-values(((phase47_0) 0)" +"((self48_0) self_0)" +"((module-self49_0) self_0)" +"((full-module-name50_0)" " full-module-name_0)" -"((lazy-syntax-literals?46_0) #t))" +"((lazy-syntax-literals?51_0) #t))" "(compile-context1.1" "(compile-context-namespace the-struct_0)" -" phase42_0" -" self43_0" -" module-self44_0" -" full-module-name45_0" -" lazy-syntax-literals?46_0" +" phase47_0" +" self48_0" +" module-self49_0" +" full-module-name50_0" +" lazy-syntax-literals?51_0" "(compile-context-header the-struct_0)))" "(raise-argument-error" " 'struct-copy" -" \"compile-context?\"" +" \"compile-context?\"" " the-struct_0)))))" "(let-values(((cross-phase-persistent?_0) #f))" "(let-values(((side-effects_0)(make-hasheqv)))" @@ -36698,17 +39058,17 @@ static const char *startup_source = "(if(hash-ref side-effects_0 phase_0 #f)" "(void)" "(let-values()" -"(if(let-values(((e47_0) e_0)" -"((expected-results48_0)" +"(if(let-values(((e52_0) e_0)" +"((expected-results53_0)" " expected-results_0)" -"((required-reference?49_0)" +"((required-reference?54_0)" " required-reference?_0))" "(any-side-effects?9.1" " unsafe-undefined" " unsafe-undefined" -" required-reference?49_0" -" e47_0" -" expected-results48_0))" +" required-reference?54_0" +" e52_0" +" expected-results53_0))" "(let-values()" "(hash-set!" " side-effects_0" @@ -36726,7 +39086,7 @@ static const char *startup_source = "(void)" "(let-values()" "(error" -" \"internal error: have post submodules, but not already compiled\")))" +" \"internal error: have post submodules, but not already compiled\")))" "(register-compiled-submodules" " modules-being-compiled_0" " pre-submodules_0" @@ -36741,40 +39101,42 @@ static const char *startup_source = " phase-to-link-extra-inspectorsss_0" " syntax-literals_0" " root-ctx-pos_0)" -"(let-values(((bodys50_0) bodys_0)" -"((body-cctx51_0) body-cctx_0)" -"((mpis52_0) mpis_0)" -"((temp53_0)" +"(let-values(((bodys55_0) bodys_0)" +"((body-cctx56_0) body-cctx_0)" +"((mpis57_0) mpis_0)" +"((temp58_0)" "(list" -"(list get-syntax-literal!-id)" -"(list set-transformer!-id)))" -"((temp54_0)" +"(list" +" get-syntax-literal!-id)" +"(list" +" set-transformer!-id)))" +"((temp59_0)" "(list" " empty-syntax-literals-instance" " empty-module-body-instance))" -"((temp55_0) '((void)))" -"((temp56_0) '(0))" -"((encoded-root-expand-ctx-box57_0)" +"((temp60_0) '((void)))" +"((temp61_0) '(0))" +"((encoded-root-expand-ctx-box62_0)" " encoded-root-expand-ctx-box_0)" -"((body-context-simple?58_0)" +"((body-context-simple?63_0)" " body-context-simple?_0)" -"((check-side-effects!59_0)" +"((check-side-effects!64_0)" " check-side-effects!_0)" -"((temp60_0)" +"((temp65_0)" "(lambda(body_0 cctx_1)" "(if(parsed-#%declare?" " body_0)" "(let-values()" "(let-values(((ok?_0" -" _63_0" -" kw64_0)" +" _69_0" +" kw70_0)" "(let-values(((s_0)" "(parsed-s" " body_0)))" "(let-values(((orig-s_0)" " s_0))" -"(let-values(((_63_0" -" kw64_0)" +"(let-values(((_69_0" +" kw70_0)" "(let-values(((s_1)" "(if(syntax?$1" " s_0)" @@ -36783,12 +39145,12 @@ static const char *startup_source = " s_0)))" "(if(pair?" " s_1)" -"(let-values(((_65_0)" +"(let-values(((_71_0)" "(let-values(((s_2)" "(car" " s_1)))" " s_2))" -"((kw66_0)" +"((kw72_0)" "(let-values(((s_2)" "(cdr" " s_1)))" @@ -36806,24 +39168,24 @@ static const char *startup_source = "(let-values()" "(raise-syntax-error$1" " #f" -" \"bad syntax\"" +" \"bad syntax\"" " orig-s_0))" "(let-values()" " flat-s_0)))))))" "(values" -" _65_0" -" kw66_0))" +" _71_0" +" kw72_0))" "(raise-syntax-error$1" " #f" -" \"bad syntax\"" +" \"bad syntax\"" " orig-s_0)))))" "(values" " #t" -" _63_0" -" kw64_0))))))" +" _69_0" +" kw70_0))))))" "(begin" "(let-values(((lst_0)" -" kw64_0))" +" kw70_0))" "(begin" "(if(variable-reference-from-unsafe?" "(#%variable-reference))" @@ -36883,7 +39245,7 @@ static const char *startup_source = "(void)" " #f)))" "(let-values() #f))))" -"((temp61_0)" +"((temp66_0)" "(lambda(mod-name_0 phase_0)" "(let-values(((ht_0)" "(if modules-being-compiled_0" @@ -36898,24 +39260,27 @@ static const char *startup_source = " phase_0" " #f)" " #f))))" -"((serializable?62_0)" -" serializable?_0))" -"(compile-forms29.1" -" temp54_0" -" temp53_0" -" temp55_0" -" check-side-effects!59_0" +"((serializable?67_0)" +" serializable?_0)" +"((to-correlated-linklet?68_0)" +" to-correlated-linklet?_0))" +"(compile-forms31.1" +" temp59_0" +" temp58_0" +" temp60_0" +" check-side-effects!64_0" " #t" " unsafe-undefined" -" encoded-root-expand-ctx-box57_0" -" temp56_0" +" encoded-root-expand-ctx-box62_0" " temp61_0" -" temp60_0" -" body-context-simple?58_0" -" serializable?62_0" -" bodys50_0" -" body-cctx51_0" -" mpis52_0))))" +" temp66_0" +" temp65_0" +" body-context-simple?63_0" +" serializable?67_0" +" to-correlated-linklet?68_0" +" bodys55_0" +" body-cctx56_0" +" mpis57_0))))" "(let-values((()" "(begin" "(if modules-being-compiled_0" @@ -36985,12 +39350,17 @@ static const char *startup_source = " table_0)))))" " for-loop_0)" " '#hasheq()" -"(hash-iterate-first ht_0))))))" +"(hash-iterate-first" +" ht_0))))))" "(void))" "(values))))" "(let-values(((declaration-linklet_0)" "(if serializable?_0" "((lambda(s_0)" +"(if to-correlated-linklet?_0" +"(make-correlated-linklet" +" s_0" +" 'decl)" "(begin" "(if log-performance?" "(let-values()" @@ -37007,7 +39377,7 @@ static const char *startup_source = "(if log-performance?" "(let-values()" "(end-performance-region))" -"(void)))))" +"(void))))))" "(list" " 'linklet" "(list" @@ -37026,25 +39396,25 @@ static const char *startup_source = "(list" " 'define-values" " '(requires)" -"(let-values(((requires67_0)" +"(let-values(((requires73_0)" " requires_0)" -"((mpis68_0) mpis_0)" -"((temp69_0) #f))" +"((mpis74_0) mpis_0)" +"((temp75_0) #f))" "(generate-deserialize6.1" -" temp69_0" -" requires67_0" -" mpis68_0)))" +" temp75_0" +" requires73_0" +" mpis74_0)))" "(list" " 'define-values" " '(provides)" -"(let-values(((provides70_0)" +"(let-values(((provides76_0)" " provides_0)" -"((mpis71_0) mpis_0)" -"((temp72_0) #f))" +"((mpis77_0) mpis_0)" +"((temp78_0) #f))" "(generate-deserialize6.1" -" temp72_0" -" provides70_0" -" mpis71_0)))" +" temp78_0" +" provides76_0" +" mpis77_0)))" "(list" " 'define-values" " '(phase-to-link-modules)" @@ -37055,6 +39425,10 @@ static const char *startup_source = "(syntax-literals-empty?" " syntax-literals_0))" "((lambda(s_0)" +"(if to-correlated-linklet?_0" +"(make-correlated-linklet" +" s_0" +" 'syntax-literals)" "(begin" "(if log-performance?" "(let-values()" @@ -37086,7 +39460,7 @@ static const char *startup_source = "(if log-performance?" "(let-values()" "(end-performance-region))" -"(void)))))" +"(void))))))" "(list*" " 'linklet" "(list" @@ -37102,18 +39476,20 @@ static const char *startup_source = " get-syntax-literal!-id" " '(get-encoded-root-expand-ctx))" "(qq-append" -"(let-values(((syntax-literals73_0)" +"(let-values(((syntax-literals79_0)" " syntax-literals_0)" -"((mpis74_0) mpis_0)" -"((self75_0) self_0)" -"((temp76_0)" +"((mpis80_0)" +" mpis_0)" +"((self81_0)" +" self_0)" +"((temp82_0)" "(not" " serializable?_0)))" "(generate-lazy-syntax-literals!9.1" -" temp76_0" -" syntax-literals73_0" -" mpis74_0" -" self75_0))" +" temp82_0" +" syntax-literals79_0" +" mpis80_0" +" self81_0))" "(list" "(list" " 'define-values" @@ -37127,7 +39503,8 @@ static const char *startup_source = " root-ctx-pos_0)))" "(if empty-result-for-module->namespace?_0" "(let-values() ''empty)" -"(let-values() ''#f))))))))" +"(let-values()" +" ''#f))))))))" " #f)))" "(let-values(((syntax-literals-data-linklet_0)" "(if serializable?_0" @@ -37135,6 +39512,10 @@ static const char *startup_source = "(syntax-literals-empty?" " syntax-literals_0))" "((lambda(s_0)" +"(if to-correlated-linklet?_0" +"(make-correlated-linklet" +" s_0" +" 'syntax-literals-data)" "(begin" "(if log-performance?" "(let-values()" @@ -37151,7 +39532,7 @@ static const char *startup_source = "(if log-performance?" "(let-values()" "(end-performance-region))" -"(void)))))" +"(void))))))" "(list*" " 'linklet" "(list" @@ -37191,6 +39572,10 @@ static const char *startup_source = "(let-values(((data-linklet_0)" "(if serializable?_0" "((lambda(s_0)" +"(if to-correlated-linklet?_0" +"(make-correlated-linklet" +" s_0" +" 'data)" "(begin" "(if log-performance?" "(let-values()" @@ -37207,7 +39592,7 @@ static const char *startup_source = "(if log-performance?" "(let-values()" "(end-performance-region))" -"(void)))))" +"(void))))))" "(list" " 'linklet" "(list deserialize-imports)" @@ -37314,16 +39699,16 @@ static const char *startup_source = "(hash-set" " bundle_10" " 'side-effects" -"(let-values(((temp77_0)" +"(let-values(((temp83_0)" "(hash-keys" " side-effects_0))" -"((<78_0)" +"((<84_0)" " <))" "(sort7.1" " #f" " #f" -" temp77_0" -" <78_0)))" +" temp83_0" +" <84_0)))" " bundle_10)))" "(let-values(((bundle_12)" "(if empty-result-for-module->namespace?_0" @@ -37345,7 +39730,7 @@ static const char *startup_source = " #f)" "(let-values() bundle_0)" "(let-values()" -"(hash->linklet-directory" +"(let-values(((ht_0)" "(let-values(((lst_0)" "(append" " pre-submodules_0" @@ -37392,8 +39777,12 @@ static const char *startup_source = " ht_1)))" " ht_0)))))" " for-loop_0)" -"(hasheq #f bundle_0)" -" lst_0))))))))" +"(hasheq" +" #f" +" bundle_0)" +" lst_0)))))" +"(hash->linklet-directory" +" ht_0))))))" "(compiled-in-memory1.1" " ld_0" " self_0" @@ -37409,7 +39798,7 @@ static const char *startup_source = "(map2 cdr post-submodules_0)" " #f" " #f)))))))))))))))))))))))))" -"(if log-performance?(let-values()(end-performance-region))(void)))))))))))))))))" +"(if log-performance?(let-values()(end-performance-region))(void))))))))))))))))))" "(define-values" "(update-submodule-names)" "(lambda(cim_0 name_0 full-module-name_0)" @@ -38095,7 +40484,7 @@ static const char *startup_source = " c_0" "(if(not single-expression?_0) ns_0 #f))" "(1/instantiate-linklet" -"(hash-ref h_0 'link)" +"(force-compile-linklet(hash-ref h_0 'link))" "(list" " deserialize-instance" "(let-values(((ns21_0) ns_0)" @@ -38283,10 +40672,11 @@ static const char *startup_source = " temp33_0" " temp36_0)))))" "(let-values(((linklet_0)" +"(force-compile-linklet" "(hash-ref" " h_0" " phase_0" -" #f)))" +" #f))))" "(if linklet_0" "(let-values()" "(let-values((()" @@ -38380,7 +40770,8 @@ static const char *startup_source = " current-expand-context" "(let-values(((ns-144_0)" " ns-1_0))" -"(make-expand-context10.1" +"(make-expand-context12.1" +" #f" " #f" " #f" " #f" @@ -40664,6 +43055,8 @@ static const char *startup_source = " the-struct_1)" "(expand-context/inner-for-serializable?" " the-struct_1)" +"(expand-context/inner-to-correlated-linklet?" +" the-struct_1)" "(expand-context/inner-should-not-encounter-macros?" " the-struct_1)))" "(raise-argument-error" @@ -40867,6 +43260,7 @@ static const char *startup_source = "(expand-context/inner-requires+provides the-struct_1)" "(expand-context/inner-observer the-struct_1)" "(expand-context/inner-for-serializable? the-struct_1)" +"(expand-context/inner-to-correlated-linklet? the-struct_1)" "(expand-context/inner-should-not-encounter-macros? the-struct_1)))" " (raise-argument-error 'struct-copy \"expand-context/inner?\" the-struct_1)))))" "(expand-context/outer1.1" @@ -41347,7 +43741,7 @@ static const char *startup_source = "(values))))" "(let-values(((ctx_0)" "(let-values(((temp47_0) 'syntax-local-make-definition-context))" -"(get-current-expand-context16.1 #f temp47_0))))" +"(get-current-expand-context18.1 #f temp47_0))))" "(let-values(((frame-id_0)" "(let-values(((or-part_0)(root-expand-context-frame-id ctx_0)))" "(if or-part_0" @@ -41427,7 +43821,7 @@ static const char *startup_source = "(values))))" "(let-values(((ctx_0)" "(let-values(((temp48_0) 'local-expand))" -"(get-current-expand-context16.1 #f temp48_0))))" +"(get-current-expand-context18.1 #f temp48_0))))" "(let-values((()" "(begin" "(let-values(((obs_0)(expand-context-observer ctx_0)))" @@ -42311,6 +44705,7 @@ static const char *startup_source = "(expand-context/inner-requires+provides the-struct_1)" "(expand-context/inner-observer the-struct_1)" "(expand-context/inner-for-serializable? the-struct_1)" +"(expand-context/inner-to-correlated-linklet? the-struct_1)" "(expand-context/inner-should-not-encounter-macros?" " the-struct_1)))" "(raise-argument-error" @@ -42349,27 +44744,27 @@ static const char *startup_source = "(lambda()" "(begin" " 'syntax-transforming?" -"(if(let-values(((temp55_0) #t))(get-current-expand-context16.1 temp55_0 'unexpected)) #t #f))))" +"(if(let-values(((temp55_0) #t))(get-current-expand-context18.1 temp55_0 'unexpected)) #t #f))))" "(define-values" "(1/syntax-transforming-with-lifts?)" "(lambda()" "(begin" " 'syntax-transforming-with-lifts?" -"(let-values(((ctx_0)(let-values(((temp56_0) #t))(get-current-expand-context16.1 temp56_0 'unexpected))))" +"(let-values(((ctx_0)(let-values(((temp56_0) #t))(get-current-expand-context18.1 temp56_0 'unexpected))))" "(if ctx_0(if(expand-context-lifts ctx_0) #t #f) #f)))))" "(define-values" "(1/syntax-transforming-module-expression?)" "(lambda()" "(begin" " 'syntax-transforming-module-expression?" -"(let-values(((ctx_0)(let-values(((temp57_0) #t))(get-current-expand-context16.1 temp57_0 'unexpected))))" +"(let-values(((ctx_0)(let-values(((temp57_0) #t))(get-current-expand-context18.1 temp57_0 'unexpected))))" "(if ctx_0(if(expand-context-to-module-lifts ctx_0) #t #f) #f)))))" "(define-values" "(1/syntax-local-transforming-module-provides?)" "(lambda()" "(begin" " 'syntax-local-transforming-module-provides?" -"(let-values(((ctx_0)(let-values(((temp58_0) #t))(get-current-expand-context16.1 temp58_0 'unexpected))))" +"(let-values(((ctx_0)(let-values(((temp58_0) #t))(get-current-expand-context18.1 temp58_0 'unexpected))))" "(if ctx_0(if(expand-context-requires+provides ctx_0) #t #f) #f)))))" "(define-values" "(1/syntax-local-context)" @@ -42377,7 +44772,7 @@ static const char *startup_source = "(begin" " 'syntax-local-context" "(let-values(((ctx_0)" -"(let-values(((temp59_0) 'syntax-local-context))(get-current-expand-context16.1 #f temp59_0))))" +"(let-values(((temp59_0) 'syntax-local-context))(get-current-expand-context18.1 #f temp59_0))))" "(expand-context-context ctx_0)))))" "(define-values" "(1/syntax-local-introduce)" @@ -42394,7 +44789,7 @@ static const char *startup_source = "(values))))" "(let-values(((ctx_0)" "(let-values(((temp61_0) 'syntax-local-introduce))" -"(get-current-expand-context16.1 #f temp61_0))))" +"(get-current-expand-context18.1 #f temp61_0))))" "(flip-introduction-and-use-scopes s_0 ctx_0))))))))" "(define-values" "(1/syntax-local-identifier-as-binding)" @@ -42412,14 +44807,14 @@ static const char *startup_source = "(values))))" "(let-values(((ctx_0)" "(let-values(((temp63_0) 'syntax-local-identifier-as-binding))" -"(get-current-expand-context16.1 #f temp63_0))))" +"(get-current-expand-context18.1 #f temp63_0))))" "(remove-use-site-scopes id_0 ctx_0))))))))" "(define-values" "(1/syntax-local-phase-level)" "(lambda()" "(begin" " 'syntax-local-phase-level" -"(let-values(((ctx_0)(let-values(((temp64_0) #t))(get-current-expand-context16.1 temp64_0 'unexpected))))" +"(let-values(((ctx_0)(let-values(((temp64_0) #t))(get-current-expand-context18.1 temp64_0 'unexpected))))" "(if ctx_0(expand-context-phase ctx_0) 0)))))" "(define-values" "(1/syntax-local-name)" @@ -42429,7 +44824,7 @@ static const char *startup_source = "(let-values()" "(let-values()" "(let-values(((ctx_0)" -"(let-values(((who66_0) 'syntax-local-name))(get-current-expand-context16.1 #f who66_0))))" +"(let-values(((who66_0) 'syntax-local-name))(get-current-expand-context18.1 #f who66_0))))" "(let-values(((id_0)(expand-context-name ctx_0)))" "(if id_0(datum->syntax$1 #f(syntax-e$1 id_0) id_0) #f))))))))" "(define-values" @@ -42642,7 +45037,7 @@ static const char *startup_source = "(let-values()(raise-argument-error who_0 intdefs-or-false?-string intdefs_0)))" "(values))))" "(let-values(((current-ctx_0)" -"(let-values(((who81_0) who_0))(get-current-expand-context16.1 #f who81_0))))" +"(let-values(((who81_0) who_0))(get-current-expand-context18.1 #f who81_0))))" "(let-values(((ctx_0)" "(if intdefs_0" "(let-values(((v_0) current-ctx_0))" @@ -42846,7 +45241,7 @@ static const char *startup_source = "(void)" " (let-values () (raise-argument-error who_0 \"exact-nonnegative-integer?\" n_0)))" "(values))))" -"(let-values(((ctx_0)(let-values(((who101_0) who_0))(get-current-expand-context16.1 #f who101_0))))" +"(let-values(((ctx_0)(let-values(((who101_0) who_0))(get-current-expand-context18.1 #f who101_0))))" "(let-values(((lifts_0)(expand-context-lifts ctx_0)))" "(let-values((()" "(begin" @@ -42934,7 +45329,7 @@ static const char *startup_source = "(let-values()" "(let-values(((ctx_0)" "(let-values(((who105_0) 'syntax-local-lift-context))" -"(get-current-expand-context16.1 #f who105_0))))" +"(get-current-expand-context18.1 #f who105_0))))" "(root-expand-context-lift-key ctx_0)))))))" "(define-values" "(1/syntax-local-lift-module)" @@ -42951,7 +45346,7 @@ static const char *startup_source = "(values))))" "(let-values(((ctx_0)" "(let-values(((who107_0) 'syntax-local-lift-module))" -"(get-current-expand-context16.1 #f who107_0))))" +"(get-current-expand-context18.1 #f who107_0))))" "(let-values(((phase_0)(expand-context-phase ctx_0)))" "(begin" "(let-values(((tmp_0)(core-form-sym s_0 phase_0)))" @@ -43019,7 +45414,7 @@ static const char *startup_source = "(let-values((()(begin(more-checks_0)(values))))" "(let-values(((ctx_0)" "(let-values(((who108_0) who_0))" -"(get-current-expand-context16.1 #f who108_0))))" +"(get-current-expand-context18.1 #f who108_0))))" "(let-values(((lift-ctx_0)(get-lift-ctx_0 ctx_0)))" "(let-values((()" "(begin" @@ -43228,7 +45623,7 @@ static const char *startup_source = "(values))))" "(let-values(((ctx_0)" "(let-values(((temp139_0) 'syntax-local-module-defined-identifiers))" -"(get-current-expand-context16.1 #f temp139_0))))" +"(get-current-expand-context18.1 #f temp139_0))))" "(requireds->phase-ht(extract-module-definitions(expand-context-requires+provides ctx_0))))))))))" "(define-values" "(1/syntax-local-module-required-identifiers)" @@ -43270,7 +45665,7 @@ static const char *startup_source = "(values))))" "(let-values(((ctx_0)" "(let-values(((temp141_0) 'syntax-local-module-required-identifiers))" -"(get-current-expand-context16.1 #f temp141_0))))" +"(get-current-expand-context18.1 #f temp141_0))))" "(let-values(((requires+provides_0)(expand-context-requires+provides ctx_0)))" "(let-values(((mpi_0)(if mod-path_0(module-path->mpi/context mod-path_0 ctx_0) #f)))" "(let-values(((requireds_0)" @@ -43362,7 +45757,7 @@ static const char *startup_source = "(values))))" "(let-values(((ctx_0)" "(let-values(((temp143_0) 'syntax-local-module-exports))" -"(get-current-expand-context16.1 #f temp143_0))))" +"(get-current-expand-context18.1 #f temp143_0))))" "(let-values(((ns_0)(expand-context-namespace ctx_0)))" "(let-values(((mod-name_0)" "(1/module-path-index-resolve" @@ -43456,7 +45851,7 @@ static const char *startup_source = "(let-values()" "(let-values(((ctx_0)" "(let-values(((who145_0) 'syntax-local-submodules))" -"(get-current-expand-context16.1 #f who145_0))))" +"(get-current-expand-context18.1 #f who145_0))))" "(let-values(((submods_0)(expand-context-declared-submodule-names ctx_0)))" "(reverse$1" "(let-values(((ht_0) submods_0))" @@ -43508,7 +45903,7 @@ static const char *startup_source = "(values))))" "(let-values(((ctx_0)" "(let-values(((who147_0) 'syntax-local-get-shadower))" -"(get-current-expand-context16.1 #f who147_0))))" +"(get-current-expand-context18.1 #f who147_0))))" "(let-values(((new-id_0)(add-scopes id_0(expand-context-scopes ctx_0))))" "(if(syntax-clean? id_0) new-id_0(syntax-taint$1 new-id_0))))))))))))))" "(case-lambda" @@ -44253,7 +46648,7 @@ static const char *startup_source = "(values))))" "(let-values(((s_0)(syntax-track-origin$1 new-stx_0 old-stx_0 id_0)))" "(let-values(((ctx_0)" -"(let-values(((temp76_0) #t))(get-current-expand-context16.1 temp76_0 'unexpected))))" +"(let-values(((temp76_0) #t))(get-current-expand-context18.1 temp76_0 'unexpected))))" "(begin" "(if ctx_0" "(let-values()" @@ -45580,13 +47975,13 @@ static const char *startup_source = " #f)" "(let-values()(eval-compiled(1/syntax->datum s_0) ns_0))" "(let-values()" -"(let-values(((s61_0) s_0)" -"((ns62_0) ns_0)" -"((temp63_0)" +"(let-values(((s83_0) s_0)" +"((ns84_0) ns_0)" +"((temp85_0)" "(lambda(s_1 ns_1 tail?_0)" "(eval-compiled(compile_0 s_1 ns_1) ns_1 tail?_0)))" -"((temp64_0) #f))" -"(per-top-level49.1 #f #f temp64_0 #t #f temp63_0 #f s61_0 ns62_0)))))))))))))" +"((temp86_0) #f))" +"(per-top-level71.1 #f #f temp86_0 #t #f temp85_0 #f s83_0 ns84_0)))))))))))))" "(case-lambda" "((s_0)(begin 'eval(eval4_0 s_0 unsafe-undefined unsafe-undefined)))" "((s_0 ns_0 compile2_0)(eval4_0 s_0 ns_0 compile2_0))" @@ -45603,7 +47998,7 @@ static const char *startup_source = "(let-values()" "(if(1/compiled-module-expression? c_0)" "(let-values()" -"(let-values(((c65_0) c_0)((ns66_0) ns_0))(eval-module8.1 ns66_0 #f #t c65_0)))" +"(let-values(((c87_0) c_0)((ns88_0) ns_0))(eval-module8.1 ns88_0 #f #t c87_0)))" "(let-values()(eval-top c_0 ns_0 eval-compiled as-tail?_0)))))))))))" "(case-lambda" "((c_0 ns_0)(begin(eval-compiled9_0 c_0 ns_0 #t)))" @@ -45619,38 +48014,54 @@ static const char *startup_source = "(let-values(((serializable?_0) serializable?12_0))" "(let-values(((expand_0)(if(eq? expand13_0 unsafe-undefined) expand$1 expand13_0)))" "(let-values()" +"(let-values(((to-correlated-linklet?_0)" +"(if serializable?_0(compile-machine-independent) #f)))" "(let-values(((cs_0)" "(if(1/compiled-expression? s_0)" "(let-values()(list s_0))" "(if(if(syntax?$1 s_0)(1/compiled-expression?(1/syntax-e s_0)) #f)" "(let-values()(list(1/syntax-e s_0)))" "(let-values()" -"(let-values(((s67_0) s_0)" -"((ns68_0) ns_0)" -"((temp69_0)" +"(let-values(((s89_0) s_0)" +"((ns90_0) ns_0)" +"((temp91_0)" "(lambda(s_1 ns_1 as-tail?_0)" "(list" -"(compile-single$1" -" s_1" -" ns_1" -" expand_0" -" serializable?_0))))" -"((append70_0) append)" -"((temp71_0) #f))" -"(per-top-level49.1" -" append70_0" +"(let-values(((s94_0) s_1)" +"((ns95_0) ns_1)" +"((expand96_0) expand_0)" +"((serializable?97_0) serializable?_0)" +"((to-correlated-linklet?98_0)" +" to-correlated-linklet?_0))" +"(compile-single25.1" +" serializable?97_0" +" to-correlated-linklet?98_0" +" s94_0" +" ns95_0" +" expand96_0)))))" +"((append92_0) append)" +"((temp93_0) #f))" +"(per-top-level71.1" +" append92_0" " #f" -" temp71_0" +" temp93_0" " #t" " #f" -" temp69_0" +" temp91_0" " #f" -" s67_0" -" ns68_0)))))))" +" s89_0" +" ns90_0)))))))" "(if(if(= 1(length cs_0))(not(compiled-multiple-top?(car cs_0))) #f)" "(car cs_0)" -"(let-values(((cs72_0) cs_0)((serializable?73_0) serializable?_0)((ns74_0) ns_0))" -"(compiled-tops->compiled-top6.1 serializable?73_0 ns74_0 cs72_0)))))))))))))" +"(let-values(((cs99_0) cs_0)" +"((to-correlated-linklet?100_0) to-correlated-linklet?_0)" +"((serializable?101_0) serializable?_0)" +"((ns102_0) ns_0))" +"(compiled-tops->compiled-top8.1" +" serializable?101_0" +" ns102_0" +" to-correlated-linklet?100_0" +" cs99_0))))))))))))))" "(case-lambda" "((s_0)(begin 'compile(compile15_0 s_0 unsafe-undefined #t unsafe-undefined)))" "((s_0 ns_0 serializable?_0 expand13_0)(compile15_0 s_0 ns_0 serializable?_0 expand13_0))" @@ -45684,39 +48095,56 @@ static const char *startup_source = "(make-struct-field-accessor -ref_0 0 'seq)" "(make-struct-field-accessor -ref_0 1 'last))))" "(define-values" -"(compile-single$1)" -"(lambda(s_0 ns_0 expand_0 serializable?_0)" +"(compile-single25.1)" +"(lambda(serializable?18_0 to-correlated-linklet?19_0 s22_0 ns23_0 expand24_0)" "(begin" -" 'compile-single" -"(let-values(((exp-s_0)(expand_0 s_0 ns_0 #f #t serializable?_0)))" +" 'compile-single25" +"(let-values(((s_0) s22_0))" +"(let-values(((ns_0) ns23_0))" +"(let-values(((expand_0) expand24_0))" +"(let-values(((serializable?_0) serializable?18_0))" +"(let-values(((to-correlated-linklet?_0) to-correlated-linklet?19_0))" +"(let-values()" +"(let-values(((exp-s_0)(expand_0 s_0 ns_0 #f #t serializable?_0 to-correlated-linklet?_0)))" "((letrec-values(((loop_0)" "(lambda(exp-s_1)" "(begin" " 'loop" "(if(parsed-module? exp-s_1)" "(let-values()" -"(let-values(((exp-s76_0) exp-s_1)" -"((temp77_0)" -"(let-values(((ns79_0) ns_0))" +"(let-values(((exp-s104_0) exp-s_1)" +"((temp105_0)" +"(let-values(((ns108_0) ns_0))" "(make-compile-context14.1" " #f" " unsafe-undefined" " #f" -" ns79_0" +" ns108_0" " unsafe-undefined" " unsafe-undefined)))" -"((serializable?78_0) serializable?_0))" -"(compile-module11.1 #f unsafe-undefined #t serializable?78_0 exp-s76_0 temp77_0)))" +"((serializable?106_0) serializable?_0)" +"((to-correlated-linklet?107_0) to-correlated-linklet?_0))" +"(compile-module13.1" +" #f" +" unsafe-undefined" +" #t" +" serializable?106_0" +" to-correlated-linklet?107_0" +" exp-s104_0" +" temp105_0)))" "(if(lifted-parsed-begin? exp-s_1)" "(let-values()" -"(let-values(((temp80_0)" +"(let-values(((to-correlated-linklet?109_0) to-correlated-linklet?_0)" +"((temp110_0)" "(reverse$1" "(let-values(((lst_0)" "(append" "(lifted-parsed-begin-seq exp-s_1)" -"(list(lifted-parsed-begin-last exp-s_1)))))" +"(list" +"(lifted-parsed-begin-last exp-s_1)))))" "(begin" -"(if(variable-reference-from-unsafe?(#%variable-reference))" +"(if(variable-reference-from-unsafe?" +"(#%variable-reference))" "(void)" "(let-values()(check-list lst_0)))" "((letrec-values(((for-loop_0)" @@ -45724,9 +48152,12 @@ static const char *startup_source = "(begin" " 'for-loop" "(if(pair? lst_1)" -"(let-values(((e_0)(unsafe-car lst_1))" +"(let-values(((e_0)" +"(unsafe-car" +" lst_1))" "((rest_0)" -"(unsafe-cdr lst_1)))" +"(unsafe-cdr" +" lst_1)))" "(let-values(((fold-var_1)" "(let-values(((fold-var_1)" " fold-var_0))" @@ -45740,39 +48171,52 @@ static const char *startup_source = "(values" " fold-var_2)))))" "(if(not #f)" -"(for-loop_0 fold-var_1 rest_0)" +"(for-loop_0" +" fold-var_1" +" rest_0)" " fold-var_1)))" " fold-var_0)))))" " for-loop_0)" " null" " lst_0))))))" -"(compiled-tops->compiled-top6.1 #f #f temp80_0)))" +"(compiled-tops->compiled-top8.1" +" #f" +" #f" +" to-correlated-linklet?109_0" +" temp110_0)))" "(let-values()" -"(let-values(((exp-s81_0) exp-s_1)" -"((temp82_0)" -"(let-values(((ns84_0) ns_0))" +"(let-values(((exp-s111_0) exp-s_1)" +"((temp112_0)" +"(let-values(((ns115_0) ns_0))" "(make-compile-context14.1" " #f" " unsafe-undefined" " #f" -" ns84_0" +" ns115_0" " unsafe-undefined" " unsafe-undefined)))" -"((serializable?83_0) serializable?_0))" -"(compile-top7.1 serializable?83_0 #f exp-s81_0 temp82_0)))))))))" +"((serializable?113_0) serializable?_0)" +"((to-correlated-linklet?114_0) to-correlated-linklet?_0))" +"(compile-top9.1" +" serializable?113_0" +" #f" +" to-correlated-linklet?114_0" +" exp-s111_0" +" temp112_0)))))))))" " loop_0)" -" exp-s_0)))))" +" exp-s_0)))))))))))" "(define-values" "(expand$1)" -"(let-values(((expand23_0)" -"(lambda(s22_0 ns18_0 observable?19_0 to-parsed?20_0 serializable?21_0)" +"(let-values(((expand34_0)" +"(lambda(s33_0 ns28_0 observable?29_0 to-parsed?30_0 serializable?31_0 to-correlated-linklet?32_0)" "(begin" -" 'expand23" -"(let-values(((s_0) s22_0))" -"(let-values(((ns_0)(if(eq? ns18_0 unsafe-undefined)(1/current-namespace) ns18_0)))" -"(let-values(((observable?_0) observable?19_0))" -"(let-values(((to-parsed?_0) to-parsed?20_0))" -"(let-values(((serializable?_0) serializable?21_0))" +" 'expand34" +"(let-values(((s_0) s33_0))" +"(let-values(((ns_0)(if(eq? ns28_0 unsafe-undefined)(1/current-namespace) ns28_0)))" +"(let-values(((observable?_0) observable?29_0))" +"(let-values(((to-parsed?_0) to-parsed?30_0))" +"(let-values(((serializable?_0) serializable?31_0))" +"(let-values(((to-correlated-linklet?_0) to-correlated-linklet?32_0))" "(let-values()" "(let-values(((observer_0)(if observable?_0(current-expand-observe) #f)))" "(begin" @@ -45784,135 +48228,193 @@ static const char *startup_source = " current-expand-observe" " #f)" "(let-values()" -"(let-values(((s85_0) s_0)" -"((ns86_0) ns_0)" -"((temp87_0)" +"(let-values(((s116_0) s_0)" +"((ns117_0) ns_0)" +"((temp118_0)" "(lambda(s_1 ns_1 as-tail?_0)" -"(expand-single" -" s_1" -" ns_1" -" observer_0" -" to-parsed?_0" -" serializable?_0)))" -"((cons88_0) cons)" -"((re-pair89_0) re-pair)" -"((observer90_0) observer_0))" -"(per-top-level49.1" -" cons88_0" +"(let-values(((s122_0) s_1)" +"((ns123_0) ns_1)" +"((observer124_0) observer_0)" +"((to-parsed?125_0) to-parsed?_0)" +"((serializable?126_0) serializable?_0)" +"((to-correlated-linklet?127_0)" +" to-correlated-linklet?_0))" +"(expand-single44.1" +" serializable?126_0" +" to-correlated-linklet?127_0" +" s122_0" +" ns123_0" +" observer124_0" +" to-parsed?125_0))))" +"((cons119_0) cons)" +"((re-pair120_0) re-pair)" +"((observer121_0) observer_0))" +"(per-top-level71.1" +" cons119_0" " #f" -" observer90_0" +" observer121_0" " #t" " #f" -" temp87_0" -" re-pair89_0" -" s85_0" -" ns86_0))))))))))))))))" +" temp118_0" +" re-pair120_0" +" s116_0" +" ns117_0)))))))))))))))))" "(case-lambda" -"((s_0)(begin 'expand(expand23_0 s_0 unsafe-undefined #f #f #f)))" -"((s_0 ns_0 observable?_0 to-parsed?_0 serializable?21_0)" -"(expand23_0 s_0 ns_0 observable?_0 to-parsed?_0 serializable?21_0))" -"((s_0 ns_0 observable?_0 to-parsed?20_0)(expand23_0 s_0 ns_0 observable?_0 to-parsed?20_0 #f))" -"((s_0 ns_0 observable?19_0)(expand23_0 s_0 ns_0 observable?19_0 #f #f))" -"((s_0 ns18_0)(expand23_0 s_0 ns18_0 #f #f #f)))))" +"((s_0)(begin 'expand(expand34_0 s_0 unsafe-undefined #f #f #f #f)))" +"((s_0 ns_0 observable?_0 to-parsed?_0 serializable?_0 to-correlated-linklet?32_0)" +"(expand34_0 s_0 ns_0 observable?_0 to-parsed?_0 serializable?_0 to-correlated-linklet?32_0))" +"((s_0 ns_0 observable?_0 to-parsed?_0 serializable?31_0)" +"(expand34_0 s_0 ns_0 observable?_0 to-parsed?_0 serializable?31_0 #f))" +"((s_0 ns_0 observable?_0 to-parsed?30_0)(expand34_0 s_0 ns_0 observable?_0 to-parsed?30_0 #f #f))" +"((s_0 ns_0 observable?29_0)(expand34_0 s_0 ns_0 observable?29_0 #f #f #f))" +"((s_0 ns28_0)(expand34_0 s_0 ns28_0 #f #f #f #f)))))" "(define-values" -"(expand-single)" -"(lambda(s_0 ns_0 observer_0 to-parsed?_0 serializable?_0)" +"(expand-single44.1)" +"(lambda(serializable?36_0 to-correlated-linklet?37_0 s40_0 ns41_0 observer42_0 to-parsed?43_0)" "(begin" +" 'expand-single44" +"(let-values(((s_0) s40_0))" +"(let-values(((ns_0) ns41_0))" +"(let-values(((observer_0) observer42_0))" +"(let-values(((to-parsed?_0) to-parsed?43_0))" +"(let-values(((serializable?_0) serializable?36_0))" +"(let-values(((to-correlated-linklet?_0) to-correlated-linklet?37_0))" +"(let-values()" "(let-values(((rebuild-s_0)(keep-properties-only s_0)))" "(let-values(((ctx_0)" -"(let-values(((ns91_0) ns_0)" -"((to-parsed?92_0) to-parsed?_0)" -"((serializable?93_0) serializable?_0)" -"((observer94_0) observer_0))" -"(make-expand-context10.1 serializable?93_0 observer94_0 to-parsed?92_0 ns91_0))))" +"(let-values(((ns128_0) ns_0)" +"((to-parsed?129_0) to-parsed?_0)" +"((serializable?130_0) serializable?_0)" +"((to-correlated-linklet?131_0) to-correlated-linklet?_0)" +"((observer132_0) observer_0))" +"(make-expand-context12.1" +" serializable?130_0" +" observer132_0" +" to-correlated-linklet?131_0" +" to-parsed?129_0" +" ns128_0))))" "(let-values(((require-lifts_0 lifts_0 exp-s_0)(expand-capturing-lifts s_0 ctx_0)))" "(if(if(null? require-lifts_0)(null? lifts_0) #f)" "(let-values() exp-s_0)" "(if to-parsed?_0" "(let-values()" -"(let-values(((require-lifts95_0) require-lifts_0)" -"((lifts96_0) lifts_0)" -"((exp-s97_0) exp-s_0)" -"((rebuild-s98_0) rebuild-s_0)" -"((temp99_0)" -"(lambda(form_0)(expand-single form_0 ns_0 observer_0 to-parsed?_0 serializable?_0))))" -"(wrap-lifts-as-lifted-parsed-begin58.1" -" temp99_0" -" require-lifts95_0" -" lifts96_0" -" exp-s97_0" -" rebuild-s98_0)))" +"(let-values(((require-lifts133_0) require-lifts_0)" +"((lifts134_0) lifts_0)" +"((exp-s135_0) exp-s_0)" +"((rebuild-s136_0) rebuild-s_0)" +"((temp137_0)" +"(lambda(form_0)" +"(let-values(((form138_0) form_0)" +"((ns139_0) ns_0)" +"((observer140_0) observer_0)" +"((to-parsed?141_0) to-parsed?_0)" +"((serializable?142_0) serializable?_0))" +"(expand-single44.1" +" serializable?142_0" +" #f" +" form138_0" +" ns139_0" +" observer140_0" +" to-parsed?141_0)))))" +"(wrap-lifts-as-lifted-parsed-begin80.1" +" temp137_0" +" require-lifts133_0" +" lifts134_0" +" exp-s135_0" +" rebuild-s136_0)))" "(let-values()" "(let-values((()" "(begin" "(log-top-lift-begin-before ctx_0 require-lifts_0 lifts_0 exp-s_0 ns_0)" "(values))))" "(let-values(((new-s_0)" -"(let-values(((temp100_0)(append require-lifts_0 lifts_0))" -"((temp101_0)" +"(let-values(((temp143_0)(append require-lifts_0 lifts_0))" +"((temp144_0)" "(lambda(form_0)" "(begin" -"(let-values(((obs_0)(expand-context-observer ctx_0)))" +"(let-values(((obs_0)" +"(expand-context-observer ctx_0)))" "(if obs_0" "(let-values()" -"(let-values()(call-expand-observe obs_0 'next)))" +"(let-values()" +"(call-expand-observe obs_0 'next)))" "(void)))" -"(expand-single" -" form_0" -" ns_0" -" observer_0" -" to-parsed?_0" -" serializable?_0))))" -"((temp102_0)" +"(let-values(((form148_0) form_0)" +"((ns149_0) ns_0)" +"((observer150_0) observer_0)" +"((to-parsed?151_0) to-parsed?_0)" +"((serializable?152_0) serializable?_0))" +"(expand-single44.1" +" serializable?152_0" +" #f" +" form148_0" +" ns149_0" +" observer150_0" +" to-parsed?151_0)))))" +"((temp145_0)" "(lambda(form_0)" "(if to-parsed?_0" "(let-values() form_0)" "(let-values()" "(begin" -"(let-values(((obs_0)(expand-context-observer ctx_0)))" +"(let-values(((obs_0)" +"(expand-context-observer ctx_0)))" "(if obs_0" "(let-values()" -"(let-values()(call-expand-observe obs_0 'next)))" +"(let-values()" +"(call-expand-observe obs_0 'next)))" "(void)))" -"(expand-single" -" form_0" -" ns_0" -" observer_0" -" to-parsed?_0" -" serializable?_0))))))" -"((exp-s103_0) exp-s_0)" -"((temp104_0)(namespace-phase ns_0)))" -"(wrap-lifts-as-begin16.1 temp102_0 temp101_0 temp100_0 exp-s103_0 temp104_0))))" -"(begin(log-top-begin-after ctx_0 new-s_0) new-s_0))))))))))))" +"(let-values(((form153_0) form_0)" +"((ns154_0) ns_0)" +"((observer155_0) observer_0)" +"((to-parsed?156_0) to-parsed?_0)" +"((serializable?157_0)" +" serializable?_0))" +"(expand-single44.1" +" serializable?157_0" +" #f" +" form153_0" +" ns154_0" +" observer155_0" +" to-parsed?156_0)))))))" +"((exp-s146_0) exp-s_0)" +"((temp147_0)(namespace-phase ns_0)))" +"(wrap-lifts-as-begin16.1" +" temp145_0" +" temp144_0" +" temp143_0" +" exp-s146_0" +" temp147_0))))" +"(begin(log-top-begin-after ctx_0 new-s_0) new-s_0)))))))))))))))))))" "(define-values" "(expand-once$1)" -"(let-values(((expand-once27_0)" -"(lambda(s26_0 ns25_0)" +"(let-values(((expand-once49_0)" +"(lambda(s48_0 ns47_0)" "(begin" -" 'expand-once27" -"(let-values(((s_0) s26_0))" -"(let-values(((ns_0)(if(eq? ns25_0 unsafe-undefined)(1/current-namespace) ns25_0)))" +" 'expand-once49" +"(let-values(((s_0) s48_0))" +"(let-values(((ns_0)(if(eq? ns47_0 unsafe-undefined)(1/current-namespace) ns47_0)))" "(let-values()" -"(let-values(((s105_0) s_0)" -"((ns106_0) ns_0)" -"((temp107_0)(lambda(s_1 ns_1 as-tail?_0)(expand-single-once s_1 ns_1)))" -"((cons108_0) cons)" -"((re-pair109_0) re-pair)" -"((temp110_0) #t)" -"((temp111_0) #f))" -"(per-top-level49.1" -" cons108_0" -" temp110_0" -" temp111_0" +"(let-values(((s158_0) s_0)" +"((ns159_0) ns_0)" +"((temp160_0)(lambda(s_1 ns_1 as-tail?_0)(expand-single-once s_1 ns_1)))" +"((cons161_0) cons)" +"((re-pair162_0) re-pair)" +"((temp163_0) #t)" +"((temp164_0) #f))" +"(per-top-level71.1" +" cons161_0" +" temp163_0" +" temp164_0" " #t" " #f" -" temp107_0" -" re-pair109_0" -" s105_0" -" ns106_0)))))))))" +" temp160_0" +" re-pair162_0" +" s158_0" +" ns159_0)))))))))" "(case-lambda" -"((s_0)(begin 'expand-once(expand-once27_0 s_0 unsafe-undefined)))" -"((s_0 ns25_0)(expand-once27_0 s_0 ns25_0)))))" +"((s_0)(begin 'expand-once(expand-once49_0 s_0 unsafe-undefined)))" +"((s_0 ns47_0)(expand-once49_0 s_0 ns47_0)))))" "(define-values" "(expand-single-once)" "(lambda(s_0 ns_0)" @@ -45920,13 +48422,13 @@ static const char *startup_source = "(let-values(((require-lifts_0 lifts_0 exp-s_0)" "(expand-capturing-lifts" " s_0" -"(let-values(((v_0)(let-values(((ns112_0) ns_0))(make-expand-context10.1 #f #f #f ns112_0))))" +"(let-values(((v_0)(let-values(((ns165_0) ns_0))(make-expand-context12.1 #f #f #f #f ns165_0))))" "(let-values(((the-struct_0) v_0))" "(if(expand-context/outer? the-struct_0)" -"(let-values(((inner113_0)" +"(let-values(((inner166_0)" "(let-values(((the-struct_1)(root-expand-context/outer-inner v_0)))" "(if(expand-context/inner? the-struct_1)" -"(let-values(((just-once?114_0) #t))" +"(let-values(((just-once?167_0) #t))" "(expand-context/inner2.1" "(root-expand-context/inner-self-mpi the-struct_1)" "(root-expand-context/inner-module-scopes the-struct_1)" @@ -45938,7 +48440,7 @@ static const char *startup_source = "(expand-context/inner-to-parsed? the-struct_1)" "(expand-context/inner-phase the-struct_1)" "(expand-context/inner-namespace the-struct_1)" -" just-once?114_0" +" just-once?167_0" "(expand-context/inner-module-begin-k the-struct_1)" "(expand-context/inner-allow-unbound? the-struct_1)" "(expand-context/inner-in-local-expand? the-struct_1)" @@ -45953,13 +48455,14 @@ static const char *startup_source = "(expand-context/inner-requires+provides the-struct_1)" "(expand-context/inner-observer the-struct_1)" "(expand-context/inner-for-serializable? the-struct_1)" +"(expand-context/inner-to-correlated-linklet? the-struct_1)" "(expand-context/inner-should-not-encounter-macros? the-struct_1)))" "(raise-argument-error" " 'struct-copy" " \"expand-context/inner?\"" " the-struct_1)))))" "(expand-context/outer1.1" -" inner113_0" +" inner166_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)" @@ -45978,18 +48481,18 @@ static const char *startup_source = "(if(if(null? require-lifts_0)(null? lifts_0) #f)" "(let-values() exp-s_0)" "(let-values()" -"(let-values(((temp115_0)(append require-lifts_0 lifts_0))" -"((exp-s116_0) exp-s_0)" -"((temp117_0)(namespace-phase ns_0)))" -"(wrap-lifts-as-begin16.1 unsafe-undefined unsafe-undefined temp115_0 exp-s116_0 temp117_0))))))))" +"(let-values(((temp168_0)(append require-lifts_0 lifts_0))" +"((exp-s169_0) exp-s_0)" +"((temp170_0)(namespace-phase ns_0)))" +"(wrap-lifts-as-begin16.1 unsafe-undefined unsafe-undefined temp168_0 exp-s169_0 temp170_0))))))))" "(define-values" "(expand-to-top-form$1)" -"(let-values(((expand-to-top-form31_0)" -"(lambda(s30_0 ns29_0)" +"(let-values(((expand-to-top-form53_0)" +"(lambda(s52_0 ns51_0)" "(begin" -" 'expand-to-top-form31" -"(let-values(((s_0) s30_0))" -"(let-values(((ns_0)(if(eq? ns29_0 unsafe-undefined)(1/current-namespace) ns29_0)))" +" 'expand-to-top-form53" +"(let-values(((s_0) s52_0))" +"(let-values(((ns_0)(if(eq? ns51_0 unsafe-undefined)(1/current-namespace) ns51_0)))" "(let-values()" "(let-values(((observer_0)(current-expand-observe)))" "(begin" @@ -46001,51 +48504,51 @@ static const char *startup_source = " current-expand-observe" " #f)" "(let-values()" -"(let-values(((s118_0) s_0)" -"((ns119_0) ns_0)" -"((temp120_0) #f)" -"((temp121_0) #f)" -"((observer122_0) observer_0))" -"(per-top-level49.1" +"(let-values(((s171_0) s_0)" +"((ns172_0) ns_0)" +"((temp173_0) #f)" +"((temp174_0) #f)" +"((observer175_0) observer_0))" +"(per-top-level71.1" " #f" " #f" -" observer122_0" -" temp121_0" +" observer175_0" +" temp174_0" " #f" -" temp120_0" +" temp173_0" " #f" -" s118_0" -" ns119_0)))))))))))))" +" s171_0" +" ns172_0)))))))))))))" "(case-lambda" -"((s_0)(begin 'expand-to-top-form(expand-to-top-form31_0 s_0 unsafe-undefined)))" -"((s_0 ns29_0)(expand-to-top-form31_0 s_0 ns29_0)))))" +"((s_0)(begin 'expand-to-top-form(expand-to-top-form53_0 s_0 unsafe-undefined)))" +"((s_0 ns51_0)(expand-to-top-form53_0 s_0 ns51_0)))))" "(define-values" -"(per-top-level49.1)" -"(lambda(combine34_0" -" just-once?36_0" -" observer39_0" -" quick-immediate?37_0" -" serializable?38_0" -" single33_0" -" wrap35_0" -" given-s47_0" -" ns48_0)" +"(per-top-level71.1)" +"(lambda(combine56_0" +" just-once?58_0" +" observer61_0" +" quick-immediate?59_0" +" serializable?60_0" +" single55_0" +" wrap57_0" +" given-s69_0" +" ns70_0)" "(begin" -" 'per-top-level49" -"(let-values(((given-s_0) given-s47_0))" -"(let-values(((ns_0) ns48_0))" -"(let-values(((single_0) single33_0))" -"(let-values(((combine_0) combine34_0))" -"(let-values(((wrap_0) wrap35_0))" -"(let-values(((just-once?_0) just-once?36_0))" -"(let-values(((quick-immediate?_0) quick-immediate?37_0))" -"(let-values(((serializable?_0) serializable?38_0))" -"(let-values(((observer_0) observer39_0))" +" 'per-top-level71" +"(let-values(((given-s_0) given-s69_0))" +"(let-values(((ns_0) ns70_0))" +"(let-values(((single_0) single55_0))" +"(let-values(((combine_0) combine56_0))" +"(let-values(((wrap_0) wrap57_0))" +"(let-values(((just-once?_0) just-once?58_0))" +"(let-values(((quick-immediate?_0) quick-immediate?59_0))" +"(let-values(((serializable?_0) serializable?60_0))" +"(let-values(((observer_0) observer61_0))" "(let-values()" "(let-values(((s_0)(maybe-intro given-s_0 ns_0)))" "(let-values(((ctx_0)" -"(let-values(((ns123_0) ns_0)((observer124_0) observer_0))" -"(make-expand-context10.1 #f observer124_0 #f ns123_0))))" +"(let-values(((ns176_0) ns_0)((observer177_0) observer_0))" +"(make-expand-context12.1 #f observer177_0 #f #f ns176_0))))" "(let-values(((phase_0)(namespace-phase ns_0)))" "((letrec-values(((loop_0)" "(lambda(s_1 phase_1 ns_1 as-tail?_0)" @@ -46055,19 +48558,19 @@ 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(((inner125_0)" +"(let-values(((inner178_0)" "(let-values(((the-struct_1)" "(root-expand-context/outer-inner" " v_0)))" "(if(expand-context/inner?" " the-struct_1)" -"(let-values(((phase126_0)" +"(let-values(((phase179_0)" " phase_1)" -"((namespace127_0)" +"((namespace180_0)" " ns_1)" -"((just-once?128_0)" +"((just-once?181_0)" " just-once?_0)" -"((for-serializable?129_0)" +"((for-serializable?182_0)" " serializable?_0))" "(expand-context/inner2.1" "(root-expand-context/inner-self-mpi" @@ -46086,9 +48589,9 @@ static const char *startup_source = " the-struct_1)" "(expand-context/inner-to-parsed?" " the-struct_1)" -" phase126_0" -" namespace127_0" -" just-once?128_0" +" phase179_0" +" namespace180_0" +" just-once?181_0" "(expand-context/inner-module-begin-k" " the-struct_1)" "(expand-context/inner-allow-unbound?" @@ -46115,7 +48618,9 @@ static const char *startup_source = " the-struct_1)" "(expand-context/inner-observer" " the-struct_1)" -" for-serializable?129_0" +" for-serializable?182_0" +"(expand-context/inner-to-correlated-linklet?" +" the-struct_1)" "(expand-context/inner-should-not-encounter-macros?" " the-struct_1)))" "(raise-argument-error" @@ -46123,7 +48628,7 @@ static const char *startup_source = " \"expand-context/inner?\"" " the-struct_1)))))" "(expand-context/outer1.1" -" inner125_0" +" inner178_0" "(root-expand-context/outer-post-expansion" " the-struct_0)" "(root-expand-context/outer-use-site-scopes" @@ -46173,17 +48678,17 @@ static const char *startup_source = "(let-values(((v_0) tl-ctx_0))" "(let-values(((the-struct_0) v_0))" "(if(expand-context/outer? the-struct_0)" -"(let-values(((only-immediate?130_0)" +"(let-values(((only-immediate?183_0)" " #t)" -"((inner131_0)" +"((inner184_0)" "(let-values(((the-struct_1)" "(root-expand-context/outer-inner" " v_0)))" "(if(expand-context/inner?" " the-struct_1)" -"(let-values(((phase132_0)" +"(let-values(((phase185_0)" " phase_1)" -"((namespace133_0)" +"((namespace186_0)" " ns_1))" "(expand-context/inner2.1" "(root-expand-context/inner-self-mpi" @@ -46202,8 +48707,8 @@ static const char *startup_source = " the-struct_1)" "(expand-context/inner-to-parsed?" " the-struct_1)" -" phase132_0" -" namespace133_0" +" phase185_0" +" namespace186_0" "(expand-context/inner-just-once?" " the-struct_1)" "(expand-context/inner-module-begin-k" @@ -46234,6 +48739,8 @@ static const char *startup_source = " the-struct_1)" "(expand-context/inner-for-serializable?" " the-struct_1)" +"(expand-context/inner-to-correlated-linklet?" +" the-struct_1)" "(expand-context/inner-should-not-encounter-macros?" " the-struct_1)))" "(raise-argument-error" @@ -46241,7 +48748,7 @@ static const char *startup_source = " \"expand-context/inner?\"" " the-struct_1)))))" "(expand-context/outer1.1" -" inner131_0" +" inner184_0" "(root-expand-context/outer-post-expansion" " the-struct_0)" "(root-expand-context/outer-use-site-scopes" @@ -46260,7 +48767,7 @@ static const char *startup_source = " the-struct_0)" "(expand-context/outer-reference-records" " the-struct_0)" -" only-immediate?130_0" +" only-immediate?183_0" "(expand-context/outer-need-eventually-defined" " the-struct_0)" "(expand-context/outer-current-introduction-scopes" @@ -46279,18 +48786,18 @@ static const char *startup_source = "(if or-part_0 or-part_0(pair? lifts_0)))" "(let-values()" "(let-values(((new-s_0)" -"(let-values(((temp134_0)" +"(let-values(((temp187_0)" "(append" " require-lifts_0" " lifts_0))" -"((exp-s135_0) exp-s_0)" -"((phase136_0) phase_1))" +"((exp-s188_0) exp-s_0)" +"((phase189_0) phase_1))" "(wrap-lifts-as-begin16.1" " unsafe-undefined" " unsafe-undefined" -" temp134_0" -" exp-s135_0" -" phase136_0))))" +" temp187_0" +" exp-s188_0" +" phase189_0))))" "(begin" "(let-values(((obs_0)" "(expand-context-observer" @@ -46343,13 +48850,13 @@ static const char *startup_source = " 'prim-begin)))" "(void)))" "(values))))" -"(let-values(((ok?_0 begin137_0 e138_0)" +"(let-values(((ok?_0 begin190_0 e191_0)" "(let-values(((s_2)" " disarmed-exp-s_0))" "(let-values(((orig-s_0)" " s_2))" -"(let-values(((begin137_0" -" e138_0)" +"(let-values(((begin190_0" +" e191_0)" "(let-values(((s_3)" "(if(syntax?$1" " s_2)" @@ -46358,12 +48865,12 @@ static const char *startup_source = " s_2)))" "(if(pair?" " s_3)" -"(let-values(((begin139_0)" +"(let-values(((begin192_0)" "(let-values(((s_4)" "(car" " s_3)))" " s_4))" -"((e140_0)" +"((e193_0)" "(let-values(((s_4)" "(cdr" " s_3)))" @@ -46386,16 +48893,16 @@ static const char *startup_source = "(let-values()" " flat-s_0)))))))" "(values" -" begin139_0" -" e140_0))" +" begin192_0" +" e193_0))" "(raise-syntax-error$1" " #f" " \"bad syntax\"" " orig-s_0)))))" "(values" " #t" -" begin137_0" -" e138_0))))))" +" begin190_0" +" e191_0))))))" "(letrec-values(((begin-loop_0)" "(lambda(es_0)" "(begin" @@ -46460,10 +48967,10 @@ static const char *startup_source = "(let-values()" "(let-values(((new-s_0)" "(wrap_0" -" begin137_0" +" begin190_0" " exp-s_0" "(begin-loop_0" -" e138_0))))" +" e191_0))))" "(begin" "(let-values(((obs_0)" "(expand-context-observer" @@ -46478,7 +48985,7 @@ static const char *startup_source = "(void)))" " new-s_0)))" "(let-values()" -"(begin-loop_0 e138_0)))))))" +"(begin-loop_0 e191_0)))))))" "(if(equal? tmp_0 'begin-for-syntax)" "(let-values()" "(let-values((()" @@ -46495,14 +49002,14 @@ static const char *startup_source = "(void)))" "(values))))" "(let-values(((ok?_0" -" begin-for-syntax141_0" -" e142_0)" +" begin-for-syntax194_0" +" e195_0)" "(let-values(((s_2)" " disarmed-exp-s_0))" "(let-values(((orig-s_0)" " s_2))" -"(let-values(((begin-for-syntax141_0" -" e142_0)" +"(let-values(((begin-for-syntax194_0" +" e195_0)" "(let-values(((s_3)" "(if(syntax?$1" " s_2)" @@ -46511,12 +49018,12 @@ static const char *startup_source = " s_2)))" "(if(pair?" " s_3)" -"(let-values(((begin-for-syntax143_0)" +"(let-values(((begin-for-syntax196_0)" "(let-values(((s_4)" "(car" " s_3)))" " s_4))" -"((e144_0)" +"((e197_0)" "(let-values(((s_4)" "(cdr" " s_3)))" @@ -46539,16 +49046,16 @@ static const char *startup_source = "(let-values()" " flat-s_0)))))))" "(values" -" begin-for-syntax143_0" -" e144_0))" +" begin-for-syntax196_0" +" e197_0))" "(raise-syntax-error$1" " #f" " \"bad syntax\"" " orig-s_0)))))" "(values" " #t" -" begin-for-syntax141_0" -" e142_0))))))" +" begin-for-syntax194_0" +" e195_0))))))" "(let-values(((next-phase_0)" "(add1 phase_1)))" "(let-values(((next-ns_0)" @@ -46584,7 +49091,7 @@ static const char *startup_source = "(let-values(((l_0)" "(reverse$1" "(let-values(((lst_0)" -" e142_0))" +" e195_0))" "(begin" "(if(variable-reference-from-unsafe?" "(#%variable-reference))" @@ -46645,7 +49152,7 @@ static const char *startup_source = "(let-values()" "(let-values(((new-s_0)" "(wrap_0" -" begin-for-syntax141_0" +" begin-for-syntax194_0" " exp-s_0" " l_0)))" "(begin" @@ -46696,26 +49203,26 @@ static const char *startup_source = "(let-values(((ns_0)(expand-context-namespace ctx_0)))" "(let-values((()(begin(namespace-visit-available-modules! ns_0)(values))))" "(let-values(((lift-ctx_0)" -"(let-values(((temp145_0)(make-top-level-lift ctx_0)))" -"(make-lift-context6.1 #f temp145_0))))" +"(let-values(((temp198_0)(make-top-level-lift ctx_0)))" +"(make-lift-context6.1 #f temp198_0))))" "(let-values(((require-lift-ctx_0)" "(make-require-lift-context" "(namespace-phase ns_0)" "(make-parse-top-lifted-require ns_0))))" "(let-values(((exp-s_0)" -"(let-values(((s146_0) s_0)" -"((temp147_0)" +"(let-values(((s199_0) s_0)" +"((temp200_0)" "(let-values(((v_0) ctx_0))" "(let-values(((the-struct_0) v_0))" "(if(expand-context/outer? the-struct_0)" -"(let-values(((inner148_0)" +"(let-values(((inner201_0)" "(let-values(((the-struct_1)" "(root-expand-context/outer-inner" " v_0)))" "(if(expand-context/inner? the-struct_1)" -"(let-values(((lifts149_0) lift-ctx_0)" -"((module-lifts150_0) lift-ctx_0)" -"((require-lifts151_0)" +"(let-values(((lifts202_0) lift-ctx_0)" +"((module-lifts203_0) lift-ctx_0)" +"((require-lifts204_0)" " require-lift-ctx_0))" "(expand-context/inner2.1" "(root-expand-context/inner-self-mpi" @@ -46749,10 +49256,10 @@ static const char *startup_source = "(expand-context/inner-stops the-struct_1)" "(expand-context/inner-declared-submodule-names" " the-struct_1)" -" lifts149_0" +" lifts202_0" "(expand-context/inner-lift-envs the-struct_1)" -" module-lifts150_0" -" require-lifts151_0" +" module-lifts203_0" +" require-lifts204_0" "(expand-context/inner-to-module-lifts" " the-struct_1)" "(expand-context/inner-requires+provides" @@ -46760,6 +49267,8 @@ static const char *startup_source = "(expand-context/inner-observer the-struct_1)" "(expand-context/inner-for-serializable?" " the-struct_1)" +"(expand-context/inner-to-correlated-linklet?" +" the-struct_1)" "(expand-context/inner-should-not-encounter-macros?" " the-struct_1)))" "(raise-argument-error" @@ -46767,7 +49276,7 @@ static const char *startup_source = " \"expand-context/inner?\"" " the-struct_1)))))" "(expand-context/outer1.1" -" inner148_0" +" inner201_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)" @@ -46786,7 +49295,7 @@ static const char *startup_source = " 'struct-copy" " \"expand-context/outer?\"" " the-struct_0))))))" -"(expand9.1 #f #f #f s146_0 temp147_0))))" +"(expand9.1 #f #f #f s199_0 temp200_0))))" "(values" "(get-and-clear-require-lifts! require-lift-ctx_0)" "(get-and-clear-lifts! lift-ctx_0)" @@ -46797,19 +49306,19 @@ static const char *startup_source = "(lambda(ns_0)" "(begin" "(lambda(s_0 phase_0)" -"(let-values(((ok?_0 #%require152_0 req153_0)" +"(let-values(((ok?_0 #%require205_0 req206_0)" "(let-values(((s_1)(syntax-disarm$1 s_0)))" "(let-values(((orig-s_0) s_1))" -"(let-values(((#%require152_0 req153_0)" +"(let-values(((#%require205_0 req206_0)" "(let-values(((s_2)(if(syntax?$1 s_1)(syntax-e$1 s_1) s_1)))" "(if(pair? s_2)" -"(let-values(((#%require154_0)(let-values(((s_3)(car s_2))) s_3))" -"((req155_0)" +"(let-values(((#%require207_0)(let-values(((s_3)(car s_2))) s_3))" +"((req208_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(((req156_0)" +"(let-values(((req209_0)" "(let-values(((s_5)(car s_4))) s_5))" "(()" "(let-values(((s_5)(cdr s_4)))" @@ -46823,44 +49332,44 @@ static const char *startup_source = " #f" " \"bad syntax\"" " orig-s_0))))))" -"(values req156_0))" +"(values req209_0))" " (raise-syntax-error$1 #f \"bad syntax\" orig-s_0))))))" -"(values #%require154_0 req155_0))" +"(values #%require207_0 req208_0))" " (raise-syntax-error$1 #f \"bad syntax\" orig-s_0)))))" -"(values #t #%require152_0 req153_0))))))" -"(let-values(((temp157_0)(list req153_0))" -"((s158_0) s_0)" -"((ns159_0) ns_0)" -"((phase160_0) phase_0)" -"((phase161_0) phase_0)" -"((temp162_0)(let-values(((temp164_0) #f))(make-requires+provides8.1 #f temp164_0)))" -"((temp163_0) 'require))" +"(values #t #%require205_0 req206_0))))))" +"(let-values(((temp210_0)(list req206_0))" +"((s211_0) s_0)" +"((ns212_0) ns_0)" +"((phase213_0) phase_0)" +"((phase214_0) phase_0)" +"((temp215_0)(let-values(((temp217_0) #f))(make-requires+provides8.1 #f temp217_0)))" +"((temp216_0) 'require))" "(parse-and-perform-requires!30.1" " #f" " #f" " unsafe-undefined" " #f" -" phase161_0" +" phase214_0" " #f" " #f" " #f" " #t" -" temp163_0" -" temp157_0" -" s158_0" -" ns159_0" -" phase160_0" -" temp162_0)))))))" +" temp216_0" +" temp210_0" +" s211_0" +" ns212_0" +" phase213_0" +" temp215_0)))))))" "(define-values" -"(wrap-lifts-as-lifted-parsed-begin58.1)" -"(lambda(adjust-form52_0 require-lifts54_0 lifts55_0 exp-s56_0 rebuild-s57_0)" +"(wrap-lifts-as-lifted-parsed-begin80.1)" +"(lambda(adjust-form74_0 require-lifts76_0 lifts77_0 exp-s78_0 rebuild-s79_0)" "(begin" -" 'wrap-lifts-as-lifted-parsed-begin58" -"(let-values(((require-lifts_0) require-lifts54_0))" -"(let-values(((lifts_0) lifts55_0))" -"(let-values(((exp-s_0) exp-s56_0))" -"(let-values(((rebuild-s_0) rebuild-s57_0))" -"(let-values(((adjust-form_0) adjust-form52_0))" +" 'wrap-lifts-as-lifted-parsed-begin80" +"(let-values(((require-lifts_0) require-lifts76_0))" +"(let-values(((lifts_0) lifts77_0))" +"(let-values(((exp-s_0) exp-s78_0))" +"(let-values(((rebuild-s_0) rebuild-s79_0))" +"(let-values(((adjust-form_0) adjust-form74_0))" "(let-values()" "(lifted-parsed-begin17.1" "(append" @@ -46934,12 +49443,12 @@ static const char *startup_source = " exp-rhs_0))" "(if(lifted-parsed-begin?" " the-struct_0)" -"(let-values(((last165_0)" +"(let-values(((last218_0)" " dv_0))" "(lifted-parsed-begin17.1" "(lifted-parsed-begin-seq" " the-struct_0)" -" last165_0))" +" last218_0))" "(raise-argument-error" " 'struct-copy" " \"lifted-parsed-begin?\"" @@ -46961,15 +49470,15 @@ static const char *startup_source = "(if obs_0" "(let-values()" "(let-values(((new-s_0)" -"(let-values(((temp166_0)(append require-lifts_0 lifts_0))" -"((exp-s167_0) exp-s_0)" -"((temp168_0)(namespace-phase ns_0)))" +"(let-values(((temp219_0)(append require-lifts_0 lifts_0))" +"((exp-s220_0) exp-s_0)" +"((temp221_0)(namespace-phase ns_0)))" "(wrap-lifts-as-begin16.1" " unsafe-undefined" " unsafe-undefined" -" temp166_0" -" exp-s167_0" -" temp168_0))))" +" temp219_0" +" exp-s220_0" +" temp221_0))))" "(begin(call-expand-observe obs_0 'lift-loop new-s_0)(log-top-begin-before ctx_0 new-s_0))))" "(void))))))" "(define-values" @@ -46979,14 +49488,14 @@ static const char *startup_source = "(let-values(((obs_0)(expand-context-observer ctx_0)))" "(if obs_0" "(let-values()" -"(let-values(((ok?_0 begin169_0 e170_0)" +"(let-values(((ok?_0 begin222_0 e223_0)" "(let-values(((s_0) new-s_0))" "(let-values(((orig-s_0) s_0))" -"(let-values(((begin169_0 e170_0)" +"(let-values(((begin222_0 e223_0)" "(let-values(((s_1)(if(syntax?$1 s_0)(syntax-e$1 s_0) s_0)))" "(if(pair? s_1)" -"(let-values(((begin171_0)(let-values(((s_2)(car s_1))) s_2))" -"((e172_0)" +"(let-values(((begin224_0)(let-values(((s_2)(car s_1))) s_2))" +"((e225_0)" "(let-values(((s_2)(cdr s_1)))" "(let-values(((s_3)" "(if(syntax?$1 s_2)" @@ -46997,15 +49506,15 @@ static const char *startup_source = "(let-values()" " (raise-syntax-error$1 #f \"bad syntax\" orig-s_0))" "(let-values() flat-s_0)))))))" -"(values begin171_0 e172_0))" +"(values begin224_0 e225_0))" " (raise-syntax-error$1 #f \"bad syntax\" orig-s_0)))))" -"(values #t begin169_0 e170_0))))))" +"(values #t begin222_0 e223_0))))))" "(begin" "(call-expand-observe obs_0 'visit new-s_0)" -"(call-expand-observe obs_0 'resolve begin169_0)" +"(call-expand-observe obs_0 'resolve begin222_0)" "(call-expand-observe obs_0 'enter-prim new-s_0)" "(call-expand-observe obs_0 'prim-begin)" -"(call-expand-observe obs_0 'enter-list(1/datum->syntax #f e170_0 new-s_0)))))" +"(call-expand-observe obs_0 'enter-list(1/datum->syntax #f e223_0 new-s_0)))))" "(void))))))" "(define-values" "(log-top-begin-after)" @@ -47014,14 +49523,14 @@ static const char *startup_source = "(let-values(((obs_0)(expand-context-observer ctx_0)))" "(if obs_0" "(let-values()" -"(let-values(((ok?_0 begin173_0 e174_0)" +"(let-values(((ok?_0 begin226_0 e227_0)" "(let-values(((s_0) new-s_0))" "(let-values(((orig-s_0) s_0))" -"(let-values(((begin173_0 e174_0)" +"(let-values(((begin226_0 e227_0)" "(let-values(((s_1)(if(syntax?$1 s_0)(syntax-e$1 s_0) s_0)))" "(if(pair? s_1)" -"(let-values(((begin175_0)(let-values(((s_2)(car s_1))) s_2))" -"((e176_0)" +"(let-values(((begin228_0)(let-values(((s_2)(car s_1))) s_2))" +"((e229_0)" "(let-values(((s_2)(cdr s_1)))" "(let-values(((s_3)" "(if(syntax?$1 s_2)" @@ -47032,15 +49541,15 @@ static const char *startup_source = "(let-values()" " (raise-syntax-error$1 #f \"bad syntax\" orig-s_0))" "(let-values() flat-s_0)))))))" -"(values begin175_0 e176_0))" +"(values begin228_0 e229_0))" " (raise-syntax-error$1 #f \"bad syntax\" orig-s_0)))))" -"(values #t begin173_0 e174_0))))))" +"(values #t begin226_0 e227_0))))))" "(let-values(((obs_1)(expand-context-observer ctx_0)))" "(if obs_1" "(let-values()" "(let-values()" "(begin" -"(call-expand-observe obs_1 'exit-list(1/datum->syntax #f e174_0 new-s_0))" +"(call-expand-observe obs_1 'exit-list(1/datum->syntax #f e227_0 new-s_0))" "(call-expand-observe obs_1 'exit-prim new-s_0)" "(call-expand-observe obs_1 'return new-s_0))))" "(void)))))" @@ -57607,19 +60116,22 @@ static const char *startup_source = "(values))))" "(let-values(((vm-len_0)(min 63(read-byte in_0))))" "(let-values(((vm_0)(read-bytes vm-len_0 in_0)))" +"(let-values(((as-correlated-linklet?_0)" +"(equal? vm_0 correlated-linklet-vm-bytes)))" "(let-values((()" "(begin" -"(if(equal? vm_0 vm-bytes$1)" +"(if(let-values(((or-part_0) as-correlated-linklet?_0))" +"(if or-part_0 or-part_0(equal? vm_0 vm-bytes$1)))" "(void)" "(let-values()" "(raise-arguments-error" " 'read-compiled-linklet" -" \"virtual-machine mismatch\"" -" \"expected\"" +" \"virtual-machine mismatch\"" +" \"expected\"" "(bytes->string/utf-8 vm-bytes$1)" -" \"found\"" +" \"found\"" "(bytes->string/utf-8 vm_0 '#\\?)" -" \"in\"" +" \"in\"" "(let-values(((n_0)(object-name in_0)))" "(if(path? n_0)" "(unquoted-printing-string(path->string n_0))" @@ -57629,7 +60141,10 @@ static const char *startup_source = "(if(eqv? tag_0(char->integer '#\\B))" "(let-values()" "(let-values(((sha-1_0)(read-bytes 20 in_0)))" -"(let-values(((b-ht_0)(1/read-linklet-bundle-hash in_0)))" +"(let-values(((b-ht_0)" +"(if as-correlated-linklet?_0" +"(read-correlated-linklet-bundle-hash in_0)" +"(1/read-linklet-bundle-hash in_0))))" "(hash->linklet-bundle" "(add-hash-code" "(if initial?_0(strip-submodule-references b-ht_0) b-ht_0)" @@ -57642,12 +60157,12 @@ static const char *startup_source = "(let-values()" "(raise-arguments-error" " 'read-compiled-linklet" -" \"expected a linklet bundle\")))" +" \"expected a linklet bundle\")))" "(read-bundle-directory_0 start-pos_0)))" "(let-values()" "(raise-arguments-error" " 'read-compiled-linklet" -" \"expected a `B` or `D`\")))))))))))))))" +" \"expected a `B` or `D`\"))))))))))))))))" "((read-bundle-directory_0)" "(lambda(pos_0)" "(begin" @@ -58675,7 +61190,7 @@ static const char *startup_source = " temp81_0" " null82_0" " temp83_0))))" -"(let-values(((ctx_0)(let-values()(get-current-expand-context16.1 #f 'unexpected))))" +"(let-values(((ctx_0)(let-values()(get-current-expand-context18.1 #f 'unexpected))))" "(let-values(((ae_0)" "(flip-introduction-scopes" "(datum->syntax$1" @@ -58785,7 +61300,7 @@ static const char *startup_source = "(values))))" "(let-values(((ctx_0)" "(let-values(((who88_0) who_0))" -"(get-current-expand-context16.1 #f who88_0))))" +"(get-current-expand-context18.1 #f who88_0))))" "(let-values(((phase_0)" "(if as-transformer?_0" "(add1(expand-context-phase ctx_0))" @@ -64538,7 +67053,7 @@ static const char *startup_source = " (raise-syntax-error$1 #f \"bad syntax\" orig-s_0)))))" "(values #t lam-id65_0 formals66_0 _67_0))))))" "(let-values(((ids_0)(parse-and-flatten-formals formals66_0 #f s_0)))" -"(let-values(((ctx_0)(let-values(((temp77_0) #t))(get-current-expand-context16.1 temp77_0 'unexpected))))" +"(let-values(((ctx_0)(let-values(((temp77_0) #t))(get-current-expand-context18.1 temp77_0 'unexpected))))" "(let-values(((phase_0)(if ctx_0(expand-context-phase ctx_0) 0)))" "(begin" " (let-values (((ids73_0) ids_0) ((phase74_0) phase_0) ((s75_0) s_0) ((temp76_0) \"argument name\"))" @@ -67061,7 +69576,7 @@ static const char *startup_source = " body-ctx_0)" "((ctx198_0)" " ctx_0))" -"(as-tail-context22.1" +"(as-tail-context24.1" " ctx198_0" " body-ctx197_0)))" "((rebuild-s194_0)" @@ -68031,7 +70546,7 @@ static const char *startup_source = "(let-values(((expr-ctx_0)(as-expression-context ctx_0)))" "(let-values(((tail-ctx_0)" "(let-values(((expr-ctx312_0) expr-ctx_0)((ctx313_0) ctx_0))" -"(as-tail-context22.1 ctx313_0 expr-ctx312_0))))" +"(as-tail-context24.1 ctx313_0 expr-ctx312_0))))" "(let-values(((rebuild-s_0)" "(let-values(((ctx314_0) ctx_0)((s315_0) s_0))" "(keep-as-needed119.1 #f #f #f ctx314_0 s315_0))))" @@ -68177,7 +70692,7 @@ static const char *startup_source = "(let-values(((temp344_0) body327_0)" "((temp345_0)" "(let-values(((expr-ctx346_0) expr-ctx_0)((ctx347_0) ctx_0))" -"(as-tail-context22.1 ctx347_0 expr-ctx346_0))))" +"(as-tail-context24.1 ctx347_0 expr-ctx346_0))))" "(expand9.1 #f #f #f temp344_0 temp345_0))))" "(if(expand-context-to-parsed? ctx_0)" "(parsed-with-continuation-mark10.1 rebuild-s_0 exp-key_0 exp-val_0 exp-body_0)" @@ -68288,7 +70803,7 @@ static const char *startup_source = " expr-ctx_0)" "((ctx359_0)" " ctx_0))" -"(as-tail-context22.1" +"(as-tail-context24.1" " ctx359_0" " expr-ctx358_0))" " expr-ctx_0)))" @@ -69086,7 +71601,7 @@ static const char *startup_source = "(let-values(((temp463_0) e456_0)" "((temp464_0)" "(let-values(((temp465_0)(as-expression-context ctx_0))((ctx466_0) ctx_0))" -"(as-tail-context22.1 ctx466_0 temp465_0))))" +"(as-tail-context24.1 ctx466_0 temp465_0))))" "(expand9.1 #f #f #f temp463_0 temp464_0))))" "(if(expand-context-to-parsed? ctx_0)" " exp-e_0" @@ -71116,6 +73631,8 @@ static const char *startup_source = " the-struct_1)" "(expand-context/inner-for-serializable?" " the-struct_1)" +"(expand-context/inner-to-correlated-linklet?" +" the-struct_1)" "(expand-context/inner-should-not-encounter-macros?" " the-struct_1)))" "(raise-argument-error" @@ -72151,6 +74668,7 @@ static const char *startup_source = "(expand-context/inner-requires+provides the-struct_1)" "(expand-context/inner-observer the-struct_1)" "(expand-context/inner-for-serializable? the-struct_1)" +"(expand-context/inner-to-correlated-linklet? the-struct_1)" "(expand-context/inner-should-not-encounter-macros? the-struct_1)))" " (raise-argument-error 'struct-copy \"expand-context/inner?\" the-struct_1)))))" "(expand-context/outer1.1" @@ -72513,6 +75031,8 @@ static const char *startup_source = " the-struct_1)" "(expand-context/inner-for-serializable?" " the-struct_1)" +"(expand-context/inner-to-correlated-linklet?" +" the-struct_1)" "(expand-context/inner-should-not-encounter-macros?" " the-struct_1)))" "(raise-argument-error" @@ -72927,6 +75447,8 @@ static const char *startup_source = " the-struct_1)" "(expand-context/inner-for-serializable?" " the-struct_1)" +"(expand-context/inner-to-correlated-linklet?" +" the-struct_1)" "(expand-context/inner-should-not-encounter-macros?" " the-struct_1)))" "(raise-argument-error" @@ -73192,6 +75714,8 @@ static const char *startup_source = " the-struct_1)" "(expand-context/inner-for-serializable?" " the-struct_1)" +"(expand-context/inner-to-correlated-linklet?" +" the-struct_1)" "(expand-context/inner-should-not-encounter-macros?" " the-struct_1)))" "(raise-argument-error" @@ -73376,6 +75900,8 @@ static const char *startup_source = " the-struct_1)" "(expand-context/inner-for-serializable?" " the-struct_1)" +"(expand-context/inner-to-correlated-linklet?" +" the-struct_1)" "(expand-context/inner-should-not-encounter-macros?" " the-struct_1)))" "(raise-argument-error" @@ -73604,6 +76130,8 @@ static const char *startup_source = " the-struct_1)" "(expand-context/inner-for-serializable?" " the-struct_1)" +"(expand-context/inner-to-correlated-linklet?" +" the-struct_1)" "(expand-context/inner-should-not-encounter-macros?" " the-struct_1)))" "(raise-argument-error" @@ -73827,6 +76355,8 @@ static const char *startup_source = " the-struct_1)" "(expand-context/inner-for-serializable?" " the-struct_1)" +"(expand-context/inner-to-correlated-linklet?" +" the-struct_1)" "(expand-context/inner-should-not-encounter-macros?" " the-struct_1)))" "(raise-argument-error" @@ -75546,6 +78076,8 @@ static const char *startup_source = " the-struct_1)" "(expand-context/inner-for-serializable?" " the-struct_1)" +"(expand-context/inner-to-correlated-linklet?" +" the-struct_1)" "(expand-context/inner-should-not-encounter-macros?" " the-struct_1)))" "(raise-argument-error" @@ -77002,6 +79534,8 @@ static const char *startup_source = " the-struct_1)" "(expand-context/inner-for-serializable?" " the-struct_1)" +"(expand-context/inner-to-correlated-linklet?" +" the-struct_1)" "(expand-context/inner-should-not-encounter-macros?" " the-struct_1)))" "(raise-argument-error" @@ -77129,28 +79663,31 @@ static const char *startup_source = "(let-values(((compiled-module_0)" "(let-values(((parsed-mod620_0) parsed-mod_0)" "((temp621_0)" -"(let-values(((m-ns625_0) m-ns_0)" -"((enclosing-self626_0) enclosing-self_0)" -"((temp627_0)" +"(let-values(((m-ns626_0) m-ns_0)" +"((enclosing-self627_0) enclosing-self_0)" +"((temp628_0)" "(if enclosing-self_0" "(1/resolved-module-path-name" " module-name_0)" " #f)))" "(make-compile-context14.1" -" temp627_0" +" temp628_0" " unsafe-undefined" -" enclosing-self626_0" -" m-ns625_0" +" enclosing-self627_0" +" m-ns626_0" " unsafe-undefined" " unsafe-undefined)))" "((temp622_0)(expand-context-for-serializable? ctx_0))" -"((modules-being-compiled623_0) modules-being-compiled_0)" -"((temp624_0) #f))" -"(compile-module11.1" +"((temp623_0)" +"(expand-context-to-correlated-linklet? ctx_0))" +"((modules-being-compiled624_0) modules-being-compiled_0)" +"((temp625_0) #f))" +"(compile-module13.1" " #f" -" modules-being-compiled623_0" -" temp624_0" +" modules-being-compiled624_0" +" temp625_0" " temp622_0" +" temp623_0" " parsed-mod620_0" " temp621_0))))" "(let-values((()" @@ -77168,12 +79705,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-module628_0) compiled-module_0)((temp629_0) #f))" +"(let-values(((compiled-module629_0) compiled-module_0)((temp630_0) #f))" "(eval-module8.1" " unsafe-undefined" " #f" -" temp629_0" -" compiled-module628_0)))))))))))))))))))))))))" +" temp630_0" +" compiled-module629_0)))))))))))))))))))))))))" "(define-values" "(attach-root-expand-context-properties)" "(lambda(s_0 root-ctx_0 orig-self_0 new-self_0)" @@ -77228,13 +79765,13 @@ static const char *startup_source = "(let-values(((body-s_0)" "(semi-parsed-begin-for-syntax-s" " body_0)))" -"(let-values(((ok?_0 begin-for-syntax630_0 _631_0)" +"(let-values(((ok?_0 begin-for-syntax631_0 _632_0)" "(let-values(((s_0)" "(syntax-disarm$1" " body-s_0)))" "(let-values(((orig-s_0) s_0))" -"(let-values(((begin-for-syntax630_0" -" _631_0)" +"(let-values(((begin-for-syntax631_0" +" _632_0)" "(let-values(((s_1)" "(if(syntax?$1" " s_0)" @@ -77242,12 +79779,12 @@ static const char *startup_source = " s_0)" " s_0)))" "(if(pair? s_1)" -"(let-values(((begin-for-syntax632_0)" +"(let-values(((begin-for-syntax633_0)" "(let-values(((s_2)" "(car" " s_1)))" " s_2))" -"((_633_0)" +"((_634_0)" "(let-values(((s_2)" "(cdr" " s_1)))" @@ -77270,27 +79807,27 @@ static const char *startup_source = "(let-values()" " flat-s_0)))))))" "(values" -" begin-for-syntax632_0" -" _633_0))" +" begin-for-syntax633_0" +" _634_0))" "(raise-syntax-error$1" " #f" " \"bad syntax\"" " orig-s_0)))))" "(values" " #t" -" begin-for-syntax630_0" -" _631_0))))))" +" begin-for-syntax631_0" +" _632_0))))))" "(let-values(((rebuild-body-s_0)" -"(let-values(((submod-ctx634_0)" +"(let-values(((submod-ctx635_0)" " submod-ctx_0)" -"((body-s635_0)" +"((body-s636_0)" " body-s_0))" "(keep-as-needed119.1" " #f" " #f" " #f" -" submod-ctx634_0" -" body-s635_0))))" +" submod-ctx635_0" +" body-s636_0))))" "(let-values(((nested-bodys_0)" "(loop_0" "(semi-parsed-begin-for-syntax-body" @@ -77305,17 +79842,17 @@ static const char *startup_source = " submod-ctx_0)" " parsed-bfs_0" "(expanded+parsed1.1" -"(let-values(((rebuild-body-s636_0)" +"(let-values(((rebuild-body-s637_0)" " rebuild-body-s_0)" -"((temp637_0)" +"((temp638_0)" "(list*" -" begin-for-syntax630_0" +" begin-for-syntax631_0" "(syntax-only" " nested-bodys_0))))" "(rebuild5.1" " #t" -" rebuild-body-s636_0" -" temp637_0))" +" rebuild-body-s637_0" +" temp638_0))" " parsed-bfs_0))" "(loop_0 rest-bodys_0 phase_1))))))))" "(if(let-values(((or-part_0)(parsed? body_0)))" @@ -77343,9 +79880,9 @@ static const char *startup_source = " body_0" " submod-ctx_0)))" "(let-values(((ok?_0" -" module*638_0" -" name639_0" -" _640_0)" +" module*639_0" +" name640_0" +" _641_0)" "(let-values(((s_0)" " disarmed-body_0))" "(if(let-values(((s_1)" @@ -77408,22 +79945,22 @@ static const char *startup_source = " #f)" " #f))" "(let-values()" -"(let-values(((module*638_0" -" name639_0" -" _640_0)" +"(let-values(((module*639_0" +" name640_0" +" _641_0)" "(let-values(((s_1)" "(if(syntax?$1" " s_0)" "(syntax-e$1" " s_0)" " s_0)))" -"(let-values(((module*641_0)" +"(let-values(((module*642_0)" "(let-values(((s_2)" "(car" " s_1)))" " s_2))" -"((name642_0" -" _643_0)" +"((name643_0" +" _644_0)" "(let-values(((s_2)" "(cdr" " s_1)))" @@ -77433,12 +79970,12 @@ static const char *startup_source = "(syntax-e$1" " s_2)" " s_2)))" -"(let-values(((name644_0)" +"(let-values(((name645_0)" "(let-values(((s_4)" "(car" " s_3)))" " s_4))" -"((_645_0)" +"((_646_0)" "(let-values(((s_4)" "(cdr" " s_3)))" @@ -77459,25 +79996,25 @@ static const char *startup_source = " s_6)" " s_6)))" "(values))))" -"((_646_0)" +"((_647_0)" "(let-values(((s_6)" "(cdr" " s_5)))" " s_6)))" "(values" +" _647_0))))))" +"(values" +" name645_0" " _646_0))))))" "(values" -" name644_0" -" _645_0))))))" -"(values" -" module*641_0" -" name642_0" -" _643_0)))))" +" module*642_0" +" name643_0" +" _644_0)))))" "(values" " #t" -" module*638_0" -" name639_0" -" _640_0)))" +" module*639_0" +" name640_0" +" _641_0)))" "(values" " #f" " #f" @@ -77495,40 +80032,40 @@ static const char *startup_source = " ready-body_0" " neg-phase_0)))" "(let-values(((submod_0)" -"(let-values(((shifted-s647_0)" +"(let-values(((shifted-s648_0)" " shifted-s_0)" -"((self648_0)" +"((self649_0)" " self_0)" -"((submod-ctx649_0)" +"((submod-ctx650_0)" " submod-ctx_0)" -"((temp650_0)" +"((temp651_0)" " #t)" -"((neg-phase651_0)" +"((neg-phase652_0)" " neg-phase_0)" -"((requires+provides652_0)" +"((requires+provides653_0)" " requires+provides_0)" -"((enclosing-is-cross-phase-persistent?653_0)" +"((enclosing-is-cross-phase-persistent?654_0)" " enclosing-is-cross-phase-persistent?_0)" -"((mpis-to-reset654_0)" +"((mpis-to-reset655_0)" " mpis-to-reset_0)" -"((declared-submodule-names655_0)" +"((declared-submodule-names656_0)" " declared-submodule-names_0)" -"((compiled-submodules656_0)" +"((compiled-submodules657_0)" " compiled-submodules_0)" -"((modules-being-compiled657_0)" +"((modules-being-compiled658_0)" " modules-being-compiled_0))" "(expand-submodule193.1" -" compiled-submodules656_0" -" declared-submodule-names655_0" -" enclosing-is-cross-phase-persistent?653_0" -" requires+provides652_0" -" temp650_0" -" neg-phase651_0" -" modules-being-compiled657_0" -" mpis-to-reset654_0" -" shifted-s647_0" -" self648_0" -" submod-ctx649_0))))" +" compiled-submodules657_0" +" declared-submodule-names656_0" +" enclosing-is-cross-phase-persistent?654_0" +" requires+provides653_0" +" temp651_0" +" neg-phase652_0" +" modules-being-compiled658_0" +" mpis-to-reset655_0" +" shifted-s648_0" +" self649_0" +" submod-ctx650_0))))" "(if(parsed?" " submod_0)" "(let-values()" @@ -77540,13 +80077,13 @@ static const char *startup_source = " submod_0))" "(if(expanded+parsed?" " the-struct_0)" -"(let-values(((s658_0)" +"(let-values(((s659_0)" "(syntax-shift-phase-level$1" "(expanded+parsed-s" " submod_0)" " phase_1)))" "(expanded+parsed1.1" -" s658_0" +" s659_0" "(expanded+parsed-parsed" " the-struct_0)))" "(raise-argument-error" @@ -77558,34 +80095,34 @@ static const char *startup_source = " submod_0" " phase_1))))))))" "(let-values()" -"(let-values(((ready-body659_0)" +"(let-values(((ready-body660_0)" " ready-body_0)" -"((self660_0)" +"((self661_0)" " self_0)" -"((submod-ctx661_0)" +"((submod-ctx662_0)" " submod-ctx_0)" -"((temp662_0)" +"((temp663_0)" " #t)" -"((mpis-to-reset663_0)" +"((mpis-to-reset664_0)" " mpis-to-reset_0)" -"((declared-submodule-names664_0)" +"((declared-submodule-names665_0)" " declared-submodule-names_0)" -"((compiled-submodules665_0)" +"((compiled-submodules666_0)" " compiled-submodules_0)" -"((modules-being-compiled666_0)" +"((modules-being-compiled667_0)" " modules-being-compiled_0))" "(expand-submodule193.1" -" compiled-submodules665_0" -" declared-submodule-names664_0" +" compiled-submodules666_0" +" declared-submodule-names665_0" " #f" " #f" -" temp662_0" +" temp663_0" " #f" -" modules-being-compiled666_0" -" mpis-to-reset663_0" -" ready-body659_0" -" self660_0" -" submod-ctx661_0))))))" +" modules-being-compiled667_0" +" mpis-to-reset664_0" +" ready-body660_0" +" self661_0" +" submod-ctx662_0))))))" "(cons" " submod_0" "(loop_0 rest-bodys_0 phase_1)))))))" @@ -77634,23 +80171,23 @@ static const char *startup_source = "(let-values()" "(begin" "(let-values()" -"(let-values(((requires+provides667_0)" +"(let-values(((requires+provides668_0)" " requires+provides_0)" -"((id668_0) id_0)" -"((phase669_0) phase_0)" -"((s670_0) s_0)" -"((temp671_0) 'module))" +"((id669_0) id_0)" +"((phase670_0) phase_0)" +"((s671_0) s_0)" +"((temp672_0) 'module))" "(check-not-defined95.1" " #f" " #f" " #f" -" s670_0" +" s671_0" " #f" " #f" -" temp671_0" -" requires+provides667_0" -" id668_0" -" phase669_0)))" +" temp672_0" +" requires+provides668_0" +" id669_0" +" phase670_0)))" "(values)))))" "(values)))))" "(if(not #f)(for-loop_0 rest_0)(values))))" @@ -77809,16 +80346,16 @@ static const char *startup_source = "(eval-single-top" "(compile-single" " p_0" -"(let-values(((m-ns672_0)" +"(let-values(((m-ns673_0)" " m-ns_0)" -"((phase673_0)" +"((phase674_0)" " phase_0))" "(make-compile-context14.1" " #f" " unsafe-undefined" " #f" -" m-ns672_0" -" phase673_0" +" m-ns673_0" +" phase674_0" " unsafe-undefined)))" " m-ns_0)))))))))))" "(values)))))" @@ -77871,43 +80408,43 @@ static const char *startup_source = "(if is-star?_0 'prim-submodule* 'prim-submodule)))))" "(void)))))" "(values))))" -"(let-values(((ok?_0 module674_0 name675_0 _676_0)" +"(let-values(((ok?_0 module675_0 name676_0 _677_0)" "(let-values(((s_1) s_0))" "(let-values(((orig-s_0) s_1))" -"(let-values(((module674_0 name675_0 _676_0)" +"(let-values(((module675_0 name676_0 _677_0)" "(let-values(((s_2)" "(if(syntax?$1 s_1)" "(syntax-e$1 s_1)" " s_1)))" "(if(pair? s_2)" -"(let-values(((module677_0)" +"(let-values(((module678_0)" "(let-values(((s_3)(car s_2))) s_3))" -"((name678_0 _679_0)" +"((name679_0 _680_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(((name680_0)" +"(let-values(((name681_0)" "(let-values(((s_5)" "(car" " s_4)))" " s_5))" -"((_681_0)" +"((_682_0)" "(let-values(((s_5)" "(cdr" " s_4)))" " s_5)))" -"(values name680_0 _681_0))" +"(values name681_0 _682_0))" "(raise-syntax-error$1" " #f" " \"bad syntax\"" " orig-s_0))))))" -"(values module677_0 name678_0 _679_0))" +"(values module678_0 name679_0 _680_0))" " (raise-syntax-error$1 #f \"bad syntax\" orig-s_0)))))" -"(values #t module674_0 name675_0 _676_0))))))" -"(let-values(((name_0)(syntax-e$1 name675_0)))" +"(values #t module675_0 name676_0 _677_0))))))" +"(let-values(((name_0)(syntax-e$1 name676_0)))" "(let-values((()" "(begin" "(if(hash-ref declared-submodule-names_0 name_0 #f)" @@ -77924,7 +80461,7 @@ static const char *startup_source = "(hash-set!" " declared-submodule-names_0" " name_0" -"(syntax-e$1 module674_0))" +"(syntax-e$1 module675_0))" "(values))))" "(let-values((()" "(begin" @@ -77936,20 +80473,20 @@ static const char *startup_source = "(void)))" "(values))))" "(let-values(((submod_0)" -"(let-values(((s682_0) s_0)" -"((temp683_0)" +"(let-values(((s683_0) s_0)" +"((temp684_0)" "(let-values(((v_0) ctx_0))" "(let-values(((the-struct_0) v_0))" "(if(expand-context/outer? the-struct_0)" -"(let-values(((context691_0) 'module)" -"((post-expansion692_0) #f)" -"((inner693_0)" +"(let-values(((context692_0) 'module)" +"((post-expansion693_0) #f)" +"((inner694_0)" "(let-values(((the-struct_1)" "(root-expand-context/outer-inner" " v_0)))" "(if(expand-context/inner?" " the-struct_1)" -"(let-values(((stops694_0)" +"(let-values(((stops695_0)" " empty-free-id-set))" "(expand-context/inner2.1" "(root-expand-context/inner-self-mpi" @@ -77982,7 +80519,7 @@ static const char *startup_source = " the-struct_1)" "(expand-context/inner-keep-#%expression?" " the-struct_1)" -" stops694_0" +" stops695_0" "(expand-context/inner-declared-submodule-names" " the-struct_1)" "(expand-context/inner-lifts" @@ -78001,6 +80538,8 @@ static const char *startup_source = " the-struct_1)" "(expand-context/inner-for-serializable?" " the-struct_1)" +"(expand-context/inner-to-correlated-linklet?" +" the-struct_1)" "(expand-context/inner-should-not-encounter-macros?" " the-struct_1)))" "(raise-argument-error" @@ -78008,13 +80547,13 @@ static const char *startup_source = " \"expand-context/inner?\"" " the-struct_1)))))" "(expand-context/outer1.1" -" inner693_0" -" post-expansion692_0" +" inner694_0" +" post-expansion693_0" "(root-expand-context/outer-use-site-scopes" " the-struct_0)" "(root-expand-context/outer-frame-id" " the-struct_0)" -" context691_0" +" context692_0" "(expand-context/outer-env the-struct_0)" "(expand-context/outer-scopes" " the-struct_0)" @@ -78038,26 +80577,26 @@ static const char *startup_source = " 'struct-copy" " \"expand-context/outer?\"" " the-struct_0)))))" -"((self684_0) self_0)" -"((temp685_0) #t)" -"((keep-enclosing-scope-at-phase686_0)" +"((self685_0) self_0)" +"((temp686_0) #t)" +"((keep-enclosing-scope-at-phase687_0)" " keep-enclosing-scope-at-phase_0)" -"((enclosing-r+p687_0) enclosing-r+p_0)" -"((enclosing-is-cross-phase-persistent?688_0)" +"((enclosing-r+p688_0) enclosing-r+p_0)" +"((enclosing-is-cross-phase-persistent?689_0)" " enclosing-is-cross-phase-persistent?_0)" -"((mpis-to-reset689_0) mpis-to-reset_0)" -"((modules-being-compiled690_0)" +"((mpis-to-reset690_0) mpis-to-reset_0)" +"((modules-being-compiled691_0)" " modules-being-compiled_0))" "(expand-module16.1" -" temp685_0" -" enclosing-is-cross-phase-persistent?688_0" -" enclosing-r+p687_0" -" keep-enclosing-scope-at-phase686_0" -" modules-being-compiled690_0" -" mpis-to-reset689_0" -" s682_0" -" temp683_0" -" self684_0))))" +" temp686_0" +" enclosing-is-cross-phase-persistent?689_0" +" enclosing-r+p688_0" +" keep-enclosing-scope-at-phase687_0" +" modules-being-compiled691_0" +" mpis-to-reset690_0" +" s683_0" +" temp684_0" +" self685_0))))" "(let-values((()" "(begin" "(let-values(((obs_0)(expand-context-observer ctx_0)))" @@ -78075,37 +80614,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(((temp695_0)" +"(let-values(((temp696_0)" "(if(expanded+parsed? submod_0)" "(expanded+parsed-parsed submod_0)" " submod_0))" -"((temp696_0)" -"(let-values(((ns701_0) ns_0)" -"((self702_0) self_0)" -"((temp703_0)" +"((temp697_0)" +"(let-values(((ns703_0) ns_0)" +"((self704_0) self_0)" +"((temp705_0)" "(1/resolved-module-path-name" " module-name_0)))" "(make-compile-context14.1" -" temp703_0" +" temp705_0" " unsafe-undefined" -" self702_0" -" ns701_0" +" self704_0" +" ns703_0" " unsafe-undefined" " unsafe-undefined)))" -"((temp697_0) #t)" -"((temp698_0)" +"((temp698_0) #t)" +"((temp699_0)" "(expand-context-for-serializable?" " ctx_0))" -"((modules-being-compiled699_0)" +"((temp700_0)" +"(expand-context-to-correlated-linklet?" +" ctx_0))" +"((modules-being-compiled701_0)" " modules-being-compiled_0)" -"((temp700_0) #f))" -"(compile-module11.1" -" temp697_0" -" modules-being-compiled699_0" -" temp700_0" +"((temp702_0) #f))" +"(compile-module13.1" " temp698_0" -" temp695_0" -" temp696_0))))" +" modules-being-compiled701_0" +" temp702_0" +" temp699_0" +" temp700_0" +" temp696_0" +" temp697_0))))" "(begin" "(hash-set!" " compiled-submodules_0" @@ -78120,13 +80663,13 @@ static const char *startup_source = " 1/current-module-declare-name" "(1/make-resolved-module-path root-module-name_0))" "(let-values()" -"(let-values(((compiled-submodule704_0) compiled-submodule_0)" -"((temp705_0) #f))" +"(let-values(((compiled-submodule706_0) compiled-submodule_0)" +"((temp707_0) #f))" "(eval-module8.1" " unsafe-undefined" " #f" -" temp705_0" -" compiled-submodule704_0))))" +" temp707_0" +" compiled-submodule706_0))))" "(if is-star?_0" "(void)" "(let-values()" @@ -78145,15 +80688,15 @@ static const char *startup_source = "(let-values()" "(let-values(((the-struct_0) submod_0))" "(if(expanded+parsed? the-struct_0)" -"(let-values(((parsed706_0)" +"(let-values(((parsed708_0)" "(let-values(((the-struct_1)" "(expanded+parsed-parsed" " submod_0)))" "(if(parsed-module? the-struct_1)" -"(let-values(((star?707_0) #t))" +"(let-values(((star?709_0) #t))" "(parsed-module25.1" "(parsed-s the-struct_1)" -" star?707_0" +" star?709_0" "(parsed-module-name-id" " the-struct_1)" "(parsed-module-self the-struct_1)" @@ -78176,7 +80719,7 @@ static const char *startup_source = " the-struct_1)))))" "(expanded+parsed1.1" "(expanded+parsed-s the-struct_0)" -" parsed706_0))" +" parsed708_0))" "(raise-argument-error" " 'struct-copy" " \"expanded+parsed?\"" @@ -78184,10 +80727,10 @@ static const char *startup_source = "(let-values()" "(let-values(((the-struct_0) submod_0))" "(if(parsed-module? the-struct_0)" -"(let-values(((star?708_0) #t))" +"(let-values(((star?710_0) #t))" "(parsed-module25.1" "(parsed-s the-struct_0)" -" star?708_0" +" star?710_0" "(parsed-module-name-id the-struct_0)" "(parsed-module-self the-struct_0)" "(parsed-module-requires the-struct_0)" @@ -78248,34 +80791,34 @@ static const char *startup_source = " phase_0)))" "(if(equal? tmp_0 'module)" "(let-values()" -"(let-values(((body709_0)" +"(let-values(((body711_0)" " body_0)" -"((self710_0)" +"((self712_0)" " self_0)" -"((ctx711_0)" +"((ctx713_0)" " ctx_0)" -"((temp712_0)" +"((temp714_0)" " #f)" -"((mpis-to-reset713_0)" +"((mpis-to-reset715_0)" " mpis-to-reset_0)" -"((declared-submodule-names714_0)" +"((declared-submodule-names716_0)" " declared-submodule-names_0)" -"((compiled-submodules715_0)" +"((compiled-submodules717_0)" " compiled-submodules_0)" -"((modules-being-compiled716_0)" +"((modules-being-compiled718_0)" " modules-being-compiled_0))" "(expand-submodule193.1" -" compiled-submodules715_0" -" declared-submodule-names714_0" +" compiled-submodules717_0" +" declared-submodule-names716_0" " #f" " #f" -" temp712_0" +" temp714_0" " #f" -" modules-being-compiled716_0" -" mpis-to-reset713_0" -" body709_0" -" self710_0" -" ctx711_0)))" +" modules-being-compiled718_0" +" mpis-to-reset715_0" +" body711_0" +" self712_0" +" ctx713_0)))" "(let-values() body_0))))" " fold-var_1))))" "(values fold-var_2)))))" @@ -78295,22 +80838,22 @@ static const char *startup_source = "(let-values(((declared-submodule-names_0) declared-submodule-names211_0))" "(let-values()" "(lambda(s_0 phase_0)" -"(let-values(((ok?_0 #%require717_0 req718_0)" +"(let-values(((ok?_0 #%require719_0 req720_0)" "(let-values(((s_1)(syntax-disarm$1 s_0)))" "(let-values(((orig-s_0) s_1))" -"(let-values(((#%require717_0 req718_0)" +"(let-values(((#%require719_0 req720_0)" "(let-values(((s_2)(if(syntax?$1 s_1)(syntax-e$1 s_1) s_1)))" "(if(pair? s_2)" -"(let-values(((#%require719_0)" +"(let-values(((#%require721_0)" "(let-values(((s_3)(car s_2))) s_3))" -"((req720_0)" +"((req722_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(((req721_0)" +"(let-values(((req723_0)" "(let-values(((s_5)(car s_4)))" " s_5))" "(()" @@ -78327,39 +80870,39 @@ static const char *startup_source = " #f" " \"bad syntax\"" " orig-s_0))))))" -"(values req721_0))" +"(values req723_0))" "(raise-syntax-error$1" " #f" " \"bad syntax\"" " orig-s_0))))))" -"(values #%require719_0 req720_0))" +"(values #%require721_0 req722_0))" " (raise-syntax-error$1 #f \"bad syntax\" orig-s_0)))))" -"(values #t #%require717_0 req718_0))))))" -"(let-values(((temp722_0)(list req718_0))" -"((s723_0) s_0)" -"((self724_0) self_0)" -"((m-ns725_0) m-ns_0)" -"((phase726_0) phase_0)" -"((phase727_0) phase_0)" -"((requires+provides728_0) requires+provides_0)" -"((declared-submodule-names729_0) declared-submodule-names_0)" -"((temp730_0) 'require))" +"(values #t #%require719_0 req720_0))))))" +"(let-values(((temp724_0)(list req720_0))" +"((s725_0) s_0)" +"((self726_0) self_0)" +"((m-ns727_0) m-ns_0)" +"((phase728_0) phase_0)" +"((phase729_0) phase_0)" +"((requires+provides730_0) requires+provides_0)" +"((declared-submodule-names731_0) declared-submodule-names_0)" +"((temp732_0) 'require))" "(parse-and-perform-requires!30.1" " #f" " #f" -" declared-submodule-names729_0" +" declared-submodule-names731_0" " #f" -" phase727_0" +" phase729_0" " #f" -" self724_0" +" self726_0" " #f" " #t" -" temp730_0" -" temp722_0" -" s723_0" -" m-ns725_0" -" phase726_0" -" requires+provides728_0))))))))))))" +" temp732_0" +" temp724_0" +" s725_0" +" m-ns727_0" +" phase728_0" +" requires+provides730_0))))))))))))" "(define-values" "(defn-extract-syntax)" "(lambda(defn_0)" @@ -78428,14 +80971,14 @@ static const char *startup_source = "(begin" "(let-values()" "(let-values(((ok?_0" -" define-values735_0" -" _736_0)" +" define-values737_0" +" _738_0)" "(let-values(((s_0)" " s-lifted-defn_0))" "(let-values(((orig-s_0)" " s_0))" -"(let-values(((define-values735_0" -" _736_0)" +"(let-values(((define-values737_0" +" _738_0)" "(let-values(((s_1)" "(if(syntax?$1" " s_0)" @@ -78444,12 +80987,12 @@ static const char *startup_source = " s_0)))" "(if(pair?" " s_1)" -"(let-values(((define-values737_0)" +"(let-values(((define-values739_0)" "(let-values(((s_2)" "(car" " s_1)))" " s_2))" -"((_738_0)" +"((_740_0)" "(let-values(((s_2)" "(cdr" " s_1)))" @@ -78472,16 +81015,16 @@ static const char *startup_source = "(let-values()" " flat-s_0)))))))" "(values" -" define-values737_0" -" _738_0))" +" define-values739_0" +" _740_0))" "(raise-syntax-error$1" " #f" " \"bad syntax\"" " orig-s_0)))))" "(values" " #t" -" define-values735_0" -" _736_0))))))" +" define-values737_0" +" _738_0))))))" "(begin" "(call-expand-observe" " obs_0" @@ -78493,7 +81036,7 @@ static const char *startup_source = "(call-expand-observe" " obs_0" " 'resolve" -" define-values735_0)" +" define-values737_0)" "(call-expand-observe" " obs_0" " 'enter-prim" @@ -78532,22 +81075,22 @@ static const char *startup_source = " lst_0)))" "(values))))" "(let-values()" -"(let-values(((ok?_0 form-id731_0 _732_0)" +"(let-values(((ok?_0 form-id733_0 _734_0)" "(let-values(((s_0) exp-body_0))" "(let-values(((orig-s_0) s_0))" -"(let-values(((form-id731_0 _732_0)" +"(let-values(((form-id733_0 _734_0)" "(let-values(((s_1)(if(syntax?$1 s_0)(syntax-e$1 s_0) s_0)))" "(if(pair? s_1)" -"(let-values(((form-id733_0)" +"(let-values(((form-id735_0)" "(let-values(((s_2)(car s_1))) s_2))" -"((_734_0)(let-values(((s_2)(cdr s_1))) s_2)))" -"(values form-id733_0 _734_0))" +"((_736_0)(let-values(((s_2)(cdr s_1))) s_2)))" +"(values form-id735_0 _736_0))" " (raise-syntax-error$1 #f \"bad syntax\" orig-s_0)))))" -"(values #t form-id731_0 _732_0))))))" +"(values #t form-id733_0 _734_0))))))" "(begin" "(call-expand-observe obs_0 'next)" "(call-expand-observe obs_0 'visit exp-body_0)" -"(call-expand-observe obs_0 'resolve form-id731_0)" +"(call-expand-observe obs_0 'resolve form-id733_0)" "(call-expand-observe obs_0 'enter-prim exp-body_0)" "(call-expand-observe obs_0 'prim-stop)" "(call-expand-observe obs_0 'exit-prim exp-body_0)" @@ -78561,15 +81104,15 @@ static const char *startup_source = "(if obs_0" "(let-values()" "(let-values(((s-defn_0)(defn-extract-syntax defn_0)))" -"(let-values(((ok?_0 define-values739_0 _740_0)" +"(let-values(((ok?_0 define-values741_0 _742_0)" "(let-values(((s_0) s-defn_0))" "(let-values(((orig-s_0) s_0))" -"(let-values(((define-values739_0 _740_0)" +"(let-values(((define-values741_0 _742_0)" "(let-values(((s_1)(if(syntax?$1 s_0)(syntax-e$1 s_0) s_0)))" "(if(pair? s_1)" -"(let-values(((define-values741_0)" +"(let-values(((define-values743_0)" "(let-values(((s_2)(car s_1))) s_2))" -"((_742_0)" +"((_744_0)" "(let-values(((s_2)(cdr s_1)))" "(let-values(((s_3)" "(if(syntax?$1 s_2)" @@ -78583,12 +81126,12 @@ static const char *startup_source = " \"bad syntax\"" " orig-s_0))" "(let-values() flat-s_0)))))))" -"(values define-values741_0 _742_0))" +"(values define-values743_0 _744_0))" " (raise-syntax-error$1 #f \"bad syntax\" orig-s_0)))))" -"(values #t define-values739_0 _740_0))))))" +"(values #t define-values741_0 _742_0))))))" "(begin" "(call-expand-observe obs_0 'visit s-defn_0)" -"(call-expand-observe obs_0 'resolve define-values739_0)" +"(call-expand-observe obs_0 'resolve define-values741_0)" "(call-expand-observe obs_0 'enter-prim s-defn_0)" "(call-expand-observe obs_0 'prim-define-values)))))" "(void))))))" @@ -79082,6 +81625,7 @@ static const char *startup_source = "(expand-context/inner-requires+provides the-struct_1)" "(expand-context/inner-observer the-struct_1)" "(expand-context/inner-for-serializable? the-struct_1)" +"(expand-context/inner-to-correlated-linklet? the-struct_1)" "(expand-context/inner-should-not-encounter-macros?" " the-struct_1)))" "(raise-argument-error" diff --git a/racket/src/racket/src/thread.c b/racket/src/racket/src/thread.c index e2223bc3f6..92ecfecb53 100644 --- a/racket/src/racket/src/thread.c +++ b/racket/src/racket/src/thread.c @@ -7972,6 +7972,7 @@ static void make_initial_config(Scheme_Thread *p) init_param(cells, paramz, MZCONFIG_COMPILE_MODULE_CONSTS, scheme_true); init_param(cells, paramz, MZCONFIG_USE_JIT, scheme_startup_use_jit ? scheme_true : scheme_false); + init_param(cells, paramz, MZCONFIG_COMPILE_MACHINE_INDEPENDENT, scheme_startup_compile_machine_independent ? scheme_true : scheme_false); { Scheme_Object *s;