diff options
author | David Bremner <bremner@debian.org> | 2021-07-24 21:13:03 -0300 |
---|---|---|
committer | David Bremner <bremner@debian.org> | 2021-07-24 21:13:03 -0300 |
commit | 778d0a7bae3b9f210fe3e4f6fa7d70d32ac929a5 (patch) | |
tree | 1dea123ff0db8a53476cff4a0af2fcb77fc0e0ce /debian | |
parent | 6c691f2fc7129bb692093ae0b022e9e8b1e71e85 (diff) |
Commit patch queue (exported by git-debrebase)
[git-debrebase make-patches: export and commit patches]
Diffstat (limited to 'debian')
-rw-r--r-- | debian/patches/0001-prohibit-import-from-module-with-a-weak-code-inspect.patch | 104 | ||||
-rw-r--r-- | debian/patches/0002-regenerate-startup.inc.patch | 839 | ||||
-rw-r--r-- | debian/patches/series | 2 |
3 files changed, 945 insertions, 0 deletions
diff --git a/debian/patches/0001-prohibit-import-from-module-with-a-weak-code-inspect.patch b/debian/patches/0001-prohibit-import-from-module-with-a-weak-code-inspect.patch new file mode 100644 index 0000000000..6fd5c0c179 --- /dev/null +++ b/debian/patches/0001-prohibit-import-from-module-with-a-weak-code-inspect.patch @@ -0,0 +1,104 @@ +From: Matthew Flatt <mflatt@racket-lang.org> +Date: Sun, 27 Jun 2021 08:46:02 -0600 +Subject: prohibit import from module with a weak code inspector + +Cherry-picking commit aa2e814a02, with changes to generated files +dropped. This change alone will not fix #991327; the code in +src/bc/src/startup.inc needs to be regenerated by running "make +expander" in src/expander. +--- + .../scribblings/reference/code-inspectors.scrbl | 12 +++++++++--- + src/expander/namespace/module.rkt | 20 ++++++++++++++++---- + 2 files changed, 25 insertions(+), 7 deletions(-) + +diff --git a/share/pkgs/racket-doc/scribblings/reference/code-inspectors.scrbl b/share/pkgs/racket-doc/scribblings/reference/code-inspectors.scrbl +index b5037a5..2af93a8 100644 +--- a/share/pkgs/racket-doc/scribblings/reference/code-inspectors.scrbl ++++ b/share/pkgs/racket-doc/scribblings/reference/code-inspectors.scrbl +@@ -22,11 +22,13 @@ of @racket[current-code-inspector] never changes, then no control is + lost for any module invocation, since the module's invocation is + associated with a sub-inspector of @racket[current-code-inspector]. + +-When an inspector that controls a module invocation is installed +-@racket[current-code-inspector], it enables the following ++When an inspector that controls a module invocation is installed with ++@racket[current-code-inspector], it enables using + @racket[module->namespace] on the module, and it enables access to the + module's protected exports (i.e., those identifiers exported from the +-module with @racket[protect-out]) via @racket[dynamic-require]. ++module with @racket[protect-out]) via @racket[dynamic-require]. A ++module cannot @racket[require] a module that has a weaker ++declaration-time code inspector. + + When a @racket[module] form is expanded or a @tech{namespace} is + created, the value of @racket[current-code-inspector] is associated +@@ -56,6 +58,10 @@ particular module registry can be changed via + @racket[namespace-unprotect-module] (but changing the inspector + requires control over the old one). + ++@history[#:changed "8.1.0.8" @elem{Added constraint against ++ @racket[require] of a module with ++ a weaker code inspector.}] ++ + @defparam[current-code-inspector insp inspector?]{ + + A @tech{parameter} that determines an inspector to control access to +diff --git a/src/expander/namespace/module.rkt b/src/expander/namespace/module.rkt +index b19273e..6d66c5d 100644 +--- a/src/expander/namespace/module.rkt ++++ b/src/expander/namespace/module.rkt +@@ -376,7 +376,8 @@ + #:skip-run? [skip-run? #f] + #:otherwise-available? [otherwise-available? #t] + #:seen [seen #hasheq()] +- #:seen-list [seen-list null]) ++ #:seen-list [seen-list null] ++ #:minimum-inspector [minimum-inspector #f]) + (unless (module-path-index? mpi) + (error "not a module path index:" mpi)) + (define name (module-path-index-resolve mpi #t)) +@@ -390,7 +391,8 @@ + #:skip-run? skip-run? + #:otherwise-available? otherwise-available? + #:seen seen +- #:seen-list seen-list)) ++ #:seen-list seen-list ++ #:minimum-inspector minimum-inspector)) + ;; If the module is cross-phase persistent, make sure it's instantiated + ;; at phase 0 and registered in `ns` as phaseless; otherwise + (cond +@@ -417,7 +419,8 @@ + #:skip-run? skip-run? + #:otherwise-available? otherwise-available? + #:seen [seen #hasheq()] +- #:seen-list [seen-list null]) ++ #:seen-list [seen-list null] ++ #:minimum-inspector [minimum-inspector #f]) + (performance-region + ['eval 'requires] + ;; Nothing to do if we've run this phase already and made the +@@ -425,6 +428,14 @@ + (define m-ns (module-instance-namespace mi)) + (define instance-phase (namespace-0-phase m-ns)) + (define run-phase-level (phase- run-phase instance-phase)) ++ (define inspector (module-inspector (module-instance-module mi))) ++ (when minimum-inspector ++ (unless (or (eq? inspector minimum-inspector) ++ (inspector-superior? inspector minimum-inspector)) ++ (error 'require ++ "cannot import module with weaker code inspector\n module: ~a" ++ (module-path-index-resolve ++ (namespace-mpi (module-instance-namespace mi)))))) + (unless (and (or skip-run? + (eq? 'started (small-hash-ref (module-instance-phase-level-to-state mi) run-phase-level #f))) + (or (not otherwise-available?) +@@ -464,7 +475,8 @@ + #:skip-run? skip-run? + #:otherwise-available? otherwise-available? + #:seen (hash-set seen mi #t) +- #:seen-list (cons mi seen-list)))) ++ #:seen-list (cons mi seen-list) ++ #:minimum-inspector inspector))) + + ;; Run or make available phases of the module body: + (unless (label-phase? instance-phase) diff --git a/debian/patches/0002-regenerate-startup.inc.patch b/debian/patches/0002-regenerate-startup.inc.patch new file mode 100644 index 0000000000..670aace9cb --- /dev/null +++ b/debian/patches/0002-regenerate-startup.inc.patch @@ -0,0 +1,839 @@ +From: David Bremner <bremner@debian.org> +Date: Sat, 24 Jul 2021 11:09:02 -0300 +Subject: regenerate startup.inc + +This propagates the changes of 9c85d00a to the expander source used in +the build. The commit was generated by the following procedure. + +% cd src +% make +% make install +% cd expander +% make expander +% git add ../bc/src/startup.inc +--- + src/bc/src/startup.inc | 478 +++++++++++++++++++++++++++---------------------- + 1 file changed, 264 insertions(+), 214 deletions(-) + +diff --git a/src/bc/src/startup.inc b/src/bc/src/startup.inc +index 048907f..ad7879f 100644 +--- a/src/bc/src/startup.inc ++++ b/src/bc/src/startup.inc +@@ -14034,38 +14034,38 @@ static const char *startup_source = + "(let-values(((name_0)(1/module-path-index-resolve name-mpi_0)))" + "(let-values(((m-ns_0)" + "(let-values(((the-struct_0)" +-"(let-values(((ns138_0) ns_0)" +-"((root-expand-ctx139_0) root-expand-ctx_0)" +-"((temp140_0) #f))" +-"(new-namespace.1 temp140_0 root-expand-ctx139_0 ns138_0))))" ++"(let-values(((ns142_0) ns_0)" ++"((root-expand-ctx143_0) root-expand-ctx_0)" ++"((temp144_0) #f))" ++"(new-namespace.1 temp144_0 root-expand-ctx143_0 ns142_0))))" + "(if(1/namespace? the-struct_0)" +-"(let-values(((mpi130_0) name-mpi_0)" +-"((source-name131_0)(resolved-module-path-root-name name_0))" +-"((phase132_0) phase_0)" +-"((0-phase133_0) phase_0)" +-"((submodule-declarations134_0)" ++"(let-values(((mpi134_0) name-mpi_0)" ++"((source-name135_0)(resolved-module-path-root-name name_0))" ++"((phase136_0) phase_0)" ++"((0-phase137_0) phase_0)" ++"((submodule-declarations138_0)" + "(if for-submodule?_0" + "(namespace-submodule-declarations ns_0)" + "(make-small-hasheq)))" +-"((available-module-instances135_0)(make-hasheqv))" +-"((module-instances136_0)(make-hasheqv))" +-"((declaration-inspector137_0)(current-code-inspector)))" ++"((available-module-instances139_0)(make-hasheqv))" ++"((module-instances140_0)(make-hasheqv))" ++"((declaration-inspector141_0)(current-code-inspector)))" + "(namespace1.1" +-" mpi130_0" +-" source-name131_0" ++" mpi134_0" ++" source-name135_0" + "(namespace-root-expand-ctx the-struct_0)" +-" phase132_0" +-" 0-phase133_0" ++" phase136_0" ++" 0-phase137_0" + "(namespace-phase-to-namespace the-struct_0)" + "(namespace-phase-level-to-definitions the-struct_0)" + "(namespace-module-registry$1 the-struct_0)" + "(namespace-bulk-binding-registry the-struct_0)" +-" submodule-declarations134_0" ++" submodule-declarations138_0" + "(namespace-root-namespace the-struct_0)" +-" declaration-inspector137_0" ++" declaration-inspector141_0" + "(namespace-inspector the-struct_0)" +-" available-module-instances135_0" +-" module-instances136_0))" ++" available-module-instances139_0" ++" module-instances140_0))" + " (raise-argument-error 'struct-copy \"namespace?\" the-struct_0)))))" + "(let-values((()" + "(begin" +@@ -14096,10 +14096,10 @@ static const char *startup_source = + "(let-values(((prior-mi_0)" + "(if prior-m_0" + "(if(not(eq? m_0 prior-m_0))" +-"(let-values(((ns141_0) ns_0)" +-"((mod-name142_0) mod-name_0)" +-"((temp143_0)(namespace-phase ns_0)))" +-"(namespace->module-instance.1 #f #f void ns141_0 mod-name142_0 temp143_0))" ++"(let-values(((ns145_0) ns_0)" ++"((mod-name146_0) mod-name_0)" ++"((temp147_0)(namespace-phase ns_0)))" ++"(namespace->module-instance.1 #f #f void ns145_0 mod-name146_0 temp147_0))" + " #f)" + " #f)))" + "(begin" +@@ -14132,29 +14132,30 @@ static const char *startup_source = + "(set-module-instance-shifted-requires! prior-mi_0 #f)" + "(if visit?_0" + "(let-values()" +-"(let-values(((ns144_0) ns_0)" +-"((temp145_0)(namespace-mpi m-ns_0))" +-"((phase146_0) phase_0))" ++"(let-values(((ns148_0) ns_0)" ++"((temp149_0)(namespace-mpi m-ns_0))" ++"((phase150_0) phase_0))" + "(namespace-module-visit!.1" + " unsafe-undefined" +-" ns144_0" +-" temp145_0" +-" phase146_0)))" ++" ns148_0" ++" temp149_0" ++" phase150_0)))" + "(void))" + "(if run?_0" + "(let-values()" +-"(let-values(((ns147_0) ns_0)" +-"((temp148_0)(namespace-mpi m-ns_0))" +-"((phase149_0) phase_0))" ++"(let-values(((ns151_0) ns_0)" ++"((temp152_0)(namespace-mpi m-ns_0))" ++"((phase153_0) phase_0))" + "(namespace-module-instantiate!.1" ++" #f" + " #t" + " unsafe-undefined" + " '#hasheq()" + " null" + " #f" +-" ns147_0" +-" temp148_0" +-" phase149_0)))" ++" ns151_0" ++" temp152_0" ++" phase153_0)))" + "(void))))))))))" + "(void)))))))))))))" + "(define-values" +@@ -14245,32 +14246,32 @@ static const char *startup_source = + "(let-values(((m-ns_0)" + "(let-values(((the-struct_0) ns_0))" + "(if(1/namespace? the-struct_0)" +-"(let-values(((mpi150_0)(namespace-mpi existing-m-ns_0))" +-"((source-name151_0)(namespace-source-name existing-m-ns_0))" +-"((root-expand-ctx152_0)(box(unbox(namespace-root-expand-ctx existing-m-ns_0))))" +-"((phase153_0)(namespace-phase existing-m-ns_0))" +-"((0-phase154_0)(namespace-0-phase existing-m-ns_0))" +-"((phase-to-namespace155_0)(make-small-hasheqv))" +-"((phase-level-to-definitions156_0)" ++"(let-values(((mpi154_0)(namespace-mpi existing-m-ns_0))" ++"((source-name155_0)(namespace-source-name existing-m-ns_0))" ++"((root-expand-ctx156_0)(box(unbox(namespace-root-expand-ctx existing-m-ns_0))))" ++"((phase157_0)(namespace-phase existing-m-ns_0))" ++"((0-phase158_0)(namespace-0-phase existing-m-ns_0))" ++"((phase-to-namespace159_0)(make-small-hasheqv))" ++"((phase-level-to-definitions160_0)" + "(if(module-cross-phase-persistent? m_0)" + "(namespace-phase-level-to-definitions existing-m-ns_0)" + "(make-small-hasheqv)))" +-"((declaration-inspector157_0)(module-inspector m_0))" +-"((inspector158_0)(namespace-inspector existing-m-ns_0)))" ++"((declaration-inspector161_0)(module-inspector m_0))" ++"((inspector162_0)(namespace-inspector existing-m-ns_0)))" + "(namespace1.1" +-" mpi150_0" +-" source-name151_0" +-" root-expand-ctx152_0" +-" phase153_0" +-" 0-phase154_0" +-" phase-to-namespace155_0" +-" phase-level-to-definitions156_0" ++" mpi154_0" ++" source-name155_0" ++" root-expand-ctx156_0" ++" phase157_0" ++" 0-phase158_0" ++" phase-to-namespace159_0" ++" phase-level-to-definitions160_0" + "(namespace-module-registry$1 the-struct_0)" + "(namespace-bulk-binding-registry the-struct_0)" + "(namespace-submodule-declarations the-struct_0)" + "(namespace-root-namespace the-struct_0)" +-" declaration-inspector157_0" +-" inspector158_0" ++" declaration-inspector161_0" ++" inspector162_0" + "(namespace-available-module-instances the-struct_0)" + "(namespace-module-instances the-struct_0)))" + " (raise-argument-error 'struct-copy \"namespace?\" the-struct_0)))))" +@@ -14329,33 +14330,33 @@ static const char *startup_source = + "(let-values(((m-ns_0)" + "(let-values(((the-struct_0) ns_0))" + "(if(1/namespace? the-struct_0)" +-"(let-values(((mpi159_0) mpi_0)" +-"((source-name160_0)" ++"(let-values(((mpi163_0) mpi_0)" ++"((source-name164_0)" + "(let-values(((or-part_0)(module-source-name m_0)))" + "(if or-part_0" + " or-part_0" + "(resolved-module-path-root-name(1/module-path-index-resolve mpi_0)))))" +-"((root-expand-ctx161_0)(box #f))" +-"((phase162_0) 0-phase_0)" +-"((0-phase163_0) 0-phase_0)" +-"((phase-to-namespace164_0)(make-small-hasheqv))" +-"((phase-level-to-definitions165_0)(make-small-hasheqv))" +-"((declaration-inspector166_0)(module-inspector m_0))" +-"((inspector167_0)(make-inspector(module-inspector m_0))))" ++"((root-expand-ctx165_0)(box #f))" ++"((phase166_0) 0-phase_0)" ++"((0-phase167_0) 0-phase_0)" ++"((phase-to-namespace168_0)(make-small-hasheqv))" ++"((phase-level-to-definitions169_0)(make-small-hasheqv))" ++"((declaration-inspector170_0)(module-inspector m_0))" ++"((inspector171_0)(make-inspector(module-inspector m_0))))" + "(namespace1.1" +-" mpi159_0" +-" source-name160_0" +-" root-expand-ctx161_0" +-" phase162_0" +-" 0-phase163_0" +-" phase-to-namespace164_0" +-" phase-level-to-definitions165_0" ++" mpi163_0" ++" source-name164_0" ++" root-expand-ctx165_0" ++" phase166_0" ++" 0-phase167_0" ++" phase-to-namespace168_0" ++" phase-level-to-definitions169_0" + "(namespace-module-registry$1 the-struct_0)" + "(namespace-bulk-binding-registry the-struct_0)" + "(namespace-submodule-declarations the-struct_0)" + "(namespace-root-namespace the-struct_0)" +-" declaration-inspector166_0" +-" inspector167_0" ++" declaration-inspector170_0" ++" inspector171_0" + "(namespace-available-module-instances the-struct_0)" + "(namespace-module-instances the-struct_0)))" + " (raise-argument-error 'struct-copy \"namespace?\" the-struct_0)))))" +@@ -14408,57 +14409,59 @@ static const char *startup_source = + "(let-values(((unavailable-callback_0) unavailable-callback67_0))" + "(let-values()" + "(let-values(((mi_0)" +-"(let-values(((ns168_0) ns_0)" +-"((name169_0) name_0)" +-"((0-phase170_0) 0-phase_0)" +-"((complain-on-failure?171_0) complain-on-failure?_0)" +-"((check-available-at-phase-level172_0) check-available-at-phase-level_0)" +-"((unavailable-callback173_0) unavailable-callback_0))" ++"(let-values(((ns172_0) ns_0)" ++"((name173_0) name_0)" ++"((0-phase174_0) 0-phase_0)" ++"((complain-on-failure?175_0) complain-on-failure?_0)" ++"((check-available-at-phase-level176_0) check-available-at-phase-level_0)" ++"((unavailable-callback177_0) unavailable-callback_0))" + "(namespace->module-instance.1" +-" check-available-at-phase-level172_0" +-" complain-on-failure?171_0" +-" unavailable-callback173_0" +-" ns168_0" +-" name169_0" +-" 0-phase170_0))))" ++" check-available-at-phase-level176_0" ++" complain-on-failure?175_0" ++" unavailable-callback177_0" ++" ns172_0" ++" name173_0" ++" 0-phase174_0))))" + "(if mi_0(module-instance-namespace mi_0) #f))))))))))))" + "(define-values" + "(namespace-record-module-instance-attached!)" + "(lambda(ns_0 mod-name_0 phase_0)" + "(begin" + "(let-values(((mi_0)" +-"(let-values(((ns174_0) ns_0)((mod-name175_0) mod-name_0)((phase176_0) phase_0))" +-"(namespace->module-instance.1 #f #f void ns174_0 mod-name175_0 phase176_0))))" ++"(let-values(((ns178_0) ns_0)((mod-name179_0) mod-name_0)((phase180_0) phase_0))" ++"(namespace->module-instance.1 #f #f void ns178_0 mod-name179_0 phase180_0))))" + "(set-module-instance-attached?! mi_0 #t)))))" + "(define-values" + "(module-force-bulk-binding!)" + "(lambda(m_0 ns_0)(begin((module-force-bulk-binding m_0)(namespace-bulk-binding-registry ns_0)))))" + "(define-values" + "(namespace-module-instantiate!.1)" +-"(lambda(otherwise-available?77_0" ++"(lambda(minimum-inspector80_0" ++" otherwise-available?77_0" + " run-phase75_0" + " seen78_0" + " seen-list79_0" + " skip-run?76_0" +-" ns85_0" +-" mpi86_0" +-" instance-phase87_0)" ++" ns87_0" ++" mpi88_0" ++" instance-phase89_0)" + "(begin" + " 'namespace-module-instantiate!" +-"(let-values(((ns_0) ns85_0))" +-"(let-values(((mpi_0) mpi86_0))" +-"(let-values(((instance-phase_0) instance-phase87_0))" ++"(let-values(((ns_0) ns87_0))" ++"(let-values(((mpi_0) mpi88_0))" ++"(let-values(((instance-phase_0) instance-phase89_0))" + "(let-values(((run-phase_0)(if(eq? run-phase75_0 unsafe-undefined)(namespace-phase ns_0) run-phase75_0)))" + "(let-values(((skip-run?_0) skip-run?76_0))" + "(let-values(((otherwise-available?_0) otherwise-available?77_0))" + "(let-values(((seen_0) seen78_0))" + "(let-values(((seen-list_0) seen-list79_0))" ++"(let-values(((minimum-inspector_0) minimum-inspector80_0))" + "(let-values()" + "(let-values((()" + "(begin" + "(if(1/module-path-index? mpi_0)" + "(void)" +-" (let-values () (error \"not a module path index:\" mpi_0)))" ++" (let-values () (error \"not a module path index:\" mpi_0)))" + "(values))))" + "(let-values(((name_0)(1/module-path-index-resolve mpi_0 #t)))" + "(let-values(((m_0)(namespace->module ns_0 name_0)))" +@@ -14474,17 +14477,17 @@ static const char *startup_source = + " 'instantiate!" + "(let-values(((mi_0)" + "(let-values(((or-part_0)" +-"(let-values(((ns184_0) ns_1)" +-"((name185_0) name_0)" +-"((instance-phase186_0)" ++"(let-values(((ns189_0) ns_1)" ++"((name190_0) name_0)" ++"((instance-phase191_0)" + " instance-phase_1))" + "(namespace->module-instance.1" + " #f" + " #f" + " void" +-" ns184_0" +-" name185_0" +-" instance-phase186_0))))" ++" ns189_0" ++" name190_0" ++" instance-phase191_0))))" + "(if or-part_0" + " or-part_0" + "(namespace-create-module-instance!" +@@ -14493,21 +14496,23 @@ static const char *startup_source = + " instance-phase_1" + " m_0" + " mpi_0)))))" +-"(let-values(((mi177_0) mi_0)" +-"((ns178_0) ns_1)" +-"((run-phase179_0) run-phase_1)" +-"((skip-run?180_0) skip-run?_0)" +-"((otherwise-available?181_0) otherwise-available?_0)" +-"((seen182_0) seen_0)" +-"((seen-list183_0) seen-list_0))" ++"(let-values(((mi181_0) mi_0)" ++"((ns182_0) ns_1)" ++"((run-phase183_0) run-phase_1)" ++"((skip-run?184_0) skip-run?_0)" ++"((otherwise-available?185_0) otherwise-available?_0)" ++"((seen186_0) seen_0)" ++"((seen-list187_0) seen-list_0)" ++"((minimum-inspector188_0) minimum-inspector_0))" + "(run-module-instance!.1" +-" otherwise-available?181_0" +-" run-phase179_0" +-" seen182_0" +-" seen-list183_0" +-" skip-run?180_0" +-" mi177_0" +-" ns178_0)))))))" ++" minimum-inspector188_0" ++" otherwise-available?185_0" ++" run-phase183_0" ++" seen186_0" ++" seen-list187_0" ++" skip-run?184_0" ++" mi181_0" ++" ns182_0)))))))" + "(if(module-cross-phase-persistent? m_0)" + "(let-values()" + "(instantiate!_0" +@@ -14515,68 +14520,79 @@ static const char *startup_source = + " 0" + "(let-values(((or-part_0)(namespace-root-namespace ns_0)))" + "(if or-part_0 or-part_0 ns_0))))" +-"(let-values()(instantiate!_0 instance-phase_0 run-phase_0 ns_0))))))))))))))))))))" ++"(let-values()" ++"(instantiate!_0 instance-phase_0 run-phase_0 ns_0)))))))))))))))))))))" + "(define-values" + "(namespace-module-visit!.1)" +-"(lambda(visit-phase89_0 ns91_0 mpi92_0 instance-phase93_0)" ++"(lambda(visit-phase91_0 ns93_0 mpi94_0 instance-phase95_0)" + "(begin" + " 'namespace-module-visit!" +-"(let-values(((ns_0) ns91_0))" +-"(let-values(((mpi_0) mpi92_0))" +-"(let-values(((instance-phase_0) instance-phase93_0))" ++"(let-values(((ns_0) ns93_0))" ++"(let-values(((mpi_0) mpi94_0))" ++"(let-values(((instance-phase_0) instance-phase95_0))" + "(let-values(((visit-phase_0)" +-"(if(eq? visit-phase89_0 unsafe-undefined)(namespace-phase ns_0) visit-phase89_0)))" ++"(if(eq? visit-phase91_0 unsafe-undefined)(namespace-phase ns_0) visit-phase91_0)))" + "(let-values()" +-"(let-values(((ns187_0) ns_0)" +-"((mpi188_0) mpi_0)" +-"((instance-phase189_0) instance-phase_0)" +-"((temp190_0)(add1 visit-phase_0)))" ++"(let-values(((ns192_0) ns_0)" ++"((mpi193_0) mpi_0)" ++"((instance-phase194_0) instance-phase_0)" ++"((temp195_0)(add1 visit-phase_0)))" + "(namespace-module-instantiate!.1" ++" #f" + " #t" +-" temp190_0" ++" temp195_0" + " '#hasheq()" + " null" + " #f" +-" ns187_0" +-" mpi188_0" +-" instance-phase189_0))))))))))" ++" ns192_0" ++" mpi193_0" ++" instance-phase194_0))))))))))" + "(define-values" + "(namespace-module-make-available!.1)" +-"(lambda(visit-phase95_0 ns97_0 mpi98_0 instance-phase99_0)" ++"(lambda(visit-phase97_0 ns99_0 mpi100_0 instance-phase101_0)" + "(begin" + " 'namespace-module-make-available!" +-"(let-values(((ns_0) ns97_0))" +-"(let-values(((mpi_0) mpi98_0))" +-"(let-values(((instance-phase_0) instance-phase99_0))" ++"(let-values(((ns_0) ns99_0))" ++"(let-values(((mpi_0) mpi100_0))" ++"(let-values(((instance-phase_0) instance-phase101_0))" + "(let-values(((visit-phase_0)" +-"(if(eq? visit-phase95_0 unsafe-undefined)(namespace-phase ns_0) visit-phase95_0)))" ++"(if(eq? visit-phase97_0 unsafe-undefined)(namespace-phase ns_0) visit-phase97_0)))" + "(let-values()" +-"(let-values(((ns191_0) ns_0)" +-"((mpi192_0) mpi_0)" +-"((instance-phase193_0) instance-phase_0)" +-"((temp194_0)(add1 visit-phase_0))" +-"((temp195_0) #t))" ++"(let-values(((ns196_0) ns_0)" ++"((mpi197_0) mpi_0)" ++"((instance-phase198_0) instance-phase_0)" ++"((temp199_0)(add1 visit-phase_0))" ++"((temp200_0) #t))" + "(namespace-module-instantiate!.1" ++" #f" + " #t" +-" temp194_0" ++" temp199_0" + " '#hasheq()" + " null" +-" temp195_0" +-" ns191_0" +-" mpi192_0" +-" instance-phase193_0))))))))))" ++" temp200_0" ++" ns196_0" ++" mpi197_0" ++" instance-phase198_0))))))))))" + "(define-values" + "(run-module-instance!.1)" +-"(lambda(otherwise-available?103_0 run-phase101_0 seen104_0 seen-list105_0 skip-run?102_0 mi111_0 ns112_0)" ++"(lambda(minimum-inspector108_0" ++" otherwise-available?105_0" ++" run-phase103_0" ++" seen106_0" ++" seen-list107_0" ++" skip-run?104_0" ++" mi115_0" ++" ns116_0)" + "(begin" + " 'run-module-instance!" +-"(let-values(((mi_0) mi111_0))" +-"(let-values(((ns_0) ns112_0))" +-"(let-values(((run-phase_0) run-phase101_0))" +-"(let-values(((skip-run?_0) skip-run?102_0))" +-"(let-values(((otherwise-available?_0) otherwise-available?103_0))" +-"(let-values(((seen_0) seen104_0))" +-"(let-values(((seen-list_0) seen-list105_0))" ++"(let-values(((mi_0) mi115_0))" ++"(let-values(((ns_0) ns116_0))" ++"(let-values(((run-phase_0) run-phase103_0))" ++"(let-values(((skip-run?_0) skip-run?104_0))" ++"(let-values(((otherwise-available?_0) otherwise-available?105_0))" ++"(let-values(((seen_0) seen106_0))" ++"(let-values(((seen-list_0) seen-list107_0))" ++"(let-values(((minimum-inspector_0) minimum-inspector108_0))" + "(let-values()" + "(begin" + "(if log-performance?(let-values()(start-performance-region 'eval 'requires))(void))" +@@ -14585,6 +14601,22 @@ static const char *startup_source = + "(let-values(((m-ns_0)(module-instance-namespace mi_0)))" + "(let-values(((instance-phase_0)(namespace-0-phase m-ns_0)))" + "(let-values(((run-phase-level_0)(phase- run-phase_0 instance-phase_0)))" ++"(let-values(((inspector_0)(module-inspector(module-instance-module mi_0))))" ++"(begin" ++"(if minimum-inspector_0" ++"(let-values()" ++"(if(let-values(((or-part_0)(eq? inspector_0 minimum-inspector_0)))" ++"(if or-part_0" ++" or-part_0" ++"(inspector-superior? inspector_0 minimum-inspector_0)))" ++"(void)" ++"(let-values()" ++"(error" ++" 'require" ++" \"cannot import module with weaker code inspector\\n module: ~a\"" ++"(1/module-path-index-resolve" ++"(namespace-mpi(module-instance-namespace mi_0)))))))" ++"(void))" + "(if(if(let-values(((or-part_0) skip-run?_0))" + "(if or-part_0" + " or-part_0" +@@ -14607,7 +14639,7 @@ static const char *startup_source = + "(let-values()" + "(error" + " 'require" +-" \"import cycle detected; trying to run module being expanded\")))" ++" \"import cycle detected; trying to run module being expanded\")))" + "(values))))" + "(let-values(((mpi_0)(namespace-mpi m-ns_0)))" + "(let-values(((phase-shift_0) instance-phase_0))" +@@ -14620,9 +14652,11 @@ static const char *startup_source = + " 'require" + "(apply" + " string-append" +-" \"import cycle detected during module instantiation\\n\"" +-" \" dependency chain:\"" +-"(module-instances->indented-module-names mi_0 seen-list_0))))" ++" \"import cycle detected during module instantiation\\n\"" ++" \" dependency chain:\"" ++"(module-instances->indented-module-names" ++" mi_0" ++" seen-list_0))))" + "(void))" + "(if(module-instance-shifted-requires mi_0)" + "(void)" +@@ -14632,7 +14666,8 @@ static const char *startup_source = + "(reverse$1" + "(let-values(((lst_0)(module-requires m_0)))" + "(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)" +@@ -14641,9 +14676,11 @@ static const char *startup_source = + " 'for-loop" + "(if(pair? lst_1)" + "(let-values(((phase+mpis_0)" +-"(unsafe-car lst_1))" ++"(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))" +@@ -14707,7 +14744,9 @@ 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)" +@@ -14765,38 +14804,41 @@ static const char *startup_source = + "(let-values()" + "(begin" + "(let-values()" +-"(let-values(((ns196_0)" ++"(let-values(((ns201_0)" + " ns_0)" +-"((req-mpi197_0)" ++"((req-mpi202_0)" + " req-mpi_0)" +-"((temp198_0)" ++"((temp203_0)" + "(phase+" + " instance-phase_0" + " req-phase_0))" +-"((run-phase199_0)" ++"((run-phase204_0)" + " run-phase_0)" +-"((skip-run?200_0)" ++"((skip-run?205_0)" + " skip-run?_0)" +-"((otherwise-available?201_0)" ++"((otherwise-available?206_0)" + " otherwise-available?_0)" +-"((temp202_0)" ++"((temp207_0)" + "(hash-set" + " seen_0" + " mi_0" + " #t))" +-"((temp203_0)" ++"((temp208_0)" + "(cons" + " mi_0" +-" seen-list_0)))" ++" seen-list_0))" ++"((inspector209_0)" ++" inspector_0))" + "(namespace-module-instantiate!.1" +-" otherwise-available?201_0" +-" run-phase199_0" +-" temp202_0" +-" temp203_0" +-" skip-run?200_0" +-" ns196_0" +-" req-mpi197_0" +-" temp198_0)))" ++" inspector209_0" ++" otherwise-available?206_0" ++" run-phase204_0" ++" temp207_0" ++" temp208_0" ++" skip-run?205_0" ++" ns201_0" ++" req-mpi202_0" ++" temp203_0)))" + "(values)))))" + "(values)))))" + "(if(not" +@@ -14825,7 +14867,8 @@ static const char *startup_source = + "((end_0)(sub1(module-min-phase-level m_0)))" + "((inc_0) -1))" + "(begin" +-"(if(variable-reference-from-unsafe?(#%variable-reference))" ++"(if(variable-reference-from-unsafe?" ++"(#%variable-reference))" + "(void)" + "(let-values()(check-range start_0 end_0 inc_0)))" + "((letrec-values(((for-loop_0)" +@@ -14940,7 +14983,8 @@ static const char *startup_source = + "(values)))))" + "(values)))))" + "(if(not #f)" +-"(for-loop_0(+ pos_0 inc_0))" ++"(for-loop_0" ++"(+ pos_0 inc_0))" + "(values))))" + "(values))))))" + " for-loop_0)" +@@ -14955,30 +14999,30 @@ static const char *startup_source = + "(small-hash-set!" + "(module-instance-phase-level-to-state mi_0)" + " run-phase-level_0" +-" 'started)))))))))))))))" +-"(if log-performance?(let-values()(end-performance-region))(void)))))))))))))))" ++" 'started)))))))))))))))))" ++"(if log-performance?(let-values()(end-performance-region))(void))))))))))))))))" + "(define-values" + "(namespace-visit-available-modules!)" + "(let-values(((namespace-visit-available-modules!_0)" +-"(lambda(ns115_0 run-phase114_0)" ++"(lambda(ns119_0 run-phase118_0)" + "(begin" + " 'namespace-visit-available-modules!" +-"(let-values(((ns_0) ns115_0))" ++"(let-values(((ns_0) ns119_0))" + "(let-values(((run-phase_0)" +-"(if(eq? run-phase114_0 unsafe-undefined)(namespace-phase ns_0) run-phase114_0)))" ++"(if(eq? run-phase118_0 unsafe-undefined)(namespace-phase ns_0) run-phase118_0)))" + "(let-values()(namespace-run-available-modules! ns_0(add1 run-phase_0)))))))))" + "(case-lambda" + "((ns_0)(begin(namespace-visit-available-modules!_0 ns_0 unsafe-undefined)))" +-"((ns_0 run-phase114_0)(namespace-visit-available-modules!_0 ns_0 run-phase114_0)))))" ++"((ns_0 run-phase118_0)(namespace-visit-available-modules!_0 ns_0 run-phase118_0)))))" + "(define-values" + "(namespace-run-available-modules!)" + "(let-values(((namespace-run-available-modules!_0)" +-"(lambda(ns117_0 run-phase116_0)" ++"(lambda(ns121_0 run-phase120_0)" + "(begin" + " 'namespace-run-available-modules!" +-"(let-values(((ns_0) ns117_0))" ++"(let-values(((ns_0) ns121_0))" + "(let-values(((run-phase_0)" +-"(if(eq? run-phase116_0 unsafe-undefined)(namespace-phase ns_0) run-phase116_0)))" ++"(if(eq? run-phase120_0 unsafe-undefined)(namespace-phase ns_0) run-phase120_0)))" + "(let-values()" + "(registry-call-with-lock" + "(namespace-module-registry$1 ns_0)" +@@ -15022,24 +15066,25 @@ static const char *startup_source = + "(let-values()" + "(begin" + "(let-values()" +-"(let-values(((mi204_0)" ++"(let-values(((mi210_0)" + " mi_0)" +-"((ns205_0)" ++"((ns211_0)" + " ns_0)" +-"((run-phase206_0)" ++"((run-phase212_0)" + " run-phase_0)" +-"((temp207_0)" ++"((temp213_0)" + " #f)" +-"((temp208_0)" ++"((temp214_0)" + " #f))" + "(run-module-instance!.1" +-" temp208_0" +-" run-phase206_0" ++" #f" ++" temp214_0" ++" run-phase212_0" + " '#hasheq()" + " null" +-" temp207_0" +-" mi204_0" +-" ns205_0)))" ++" temp213_0" ++" mi210_0" ++" ns211_0)))" + "(values)))))" + "(values)))))" + "(if(not #f)" +@@ -15053,42 +15098,42 @@ static const char *startup_source = + " loop_0)))))))))))" + "(case-lambda" + "((ns_0)(begin(namespace-run-available-modules!_0 ns_0 unsafe-undefined)))" +-"((ns_0 run-phase116_0)(namespace-run-available-modules!_0 ns_0 run-phase116_0)))))" ++"((ns_0 run-phase120_0)(namespace-run-available-modules!_0 ns_0 run-phase120_0)))))" + "(define-values" + "(namespace-primitive-module-visit!)" + "(lambda(ns_0 name_0)" + "(begin" + "(let-values(((mi_0)(hash-ref(namespace-module-instances ns_0)(1/make-resolved-module-path name_0))))" +-"(let-values(((mi209_0) mi_0)((ns210_0) ns_0)((temp211_0) 1)((temp212_0) #f)((temp213_0) #t))" +-"(run-module-instance!.1 temp213_0 temp211_0 '#hasheq() null temp212_0 mi209_0 ns210_0))))))" ++"(let-values(((mi215_0) mi_0)((ns216_0) ns_0)((temp217_0) 1)((temp218_0) #f)((temp219_0) #t))" ++"(run-module-instance!.1 #f temp219_0 temp217_0 '#hasheq() null temp218_0 mi215_0 ns216_0))))))" + "(define-values" + "(namespace-module-use->module+linklet-instances.1)" +-"(lambda(phase-shift120_0 shift-from118_0 shift-to119_0 ns124_0 mu125_0)" ++"(lambda(phase-shift124_0 shift-from122_0 shift-to123_0 ns128_0 mu129_0)" + "(begin" + " 'namespace-module-use->module+linklet-instances" +-"(let-values(((ns_0) ns124_0))" +-"(let-values(((mu_0) mu125_0))" +-"(let-values(((shift-from_0) shift-from118_0))" +-"(let-values(((shift-to_0) shift-to119_0))" +-"(let-values(((phase-shift_0) phase-shift120_0))" ++"(let-values(((ns_0) ns128_0))" ++"(let-values(((mu_0) mu129_0))" ++"(let-values(((shift-from_0) shift-from122_0))" ++"(let-values(((shift-to_0) shift-to123_0))" ++"(let-values(((phase-shift_0) phase-shift124_0))" + "(let-values()" + "(let-values(((mod_0)(module-use-module mu_0)))" + "(let-values(((mi_0)" +-"(let-values(((ns214_0) ns_0)" +-"((temp215_0)" ++"(let-values(((ns220_0) ns_0)" ++"((temp221_0)" + "(1/module-path-index-resolve" + "(if shift-from_0" + "(module-path-index-shift mod_0 shift-from_0 shift-to_0)" + " mod_0)))" +-"((phase-shift216_0) phase-shift_0)" +-"((temp217_0) #t))" ++"((phase-shift222_0) phase-shift_0)" ++"((temp223_0) #t))" + "(namespace->module-instance.1" + " #f" +-" temp217_0" ++" temp223_0" + " void" +-" ns214_0" +-" temp215_0" +-" phase-shift216_0))))" ++" ns220_0" ++" temp221_0" ++" phase-shift222_0))))" + "(let-values(((m-ns_0)(module-instance-namespace mi_0)))" + "(let-values(((d_0)" + "(small-hash-ref" +@@ -28298,6 +28343,7 @@ static const char *startup_source = + "((run-phase248_0)" + " run-phase_0))" + "(namespace-module-instantiate!.1" ++" #f" + " #t" + " run-phase248_0" + " '#hasheq()" +@@ -49111,6 +49157,7 @@ static const char *startup_source = + "((phase37_0)" + " phase_1))" + "(namespace-module-instantiate!.1" ++" #f" + " #t" + " unsafe-undefined" + " '#hasheq()" +@@ -51969,6 +52016,7 @@ static const char *startup_source = + "((phase14_0) phase_0)" + "((temp15_0) #f))" + "(namespace-module-instantiate!.1" ++" #f" + " temp15_0" + " phase14_0" + " '#hasheq()" +@@ -51984,6 +52032,7 @@ static const char *startup_source = + "((phase18_0) phase_0)" + "((phase19_0) phase_0))" + "(namespace-module-instantiate!.1" ++" #f" + " #t" + " phase19_0" + " '#hasheq()" +@@ -52047,6 +52096,7 @@ static const char *startup_source = + "((phase27_0) phase_0)" + "((temp28_0) #f))" + "(namespace-module-instantiate!.1" ++" #f" + " temp28_0" + " phase27_0" + " '#hasheq()" diff --git a/debian/patches/series b/debian/patches/series new file mode 100644 index 0000000000..bff4f2622d --- /dev/null +++ b/debian/patches/series @@ -0,0 +1,2 @@ +0001-prohibit-import-from-module-with-a-weak-code-inspect.patch +0002-regenerate-startup.inc.patch |