commit c1ac9fbc08f16f08bdf29434222bcdf5a35b4744 parent 0cb84bfe692e681430b5d05b318530637bbeb3a4 Author: James Eversole <james@eversole.co> Date: Mon, 19 Oct 2026 19:02:40 -0500 Merge owner-relative layout fixes and public demo cleanup Preserve main CalVer and system-aware theme changes. Correct the release JavaScript allowlist to admit the standalone early theme script without changing the esbuild entrypoint contract. Merged-tree validation: nix flake check, shipped compiler authentication, fixture freshness, theme/contrast/accessibility checks, and packaged Chromium IDE flows on both Haskell and Zig WASM backends pass. Diffstat:
116 files changed, 2578 insertions(+), 922 deletions(-)
diff --git a/AGENTS.md b/AGENTS.md @@ -94,6 +94,12 @@ Before authoring or rewriting `.tri`, read [the language-feature inventory](docs Check available syntax and library protocols before proposing new machinery or claiming a language gap; verify uncertain behavior with the selected stable compiler. +In public examples, prefer indented continuation and unwrapped `let`, `case`, and +`do` blocks over layout-only parentheses. Use `<|` or `|>` when they make nested +calls clearer. Keep parentheses where syntax requires them or grouping is the +clearest explanation; do not contort code just to eliminate them. Both pipe +chains associate left-to-right, so repeated `<|` is not nested application. + ``` t → Leaf (the base term) t t → Stem Leaf diff --git a/bootstrap/build-stable.arboricx b/bootstrap/build-stable.arboricx Binary files differ. diff --git a/bootstrap/rebuild/bootstrap-kit.json b/bootstrap/rebuild/bootstrap-kit.json @@ -1,13 +1,13 @@ { "schema": "tricu.bootstrap-kit.v1", "backend": "stable", - "accepted_source": "a731e795e9dc59556a16bd404ffce861a526c276", + "accepted_source": "1da4fab351c3c04d2543cea54667f099074e95cb", "source_map_sha256": "14e5f01337df8e6b9cec8c88f08e9aed29d5c8fb9f37ae86a618953d260f413f", "artifacts": { "compiler": { "file": "rebuilt-compiler.arboricx", "export": "sourceMapBuildStable", - "sha256": "e1552399a92f2e8e4ddd162ed69dfca23b9114ae97e6110c1e87bcd846ce076e" + "sha256": "7f625f6290facf67a389d6d4e8a045bae8f4ab4f53ea42203f1334b27e4bcf95" }, "adapter": { "file": "io-adapter.arboricx", diff --git a/bootstrap/rebuild/rebuilt-compiler.arboricx b/bootstrap/rebuild/rebuilt-compiler.arboricx Binary files differ. diff --git a/bootstrap/stable-compiler.json b/bootstrap/stable-compiler.json @@ -2,10 +2,10 @@ "schema": "tricu.shipped-stable-compiler.v1", "backend": "stable", "bundle": "bootstrap/build-stable.arboricx", - "sha256": "d70de875988dfa309f2c167992928866f88b08af351918b8c7b5d88c541c6e94", + "sha256": "bd9b236492bb6359a6cc4dcd7c988ac2bf64abea4a1cc1c7233d1d023ca0dd1e", "export": "sourceBuildGraph", "published_fixture_export": "source_build.sourceBuildGraphStable", - "accepted_source": "a731e795e9dc59556a16bd404ffce861a526c276", + "accepted_source": "1da4fab351c3c04d2543cea54667f099074e95cb", "source_map": "bootstrap/stable-compiler-source-map.v1", "source_map_sha256": "14e5f01337df8e6b9cec8c88f08e9aed29d5c8fb9f37ae86a618953d260f413f", "sources": [ @@ -84,8 +84,8 @@ { "alias": "source_program", "path": "lib/source/program.tri", - "snapshot": "test/fixtures/reference-source/67cd6e68d939e49922b1718e0164854a01e5c85023a45bfab485c71c4dde55b1.tri", - "sha256": "b41410f4aa620a6625b149a6897d6269d81130143ccd1c84b91d399f5e9c7d10" + "snapshot": "test/fixtures/reference-source/7a99fcc8da4c502ff67bc723b3ef317409a84f608c607cfa99331dd30245845a.tri", + "sha256": "c3e7ba64fa923003a199ed9aabe373cb0087691656a116e9a7d82ca176fdbd47" }, { "alias": "source_ast", @@ -120,8 +120,8 @@ { "alias": "source_parser", "path": "lib/source/parser.tri", - "snapshot": "test/fixtures/reference-source/00d64064122dace90dd8fa8535e4f9a76450bc61de572ae40f4a05692aeac9a0.tri", - "sha256": "8ed90dd4cb344a5c03c03ad487e2382394f5e45937b1882f146581efbdeef723" + "snapshot": "test/fixtures/reference-source/23c8142e9629f029ae22b7c0b377bbfb69e4f9ecc5ce452094c47d063a49c9d6.tri", + "sha256": "97de201ac5b4c0a3800d97a765a8e1d5b5e159ca3b4338eb4956ae4600e57bc7" }, { "alias": "source_core", @@ -181,12 +181,12 @@ "acceptance": { "fresh_generations": 2, "matching_manifests": 28, - "distinct_complete_trees": 900, - "matching_bundle_sha256": "d70de875988dfa309f2c167992928866f88b08af351918b8c7b5d88c541c6e94", + "distinct_complete_trees": 903, + "matching_bundle_sha256": "bd9b236492bb6359a6cc4dcd7c988ac2bf64abea4a1cc1c7233d1d023ca0dd1e", "matching_artifacts": { - "rebuilt-compiler.arboricx": "e1552399a92f2e8e4ddd162ed69dfca23b9114ae97e6110c1e87bcd846ce076e", - "build.arboricx": "4d3b787d5f13299af1d41b256a16d82ed1b62fa381e72fb9195de707aeab6833", - "build-stable.arboricx": "d70de875988dfa309f2c167992928866f88b08af351918b8c7b5d88c541c6e94" + "rebuilt-compiler.arboricx": "7f625f6290facf67a389d6d4e8a045bae8f4ab4f53ea42203f1334b27e4bcf95", + "build.arboricx": "186a08c9f0372cb6f8a82ce80640e230ca56c7a18db334033fbcf123cfc4f18d", + "build-stable.arboricx": "bd9b236492bb6359a6cc4dcd7c988ac2bf64abea4a1cc1c7233d1d023ca0dd1e" } }, "limits": "Fresh stable pair with complete closure audits and generation-two smokes. Checksums bind bytes, not publisher identity; verification does not query Git." diff --git a/docs/language-features.md b/docs/language-features.md @@ -91,8 +91,10 @@ Application is left-associative and binds tighter than pipes. `f <| x` and `x |> f` both mean `f x`. In particular, `f <| g <| x` means `(f g) x`, **not** `f (g x)`; group the latter explicitly. -Newlines can end applications. Parenthesize a complete multiline application; -do not depend on a visually unfinished call continuing onto the next line. +Continue an application on lines indented beyond its owning definition or +statement. The first operand may follow `=` on the next line; later operands +can align with it. Same-column siblings and dedents end the expression. Extra +indentation does not group arguments: use parentheses for a nested application. Use spaces, not tabs, for source layout. Lists are whitespace-separated atoms: `[a b]` has two items; `[(f x)]` has one application item. Commas are not list separators. Pair-pattern syntax is not a general tuple-expression constructor: diff --git a/docs/language.md b/docs/language.md @@ -88,19 +88,41 @@ Lists contain whitespace-separated atoms. `[a b]` contains two elements; `f <| x` and `x |> f` both mean `f x`. Application binds tighter than pipes, and pipe chains associate left-to-right: `f <| g <| x` means `(f g) x`. -Newlines separate expressions unless the enclosing layout permits continuation. -Parenthesize a complete multiline application, including its last argument: +Application continuation is relative to the owning definition or statement, +not the first operand's column. A later line continues the expression when its +first token is deeper than that owner. These definitions are equivalent: ```tricu -main = (choose +main = choose first second condition + +main = choose + first + second + condition + +main = + choose first second - condition) + condition ``` -Inside parentheses, newlines can separate application operands and precede -`where`. Inside brackets, they separate list elements. These rules preserve the -original token spans. +Same-column siblings and dedents end the expression. Local-block definitions, +`case` arms and `do` statements establish their own boundaries. Extra indentation +does not implicitly group arguments: application remains left-associative. +Blank lines and comments do not change the boundary. + +Parentheses explicitly group expressions and allow newline continuation without +an indentation requirement; a local/case/do block inside them still has its own +layout boundary. Inside brackets, newlines separate list atoms, not application +operands. Original token spans are preserved. + +A pipe operator or `where` on a later line may align with its owner or be deeper, +but cannot cross a dedent out of an inner block. For example, a `where` dedented +past the last case arm belongs to the enclosing case expression, not that arm. +A pipe operand beginning on a later line must be deeper than the owner unless +explicitly grouped. Standalone expression parsing still does not join bare +newline-separated operands outside parentheses. ## Definitions and scope @@ -113,9 +135,15 @@ errors except for contiguous equations forming one function. Native top-level names must be distinct from imported names. Lexical parameters and local bindings can shadow surrounding bindings. -A definition body may begin after `=` on a later line. If its first token is -indented, further application lines must begin at a deeper column. Same-column -lines start another definition. Missing bodies use diagnostic code `40`. +A definition body may begin after `=` on a later line, indented beyond the +definition's name. Subsequent operands need only remain beyond that same owner; +they may align with the first operand. Plain and contract-annotated definitions +use the same rule. Missing or insufficiently indented bodies use diagnostic +code `40`, without consuming a following sibling as the body. + +The historical first-body-token continuation boundary and unindented next-line +body exception are retired. Parentheses are no longer needed merely to continue +an indented application. ### Local bindings @@ -128,7 +156,9 @@ A block beginning on a new line is indented beyond the enclosing expression's layout column and beyond column one. Same-column definitions continue the block; deeper lines continue a body; dedenting ends the block. `in` closes a `let` block. A `where` clause may begin on the following line. Its value may contain another -binding; each expression has one `where` suffix. +binding; each expression has one `where` suffix. An inline binding inherits the +enclosing expression's layout context; a newline immediately after `let` or +`where` opens a separate local block. ### Stable backend selection diff --git a/docs/validation.md b/docs/validation.md @@ -1246,6 +1246,33 @@ UTF-8 boundary checks; classifier tests alone are not consumer or generation acceptance. Performance measurements must use matched complete workloads, not only individual predicates. +## Source layout controls (opt-in) + +```sh +nix develop -c python3 test/source_layout.py result/bin/tricu \ + --directory "$FRESH_CHECK" +``` + +Rebuilds the expression/program parsers and every affected consumer through +`source_unit`, using the authenticated packaged compiler and source-verified +unchanged fixture dependencies. Audits full native manifests and dependency +receipts. Independent complete values and located parser replies cover owner- +relative continuation, annotated heads, grouping, lists, local bindings, case +arms, do statements, pipes, comments and missing-body boundaries. Existing +local-control diagnostics run against the rebuilt unit too. + +The harness compares complete parser replies for every `.tri` file under +`lib/`, `demos/` and `tricu-apps/` against the reference parser, replacing native +header lines with equal-length comments to preserve body positions. This is +body-grammar compatibility coverage, not native import resolution or application +execution. A wrong-parser control must fail the program-layout oracle. Select +`--legacy-program PRE_FIX_PROGRAM_BUNDLE` to additionally require a retained old +parser to fail the corrected layout oracle. `--resume` explicitly reuses +diagnostic compilation checkpoints; it does +not constitute fresh-generation acceptance. Each child is bounded, with an +8 GiB sampled RSS guard and a thirty-minute runner budget. Compiler publication +still requires the generation, smoke, fixture and retention gates. + ## Compiler name-index controls (opt-in) ```sh diff --git a/ext/demo-site/README.md b/ext/demo-site/README.md @@ -1003,6 +1003,8 @@ python3 test/library_inspector.py result/bin/tricu \ --directory "$WORK/inspection" --version "$VERSION" --stage-site ext/demo-site python3 ext/demo-site/prepare-showcase.py result/bin/tricu \ --directory "$WORK/showcase" --version "$VERSION" --stage-site +python3 ext/demo-site/prepare-libraries.py result/bin/tricu \ + --version "$VERSION" --stage-site ``` Then run `prepare-index.py` with explicit `--version NAME=VERSION` arguments for diff --git a/ext/demo-site/bundles/0898334053aa3bd7cea49407ec3d51c5b155a030eb51dee670da1e349229e1b3.arboricx b/ext/demo-site/bundles/0898334053aa3bd7cea49407ec3d51c5b155a030eb51dee670da1e349229e1b3.arboricx Binary files differ. diff --git a/ext/demo-site/bundles/1f722cc4ebbe2096dd68e1d9720596cfe9c99b327fd02d55ea01c5c66e66477a.arboricx b/ext/demo-site/bundles/1f722cc4ebbe2096dd68e1d9720596cfe9c99b327fd02d55ea01c5c66e66477a.arboricx Binary files differ. diff --git a/ext/demo-site/bundles/396195ecdb24ea812aa285192ccc552c36eb91577300042ba938408b5d01e2c9.arboricx b/ext/demo-site/bundles/396195ecdb24ea812aa285192ccc552c36eb91577300042ba938408b5d01e2c9.arboricx Binary files differ. diff --git a/ext/demo-site/bundles/4586d8b96a93d22e2382f40a0eed353dccebe6ab05713336451b13dfd756e813.arboricx b/ext/demo-site/bundles/4586d8b96a93d22e2382f40a0eed353dccebe6ab05713336451b13dfd756e813.arboricx Binary files differ. diff --git a/ext/demo-site/bundles/5bbdeb9f451895d515464d0fc2c3fe7f83a282bf8a0d51b9c2a52c6ca9748c93.arboricx b/ext/demo-site/bundles/5bbdeb9f451895d515464d0fc2c3fe7f83a282bf8a0d51b9c2a52c6ca9748c93.arboricx Binary files differ. diff --git a/ext/demo-site/bundles/660f9077134b141f0398b5506f0295084953801e9360ef668e185d244f529c40.arboricx b/ext/demo-site/bundles/660f9077134b141f0398b5506f0295084953801e9360ef668e185d244f529c40.arboricx Binary files differ. diff --git a/ext/demo-site/bundles/6a8e34e2185846c701afdd8f5ee842e21d0fa2c8cee2040113e72f1b94b5e6ab.arboricx b/ext/demo-site/bundles/6a8e34e2185846c701afdd8f5ee842e21d0fa2c8cee2040113e72f1b94b5e6ab.arboricx Binary files differ. diff --git a/ext/demo-site/bundles/6fc6e4138589d8550886cbb2cc95d1de91940bee589ef400e5e6098bf3cc55ff.arboricx b/ext/demo-site/bundles/6fc6e4138589d8550886cbb2cc95d1de91940bee589ef400e5e6098bf3cc55ff.arboricx Binary files differ. diff --git a/ext/demo-site/bundles/7da891b3098e3f405741f78a59e068445bbf4def4c41553bda2e5a57a4e63e2c.arboricx b/ext/demo-site/bundles/7da891b3098e3f405741f78a59e068445bbf4def4c41553bda2e5a57a4e63e2c.arboricx Binary files differ. diff --git a/ext/demo-site/bundles/7dc94b30f4fd1043ff6e1cc4c7ddde55d9338c262de145d1d1446d7b156fac33.arboricx b/ext/demo-site/bundles/7dc94b30f4fd1043ff6e1cc4c7ddde55d9338c262de145d1d1446d7b156fac33.arboricx Binary files differ. diff --git a/ext/demo-site/bundles/7e6e0a045b50e8e6e44e28d8b06f2a471c26a14e9613837bc20e72941a2a5bb9.arboricx b/ext/demo-site/bundles/7e6e0a045b50e8e6e44e28d8b06f2a471c26a14e9613837bc20e72941a2a5bb9.arboricx Binary files differ. diff --git a/ext/demo-site/bundles/80b2e70901d380aaca74a7a40019d3394b1171e6e76e771f58955f03bf8da798.arboricx b/ext/demo-site/bundles/80b2e70901d380aaca74a7a40019d3394b1171e6e76e771f58955f03bf8da798.arboricx Binary files differ. diff --git a/ext/demo-site/bundles/8e179edc0710085a37167af76c1f5bad871bb84901a7aa7345febda5d0f6c460.arboricx b/ext/demo-site/bundles/8e179edc0710085a37167af76c1f5bad871bb84901a7aa7345febda5d0f6c460.arboricx Binary files differ. diff --git a/ext/demo-site/bundles/91f78730b3623d019e33f96e9e2712d61b04837b21ef3eccec3071ac9260944d.arboricx b/ext/demo-site/bundles/91f78730b3623d019e33f96e9e2712d61b04837b21ef3eccec3071ac9260944d.arboricx Binary files differ. diff --git a/ext/demo-site/bundles/93174e0bad1894364a0a12560a75eea646e5747bcc2a71b7fd198bf9bb635596.arboricx b/ext/demo-site/bundles/93174e0bad1894364a0a12560a75eea646e5747bcc2a71b7fd198bf9bb635596.arboricx Binary files differ. diff --git a/ext/demo-site/bundles/9b504c57dd3989c64c748841a5be71dd0f217994bae874ee799f4f09c7dfc1f8.arboricx b/ext/demo-site/bundles/9b504c57dd3989c64c748841a5be71dd0f217994bae874ee799f4f09c7dfc1f8.arboricx Binary files differ. diff --git a/ext/demo-site/bundles/b4bc7576279d3721981a0254b55184fdd7cc11426c2591adf8a6405c3e388283.arboricx b/ext/demo-site/bundles/b4bc7576279d3721981a0254b55184fdd7cc11426c2591adf8a6405c3e388283.arboricx Binary files differ. diff --git a/ext/demo-site/bundles/bd9b236492bb6359a6cc4dcd7c988ac2bf64abea4a1cc1c7233d1d023ca0dd1e.arboricx b/ext/demo-site/bundles/bd9b236492bb6359a6cc4dcd7c988ac2bf64abea4a1cc1c7233d1d023ca0dd1e.arboricx Binary files differ. diff --git a/ext/demo-site/bundles/c2426615e6f90e2084bbb268305b11c06aea844e6cd3905efb92708fb2b91dde.arboricx b/ext/demo-site/bundles/c2426615e6f90e2084bbb268305b11c06aea844e6cd3905efb92708fb2b91dde.arboricx Binary files differ. diff --git a/ext/demo-site/bundles/dcb5f1c60fac3c0cf1752d88b9e2482223d0759ef310cd7b401ef0148b7a6ffa.arboricx b/ext/demo-site/bundles/dcb5f1c60fac3c0cf1752d88b9e2482223d0759ef310cd7b401ef0148b7a6ffa.arboricx Binary files differ. diff --git a/ext/demo-site/bundles/ec7f3cddb70f48ec5db7eac7afb7641150a6bb3400d0734ca3419b6f7a5bbfff.arboricx b/ext/demo-site/bundles/ec7f3cddb70f48ec5db7eac7afb7641150a6bb3400d0734ca3419b6f7a5bbfff.arboricx Binary files differ. diff --git a/ext/demo-site/bundles/ef024a03aeb00f82d77a0c710303e88ce254b20cd1d0d0aebb29c0309900c480.arboricx b/ext/demo-site/bundles/ef024a03aeb00f82d77a0c710303e88ce254b20cd1d0d0aebb29c0309900c480.arboricx Binary files differ. diff --git a/ext/demo-site/catalogue.json b/ext/demo-site/catalogue.json @@ -188,8 +188,8 @@ "title": "Language reference", "category": "Language & Runtime Explorations", "hash": "86717d7f9d69fe730c6c6172c42c49895623aa070bf675e1b5f751adb30616c1", - "source": "!import bd2c14d6db6b69308a5252a8e839705a55d30e815f012900b094315263e08d81 *\n!import 7f87549d587fa8c3be88af0ea988db3adcc3b35f1ffb48973553491b075614db as Math\n!export *\n\n-- The open base import supplies contract helpers and unqualified names.\n-- Math is a qualified import: its names start with Math.\n-- A syntax sampler: independent examples, rather than one application.\n-- Start with answer / Natural number: 42. Choose a definition for its preset.\n-- Full contracts: follow For AI assistants in the footer to Language features.\n-- Each comment below gives an expression and its interpretation.\n\n-- Names, lambdas, named parameters, application and grouping.\nidentity = (x : x)\nfirst a b = a\nanswer = identity (first 42 7)\n-- identity \"hello\" / Text -> hello; first 7 9 / Natural number -> 7.\n\n-- The kernel constructors: Leaf, Stem and Fork. Use tricu for arbitrary trees.\nleaf = t\nshapes = [t (t t) (t t t)]\n-- leaf / tricu -> t; shapes / tricu shows a list containing all three shapes.\nliterals = [\"hello\" 42 [1 2 3]]\n-- literals / tricu shows mixed values. Strings support Unicode; names are ASCII.\n-- Lists use spaces. Group application items: [(identity 1) (identity 2)].\n\n-- Partial application: provide one of a function's arguments now.\naddTwo = Math.add 2\n-- addTwo 5 / Natural number -> 7.\n\n-- Ordered equations: literals, a qualified pin, exact lists, cons and wildcard.\n-- A pin (^true) compares against an existing value.\ndescribe 7 = \"seven\"\ndescribe \"hi\" = \"greeting\"\ndescribe ^true = \"true\"\ndescribe [a b] = \"two items\"\ndescribe [head | tail] = \"nonempty list\"\ndescribe [] = \"empty list\"\ndescribe _ = \"other\"\n-- Try each with Text: describe 7, describe \"hi\", describe (t t),\n-- describe [4 5], describe [1 2 3], describe [], describe (t (t t)).\n\n-- Pair patterns and whole-value capture. Construct a pair with t left right.\nkeep whole{left, right} = whole\nkeep _ = t\n-- keep (t t t) / tricu -> (t t t); keep (t t) / tricu -> t.\n\n-- Plain local bindings are sequential and nonrecursive.\nlocal x = (let\n double n = Math.multiply n 2\n in double x)\nviaWhere x = step x where step y = Math.add y 1\n-- local 6 -> 12; viaWhere 6 -> 7, both Natural number.\n\n-- Direct self-recursion, with a final fallback equation.\ncopy [] = []\ncopy [head | tail] = t head (copy tail)\ncopy _ = []\n-- copy [1 2 3] / Bytes -> [1, 2, 3]. Bytes displays naturals from 0 through 255.\n-- Use tricu for a general list; copy [] and copy (t t) both return [].\n\n-- case examines an intermediate value; arms align and finish with a fallback.\nfirstOr fallback xs = case xs of\n [head | _] = head\n _ = fallback\n-- firstOr 99 [5] -> 5; firstOr 99 [] -> 99, both Natural number.\n\n-- Local self-recursion is explicit: let rec (also available with where rec).\nlocalCopy xs = (let rec\n walk [] = []\n walk [head | tail] = t head (walk tail)\n walk _ = []\n in walk xs)\n-- localCopy [4 5] / Bytes -> [4, 5]; localCopy [] -> [].\n\n-- Parameter and result contracts check values at runtime.\nchecked x@nat? =@nat? x\n-- checked 42 / Natural number -> 42. A failed contract produces a Result.\n-- Keep annotations on plain function heads; see Contracts for Result handlers.\n\n-- Pipes and do use an explicit sequencing operator. Here a lambda passes a value\n-- to the next continuation. It is ordinary pure code; IO uses IO.bind instead.\nsequenced input = (do (value next : next value)\n value <- input |> identity\n identity value\n identity <| value)\n-- sequenced 9 / Natural number -> 9.\n-- Both pipe chains associate left-to-right; group nested applications explicitly.\n\n|- Block comments are another way to annotate source. They do not nest. -|\n-- !export * selects local definitions. Use !export name for a smaller interface.\n-- An open import uses !import MANIFEST *; a reexport uses !export * from MANIFEST.\n-- Replace MANIFEST with the full identity from Add import or the library guide.\n-- Reexports select the public interface; imports introduce names into scope.\n-- See Conversation for IO, and the docs for Maybe/Result/parser protocols.\n", - "sourceSha256": "5d4035e52ef2f9f85278d6431fc5be43df4e7badce7393930237fc1deb1c4fb8", + "source": "!import bd2c14d6db6b69308a5252a8e839705a55d30e815f012900b094315263e08d81 *\n!import 7f87549d587fa8c3be88af0ea988db3adcc3b35f1ffb48973553491b075614db as Math\n!export *\n\n-- The open base import supplies contract helpers and unqualified names.\n-- Math is a qualified import: its names start with Math.\n-- A syntax sampler: independent examples, rather than one application.\n-- Start with answer / Natural number: 42. Choose a definition for its preset.\n-- Full contracts: follow For AI assistants in the footer to Language features.\n-- Each comment below gives an expression and its interpretation.\n\n-- Names, lambdas, named parameters, application and grouping.\nidentity = (x : x)\nfirst a b = a\nanswer = identity (first 42 7)\n-- identity \"hello\" / Text -> hello; first 7 9 / Natural number -> 7.\n\n-- The kernel constructors: Leaf, Stem and Fork. Use tricu for arbitrary trees.\nleaf = t\nshapes = [t (t t) (t t t)]\n-- leaf / tricu -> t; shapes / tricu shows a list containing all three shapes.\nliterals = [\"hello\" 42 [1 2 3]]\n-- literals / tricu shows mixed values. Strings support Unicode; names are ASCII.\n-- Lists use spaces. Group application items: [(identity 1) (identity 2)].\n\n-- Partial application: provide one of a function's arguments now.\naddTwo = Math.add 2\n-- addTwo 5 / Natural number -> 7.\n\n-- Ordered equations: literals, a qualified pin, exact lists, cons and wildcard.\n-- A pin (^true) compares against an existing value.\ndescribe 7 = \"seven\"\ndescribe \"hi\" = \"greeting\"\ndescribe ^true = \"true\"\ndescribe [a b] = \"two items\"\ndescribe [head | tail] = \"nonempty list\"\ndescribe [] = \"empty list\"\ndescribe _ = \"other\"\n-- Try each with Text: describe 7, describe \"hi\", describe (t t),\n-- describe [4 5], describe [1 2 3], describe [], describe (t (t t)).\n\n-- Pair patterns and whole-value capture. Construct a pair with t left right.\nkeep whole{left, right} = whole\nkeep _ = t\n-- keep (t t t) / tricu -> (t t t); keep (t t) / tricu -> t.\n\n-- Plain local bindings are sequential and nonrecursive.\nlocal x = let\n double n = Math.multiply n 2\n in double x\nviaWhere x = step x where step y = Math.add y 1\n-- local 6 -> 12; viaWhere 6 -> 7, both Natural number.\n\n-- Direct self-recursion, with a final fallback equation.\ncopy [] = []\ncopy [head | tail] = t head <| copy tail\ncopy _ = []\n-- copy [1 2 3] / Bytes -> [1, 2, 3]. Bytes displays naturals from 0 through 255.\n-- Use tricu for a general list; copy [] and copy (t t) both return [].\n\n-- case examines an intermediate value; arms align and finish with a fallback.\nfirstOr fallback xs = case xs of\n [head | _] = head\n _ = fallback\n-- firstOr 99 [5] -> 5; firstOr 99 [] -> 99, both Natural number.\n\n-- Local self-recursion is explicit: let rec (also available with where rec).\nlocalCopy xs = let rec\n walk [] = []\n walk [head | tail] = t head <| walk tail\n walk _ = []\n in walk xs\n-- localCopy [4 5] / Bytes -> [4, 5]; localCopy [] -> [].\n\n-- Parameter and result contracts check values at runtime.\nchecked x@nat? =@nat? x\n-- checked 42 / Natural number -> 42. A failed contract produces a Result.\n-- Keep annotations on plain function heads; see Contracts for Result handlers.\n\n-- Pipes and do use an explicit sequencing operator. Here a lambda passes a value\n-- to the next continuation. It is ordinary pure code; IO uses IO.bind instead.\nsequenced input = do (value next : next value)\n value <- input |> identity\n identity value\n identity <| value\n-- sequenced 9 / Natural number -> 9.\n-- Both pipe chains associate left-to-right; group nested applications explicitly.\n\n|- Block comments are another way to annotate source. They do not nest. -|\n-- !export * selects local definitions. Use !export name for a smaller interface.\n-- An open import uses !import MANIFEST *; a reexport uses !export * from MANIFEST.\n-- Replace MANIFEST with the full identity from Add import or the library guide.\n-- Reexports select the public interface; imports introduce names into scope.\n-- See Conversation for IO, and the docs for Maybe/Result/parser protocols.\n", + "sourceSha256": "593b2982c50668b5e8892eb8447f18df71011cabd7f5227a43181886519f519b", "export": "answer", "arguments": [], "output": "number", @@ -378,8 +378,8 @@ "title": "A conversation", "category": "Practical Examples", "hash": "0811457d501113ee11194f90e279ebb4ef9d548c70cb48d146be03eb9af7505f", - "source": "!import 2d23be85d277457fd36c84f5eaa227e94e1c4efec281ff73017aaee109096f49 as IO\n!export main\n\n-- A conversation built from the IO library's actions and explicit bind operator.\n-- Evaluate main in Browser IO mode, then answer in the terminal input.\n-- The returned name is also displayed as Text. Try changing the greeting.\n-- Importing IO does not grant filesystem or network access in the browser.\nmain = (IO.io (do IO.bind\n IO.putStr \"What is your name?\\n\"\n name <- IO.getLine\n IO.putStr \"Hello, \"\n IO.putStr name\n IO.putStr \"!\\n\"\n IO.pure name))\n", - "sourceSha256": "3b9835aec1f3b987ad954cd235a7c0517170d3f7e236b15d60ce9a3a809c74c4", + "source": "!import 2d23be85d277457fd36c84f5eaa227e94e1c4efec281ff73017aaee109096f49 as IO\n!export main\n\n-- A conversation built from the IO library's actions and explicit bind operator.\n-- Evaluate main in Browser IO mode, then answer in the terminal input.\n-- The returned name is also displayed as Text. Try changing the greeting.\n-- Importing IO does not grant filesystem or network access in the browser.\nmain = IO.io\n do IO.bind\n IO.putStr \"What is your name?\\n\"\n name <- IO.getLine\n IO.putStr \"Hello, \"\n IO.putStr name\n IO.putStr \"!\\n\"\n IO.pure name\n", + "sourceSha256": "63ba77b14e307d836c253e9fbff5d0a04971316c616b2cb65f7a56295da5595d", "export": "main", "arguments": [], "output": "string", @@ -392,8 +392,8 @@ "title": "Tree microscope", "category": "Language & Runtime Explorations", "hash": "493a125b649639c0df8348b4aeb3a455b7139cae0634ba114866c48813500bc5", - "source": "!import bd2c14d6db6b69308a5252a8e839705a55d30e815f012900b094315263e08d81 as B\n!export shape\n!export size\n!export same\n\n-- Inspect data OR compiled program trees, not source text.\n-- Try shape (t t t), size (t t t), or same (t t) (t t).\n-- Also try shape (x : x): functions are inspectable trees too.\n-- triage dispatches directly on Leaf, Stem and Fork without visiting children.\n-- Arithmetic and Booleans come from base; traversal is the subject of this demo.\nshape tree = B.triage \"Leaf\" (child : \"Stem\") (left right : \"Fork\") tree\n\n-- Count every constructor occurrence, including repeated shared branches.\n-- This is expanded tree size, not allocated nodes or source-code length.\ncount tree acc = (B.triage\n (B.succ acc)\n (child : count child (B.succ acc))\n (left right : count right (count left (B.succ acc)))\n tree)\n\nsize tree = count tree 0\n\nsame a b = (B.triage\n (B.triage B.true (ignored : B.false) (ignored ignored2 : B.false) b)\n (x : B.triage B.false (y : same x y) (ignored ignored2 : B.false) b)\n (x y : B.triage B.false (ignored : B.false) (u v : B.and? (same x u) (same y v)) b)\n a)\n", - "sourceSha256": "0dd0bb5444662200cf3556dd7a81e65570b5d3b34d4b3e6b17e6d9c36d3d1114", + "source": "!import bd2c14d6db6b69308a5252a8e839705a55d30e815f012900b094315263e08d81 as B\n!export shape\n!export size\n!export same\n\n-- Inspect data OR compiled program trees, not source text.\n-- Try shape (t t t), size (t t t), or same (t t) (t t).\n-- Also try shape (x : x): functions are inspectable trees too.\n-- triage dispatches directly on Leaf, Stem and Fork without visiting children.\n-- Arithmetic and Booleans come from base; traversal is the subject of this demo.\nshape tree = B.triage \"Leaf\" (child : \"Stem\") (left right : \"Fork\") tree\n\n-- Count every constructor occurrence, including repeated shared branches.\n-- This is expanded tree size, not allocated nodes or source-code length.\ncount tree acc = B.triage\n (B.succ acc)\n (child : count child <| B.succ acc)\n (left right : B.succ acc |> count left |> count right)\n tree\n\nsize tree = count tree 0\n\nsame a b = B.triage\n (B.triage B.true (ignored : B.false) (ignored ignored2 : B.false) b)\n (x : B.triage B.false (y : same x y) (ignored ignored2 : B.false) b)\n (x y : B.triage B.false (ignored : B.false) (u v : B.and? (same x u) (same y v)) b)\n a\n", + "sourceSha256": "08c2b341d8947c9e46062dfa63f9d8810eb15620de499caf0891e313c5152cef", "export": "size", "arguments": [ { @@ -469,8 +469,8 @@ "title": "Shipping policies", "category": "Practical Examples", "hash": "4aa9ce9f19dfce87ecb3f6bd0a2e881dafcbcd3d2e4b4075befbb378d80833ea", - "source": "!import bd2c14d6db6b69308a5252a8e839705a55d30e815f012900b094315263e08d81 *\n!export v1\n!export v2\n\n-- Shipping policy: arguments are destination, cart subtotal in cents, grams.\n-- Destinations: domestic, regional, international. Grams: 1..5000.\n-- Select v1/v2 with the same cart: domestic free shipping changes from $75 to $100.\n-- Otherwise domestic costs $4.99/$5.99, regional $9.99, international $19.99.\n-- Packages above 1kg add $2.50. Subtotals are bounded to $10,000.\n-- The bundle hash + export pins the policy used to reproduce a quote later.\n-- Records use [fieldName tag value]: 0 = text, 1 = natural, 2 = Boolean.\n-- Base supplies canonical-natural checks, arithmetic and Booleans.\n\nfailure message = [[\"status\" 0 \"error\"] [\"message\" 0 message]]\n\nbaseRate 1 \"domestic\" = 499\nbaseRate _ \"domestic\" = 599\nbaseRate _ \"regional\" = 999\nbaseRate _ _ = 1999\n\npaidRate version zone grams = case lte_? grams 1000 of\n ^true = baseRate version zone\n _ = add 250 (baseRate version zone)\n\nfreeThreshold 1 = 7500\nfreeThreshold _ = 10000\n\namount version zone subtotal grams = case and? (equal? zone \"domestic\") (lte_? (freeThreshold version) subtotal) of\n ^true = 0\n _ = paidRate version zone grams\n\nquote version zone subtotal grams = case and? (isNat? subtotal) (isNat? grams) of\n ^true = (case or? (equal? zone \"domestic\") (or? (equal? zone \"regional\") (equal? zone \"international\")) of\n ^true = (case and? (lte_? subtotal 1000000) (and? (lte_? 1 grams) (lte_? grams 5000)) of\n ^true = [[\"status\" 0 \"ok\"] [\"policyVersion\" 1 version]\n [\"destination\" 0 zone] [\"shippingCents\" 1 (amount version zone subtotal grams)]]\n _ = failure \"Subtotal must be <=1000000 cents; grams must be 1..5000.\")\n _ = failure \"Unknown destination.\")\n _ = failure \"Subtotal and grams must be canonical natural numbers.\"\n\nv1 zone subtotal grams = quote 1 zone subtotal grams\nv2 zone subtotal grams = quote 2 zone subtotal grams\n", - "sourceSha256": "d6d9378ab39733a8aabaf4f6a25851350e99fa81607bf05a64266301e2712f5a", + "source": "!import bd2c14d6db6b69308a5252a8e839705a55d30e815f012900b094315263e08d81 *\n!export v1\n!export v2\n\n-- Shipping policy: arguments are destination, cart subtotal in cents, grams.\n-- Destinations: domestic, regional, international. Grams: 1..5000.\n-- Select v1/v2 with the same cart: domestic free shipping changes from $75 to $100.\n-- Otherwise domestic costs $4.99/$5.99, regional $9.99, international $19.99.\n-- Packages above 1kg add $2.50. Subtotals are bounded to $10,000.\n-- The bundle hash + export pins the policy used to reproduce a quote later.\n-- Records use [fieldName tag value]: 0 = text, 1 = natural, 2 = Boolean.\n-- Base supplies canonical-natural checks, arithmetic and Booleans.\n\nfailure message = [[\"status\" 0 \"error\"] [\"message\" 0 message]]\n\nbaseRate 1 \"domestic\" = 499\nbaseRate _ \"domestic\" = 599\nbaseRate _ \"regional\" = 999\nbaseRate _ _ = 1999\n\npaidRate version zone grams = case lte_? grams 1000 of\n ^true = baseRate version zone\n _ = add 250 <| baseRate version zone\n\nfreeThreshold 1 = 7500\nfreeThreshold _ = 10000\n\namount version zone subtotal grams = case and? (equal? zone \"domestic\") (lte_? (freeThreshold version) subtotal) of\n ^true = 0\n _ = paidRate version zone grams\n\nquote version zone subtotal grams = case and? (isNat? subtotal) (isNat? grams) of\n ^true = case or? (equal? zone \"domestic\") (or? (equal? zone \"regional\") (equal? zone \"international\")) of\n ^true = case and? (lte_? subtotal 1000000) (and? (lte_? 1 grams) (lte_? grams 5000)) of\n ^true = [[\"status\" 0 \"ok\"] [\"policyVersion\" 1 version]\n [\"destination\" 0 zone] [\"shippingCents\" 1 (amount version zone subtotal grams)]]\n _ = failure \"Subtotal must be <=1000000 cents; grams must be 1..5000.\"\n _ = failure \"Unknown destination.\"\n _ = failure \"Subtotal and grams must be canonical natural numbers.\"\n\nv1 zone subtotal grams = quote 1 zone subtotal grams\nv2 zone subtotal grams = quote 2 zone subtotal grams\n", + "sourceSha256": "dbbb53a9da0918c294f8d3b07768a756cae7d6beafb3c780caba3e6d4c0f7d4a", "export": "v1", "arguments": [ { @@ -533,8 +533,8 @@ "title": "Event adapters", "category": "Practical Examples", "hash": "8b51693c63658d59c8083ec1c95cf1f6565ce5799791f540e92caf508613c9fb", - "source": "!import bd2c14d6db6b69308a5252a8e839705a55d30e815f012900b094315263e08d81 *\n!import 3f70d95cf1bae0928ee89acd2a9e0cdd8287796efae32a9f08d33e3dd0149c55 as A\n!export vendorA\n!export vendorB\n\n-- Event adapter: two producers, one consumer-facing record schema.\n-- vendorA accepts [eventName customer totalCents]. eventName is purchase/refund.\n-- vendorB accepts [customer refunded totalCents]. refunded is a Boolean.\n-- Both return schemaVersion, eventType, customer and amountCents.\n-- Try the two exports: their presets describe the same order.created event.\n-- A producer can publish the adapter hash alongside its event schema.\n-- Records use [fieldName tag value]: 0 = text, 1 = natural, 2 = Boolean.\n-- Base supplies arithmetic/Booleans; A.hostString? checks Unicode scalar text.\n\nfailure message = [[\"status\" 0 \"error\"] [\"message\" 0 message]]\n\nnormalized event customer cents = case A.hostString? customer of\n ^true = (case and? (isNat? cents) (lte_? cents 1000000) of\n ^true = [[\"schemaVersion\" 1 1] [\"eventType\" 0 event]\n [\"customer\" 0 customer] [\"amountCents\" 1 cents]]\n _ = failure \"amountCents must be a canonical natural <=1000000.\")\n _ = failure \"customer must be scalar text.\"\n\nfromA \"purchase\" customer cents = normalized \"order.created\" customer cents\nfromA \"refund\" customer cents = normalized \"order.refunded\" customer cents\nfromA _ _ _ = failure \"Unknown vendor A event.\"\n\nfromB customer ^true cents = normalized \"order.refunded\" customer cents\nfromB customer ^false cents = normalized \"order.created\" customer cents\nfromB _ _ _ = failure \"refunded must be a canonical Boolean.\"\n\n-- Preserve list-shape diagnostics without inspecting any field before dispatch.\nunpack handler (t _) = failure \"Expected a list.\"\nunpack handler [_ | (t _)] = failure \"Expected a list.\"\nunpack handler [_ | [_ | (t _)]] = failure \"Expected a list.\"\nunpack handler [a b c] = handler a b c\nunpack _ _ = failure \"Expected exactly three fields.\"\n\nvendorA values = unpack fromA values\nvendorB values = unpack fromB values\n", - "sourceSha256": "ca11d9a7e20bfe228545c43f50aed57089c020eead516e23b67d909fae8923de", + "source": "!import bd2c14d6db6b69308a5252a8e839705a55d30e815f012900b094315263e08d81 *\n!import 3f70d95cf1bae0928ee89acd2a9e0cdd8287796efae32a9f08d33e3dd0149c55 as A\n!export vendorA\n!export vendorB\n\n-- Event adapter: two producers, one consumer-facing record schema.\n-- vendorA accepts [eventName customer totalCents]. eventName is purchase/refund.\n-- vendorB accepts [customer refunded totalCents]. refunded is a Boolean.\n-- Both return schemaVersion, eventType, customer and amountCents.\n-- Try the two exports: their presets describe the same order.created event.\n-- A producer can publish the adapter hash alongside its event schema.\n-- Records use [fieldName tag value]: 0 = text, 1 = natural, 2 = Boolean.\n-- Base supplies arithmetic/Booleans; A.hostString? checks Unicode scalar text.\n\nfailure message = [[\"status\" 0 \"error\"] [\"message\" 0 message]]\n\nnormalized event customer cents = case A.hostString? customer of\n ^true = case and? (isNat? cents) (lte_? cents 1000000) of\n ^true = [[\"schemaVersion\" 1 1] [\"eventType\" 0 event]\n [\"customer\" 0 customer] [\"amountCents\" 1 cents]]\n _ = failure \"amountCents must be a canonical natural <=1000000.\"\n _ = failure \"customer must be scalar text.\"\n\nfromA \"purchase\" customer cents = normalized \"order.created\" customer cents\nfromA \"refund\" customer cents = normalized \"order.refunded\" customer cents\nfromA _ _ _ = failure \"Unknown vendor A event.\"\n\nfromB customer ^true cents = normalized \"order.refunded\" customer cents\nfromB customer ^false cents = normalized \"order.created\" customer cents\nfromB _ _ _ = failure \"refunded must be a canonical Boolean.\"\n\n-- Preserve list-shape diagnostics without inspecting any field before dispatch.\nunpack handler (t _) = failure \"Expected a list.\"\nunpack handler [_ | (t _)] = failure \"Expected a list.\"\nunpack handler [_ | [_ | (t _)]] = failure \"Expected a list.\"\nunpack handler [a b c] = handler a b c\nunpack _ _ = failure \"Expected exactly three fields.\"\n\nvendorA values = unpack fromA values\nvendorB values = unpack fromB values\n", + "sourceSha256": "08a7857e4cb6ad2e4c1c9972f3ce05f26b810af8481ca974b91b1819bd4718e7", "export": "vendorA", "arguments": [ { @@ -612,8 +612,8 @@ "title": "Registration validator", "category": "Practical Examples", "hash": "679733e17a86cc5e3f5282ca824cad4c9c0febd260e51f6a87e16dd14c02c45a", - "source": "!import bd2c14d6db6b69308a5252a8e839705a55d30e815f012900b094315263e08d81 *\n!import 3f70d95cf1bae0928ee89acd2a9e0cdd8287796efae32a9f08d33e3dd0149c55 as A\n!export main\n\n-- Registration validator: name, email, age, termsAccepted are separate arguments.\n-- Returns one field-specific message per input, plus an accepted Boolean.\n-- Name must be nonempty scalar text. Age must be a natural from 18 to 120.\n-- Email uses a deliberately small rule: nonempty text containing @ and a dot.\n-- Terms must be the canonical true Boolean. This is a teaching policy, not SMTP validation.\n-- Browser and server can pin this same executable instead of duplicating rules.\n-- Records use [fieldName tag value]: 0 = text, 1 = natural, 2 = Boolean.\n-- Base supplies arithmetic/Booleans; A.hostString? checks Unicode scalar text.\n\nnameMessage name = case A.hostString? name of\n ^true = (case name of\n [] = \"Name is required.\"\n _ = \"\")\n _ = \"Name must be scalar text.\"\n\nemailMessage email = case A.hostString? email of\n ^true = (case and? (contains? \"@\" email) (contains? \".\" email) of\n ^true = \"\"\n _ = \"Email must contain @ and a dot.\")\n _ = \"Email must be scalar text.\"\n\nageMessage age = case isNat? age of\n ^true = (case and? (lte_? 18 age) (lte_? age 120) of\n ^true = \"\"\n _ = \"Age must be from 18 to 120.\")\n _ = \"Age must be a canonical natural.\"\n\ntermsMessage ^true = \"\"\ntermsMessage _ = \"Accept the terms.\"\n\nreport name email age terms = [\n [\"accepted\" 2 (and? (equal? name \"\") (and? (equal? email \"\") (and? (equal? age \"\") (equal? terms \"\"))))]\n [\"nameError\" 0 name] [\"emailError\" 0 email]\n [\"ageError\" 0 age] [\"termsError\" 0 terms]]\n\nmain name email age terms = report (nameMessage name) (emailMessage email) (ageMessage age) (termsMessage terms)\n", - "sourceSha256": "531866c6b2e7e42ecbd4ae285c502b59321ad31fd2b82b36d8a139938592ac31", + "source": "!import bd2c14d6db6b69308a5252a8e839705a55d30e815f012900b094315263e08d81 *\n!import 3f70d95cf1bae0928ee89acd2a9e0cdd8287796efae32a9f08d33e3dd0149c55 as A\n!export main\n\n-- Registration validator: name, email, age, termsAccepted are separate arguments.\n-- Returns one field-specific message per input, plus an accepted Boolean.\n-- Name must be nonempty scalar text. Age must be a natural from 18 to 120.\n-- Email uses a deliberately small rule: nonempty text containing @ and a dot.\n-- Terms must be the canonical true Boolean. This is a teaching policy, not SMTP validation.\n-- Browser and server can pin this same executable instead of duplicating rules.\n-- Records use [fieldName tag value]: 0 = text, 1 = natural, 2 = Boolean.\n-- Base supplies arithmetic/Booleans; A.hostString? checks Unicode scalar text.\n\nnameMessage name = case A.hostString? name of\n ^true = case name of\n [] = \"Name is required.\"\n _ = \"\"\n _ = \"Name must be scalar text.\"\n\nemailMessage email = case A.hostString? email of\n ^true = case and? (contains? \"@\" email) (contains? \".\" email) of\n ^true = \"\"\n _ = \"Email must contain @ and a dot.\"\n _ = \"Email must be scalar text.\"\n\nageMessage age = case isNat? age of\n ^true = case and? (lte_? 18 age) (lte_? age 120) of\n ^true = \"\"\n _ = \"Age must be from 18 to 120.\"\n _ = \"Age must be a canonical natural.\"\n\ntermsMessage ^true = \"\"\ntermsMessage _ = \"Accept the terms.\"\n\nreport name email age terms = [\n [\"accepted\" 2 (and? (equal? name \"\") (and? (equal? email \"\") (and? (equal? age \"\") (equal? terms \"\"))))]\n [\"nameError\" 0 name] [\"emailError\" 0 email]\n [\"ageError\" 0 age] [\"termsError\" 0 terms]]\n\nmain name email age terms = report (nameMessage name) (emailMessage email) (ageMessage age) (termsMessage terms)\n", + "sourceSha256": "b15d4e60a34d839b06c813fa439ea063abc4a771bc2d0dd24cd928eb21ca7e29", "export": "main", "arguments": [ { @@ -666,8 +666,8 @@ "title": "Profile migrations", "category": "Practical Examples", "hash": "730aeb8203ff504b7483999a6477a292b10871f82e94a77d3d5f7b49ecc3b6b3", - "source": "!import bd2c14d6db6b69308a5252a8e839705a55d30e815f012900b094315263e08d81 *\n!import 3f70d95cf1bae0928ee89acd2a9e0cdd8287796efae32a9f08d33e3dd0149c55 as A\n!export v1\n!export v2\n\n-- Archived profile v0: [name email]. v1: adds schemaVersion and displayName.\n-- v2: also supplies marketingOptIn=false; existing data is preserved.\n-- Select v1/v2 with the same input to compare the two target schemas.\n-- A migration receipt can record the input identity, executable hash/export,\n-- output identity and wire schema. Running this demo stays entirely local.\n-- Records use [fieldName tag value]: 0 = text, 1 = natural, 2 = Boolean.\n-- Base supplies arithmetic/Booleans; A.hostString? checks Unicode scalar text.\n\nfailure message = [[\"status\" 0 \"error\"] [\"message\" 0 message]]\n\nmigrate version name email = case and? (A.hostString? name) (A.hostString? email) of\n ^true = (case version of\n 1 = [[\"schemaVersion\" 1 1] [\"displayName\" 0 name] [\"email\" 0 email]]\n _ = [[\"schemaVersion\" 1 2] [\"displayName\" 0 name] [\"email\" 0 email]\n [\"marketingOptIn\" 2 false]])\n _ = failure \"Name and email must be scalar text.\"\n\nprofile _ (t _) = failure \"Expected a list.\"\nprofile _ [_ | (t _)] = failure \"Expected a list.\"\nprofile version [name email] = migrate version name email\nprofile _ _ = failure \"Expected [name email].\"\n\nv1 values = profile 1 values\nv2 values = profile 2 values\n", - "sourceSha256": "66ee7bc1a9005b5f1d12f168b7866231ad7f523cf34f52b63958cb155a5c49b5", + "source": "!import bd2c14d6db6b69308a5252a8e839705a55d30e815f012900b094315263e08d81 *\n!import 3f70d95cf1bae0928ee89acd2a9e0cdd8287796efae32a9f08d33e3dd0149c55 as A\n!export v1\n!export v2\n\n-- Archived profile v0: [name email]. v1: adds schemaVersion and displayName.\n-- v2: also supplies marketingOptIn=false; existing data is preserved.\n-- Select v1/v2 with the same input to compare the two target schemas.\n-- A migration receipt can record the input identity, executable hash/export,\n-- output identity and wire schema. Running this demo stays entirely local.\n-- Records use [fieldName tag value]: 0 = text, 1 = natural, 2 = Boolean.\n-- Base supplies arithmetic/Booleans; A.hostString? checks Unicode scalar text.\n\nfailure message = [[\"status\" 0 \"error\"] [\"message\" 0 message]]\n\nmigrate version name email = case and? (A.hostString? name) (A.hostString? email) of\n ^true = case version of\n 1 = [[\"schemaVersion\" 1 1] [\"displayName\" 0 name] [\"email\" 0 email]]\n _ = [[\"schemaVersion\" 1 2] [\"displayName\" 0 name] [\"email\" 0 email]\n [\"marketingOptIn\" 2 false]]\n _ = failure \"Name and email must be scalar text.\"\n\nprofile _ (t _) = failure \"Expected a list.\"\nprofile _ [_ | (t _)] = failure \"Expected a list.\"\nprofile version [name email] = migrate version name email\nprofile _ _ = failure \"Expected [name email].\"\n\nv1 values = profile 1 values\nv2 values = profile 2 values\n", + "sourceSha256": "a9270baef5cb5102c895c9f23434ebc82c87eebfa16c25cb415b06b4636a279e", "export": "v1", "arguments": [ { @@ -732,10 +732,11 @@ "id": "parser", "preparation": "native", "environment": "empty", + "category": "Language & Runtime Explorations", "title": "Parser combinators", "hash": "355e41506f39e05da8c8a72a68aa810a486e062480322bac11af67e86980520e", - "source": "!import 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 *\n!import 14282088469cc420dd014700da06998f6bb8dcf990fc885a464c0a1e1858e20d *\n!import 7f87549d587fa8c3be88af0ea988db3adcc3b35f1ffb48973553491b075614db as N\n!export parseNames\n!export parsePrefix\n\n-- Lowercase names separated by commas. Try \"red,green\", \"red,,blue\",\n-- \"red,\" and \"red green\". A comma commits to another name.\n-- parseNames requires the entire input; parsePrefix exposes any remainder.\n-- Edit the parser or labels below; valid edits compile locally.\n-- Imports pin complete library interfaces, fetched only when compiling.\nnameParser = parserLabel \"lowercase name\" (parserSome (parserSatisfy (c : N.inRange c 97 122)))\ncommaParser = parserThen (parserExpect 44) parserCommit\nnamesPrefix = parserSepBy1 nameParser commaParser\nnamesComplete = parserBefore namesPrefix (parserLabel \"end of input\" parserEof)\n\nreport reply = (parserMatchReply\n (diagnostic rest consumed committed : [\n [\"status\" 0 \"error\"]\n [\"expected\" 0 (parserDiagnosticExpected diagnostic)]\n [\"remaining\" 0 rest]\n [\"consumed\" 2 consumed]\n [\"committed\" 2 committed]])\n (names rest consumed committed : [\n [\"status\" 0 \"ok\"]\n [\"names\" 0 (intercalate \", \" names)]\n [\"count\" 1 (length names)]\n [\"remaining\" 0 rest]\n [\"consumed\" 2 consumed]\n [\"committed\" 2 committed]])\n reply)\nparseNames text = report (namesComplete text)\nparsePrefix text = report (namesPrefix text)\n", - "sourceSha256": "18aa0a464dabb595749abdab5edb1bb11c4356c0e753cf0985a644901bb5c241", + "source": "!import 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 *\n!import 14282088469cc420dd014700da06998f6bb8dcf990fc885a464c0a1e1858e20d *\n!import 7f87549d587fa8c3be88af0ea988db3adcc3b35f1ffb48973553491b075614db as N\n!export parseNames\n!export parsePrefix\n\n-- Lowercase names separated by commas. Try \"red,green\", \"red,,blue\",\n-- \"red,\" and \"red green\". A comma commits to another name.\n-- parseNames requires the entire input; parsePrefix exposes any remainder.\n-- Edit the parser or labels below; valid edits compile locally.\n-- Imports pin complete library interfaces, fetched only when compiling.\nnameParser = parserSatisfy (c : N.inRange c 97 122)\n |> parserSome\n |> parserLabel \"lowercase name\"\ncommaParser = parserThen (parserExpect 44) parserCommit\nnamesPrefix = parserSepBy1 nameParser commaParser\nnamesComplete = parserBefore namesPrefix <| parserLabel \"end of input\" parserEof\n\nreport reply = parserMatchReply\n (diagnostic rest consumed committed : [\n [\"status\" 0 \"error\"]\n [\"expected\" 0 (parserDiagnosticExpected diagnostic)]\n [\"remaining\" 0 rest]\n [\"consumed\" 2 consumed]\n [\"committed\" 2 committed]])\n (names rest consumed committed : [\n [\"status\" 0 \"ok\"]\n [\"names\" 0 (intercalate \", \" names)]\n [\"count\" 1 (length names)]\n [\"remaining\" 0 rest]\n [\"consumed\" 2 consumed]\n [\"committed\" 2 committed]])\n reply\nparseNames text = namesComplete text |> report\nparsePrefix text = namesPrefix text |> report\n", + "sourceSha256": "9c005993cf43c07ec5c7e4f7f420b2f63c66e605d9522ab4b7e044de5e6cb8df", "export": "parseNames", "arguments": [ { @@ -766,17 +767,17 @@ "output": "record", "mode": "pure" } - }, - "category": "Language & Runtime Explorations" + } }, { "id": "lexer", "preparation": "native", "environment": "empty", + "category": "Language & Runtime Explorations", "title": "Located lexer scans", "hash": "e756a481b3056a2e76f50316ccf77bfab8b15727b7bec899580c2eb919e668b2", - "source": "!import 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 *\n!import 14282088469cc420dd014700da06998f6bb8dcf990fc885a464c0a1e1858e20d *\n!import 816df1a32853750a1254112aff8ae8c55ca86bf70e809d226969ab1d43a6688b *\n!import 7f87549d587fa8c3be88af0ea988db3adcc3b35f1ffb48973553491b075614db as N\n!export scanWord\n!export scanWhitespace\n\n-- Positioned prefix scans, not whole-input parsers. The remainder begins\n-- at the first nonmatching character. Positions count source characters,\n-- not UTF-8 bytes or display columns: only LF advances the line.\n-- Edit a predicate below and evaluate scanWord \"hello,world\" to compare.\n-- scanWhitespace accepts space, LF and tab, but deliberately not CR.\nreport reply = (let\n payload = parserReplyPayload reply\n end = snd payload\n in [\n [\"matched\" 0 (fst payload)]\n [\"remaining\" 0 (parserReplyRest reply)]\n [\"line\" 1 (lexerPositionLine end)]\n [\"column\" 1 (lexerPositionColumn end)]\n [\"offset\" 1 (lexerPositionOffset end)]\n [\"consumed\" 2 (parserReplyConsumed reply)]])\n\nscan predicate text = report (lexerMapScan reverse\n (lexerScanWhile text lexerStart [] predicate (state character : pair character state)))\nscanWord text = scan (character : N.inRange character 97 122) text\nscanWhitespace text = scan (character : or? (equal? character 32)\n (or? (equal? character 9) (equal? character 10))) text\n", - "sourceSha256": "ec68af4102c16ef56be01e78a3288bea57af71ca57ab35374a0d12005b5a10a1", + "source": "!import 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 *\n!import 14282088469cc420dd014700da06998f6bb8dcf990fc885a464c0a1e1858e20d *\n!import 816df1a32853750a1254112aff8ae8c55ca86bf70e809d226969ab1d43a6688b *\n!import 7f87549d587fa8c3be88af0ea988db3adcc3b35f1ffb48973553491b075614db as N\n!export scanWord\n!export scanWhitespace\n\n-- Positioned prefix scans, not whole-input parsers. The remainder begins\n-- at the first nonmatching character. Positions count source characters,\n-- not UTF-8 bytes or display columns: only LF advances the line.\n-- Edit a predicate below and evaluate scanWord \"hello,world\" to compare.\n-- scanWhitespace accepts space, LF and tab, but deliberately not CR.\nreport reply = let\n payload = parserReplyPayload reply\n end = snd payload\n in [\n [\"matched\" 0 (fst payload)]\n [\"remaining\" 0 (parserReplyRest reply)]\n [\"line\" 1 (lexerPositionLine end)]\n [\"column\" 1 (lexerPositionColumn end)]\n [\"offset\" 1 (lexerPositionOffset end)]\n [\"consumed\" 2 (parserReplyConsumed reply)]]\n\nscan predicate text = lexerScanWhile text lexerStart [] predicate (state character : pair character state)\n |> lexerMapScan reverse\n |> report\nscanWord text = scan (character : N.inRange character 97 122) text\nscanWhitespace text = scan (character : or? (equal? character 32)\n (or? (equal? character 9) (equal? character 10))) text\n", + "sourceSha256": "2a441d6d881acd6e34cd0caa8179ee1afefbce68c2e5ff1e44fb1768f69eeb3c", "export": "scanWord", "arguments": [ { @@ -807,7 +808,6 @@ "output": "record", "mode": "pure" } - }, - "category": "Language & Runtime Explorations" + } } ] diff --git a/ext/demo-site/compiler-reference.v1 b/ext/demo-site/compiler-reference.v1 @@ -11,13 +11,13 @@ module source.build source_build lib/source/build.tri 5c24cc853df42e433916b1528f module parser parser lib/parser.tri 31e8c679e086bdf9b68e05a4bb71fd413e66e53fd93b2e4b4a806930020b36e4 module source.order source_order lib/source/order.tri ec97f34c89ead701af75053ea340ead1bb0fda13d83b474ca760c3aa359970fa module source.compile source_compile lib/source/compile.tri 3764484ae723d4311cf04b769251badf7f7a190d9480389303847be1ce665bb9 -module source.program source_program lib/source/program.tri 67cd6e68d939e49922b1718e0164854a01e5c85023a45bfab485c71c4dde55b1 +module source.program source_program lib/source/program.tri 7a99fcc8da4c502ff67bc723b3ef317409a84f608c607cfa99331dd30245845a module source.ast source_ast lib/source/ast.tri b6d05cace61c04032ea39a858dedc7482988dbb3ed47581a9a3239094263d314 module base base lib/base.tri 7ba2537cc4ec0571a7aa8a02557551245ca04f5bc08d9f9c1eb4d2606ec67b37 module bytes bytes lib/bytes.tri 6d057be42bc16788a34ce80cca7cb97251cf7dbbae8fd57100a31206ab3dd2a0 module conversions conversions lib/conversions.tri fd93454ad6cf7b0d906f367bed9a679f7f7e73cf424e33d8a62e63b023db6522 module source.lexer source_lexer lib/source/lexer.tri 94ee3a70dbed59015891f7f5c2ef588d64f1a885218edc35eed98d96d85fd11b -module source.parser source_parser lib/source/parser.tri 00d64064122dace90dd8fa8535e4f9a76450bc61de572ae40f4a05692aeac9a0 +module source.parser source_parser lib/source/parser.tri 23c8142e9629f029ae22b7c0b377bbfb69e4f9ecc5ce452094c47d063a49c9d6 module source.core source_core lib/source/core.tri b132ca49c22098c8a5d638517d701ad8141028d9389594ac2134240d240a2637 module source.lock source_lock lib/source/lock.tri 31ffd58166bf861e82da0a90594cfb9c6c12e19baa51d5166fe0e4414d24af94 module source.bundle source_bundle lib/source/bundle.tri 3fedb41000f22609b0bdab8fb222175d1347202eceabe7bdb983bc28b3258627 @@ -27,4 +27,4 @@ module source.pattern source_pattern lib/source/pattern.tri b27f1eac18cbe8ad80cd module source.equations source_equations lib/source/equations.tri 825f175f5c6dd56e103b94e924283acf5913cbc4554fb42fc07a034f460d2076 module source.stable source_stable lib/source/stable.tri b407662fec9436bfb7cc06eed2c14961174c6fa19863413ffc74d58ef72c5431 module math.native native_math lib/math/native.tri e9d0b87564d13695bef695c552e9707710d9147877f9d9dc5282c7335664cc57 -bundle 110c5740b61f91f8a6dc8926541fd2ca89cebe8771191b13ed284122964b7c2b +bundle aa29656c146d2fc239d27da869498670c401cf344516314d06b7e5634c02d6f1 diff --git a/ext/demo-site/compiler.json b/ext/demo-site/compiler.json @@ -1,8 +1,8 @@ { "schema": 1, - "hash": "9c61d59cd76036000691da6ff5e2e9f641cf5c614b424d7280e052cfcb716e75", + "hash": "91f78730b3623d019e33f96e9e2712d61b04837b21ef3eccec3071ac9260944d", "export": "source_unit.compileStableModuleDefinitions", "backend": "stable", "reference": "test/fixtures/compiler-library.arboricx", - "referenceCommit": "0cbd8346580b9d86ebd6e266c84a2de677e45d57" + "referenceCommit": "b11bc756c6e1dea2e52b60c26314c9d304348ca5" } diff --git a/ext/demo-site/demos.json b/ext/demo-site/demos.json @@ -1,11 +1,11 @@ { "schema": 1, "backend": "stable", - "nativeCompilerSha256": "d70de875988dfa309f2c167992928866f88b08af351918b8c7b5d88c541c6e94", + "nativeCompilerSha256": "bd9b236492bb6359a6cc4dcd7c988ac2bf64abea4a1cc1c7233d1d023ca0dd1e", "compilerExport": "source_unit.compileStableModuleDefinitions", - "compilerBundleSha256": "9c61d59cd76036000691da6ff5e2e9f641cf5c614b424d7280e052cfcb716e75", - "compilerManifest": "17df7d4ef56684d423ca59d5f4c4d03aa73b24c5579e00f8719e2f06641c39e6", - "hostSha256": "c1eea492839b4425f285dd3a0765bbb8bdc323d2320a2181760d34180ee15073", + "compilerBundleSha256": "91f78730b3623d019e33f96e9e2712d61b04837b21ef3eccec3071ac9260944d", + "compilerManifest": "c3d5c2c0efdac3641467968669031ba1bc21883db7307772a594c8dc04ef1582", + "hostSha256": "8661383d0db249c34ac2a4b33ad606d15c416446f367df905b9da7bbf23fa15a", "demos": { "names-values": { "demandCases": [], @@ -183,8 +183,8 @@ }, "language-reference": { "demandCases": [], - "source": "!import bd2c14d6db6b69308a5252a8e839705a55d30e815f012900b094315263e08d81 *\n!import 7f87549d587fa8c3be88af0ea988db3adcc3b35f1ffb48973553491b075614db as Math\n!export *\n\n-- The open base import supplies contract helpers and unqualified names.\n-- Math is a qualified import: its names start with Math.\n-- A syntax sampler: independent examples, rather than one application.\n-- Start with answer / Natural number: 42. Choose a definition for its preset.\n-- Full contracts: follow For AI assistants in the footer to Language features.\n-- Each comment below gives an expression and its interpretation.\n\n-- Names, lambdas, named parameters, application and grouping.\nidentity = (x : x)\nfirst a b = a\nanswer = identity (first 42 7)\n-- identity \"hello\" / Text -> hello; first 7 9 / Natural number -> 7.\n\n-- The kernel constructors: Leaf, Stem and Fork. Use tricu for arbitrary trees.\nleaf = t\nshapes = [t (t t) (t t t)]\n-- leaf / tricu -> t; shapes / tricu shows a list containing all three shapes.\nliterals = [\"hello\" 42 [1 2 3]]\n-- literals / tricu shows mixed values. Strings support Unicode; names are ASCII.\n-- Lists use spaces. Group application items: [(identity 1) (identity 2)].\n\n-- Partial application: provide one of a function's arguments now.\naddTwo = Math.add 2\n-- addTwo 5 / Natural number -> 7.\n\n-- Ordered equations: literals, a qualified pin, exact lists, cons and wildcard.\n-- A pin (^true) compares against an existing value.\ndescribe 7 = \"seven\"\ndescribe \"hi\" = \"greeting\"\ndescribe ^true = \"true\"\ndescribe [a b] = \"two items\"\ndescribe [head | tail] = \"nonempty list\"\ndescribe [] = \"empty list\"\ndescribe _ = \"other\"\n-- Try each with Text: describe 7, describe \"hi\", describe (t t),\n-- describe [4 5], describe [1 2 3], describe [], describe (t (t t)).\n\n-- Pair patterns and whole-value capture. Construct a pair with t left right.\nkeep whole{left, right} = whole\nkeep _ = t\n-- keep (t t t) / tricu -> (t t t); keep (t t) / tricu -> t.\n\n-- Plain local bindings are sequential and nonrecursive.\nlocal x = (let\n double n = Math.multiply n 2\n in double x)\nviaWhere x = step x where step y = Math.add y 1\n-- local 6 -> 12; viaWhere 6 -> 7, both Natural number.\n\n-- Direct self-recursion, with a final fallback equation.\ncopy [] = []\ncopy [head | tail] = t head (copy tail)\ncopy _ = []\n-- copy [1 2 3] / Bytes -> [1, 2, 3]. Bytes displays naturals from 0 through 255.\n-- Use tricu for a general list; copy [] and copy (t t) both return [].\n\n-- case examines an intermediate value; arms align and finish with a fallback.\nfirstOr fallback xs = case xs of\n [head | _] = head\n _ = fallback\n-- firstOr 99 [5] -> 5; firstOr 99 [] -> 99, both Natural number.\n\n-- Local self-recursion is explicit: let rec (also available with where rec).\nlocalCopy xs = (let rec\n walk [] = []\n walk [head | tail] = t head (walk tail)\n walk _ = []\n in walk xs)\n-- localCopy [4 5] / Bytes -> [4, 5]; localCopy [] -> [].\n\n-- Parameter and result contracts check values at runtime.\nchecked x@nat? =@nat? x\n-- checked 42 / Natural number -> 42. A failed contract produces a Result.\n-- Keep annotations on plain function heads; see Contracts for Result handlers.\n\n-- Pipes and do use an explicit sequencing operator. Here a lambda passes a value\n-- to the next continuation. It is ordinary pure code; IO uses IO.bind instead.\nsequenced input = (do (value next : next value)\n value <- input |> identity\n identity value\n identity <| value)\n-- sequenced 9 / Natural number -> 9.\n-- Both pipe chains associate left-to-right; group nested applications explicitly.\n\n|- Block comments are another way to annotate source. They do not nest. -|\n-- !export * selects local definitions. Use !export name for a smaller interface.\n-- An open import uses !import MANIFEST *; a reexport uses !export * from MANIFEST.\n-- Replace MANIFEST with the full identity from Add import or the library guide.\n-- Reexports select the public interface; imports introduce names into scope.\n-- See Conversation for IO, and the docs for Maybe/Result/parser protocols.\n", - "sourceSha256": "5d4035e52ef2f9f85278d6431fc5be43df4e7badce7393930237fc1deb1c4fb8", + "source": "!import bd2c14d6db6b69308a5252a8e839705a55d30e815f012900b094315263e08d81 *\n!import 7f87549d587fa8c3be88af0ea988db3adcc3b35f1ffb48973553491b075614db as Math\n!export *\n\n-- The open base import supplies contract helpers and unqualified names.\n-- Math is a qualified import: its names start with Math.\n-- A syntax sampler: independent examples, rather than one application.\n-- Start with answer / Natural number: 42. Choose a definition for its preset.\n-- Full contracts: follow For AI assistants in the footer to Language features.\n-- Each comment below gives an expression and its interpretation.\n\n-- Names, lambdas, named parameters, application and grouping.\nidentity = (x : x)\nfirst a b = a\nanswer = identity (first 42 7)\n-- identity \"hello\" / Text -> hello; first 7 9 / Natural number -> 7.\n\n-- The kernel constructors: Leaf, Stem and Fork. Use tricu for arbitrary trees.\nleaf = t\nshapes = [t (t t) (t t t)]\n-- leaf / tricu -> t; shapes / tricu shows a list containing all three shapes.\nliterals = [\"hello\" 42 [1 2 3]]\n-- literals / tricu shows mixed values. Strings support Unicode; names are ASCII.\n-- Lists use spaces. Group application items: [(identity 1) (identity 2)].\n\n-- Partial application: provide one of a function's arguments now.\naddTwo = Math.add 2\n-- addTwo 5 / Natural number -> 7.\n\n-- Ordered equations: literals, a qualified pin, exact lists, cons and wildcard.\n-- A pin (^true) compares against an existing value.\ndescribe 7 = \"seven\"\ndescribe \"hi\" = \"greeting\"\ndescribe ^true = \"true\"\ndescribe [a b] = \"two items\"\ndescribe [head | tail] = \"nonempty list\"\ndescribe [] = \"empty list\"\ndescribe _ = \"other\"\n-- Try each with Text: describe 7, describe \"hi\", describe (t t),\n-- describe [4 5], describe [1 2 3], describe [], describe (t (t t)).\n\n-- Pair patterns and whole-value capture. Construct a pair with t left right.\nkeep whole{left, right} = whole\nkeep _ = t\n-- keep (t t t) / tricu -> (t t t); keep (t t) / tricu -> t.\n\n-- Plain local bindings are sequential and nonrecursive.\nlocal x = let\n double n = Math.multiply n 2\n in double x\nviaWhere x = step x where step y = Math.add y 1\n-- local 6 -> 12; viaWhere 6 -> 7, both Natural number.\n\n-- Direct self-recursion, with a final fallback equation.\ncopy [] = []\ncopy [head | tail] = t head <| copy tail\ncopy _ = []\n-- copy [1 2 3] / Bytes -> [1, 2, 3]. Bytes displays naturals from 0 through 255.\n-- Use tricu for a general list; copy [] and copy (t t) both return [].\n\n-- case examines an intermediate value; arms align and finish with a fallback.\nfirstOr fallback xs = case xs of\n [head | _] = head\n _ = fallback\n-- firstOr 99 [5] -> 5; firstOr 99 [] -> 99, both Natural number.\n\n-- Local self-recursion is explicit: let rec (also available with where rec).\nlocalCopy xs = let rec\n walk [] = []\n walk [head | tail] = t head <| walk tail\n walk _ = []\n in walk xs\n-- localCopy [4 5] / Bytes -> [4, 5]; localCopy [] -> [].\n\n-- Parameter and result contracts check values at runtime.\nchecked x@nat? =@nat? x\n-- checked 42 / Natural number -> 42. A failed contract produces a Result.\n-- Keep annotations on plain function heads; see Contracts for Result handlers.\n\n-- Pipes and do use an explicit sequencing operator. Here a lambda passes a value\n-- to the next continuation. It is ordinary pure code; IO uses IO.bind instead.\nsequenced input = do (value next : next value)\n value <- input |> identity\n identity value\n identity <| value\n-- sequenced 9 / Natural number -> 9.\n-- Both pipe chains associate left-to-right; group nested applications explicitly.\n\n|- Block comments are another way to annotate source. They do not nest. -|\n-- !export * selects local definitions. Use !export name for a smaller interface.\n-- An open import uses !import MANIFEST *; a reexport uses !export * from MANIFEST.\n-- Replace MANIFEST with the full identity from Add import or the library guide.\n-- Reexports select the public interface; imports introduce names into scope.\n-- See Conversation for IO, and the docs for Maybe/Result/parser protocols.\n", + "sourceSha256": "593b2982c50668b5e8892eb8447f18df71011cabd7f5227a43181886519f519b", "hash": "86717d7f9d69fe730c6c6172c42c49895623aa070bf675e1b5f751adb30616c1", "mode": "pure", "haskellCases": [ @@ -448,8 +448,8 @@ }, "intro": { "demandCases": [], - "source": "!export *\n\n-- Start here: a small tricu language guide.\n-- Lines beginning with -- are comments. Read down, then try the exports.\n-- Edit this source in place; valid edits compile after a short pause.\n-- Write a call in Evaluate tricu expression, then press Evaluate.\n-- Imports/exports declare a module; this introductory one needs no libraries.\n\n-- 1. Definitions give a name to a value: name = expression.\n-- Every value is a tree. These are the three constructor forms.\nleaf = t\nstem = t t\nfork = t t t\n-- Evaluate leaf, stem or fork with tricu · t source to see its structure.\n\n-- 2. A lambda names an input before the colon and returns an expression.\nidentity = (x : x)\n-- Try identity \"Hello!\" with Text, then identity 42 with Natural number.\n\n-- 3. Named parameters are a convenient way to write functions.\n-- This is equivalent to first = (a b : a).\nfirst a b = a\n-- Try first 7 9: it returns the first of its two arguments.\n\n-- 4. Application is written with spaces and groups to the left.\n-- first 7 9 means (first 7) 9. Parentheses group an expression explicitly.\nanswer = identity (first 42 7)\n-- Evaluate answer with Natural number: the result is 42.\n-- A name by itself needs no further arguments; [] is an empty-list value.\n\n-- 5. Numbers, quoted strings and lists are convenient tree literals.\ngreeting = \"Hello from tricu!\"\nnumbers = [1 2 3]\n-- Evaluate greeting with Text, or numbers with Bytes to display [1, 2, 3].\n-- Bytes requires a list of naturals in 0..255; use t source for other lists.\n-- Lists use spaces, not commas: try identity [4 5 6].\n\n-- 6. The result interpretation tells the playground how to read a tree.\n-- Use Text for a string, Natural number for a number, or t source for any tree.\n-- Pure value observes the result; Browser IO interprets an IO action tree.\n-- The Conversation demo shows input, output and continuations.\n\n-- Settings also offers structured arguments and stored-definition inspection.\n-- Edits stay local; Restore original returns to the published source.\n-- For an application spanning lines, put the entire call in parentheses.\n-- Other demos import libraries by immutable manifest hash, shown in their headers.\n-- Next: Tree microscope shows how functions can inspect other program trees.\n", - "sourceSha256": "24835a93f2da82d4b16876074e18634045e750e832a6694bd6067ba78e1a5508", + "source": "!export *\n\n-- Start here: a small tricu language guide.\n-- Lines beginning with -- are comments. Read down, then try the exports.\n-- Edit this source in place; valid edits compile after a short pause.\n-- Write a call in Evaluate tricu expression, then press Evaluate.\n-- Imports/exports declare a module; this introductory one needs no libraries.\n\n-- 1. Definitions give a name to a value: name = expression.\n-- Every value is a tree. These are the three constructor forms.\nleaf = t\nstem = t t\nfork = t t t\n-- Evaluate leaf, stem or fork with tricu · t source to see its structure.\n\n-- 2. A lambda names an input before the colon and returns an expression.\nidentity = (x : x)\n-- Try identity \"Hello!\" with Text, then identity 42 with Natural number.\n\n-- 3. Named parameters are a convenient way to write functions.\n-- This is equivalent to first = (a b : a).\nfirst a b = a\n-- Try first 7 9: it returns the first of its two arguments.\n\n-- 4. Application is written with spaces and groups to the left.\n-- first 7 9 means (first 7) 9. Parentheses group an expression explicitly.\nanswer = identity (first 42 7)\n-- Evaluate answer with Natural number: the result is 42.\n-- A name by itself needs no further arguments; [] is an empty-list value.\n\n-- 5. Numbers, quoted strings and lists are convenient tree literals.\ngreeting = \"Hello from tricu!\"\nnumbers = [1 2 3]\n-- Evaluate greeting with Text, or numbers with Bytes to display [1, 2, 3].\n-- Bytes requires a list of naturals in 0..255; use t source for other lists.\n-- Lists use spaces, not commas: try identity [4 5 6].\n\n-- 6. The result interpretation tells the playground how to read a tree.\n-- Use Text for a string, Natural number for a number, or t source for any tree.\n-- Pure value observes the result; Browser IO interprets an IO action tree.\n-- The Conversation demo shows input, output and continuations.\n\n-- Settings also offers structured arguments and stored-definition inspection.\n-- Edits stay local; Restore original returns to the published source.\n-- Continue a call on indented lines; parentheses are only needed for grouping.\n-- Other demos import libraries by immutable manifest hash, shown in their headers.\n-- Next: Tree microscope shows how functions can inspect other program trees.\n", + "sourceSha256": "5572e99fed54b0fe261fee4f417ec3bad47a25f0a266a4ba478dd42368b610f1", "hash": "64e7db3b35121efa19c7becbbb38a0ad0f884143e790e286a5ee6c236c00f9d5", "mode": "pure", "haskellCases": [ @@ -554,8 +554,8 @@ }, "greet": { "demandCases": [], - "source": "!import 2d23be85d277457fd36c84f5eaa227e94e1c4efec281ff73017aaee109096f49 as IO\n!export main\n\n-- A conversation built from the IO library's actions and explicit bind operator.\n-- Evaluate main in Browser IO mode, then answer in the terminal input.\n-- The returned name is also displayed as Text. Try changing the greeting.\n-- Importing IO does not grant filesystem or network access in the browser.\nmain = (IO.io (do IO.bind\n IO.putStr \"What is your name?\\n\"\n name <- IO.getLine\n IO.putStr \"Hello, \"\n IO.putStr name\n IO.putStr \"!\\n\"\n IO.pure name))\n", - "sourceSha256": "3b9835aec1f3b987ad954cd235a7c0517170d3f7e236b15d60ce9a3a809c74c4", + "source": "!import 2d23be85d277457fd36c84f5eaa227e94e1c4efec281ff73017aaee109096f49 as IO\n!export main\n\n-- A conversation built from the IO library's actions and explicit bind operator.\n-- Evaluate main in Browser IO mode, then answer in the terminal input.\n-- The returned name is also displayed as Text. Try changing the greeting.\n-- Importing IO does not grant filesystem or network access in the browser.\nmain = IO.io\n do IO.bind\n IO.putStr \"What is your name?\\n\"\n name <- IO.getLine\n IO.putStr \"Hello, \"\n IO.putStr name\n IO.putStr \"!\\n\"\n IO.pure name\n", + "sourceSha256": "63ba77b14e307d836c253e9fbff5d0a04971316c616b2cb65f7a56295da5595d", "hash": "0811457d501113ee11194f90e279ebb4ef9d548c70cb48d146be03eb9af7505f", "mode": "io", "haskellCases": [ @@ -598,8 +598,8 @@ "result": "22021021020202021002210210210210202102100220210202021021021002210210202102021021000" } ], - "source": "!import bd2c14d6db6b69308a5252a8e839705a55d30e815f012900b094315263e08d81 as B\n!export shape\n!export size\n!export same\n\n-- Inspect data OR compiled program trees, not source text.\n-- Try shape (t t t), size (t t t), or same (t t) (t t).\n-- Also try shape (x : x): functions are inspectable trees too.\n-- triage dispatches directly on Leaf, Stem and Fork without visiting children.\n-- Arithmetic and Booleans come from base; traversal is the subject of this demo.\nshape tree = B.triage \"Leaf\" (child : \"Stem\") (left right : \"Fork\") tree\n\n-- Count every constructor occurrence, including repeated shared branches.\n-- This is expanded tree size, not allocated nodes or source-code length.\ncount tree acc = (B.triage\n (B.succ acc)\n (child : count child (B.succ acc))\n (left right : count right (count left (B.succ acc)))\n tree)\n\nsize tree = count tree 0\n\nsame a b = (B.triage\n (B.triage B.true (ignored : B.false) (ignored ignored2 : B.false) b)\n (x : B.triage B.false (y : same x y) (ignored ignored2 : B.false) b)\n (x y : B.triage B.false (ignored : B.false) (u v : B.and? (same x u) (same y v)) b)\n a)\n", - "sourceSha256": "0dd0bb5444662200cf3556dd7a81e65570b5d3b34d4b3e6b17e6d9c36d3d1114", + "source": "!import bd2c14d6db6b69308a5252a8e839705a55d30e815f012900b094315263e08d81 as B\n!export shape\n!export size\n!export same\n\n-- Inspect data OR compiled program trees, not source text.\n-- Try shape (t t t), size (t t t), or same (t t) (t t).\n-- Also try shape (x : x): functions are inspectable trees too.\n-- triage dispatches directly on Leaf, Stem and Fork without visiting children.\n-- Arithmetic and Booleans come from base; traversal is the subject of this demo.\nshape tree = B.triage \"Leaf\" (child : \"Stem\") (left right : \"Fork\") tree\n\n-- Count every constructor occurrence, including repeated shared branches.\n-- This is expanded tree size, not allocated nodes or source-code length.\ncount tree acc = B.triage\n (B.succ acc)\n (child : count child <| B.succ acc)\n (left right : B.succ acc |> count left |> count right)\n tree\n\nsize tree = count tree 0\n\nsame a b = B.triage\n (B.triage B.true (ignored : B.false) (ignored ignored2 : B.false) b)\n (x : B.triage B.false (y : same x y) (ignored ignored2 : B.false) b)\n (x y : B.triage B.false (ignored : B.false) (u v : B.and? (same x u) (same y v)) b)\n a\n", + "sourceSha256": "08c2b341d8947c9e46062dfa63f9d8810eb15620de499caf0891e313c5152cef", "hash": "493a125b649639c0df8348b4aeb3a455b7139cae0634ba114866c48813500bc5", "mode": "pure", "haskellCases": [ @@ -854,8 +854,8 @@ "result": "222210210202021021021002202021020210210210022102020202021021002202021020210210210022102021020210210210022102102020210210210002022210202102020210210022021020202102102100220210202021021021002210210210210202102100220210202021021021000022221020210210202102100221020210202021021002210210202021021021002210210202021021021002210202020202102100221021021020202102100221020210202021021000202221021020202102021002210202102021021021002202102020202102100220202102021021021002210210210210202102100220202102021021021002210202020202102100220202102102021021002202020202021002210202020202102100220210210210202102100220202102020210210022020202020210022102102102020210210022021020202102102100221020202020210210022102021021020210210022102102020210210210022020202020210022102021021020210210022102021020210210210022102102020210210210022020210202102102100220202020202100220210202020210210022102021020202102100220202020202100221021020202021021002210202020202102100220210210210202102100221021021021020210210022021021021020210210022102020210202102100221021020202021021002210202020202102100220202102102021021002202020202021002202102102102021021002210202020202102100220202102021021021002210202102021021021002202102020210210210022102020202021021002202021021020210210022020202020210022021021021020210210022102021020210210210022102021021020210210022021020202021021002210202102020210210022021020202102102100221021020202102102100220210210210202100000" } ], - "source": "!import bd2c14d6db6b69308a5252a8e839705a55d30e815f012900b094315263e08d81 *\n!export v1\n!export v2\n\n-- Shipping policy: arguments are destination, cart subtotal in cents, grams.\n-- Destinations: domestic, regional, international. Grams: 1..5000.\n-- Select v1/v2 with the same cart: domestic free shipping changes from $75 to $100.\n-- Otherwise domestic costs $4.99/$5.99, regional $9.99, international $19.99.\n-- Packages above 1kg add $2.50. Subtotals are bounded to $10,000.\n-- The bundle hash + export pins the policy used to reproduce a quote later.\n-- Records use [fieldName tag value]: 0 = text, 1 = natural, 2 = Boolean.\n-- Base supplies canonical-natural checks, arithmetic and Booleans.\n\nfailure message = [[\"status\" 0 \"error\"] [\"message\" 0 message]]\n\nbaseRate 1 \"domestic\" = 499\nbaseRate _ \"domestic\" = 599\nbaseRate _ \"regional\" = 999\nbaseRate _ _ = 1999\n\npaidRate version zone grams = case lte_? grams 1000 of\n ^true = baseRate version zone\n _ = add 250 (baseRate version zone)\n\nfreeThreshold 1 = 7500\nfreeThreshold _ = 10000\n\namount version zone subtotal grams = case and? (equal? zone \"domestic\") (lte_? (freeThreshold version) subtotal) of\n ^true = 0\n _ = paidRate version zone grams\n\nquote version zone subtotal grams = case and? (isNat? subtotal) (isNat? grams) of\n ^true = (case or? (equal? zone \"domestic\") (or? (equal? zone \"regional\") (equal? zone \"international\")) of\n ^true = (case and? (lte_? subtotal 1000000) (and? (lte_? 1 grams) (lte_? grams 5000)) of\n ^true = [[\"status\" 0 \"ok\"] [\"policyVersion\" 1 version]\n [\"destination\" 0 zone] [\"shippingCents\" 1 (amount version zone subtotal grams)]]\n _ = failure \"Subtotal must be <=1000000 cents; grams must be 1..5000.\")\n _ = failure \"Unknown destination.\")\n _ = failure \"Subtotal and grams must be canonical natural numbers.\"\n\nv1 zone subtotal grams = quote 1 zone subtotal grams\nv2 zone subtotal grams = quote 2 zone subtotal grams\n", - "sourceSha256": "d6d9378ab39733a8aabaf4f6a25851350e99fa81607bf05a64266301e2712f5a", + "source": "!import bd2c14d6db6b69308a5252a8e839705a55d30e815f012900b094315263e08d81 *\n!export v1\n!export v2\n\n-- Shipping policy: arguments are destination, cart subtotal in cents, grams.\n-- Destinations: domestic, regional, international. Grams: 1..5000.\n-- Select v1/v2 with the same cart: domestic free shipping changes from $75 to $100.\n-- Otherwise domestic costs $4.99/$5.99, regional $9.99, international $19.99.\n-- Packages above 1kg add $2.50. Subtotals are bounded to $10,000.\n-- The bundle hash + export pins the policy used to reproduce a quote later.\n-- Records use [fieldName tag value]: 0 = text, 1 = natural, 2 = Boolean.\n-- Base supplies canonical-natural checks, arithmetic and Booleans.\n\nfailure message = [[\"status\" 0 \"error\"] [\"message\" 0 message]]\n\nbaseRate 1 \"domestic\" = 499\nbaseRate _ \"domestic\" = 599\nbaseRate _ \"regional\" = 999\nbaseRate _ _ = 1999\n\npaidRate version zone grams = case lte_? grams 1000 of\n ^true = baseRate version zone\n _ = add 250 <| baseRate version zone\n\nfreeThreshold 1 = 7500\nfreeThreshold _ = 10000\n\namount version zone subtotal grams = case and? (equal? zone \"domestic\") (lte_? (freeThreshold version) subtotal) of\n ^true = 0\n _ = paidRate version zone grams\n\nquote version zone subtotal grams = case and? (isNat? subtotal) (isNat? grams) of\n ^true = case or? (equal? zone \"domestic\") (or? (equal? zone \"regional\") (equal? zone \"international\")) of\n ^true = case and? (lte_? subtotal 1000000) (and? (lte_? 1 grams) (lte_? grams 5000)) of\n ^true = [[\"status\" 0 \"ok\"] [\"policyVersion\" 1 version]\n [\"destination\" 0 zone] [\"shippingCents\" 1 (amount version zone subtotal grams)]]\n _ = failure \"Subtotal must be <=1000000 cents; grams must be 1..5000.\"\n _ = failure \"Unknown destination.\"\n _ = failure \"Subtotal and grams must be canonical natural numbers.\"\n\nv1 zone subtotal grams = quote 1 zone subtotal grams\nv2 zone subtotal grams = quote 2 zone subtotal grams\n", + "sourceSha256": "dbbb53a9da0918c294f8d3b07768a756cae7d6beafb3c780caba3e6d4c0f7d4a", "hash": "4aa9ce9f19dfce87ecb3f6bd0a2e881dafcbcd3d2e4b4075befbb378d80833ea", "mode": "pure", "haskellCases": [ @@ -1200,8 +1200,8 @@ "result": "2222102102020210210210022020210202102102100221020202020210210022020210202102102100221020210202102102100221021020202102102100020222102021020202102100220210202021021021002202102020210210210022102102102102021021002202102020210210210000222210202102102021021002210202102020210210022102102020210210210022102102020210210210022102020202021021002210210210202021021002210202102020210210002022202102020210210210022102021020202102100220210210202021021002210202102021021021002202102102102021021002202021020202102100221020210202021021002202021020202102100220202020202100221020210210202102100221020210202102102100221021020202102102100220202102021021021002202020202021002202102020202102100221020210202021021002202020202021002210202020202102100220202020202100221021020202021021002210202020202102100220210210210202102100221021021021020210210022021021021020210210022102020210202102100221021020202021021002210202020202102100220202102102021021002202020202021002202102020202021002210210210210202102100221021021021020210210022020210210202102100221020210202021021002210202020202102100220210210210202102100220210210210202100000" } ], - "source": "!import bd2c14d6db6b69308a5252a8e839705a55d30e815f012900b094315263e08d81 *\n!import 3f70d95cf1bae0928ee89acd2a9e0cdd8287796efae32a9f08d33e3dd0149c55 as A\n!export vendorA\n!export vendorB\n\n-- Event adapter: two producers, one consumer-facing record schema.\n-- vendorA accepts [eventName customer totalCents]. eventName is purchase/refund.\n-- vendorB accepts [customer refunded totalCents]. refunded is a Boolean.\n-- Both return schemaVersion, eventType, customer and amountCents.\n-- Try the two exports: their presets describe the same order.created event.\n-- A producer can publish the adapter hash alongside its event schema.\n-- Records use [fieldName tag value]: 0 = text, 1 = natural, 2 = Boolean.\n-- Base supplies arithmetic/Booleans; A.hostString? checks Unicode scalar text.\n\nfailure message = [[\"status\" 0 \"error\"] [\"message\" 0 message]]\n\nnormalized event customer cents = case A.hostString? customer of\n ^true = (case and? (isNat? cents) (lte_? cents 1000000) of\n ^true = [[\"schemaVersion\" 1 1] [\"eventType\" 0 event]\n [\"customer\" 0 customer] [\"amountCents\" 1 cents]]\n _ = failure \"amountCents must be a canonical natural <=1000000.\")\n _ = failure \"customer must be scalar text.\"\n\nfromA \"purchase\" customer cents = normalized \"order.created\" customer cents\nfromA \"refund\" customer cents = normalized \"order.refunded\" customer cents\nfromA _ _ _ = failure \"Unknown vendor A event.\"\n\nfromB customer ^true cents = normalized \"order.refunded\" customer cents\nfromB customer ^false cents = normalized \"order.created\" customer cents\nfromB _ _ _ = failure \"refunded must be a canonical Boolean.\"\n\n-- Preserve list-shape diagnostics without inspecting any field before dispatch.\nunpack handler (t _) = failure \"Expected a list.\"\nunpack handler [_ | (t _)] = failure \"Expected a list.\"\nunpack handler [_ | [_ | (t _)]] = failure \"Expected a list.\"\nunpack handler [a b c] = handler a b c\nunpack _ _ = failure \"Expected exactly three fields.\"\n\nvendorA values = unpack fromA values\nvendorB values = unpack fromB values\n", - "sourceSha256": "ca11d9a7e20bfe228545c43f50aed57089c020eead516e23b67d909fae8923de", + "source": "!import bd2c14d6db6b69308a5252a8e839705a55d30e815f012900b094315263e08d81 *\n!import 3f70d95cf1bae0928ee89acd2a9e0cdd8287796efae32a9f08d33e3dd0149c55 as A\n!export vendorA\n!export vendorB\n\n-- Event adapter: two producers, one consumer-facing record schema.\n-- vendorA accepts [eventName customer totalCents]. eventName is purchase/refund.\n-- vendorB accepts [customer refunded totalCents]. refunded is a Boolean.\n-- Both return schemaVersion, eventType, customer and amountCents.\n-- Try the two exports: their presets describe the same order.created event.\n-- A producer can publish the adapter hash alongside its event schema.\n-- Records use [fieldName tag value]: 0 = text, 1 = natural, 2 = Boolean.\n-- Base supplies arithmetic/Booleans; A.hostString? checks Unicode scalar text.\n\nfailure message = [[\"status\" 0 \"error\"] [\"message\" 0 message]]\n\nnormalized event customer cents = case A.hostString? customer of\n ^true = case and? (isNat? cents) (lte_? cents 1000000) of\n ^true = [[\"schemaVersion\" 1 1] [\"eventType\" 0 event]\n [\"customer\" 0 customer] [\"amountCents\" 1 cents]]\n _ = failure \"amountCents must be a canonical natural <=1000000.\"\n _ = failure \"customer must be scalar text.\"\n\nfromA \"purchase\" customer cents = normalized \"order.created\" customer cents\nfromA \"refund\" customer cents = normalized \"order.refunded\" customer cents\nfromA _ _ _ = failure \"Unknown vendor A event.\"\n\nfromB customer ^true cents = normalized \"order.refunded\" customer cents\nfromB customer ^false cents = normalized \"order.created\" customer cents\nfromB _ _ _ = failure \"refunded must be a canonical Boolean.\"\n\n-- Preserve list-shape diagnostics without inspecting any field before dispatch.\nunpack handler (t _) = failure \"Expected a list.\"\nunpack handler [_ | (t _)] = failure \"Expected a list.\"\nunpack handler [_ | [_ | (t _)]] = failure \"Expected a list.\"\nunpack handler [a b c] = handler a b c\nunpack _ _ = failure \"Expected exactly three fields.\"\n\nvendorA values = unpack fromA values\nvendorB values = unpack fromB values\n", + "sourceSha256": "08a7857e4cb6ad2e4c1c9972f3ce05f26b810af8481ca974b91b1819bd4718e7", "hash": "8b51693c63658d59c8083ec1c95cf1f6565ce5799791f540e92caf508613c9fb", "mode": "pure", "haskellCases": [ @@ -1584,8 +1584,8 @@ }, "registration": { "demandCases": [], - "source": "!import bd2c14d6db6b69308a5252a8e839705a55d30e815f012900b094315263e08d81 *\n!import 3f70d95cf1bae0928ee89acd2a9e0cdd8287796efae32a9f08d33e3dd0149c55 as A\n!export main\n\n-- Registration validator: name, email, age, termsAccepted are separate arguments.\n-- Returns one field-specific message per input, plus an accepted Boolean.\n-- Name must be nonempty scalar text. Age must be a natural from 18 to 120.\n-- Email uses a deliberately small rule: nonempty text containing @ and a dot.\n-- Terms must be the canonical true Boolean. This is a teaching policy, not SMTP validation.\n-- Browser and server can pin this same executable instead of duplicating rules.\n-- Records use [fieldName tag value]: 0 = text, 1 = natural, 2 = Boolean.\n-- Base supplies arithmetic/Booleans; A.hostString? checks Unicode scalar text.\n\nnameMessage name = case A.hostString? name of\n ^true = (case name of\n [] = \"Name is required.\"\n _ = \"\")\n _ = \"Name must be scalar text.\"\n\nemailMessage email = case A.hostString? email of\n ^true = (case and? (contains? \"@\" email) (contains? \".\" email) of\n ^true = \"\"\n _ = \"Email must contain @ and a dot.\")\n _ = \"Email must be scalar text.\"\n\nageMessage age = case isNat? age of\n ^true = (case and? (lte_? 18 age) (lte_? age 120) of\n ^true = \"\"\n _ = \"Age must be from 18 to 120.\")\n _ = \"Age must be a canonical natural.\"\n\ntermsMessage ^true = \"\"\ntermsMessage _ = \"Accept the terms.\"\n\nreport name email age terms = [\n [\"accepted\" 2 (and? (equal? name \"\") (and? (equal? email \"\") (and? (equal? age \"\") (equal? terms \"\"))))]\n [\"nameError\" 0 name] [\"emailError\" 0 email]\n [\"ageError\" 0 age] [\"termsError\" 0 terms]]\n\nmain name email age terms = report (nameMessage name) (emailMessage email) (ageMessage age) (termsMessage terms)\n", - "sourceSha256": "531866c6b2e7e42ecbd4ae285c502b59321ad31fd2b82b36d8a139938592ac31", + "source": "!import bd2c14d6db6b69308a5252a8e839705a55d30e815f012900b094315263e08d81 *\n!import 3f70d95cf1bae0928ee89acd2a9e0cdd8287796efae32a9f08d33e3dd0149c55 as A\n!export main\n\n-- Registration validator: name, email, age, termsAccepted are separate arguments.\n-- Returns one field-specific message per input, plus an accepted Boolean.\n-- Name must be nonempty scalar text. Age must be a natural from 18 to 120.\n-- Email uses a deliberately small rule: nonempty text containing @ and a dot.\n-- Terms must be the canonical true Boolean. This is a teaching policy, not SMTP validation.\n-- Browser and server can pin this same executable instead of duplicating rules.\n-- Records use [fieldName tag value]: 0 = text, 1 = natural, 2 = Boolean.\n-- Base supplies arithmetic/Booleans; A.hostString? checks Unicode scalar text.\n\nnameMessage name = case A.hostString? name of\n ^true = case name of\n [] = \"Name is required.\"\n _ = \"\"\n _ = \"Name must be scalar text.\"\n\nemailMessage email = case A.hostString? email of\n ^true = case and? (contains? \"@\" email) (contains? \".\" email) of\n ^true = \"\"\n _ = \"Email must contain @ and a dot.\"\n _ = \"Email must be scalar text.\"\n\nageMessage age = case isNat? age of\n ^true = case and? (lte_? 18 age) (lte_? age 120) of\n ^true = \"\"\n _ = \"Age must be from 18 to 120.\"\n _ = \"Age must be a canonical natural.\"\n\ntermsMessage ^true = \"\"\ntermsMessage _ = \"Accept the terms.\"\n\nreport name email age terms = [\n [\"accepted\" 2 (and? (equal? name \"\") (and? (equal? email \"\") (and? (equal? age \"\") (equal? terms \"\"))))]\n [\"nameError\" 0 name] [\"emailError\" 0 email]\n [\"ageError\" 0 age] [\"termsError\" 0 terms]]\n\nmain name email age terms = report (nameMessage name) (emailMessage email) (ageMessage age) (termsMessage terms)\n", + "sourceSha256": "b15d4e60a34d839b06c813fa439ea063abc4a771bc2d0dd24cd928eb21ca7e29", "hash": "679733e17a86cc5e3f5282ca824cad4c9c0febd260e51f6a87e16dd14c02c45a", "mode": "pure", "haskellCases": [ @@ -1707,8 +1707,8 @@ }, "migration": { "demandCases": [], - "source": "!import bd2c14d6db6b69308a5252a8e839705a55d30e815f012900b094315263e08d81 *\n!import 3f70d95cf1bae0928ee89acd2a9e0cdd8287796efae32a9f08d33e3dd0149c55 as A\n!export v1\n!export v2\n\n-- Archived profile v0: [name email]. v1: adds schemaVersion and displayName.\n-- v2: also supplies marketingOptIn=false; existing data is preserved.\n-- Select v1/v2 with the same input to compare the two target schemas.\n-- A migration receipt can record the input identity, executable hash/export,\n-- output identity and wire schema. Running this demo stays entirely local.\n-- Records use [fieldName tag value]: 0 = text, 1 = natural, 2 = Boolean.\n-- Base supplies arithmetic/Booleans; A.hostString? checks Unicode scalar text.\n\nfailure message = [[\"status\" 0 \"error\"] [\"message\" 0 message]]\n\nmigrate version name email = case and? (A.hostString? name) (A.hostString? email) of\n ^true = (case version of\n 1 = [[\"schemaVersion\" 1 1] [\"displayName\" 0 name] [\"email\" 0 email]]\n _ = [[\"schemaVersion\" 1 2] [\"displayName\" 0 name] [\"email\" 0 email]\n [\"marketingOptIn\" 2 false]])\n _ = failure \"Name and email must be scalar text.\"\n\nprofile _ (t _) = failure \"Expected a list.\"\nprofile _ [_ | (t _)] = failure \"Expected a list.\"\nprofile version [name email] = migrate version name email\nprofile _ _ = failure \"Expected [name email].\"\n\nv1 values = profile 1 values\nv2 values = profile 2 values\n", - "sourceSha256": "66ee7bc1a9005b5f1d12f168b7866231ad7f523cf34f52b63958cb155a5c49b5", + "source": "!import bd2c14d6db6b69308a5252a8e839705a55d30e815f012900b094315263e08d81 *\n!import 3f70d95cf1bae0928ee89acd2a9e0cdd8287796efae32a9f08d33e3dd0149c55 as A\n!export v1\n!export v2\n\n-- Archived profile v0: [name email]. v1: adds schemaVersion and displayName.\n-- v2: also supplies marketingOptIn=false; existing data is preserved.\n-- Select v1/v2 with the same input to compare the two target schemas.\n-- A migration receipt can record the input identity, executable hash/export,\n-- output identity and wire schema. Running this demo stays entirely local.\n-- Records use [fieldName tag value]: 0 = text, 1 = natural, 2 = Boolean.\n-- Base supplies arithmetic/Booleans; A.hostString? checks Unicode scalar text.\n\nfailure message = [[\"status\" 0 \"error\"] [\"message\" 0 message]]\n\nmigrate version name email = case and? (A.hostString? name) (A.hostString? email) of\n ^true = case version of\n 1 = [[\"schemaVersion\" 1 1] [\"displayName\" 0 name] [\"email\" 0 email]]\n _ = [[\"schemaVersion\" 1 2] [\"displayName\" 0 name] [\"email\" 0 email]\n [\"marketingOptIn\" 2 false]]\n _ = failure \"Name and email must be scalar text.\"\n\nprofile _ (t _) = failure \"Expected a list.\"\nprofile _ [_ | (t _)] = failure \"Expected a list.\"\nprofile version [name email] = migrate version name email\nprofile _ _ = failure \"Expected [name email].\"\n\nv1 values = profile 1 values\nv2 values = profile 2 values\n", + "sourceSha256": "a9270baef5cb5102c895c9f23434ebc82c87eebfa16c25cb415b06b4636a279e", "hash": "730aeb8203ff504b7483999a6477a292b10871f82e94a77d3d5f7b49ecc3b6b3", "mode": "pure", "haskellCases": [ diff --git a/ext/demo-site/demos/events.tri b/ext/demo-site/demos/events.tri @@ -15,10 +15,10 @@ failure message = [["status" 0 "error"] ["message" 0 message]] normalized event customer cents = case A.hostString? customer of - ^true = (case and? (isNat? cents) (lte_? cents 1000000) of + ^true = case and? (isNat? cents) (lte_? cents 1000000) of ^true = [["schemaVersion" 1 1] ["eventType" 0 event] ["customer" 0 customer] ["amountCents" 1 cents]] - _ = failure "amountCents must be a canonical natural <=1000000.") + _ = failure "amountCents must be a canonical natural <=1000000." _ = failure "customer must be scalar text." fromA "purchase" customer cents = normalized "order.created" customer cents diff --git a/ext/demo-site/demos/greet.tri b/ext/demo-site/demos/greet.tri @@ -5,10 +5,11 @@ -- Evaluate main in Browser IO mode, then answer in the terminal input. -- The returned name is also displayed as Text. Try changing the greeting. -- Importing IO does not grant filesystem or network access in the browser. -main = (IO.io (do IO.bind - IO.putStr "What is your name?\n" - name <- IO.getLine - IO.putStr "Hello, " - IO.putStr name - IO.putStr "!\n" - IO.pure name)) +main = IO.io + do IO.bind + IO.putStr "What is your name?\n" + name <- IO.getLine + IO.putStr "Hello, " + IO.putStr name + IO.putStr "!\n" + IO.pure name diff --git a/ext/demo-site/demos/intro.tri b/ext/demo-site/demos/intro.tri @@ -42,6 +42,6 @@ numbers = [1 2 3] -- Settings also offers structured arguments and stored-definition inspection. -- Edits stay local; Restore original returns to the published source. --- For an application spanning lines, put the entire call in parentheses. +-- Continue a call on indented lines; parentheses are only needed for grouping. -- Other demos import libraries by immutable manifest hash, shown in their headers. -- Next: Tree microscope shows how functions can inspect other program trees. diff --git a/ext/demo-site/demos/language-reference.tri b/ext/demo-site/demos/language-reference.tri @@ -45,15 +45,15 @@ keep _ = t -- keep (t t t) / tricu -> (t t t); keep (t t) / tricu -> t. -- Plain local bindings are sequential and nonrecursive. -local x = (let +local x = let double n = Math.multiply n 2 - in double x) + in double x viaWhere x = step x where step y = Math.add y 1 -- local 6 -> 12; viaWhere 6 -> 7, both Natural number. -- Direct self-recursion, with a final fallback equation. copy [] = [] -copy [head | tail] = t head (copy tail) +copy [head | tail] = t head <| copy tail copy _ = [] -- copy [1 2 3] / Bytes -> [1, 2, 3]. Bytes displays naturals from 0 through 255. -- Use tricu for a general list; copy [] and copy (t t) both return []. @@ -65,11 +65,11 @@ firstOr fallback xs = case xs of -- firstOr 99 [5] -> 5; firstOr 99 [] -> 99, both Natural number. -- Local self-recursion is explicit: let rec (also available with where rec). -localCopy xs = (let rec +localCopy xs = let rec walk [] = [] - walk [head | tail] = t head (walk tail) + walk [head | tail] = t head <| walk tail walk _ = [] - in walk xs) + in walk xs -- localCopy [4 5] / Bytes -> [4, 5]; localCopy [] -> []. -- Parameter and result contracts check values at runtime. @@ -79,10 +79,10 @@ checked x@nat? =@nat? x -- Pipes and do use an explicit sequencing operator. Here a lambda passes a value -- to the next continuation. It is ordinary pure code; IO uses IO.bind instead. -sequenced input = (do (value next : next value) +sequenced input = do (value next : next value) value <- input |> identity identity value - identity <| value) + identity <| value -- sequenced 9 / Natural number -> 9. -- Both pipe chains associate left-to-right; group nested applications explicitly. diff --git a/ext/demo-site/demos/lexer.tri b/ext/demo-site/demos/lexer.tri @@ -10,7 +10,7 @@ -- not UTF-8 bytes or display columns: only LF advances the line. -- Edit a predicate below and evaluate scanWord "hello,world" to compare. -- scanWhitespace accepts space, LF and tab, but deliberately not CR. -report reply = (let +report reply = let payload = parserReplyPayload reply end = snd payload in [ @@ -19,10 +19,11 @@ report reply = (let ["line" 1 (lexerPositionLine end)] ["column" 1 (lexerPositionColumn end)] ["offset" 1 (lexerPositionOffset end)] - ["consumed" 2 (parserReplyConsumed reply)]]) + ["consumed" 2 (parserReplyConsumed reply)]] -scan predicate text = report (lexerMapScan reverse - (lexerScanWhile text lexerStart [] predicate (state character : pair character state))) +scan predicate text = lexerScanWhile text lexerStart [] predicate (state character : pair character state) + |> lexerMapScan reverse + |> report scanWord text = scan (character : N.inRange character 97 122) text scanWhitespace text = scan (character : or? (equal? character 32) (or? (equal? character 9) (equal? character 10))) text diff --git a/ext/demo-site/demos/microscope.tri b/ext/demo-site/demos/microscope.tri @@ -12,16 +12,16 @@ shape tree = B.triage "Leaf" (child : "Stem") (left right : "Fork") tree -- Count every constructor occurrence, including repeated shared branches. -- This is expanded tree size, not allocated nodes or source-code length. -count tree acc = (B.triage +count tree acc = B.triage (B.succ acc) - (child : count child (B.succ acc)) - (left right : count right (count left (B.succ acc))) - tree) + (child : count child <| B.succ acc) + (left right : B.succ acc |> count left |> count right) + tree size tree = count tree 0 -same a b = (B.triage +same a b = B.triage (B.triage B.true (ignored : B.false) (ignored ignored2 : B.false) b) (x : B.triage B.false (y : same x y) (ignored ignored2 : B.false) b) (x y : B.triage B.false (ignored : B.false) (u v : B.and? (same x u) (same y v)) b) - a) + a diff --git a/ext/demo-site/demos/migration.tri b/ext/demo-site/demos/migration.tri @@ -14,10 +14,10 @@ failure message = [["status" 0 "error"] ["message" 0 message]] migrate version name email = case and? (A.hostString? name) (A.hostString? email) of - ^true = (case version of + ^true = case version of 1 = [["schemaVersion" 1 1] ["displayName" 0 name] ["email" 0 email]] _ = [["schemaVersion" 1 2] ["displayName" 0 name] ["email" 0 email] - ["marketingOptIn" 2 false]]) + ["marketingOptIn" 2 false]] _ = failure "Name and email must be scalar text." profile _ (t _) = failure "Expected a list." diff --git a/ext/demo-site/demos/parser.tri b/ext/demo-site/demos/parser.tri @@ -9,12 +9,14 @@ -- parseNames requires the entire input; parsePrefix exposes any remainder. -- Edit the parser or labels below; valid edits compile locally. -- Imports pin complete library interfaces, fetched only when compiling. -nameParser = parserLabel "lowercase name" (parserSome (parserSatisfy (c : N.inRange c 97 122))) +nameParser = parserSatisfy (c : N.inRange c 97 122) + |> parserSome + |> parserLabel "lowercase name" commaParser = parserThen (parserExpect 44) parserCommit namesPrefix = parserSepBy1 nameParser commaParser -namesComplete = parserBefore namesPrefix (parserLabel "end of input" parserEof) +namesComplete = parserBefore namesPrefix <| parserLabel "end of input" parserEof -report reply = (parserMatchReply +report reply = parserMatchReply (diagnostic rest consumed committed : [ ["status" 0 "error"] ["expected" 0 (parserDiagnosticExpected diagnostic)] @@ -28,6 +30,6 @@ report reply = (parserMatchReply ["remaining" 0 rest] ["consumed" 2 consumed] ["committed" 2 committed]]) - reply) -parseNames text = report (namesComplete text) -parsePrefix text = report (namesPrefix text) + reply +parseNames text = namesComplete text |> report +parsePrefix text = namesPrefix text |> report diff --git a/ext/demo-site/demos/registration.tri b/ext/demo-site/demos/registration.tri @@ -12,21 +12,21 @@ -- Base supplies arithmetic/Booleans; A.hostString? checks Unicode scalar text. nameMessage name = case A.hostString? name of - ^true = (case name of + ^true = case name of [] = "Name is required." - _ = "") + _ = "" _ = "Name must be scalar text." emailMessage email = case A.hostString? email of - ^true = (case and? (contains? "@" email) (contains? "." email) of + ^true = case and? (contains? "@" email) (contains? "." email) of ^true = "" - _ = "Email must contain @ and a dot.") + _ = "Email must contain @ and a dot." _ = "Email must be scalar text." ageMessage age = case isNat? age of - ^true = (case and? (lte_? 18 age) (lte_? age 120) of + ^true = case and? (lte_? 18 age) (lte_? age 120) of ^true = "" - _ = "Age must be from 18 to 120.") + _ = "Age must be from 18 to 120." _ = "Age must be a canonical natural." termsMessage ^true = "" diff --git a/ext/demo-site/demos/shipping.tri b/ext/demo-site/demos/shipping.tri @@ -20,7 +20,7 @@ baseRate _ _ = 1999 paidRate version zone grams = case lte_? grams 1000 of ^true = baseRate version zone - _ = add 250 (baseRate version zone) + _ = add 250 <| baseRate version zone freeThreshold 1 = 7500 freeThreshold _ = 10000 @@ -30,12 +30,12 @@ amount version zone subtotal grams = case and? (equal? zone "domestic") (lte_? ( _ = paidRate version zone grams quote version zone subtotal grams = case and? (isNat? subtotal) (isNat? grams) of - ^true = (case or? (equal? zone "domestic") (or? (equal? zone "regional") (equal? zone "international")) of - ^true = (case and? (lte_? subtotal 1000000) (and? (lte_? 1 grams) (lte_? grams 5000)) of + ^true = case or? (equal? zone "domestic") (or? (equal? zone "regional") (equal? zone "international")) of + ^true = case and? (lte_? subtotal 1000000) (and? (lte_? 1 grams) (lte_? grams 5000)) of ^true = [["status" 0 "ok"] ["policyVersion" 1 version] ["destination" 0 zone] ["shippingCents" 1 (amount version zone subtotal grams)]] - _ = failure "Subtotal must be <=1000000 cents; grams must be 1..5000.") - _ = failure "Unknown destination.") + _ = failure "Subtotal must be <=1000000 cents; grams must be 1..5000." + _ = failure "Unknown destination." _ = failure "Subtotal and grams must be canonical natural numbers." v1 zone subtotal grams = quote 1 zone subtotal grams diff --git a/ext/demo-site/environments.json b/ext/demo-site/environments.json @@ -1,6 +1,6 @@ { "schema": 1, - "compiler": "9c61d59cd76036000691da6ff5e2e9f641cf5c614b424d7280e052cfcb716e75", + "compiler": "91f78730b3623d019e33f96e9e2712d61b04837b21ef3eccec3071ac9260944d", "profiles": { "empty": null, "practical": { diff --git a/ext/demo-site/lexer-demo.json b/ext/demo-site/lexer-demo.json @@ -1,10 +1,10 @@ { "id": "lexer", - "source": "!import 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 *\n!import 14282088469cc420dd014700da06998f6bb8dcf990fc885a464c0a1e1858e20d *\n!import 816df1a32853750a1254112aff8ae8c55ca86bf70e809d226969ab1d43a6688b *\n!import 7f87549d587fa8c3be88af0ea988db3adcc3b35f1ffb48973553491b075614db as N\n!export scanWord\n!export scanWhitespace\n\n-- Positioned prefix scans, not whole-input parsers. The remainder begins\n-- at the first nonmatching character. Positions count source characters,\n-- not UTF-8 bytes or display columns: only LF advances the line.\n-- Edit a predicate below and evaluate scanWord \"hello,world\" to compare.\n-- scanWhitespace accepts space, LF and tab, but deliberately not CR.\nreport reply = (let\n payload = parserReplyPayload reply\n end = snd payload\n in [\n [\"matched\" 0 (fst payload)]\n [\"remaining\" 0 (parserReplyRest reply)]\n [\"line\" 1 (lexerPositionLine end)]\n [\"column\" 1 (lexerPositionColumn end)]\n [\"offset\" 1 (lexerPositionOffset end)]\n [\"consumed\" 2 (parserReplyConsumed reply)]])\n\nscan predicate text = report (lexerMapScan reverse\n (lexerScanWhile text lexerStart [] predicate (state character : pair character state)))\nscanWord text = scan (character : N.inRange character 97 122) text\nscanWhitespace text = scan (character : or? (equal? character 32)\n (or? (equal? character 9) (equal? character 10))) text\n", + "source": "!import 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 *\n!import 14282088469cc420dd014700da06998f6bb8dcf990fc885a464c0a1e1858e20d *\n!import 816df1a32853750a1254112aff8ae8c55ca86bf70e809d226969ab1d43a6688b *\n!import 7f87549d587fa8c3be88af0ea988db3adcc3b35f1ffb48973553491b075614db as N\n!export scanWord\n!export scanWhitespace\n\n-- Positioned prefix scans, not whole-input parsers. The remainder begins\n-- at the first nonmatching character. Positions count source characters,\n-- not UTF-8 bytes or display columns: only LF advances the line.\n-- Edit a predicate below and evaluate scanWord \"hello,world\" to compare.\n-- scanWhitespace accepts space, LF and tab, but deliberately not CR.\nreport reply = let\n payload = parserReplyPayload reply\n end = snd payload\n in [\n [\"matched\" 0 (fst payload)]\n [\"remaining\" 0 (parserReplyRest reply)]\n [\"line\" 1 (lexerPositionLine end)]\n [\"column\" 1 (lexerPositionColumn end)]\n [\"offset\" 1 (lexerPositionOffset end)]\n [\"consumed\" 2 (parserReplyConsumed reply)]]\n\nscan predicate text = lexerScanWhile text lexerStart [] predicate (state character : pair character state)\n |> lexerMapScan reverse\n |> report\nscanWord text = scan (character : N.inRange character 97 122) text\nscanWhitespace text = scan (character : or? (equal? character 32)\n (or? (equal? character 9) (equal? character 10))) text\n", "hash": "e756a481b3056a2e76f50316ccf77bfab8b15727b7bec899580c2eb919e668b2", "mode": "pure", - "compilerSha256": "d70de875988dfa309f2c167992928866f88b08af351918b8c7b5d88c541c6e94", - "sourceSha256": "ec68af4102c16ef56be01e78a3288bea57af71ca57ab35374a0d12005b5a10a1", + "compilerSha256": "bd9b236492bb6359a6cc4dcd7c988ac2bf64abea4a1cc1c7233d1d023ca0dd1e", + "sourceSha256": "2a441d6d881acd6e34cd0caa8179ee1afefbce68c2e5ff1e44fb1768f69eeb3c", "haskellCases": [ { "export": "scanWord", diff --git a/ext/demo-site/packages.json b/ext/demo-site/packages.json @@ -1393,6 +1393,500 @@ "manifest": "9984385a5ab9b81094343d2b4203e825d44c07de67f0e399ad55660e5e431998", "title": "Language reference", "demo": "language-reference" + }, + { + "name": "tricu-base", + "version": "0.3.0", + "hash": "f9f0ab0e44f6ae39479d74c6c66a2bdaba3f40bd26781c3ec95300c2ee3c07f3", + "manifest": "fa9d4df0f82cac2754fdd3e92009cb48064856ff4cc5b18f092309aef7ff5ed4", + "title": "Foundation: lists, Results and decimal formatting" + }, + { + "name": "tricu-file-io", + "version": "0.3.0", + "hash": "401961d889131c735bf48b415f53d3b85dfab0136496299f60cf1dcb0b264f14", + "manifest": "6a22866c2cff143599cb854b2cd3bb3c8948e40835425ed62d942d88bed5c5aa", + "title": "File IO and hashing actions" + }, + { + "name": "arboricx-inspection", + "version": "0.3.0", + "hash": "f571888c5aa3f7a91e9d5d6c45c674851ea8e3598514ad8d535fd3e9056d0314", + "manifest": "fe9b420e1e776fa1dda7b77857e322c0509ed308bb18441b76a3b03023f93468", + "title": "Arboricx inspection: validate without execution" + }, + { + "name": "tricu-compiler", + "version": "0.3.0", + "hash": "91f78730b3623d019e33f96e9e2712d61b04837b21ef3eccec3071ac9260944d", + "manifest": "c3d5c2c0efdac3641467968669031ba1bc21883db7307772a594c8dc04ef1582", + "title": "Compiler library (stable browser source-unit API; native helpers)" + }, + { + "name": "tricu-source-builder", + "version": "0.3.0", + "hash": "bd9b236492bb6359a6cc4dcd7c988ac2bf64abea4a1cc1c7233d1d023ca0dd1e", + "manifest": "a0820abd99bc31fb9aa0e463c61b37d0a181d44e540a03a9016e3b00c751b25c", + "title": "Stable native application compiler (modules, imports and publication)" + }, + { + "name": "arboricx-server", + "version": "0.3.0", + "hash": "c8bc5c1ebeff9189d64ffd23554026d6f39aed92e2b25a4fa0935a0d25b99608", + "manifest": "451e24aeec39ff1295c0c735897dcefd34b9219ef72a8b0c619b678373afcfa1", + "title": "Arboricx registry server (native sockets and filesystem)" + }, + { + "name": "tricu-http", + "version": "0.3.0", + "hash": "7f7b4191c8780da6a4bf20084835e67007e9e5a7b9af43476b97faf502338545", + "manifest": "e6195e968697ca5799891bcd9096b568dceb717ea6e2b14adbdb8ca041a01691", + "title": "HTTP parsing, responses and native socket handlers" + }, + { + "name": "tricu-intensional-contracts", + "version": "0.3.0", + "hash": "dd39639f1d0a1a14f7856b8d0db682adf36d1e7501ea1889bd185ea500989380", + "manifest": "7467e74f0c5b7dfad8d6a14d34171b2b0bcd7750423894e2ca920e0535fde7d1", + "title": "Intensional contracts: tree shapes and numeric structure" + }, + { + "name": "tricu-graphs", + "version": "0.3.0", + "hash": "b588b07ac71f87ab85059ea0788ee2e11d3ee77ad319310e5a21f844c98dabf4", + "manifest": "7b798a3afae6dce07b718bed855c7209ec3b898bb70b379dece935c4033cf9b6", + "title": "Dependency ordering and cycle witnesses (validated small graphs)" + }, + { + "name": "tricu-parser", + "version": "0.3.0", + "hash": "3d364a349e4a623bc022a6cdc558a490d764c4c9d6a224b65a727f2380ce5b0d", + "manifest": "14282088469cc420dd014700da06998f6bb8dcf990fc885a464c0a1e1858e20d", + "title": "Parser combinators: diagnostics, consumption and commitment" + }, + { + "name": "tricu-math", + "version": "0.3.0", + "hash": "ef024a03aeb00f82d77a0c710303e88ce254b20cd1d0d0aebb29c0309900c480", + "manifest": "7f87549d587fa8c3be88af0ea988db3adcc3b35f1ffb48973553491b075614db", + "title": "Binary arithmetic and ASCII classifiers (canonical naturals only)" + }, + { + "name": "tricu-lexer", + "version": "0.3.0", + "hash": "9bc1c7c66b150fdac8f046b2bad48b07bf585c9ea2c63b416dc72c4191b0128e", + "manifest": "816df1a32853750a1254112aff8ae8c55ca86bf70e809d226969ab1d43a6688b", + "title": "Located character scans and token positions" + }, + { + "name": "tricu-binary", + "version": "0.3.0", + "hash": "fe3b02f68025b90d0ce782885c8f72582642a985694eb4bcd702c2e006846a86", + "manifest": "7a24af56a9ce9b947cadcafd3a9da127b1507275bfac62b9fa55e27490b176dc", + "title": "Checked byte readers, prefix parsing and UTF-8 validation" + }, + { + "name": "tricu-patterns", + "version": "0.3.0", + "hash": "fb81fe47421564ac80fedc90be6003906e017978385f749d2da95297e58587c2", + "manifest": "703db8cd6c5679861257d1cc38c17be200241ade8db3812e8c387e9274aaa56e", + "title": "Ordered predicate/action dispatch and thunked conditionals" + }, + { + "name": "tricu-list-traversal", + "version": "0.3.0", + "hash": "60afc41f04fa65130326eeed4ca9e128bee5e90c7041f9641bbf9cfe87c142cd", + "manifest": "4c79b7ad124027147b8fddd98c2b66cfd776c36d915c95dfb1fbf9b31a51fb88", + "title": "Early-stopping list folds with retained input suffixes" + }, + { + "name": "tricu-formatter", + "version": "0.3.0", + "hash": "3bd4df273ab4e4599417a18210ec3ad39e2ace2f7df6c0b7cad62999c4cb52a2", + "manifest": "e8bad7dcea5944336083f5bfa3ada63d7542286fbdec0f34dfeb65e9879ba2fc", + "title": "Conservative tricu equation alignment (not an AST printer)" + }, + { + "name": "parser-demo", + "version": "0.3.0", + "hash": "355e41506f39e05da8c8a72a68aa810a486e062480322bac11af67e86980520e", + "manifest": "0c34bfdf800f8bd1b742e375a8f7c555c88d0c827268f684259433e834d94fed", + "title": "Parser combinators: complete input, prefixes and committed errors", + "demo": "parser" + }, + { + "name": "lexer-demo", + "version": "0.3.0", + "hash": "e756a481b3056a2e76f50316ccf77bfab8b15727b7bec899580c2eb919e668b2", + "manifest": "ed99e054e9c862668e165f458d3afcdc56279f766eea7a3886d440aea7252b63", + "title": "Located scans: matched prefix, remainder and character positions", + "demo": "lexer" + }, + { + "name": "tricu-lib-arboricx", + "version": "0.3.0", + "manifest": "3f70d95cf1bae0928ee89acd2a9e0cdd8287796efae32a9f08d33e3dd0149c55", + "hash": "40dfb23da91b505ea4586bbfea46a7374d299bb747796f18428de7da43fa7315", + "title": "lib/arboricx/arboricx.tri" + }, + { + "name": "tricu-lib-arboricx-common", + "version": "0.3.0", + "manifest": "0d779adef29b51ee875bf2f46ec03bef30ec48d200e7e05c9e20bd90b28ac4a4", + "hash": "2c8f29c5e1a96eac7b6d57f6dad02f7adbfca1da93742f48c2aff3534c378284", + "title": "lib/arboricx/common.tri" + }, + { + "name": "tricu-lib-arboricx-dispatch", + "version": "0.3.0", + "manifest": "eda078ba018de68718b2b7aa2d790578ac079cf98c963a78f7fcae5178fd2c19", + "hash": "7fbcf00a8412785c5c61b61c21c89d00d2597953b040faa02e6e811677b37578", + "title": "lib/arboricx/dispatch.tri" + }, + { + "name": "tricu-lib-arboricx-manifest", + "version": "0.3.0", + "manifest": "2a8a2b591dfc4192b8ded6e2ea75e94f6ff41183636f6024b6d5eb590ec8d2aa", + "hash": "718c96fe7ab33504ece9c041f7a93dddf15b281f8dfceba84291a349e260b15f", + "title": "lib/arboricx/manifest.tri" + }, + { + "name": "tricu-lib-arboricx-nodes", + "version": "0.3.0", + "manifest": "d158e4ebe9fd6cfb752023bbe031614b190b9eab79e9680875a1fc55dc481a23", + "hash": "84a7479abac8663864a5615e5c0be69b6bb64530a904ab0da274bbf68b682b01", + "title": "lib/arboricx/nodes.tri" + }, + { + "name": "tricu-lib-arboricx-server", + "version": "0.3.0", + "manifest": "451e24aeec39ff1295c0c735897dcefd34b9219ef72a8b0c619b678373afcfa1", + "hash": "c8bc5c1ebeff9189d64ffd23554026d6f39aed92e2b25a4fa0935a0d25b99608", + "title": "lib/arboricx/server.tri" + }, + { + "name": "tricu-lib-base", + "version": "0.3.0", + "manifest": "bd2c14d6db6b69308a5252a8e839705a55d30e815f012900b094315263e08d81", + "hash": "1f722cc4ebbe2096dd68e1d9720596cfe9c99b327fd02d55ea01c5c66e66477a", + "title": "lib/base.tri" + }, + { + "name": "tricu-lib-binary", + "version": "0.3.0", + "manifest": "7a24af56a9ce9b947cadcafd3a9da127b1507275bfac62b9fa55e27490b176dc", + "hash": "fe3b02f68025b90d0ce782885c8f72582642a985694eb4bcd702c2e006846a86", + "title": "lib/binary.tri" + }, + { + "name": "tricu-lib-bytes", + "version": "0.3.0", + "manifest": "16cff955cb9ab44063ed21651002d209ef7d3592fa005cd3dc32e287d6ca5b68", + "hash": "c0a9ffd923b4dd17f6c1fd105502d9e82a9064f75b6312b37c155c94a3ce73d3", + "title": "lib/bytes.tri" + }, + { + "name": "tricu-lib-conversions", + "version": "0.3.0", + "manifest": "78ce6db3557cd57f2c5799989d16a8f40104de5c4485646734a23093dc458a4e", + "hash": "fc37dd8c558961c88211c3f4faf31bc438bcda12384f94125f563f1651e09ac9", + "title": "lib/conversions.tri" + }, + { + "name": "tricu-lib-graph", + "version": "0.3.0", + "manifest": "7b798a3afae6dce07b718bed855c7209ec3b898bb70b379dece935c4033cf9b6", + "hash": "b588b07ac71f87ab85059ea0788ee2e11d3ee77ad319310e5a21f844c98dabf4", + "title": "lib/graph.tri" + }, + { + "name": "tricu-lib-http", + "version": "0.3.0", + "manifest": "e6195e968697ca5799891bcd9096b568dceb717ea6e2b14adbdb8ca041a01691", + "hash": "7f7b4191c8780da6a4bf20084835e67007e9e5a7b9af43476b97faf502338545", + "title": "lib/http.tri" + }, + { + "name": "tricu-lib-intensional", + "version": "0.3.0", + "manifest": "7467e74f0c5b7dfad8d6a14d34171b2b0bcd7750423894e2ca920e0535fde7d1", + "hash": "dd39639f1d0a1a14f7856b8d0db682adf36d1e7501ea1889bd185ea500989380", + "title": "lib/intensionalContracts.tri" + }, + { + "name": "tricu-lib-io", + "version": "0.3.0", + "manifest": "2d23be85d277457fd36c84f5eaa227e94e1c4efec281ff73017aaee109096f49", + "hash": "a51d9fcffd12aebc39166e2ba4e5b86896832db299f06322b7a2805bc4d57f05", + "title": "lib/io.tri" + }, + { + "name": "tricu-lib-lexer", + "version": "0.3.0", + "manifest": "816df1a32853750a1254112aff8ae8c55ca86bf70e809d226969ab1d43a6688b", + "hash": "9bc1c7c66b150fdac8f046b2bad48b07bf585c9ea2c63b416dc72c4191b0128e", + "title": "lib/lexer.tri" + }, + { + "name": "tricu-lib-native-math", + "version": "0.3.0", + "manifest": "7f87549d587fa8c3be88af0ea988db3adcc3b35f1ffb48973553491b075614db", + "hash": "ef024a03aeb00f82d77a0c710303e88ce254b20cd1d0d0aebb29c0309900c480", + "title": "lib/math/native.tri" + }, + { + "name": "tricu-lib-parser", + "version": "0.3.0", + "manifest": "14282088469cc420dd014700da06998f6bb8dcf990fc885a464c0a1e1858e20d", + "hash": "3d364a349e4a623bc022a6cdc558a490d764c4c9d6a224b65a727f2380ce5b0d", + "title": "lib/parser.tri" + }, + { + "name": "tricu-lib-patterns", + "version": "0.3.0", + "manifest": "703db8cd6c5679861257d1cc38c17be200241ade8db3812e8c387e9274aaa56e", + "hash": "fb81fe47421564ac80fedc90be6003906e017978385f749d2da95297e58587c2", + "title": "lib/patterns.tri" + }, + { + "name": "tricu-lib-prelude", + "version": "0.3.0", + "manifest": "6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823", + "hash": "7dc94b30f4fd1043ff6e1cc4c7ddde55d9338c262de145d1d1446d7b156fac33", + "title": "lib/prelude.tri" + }, + { + "name": "tricu-lib-socket", + "version": "0.3.0", + "manifest": "49fc19156894c8f5b5a7124760eb8db2ac504404dcda77ae0e3a0dea39983d44", + "hash": "decfff4079c7c202f664a55496926cce1fcd1e9c67cf67b84718bf7d663e6f4d", + "title": "lib/socket.tri" + }, + { + "name": "tricu-lib-source-ast", + "version": "0.3.0", + "manifest": "c6579f89e47a16694f1c08fe9825b183d8bc272e23cd744eb954c106b689c32f", + "hash": "af66062931c5de826bd336625d53c1c354fe6cc736e56e247ae550c542f0fa8a", + "title": "lib/source/ast.tri" + }, + { + "name": "tricu-lib-source-build-stable", + "version": "0.3.0", + "manifest": "899ebd78231147cbf6b72a71298a72c7047d6fb1d8033fac88898e178613e6a7", + "hash": "396195ecdb24ea812aa285192ccc552c36eb91577300042ba938408b5d01e2c9", + "title": "lib/source/build-stable.tri" + }, + { + "name": "tricu-lib-source-build", + "version": "0.3.0", + "manifest": "5a1c79afb0609925c1748a45f720119d35bf6ff44ea2cf1b074971f6a222d14f", + "hash": "5bbdeb9f451895d515464d0fc2c3fe7f83a282bf8a0d51b9c2a52c6ca9748c93", + "title": "lib/source/build.tri" + }, + { + "name": "tricu-lib-source-bundle", + "version": "0.3.0", + "manifest": "d1af60d301f08b0c8715da80b9c632b04e71270817e0925aec81121734f3d1e6", + "hash": "660f9077134b141f0398b5506f0295084953801e9360ef668e185d244f529c40", + "title": "lib/source/bundle.tri" + }, + { + "name": "tricu-lib-source-compile", + "version": "0.3.0", + "manifest": "fb41d71410ad8fb9c0da35a5ab0a6b782b9814bd7629737b710b7404648939cd", + "hash": "6a8e34e2185846c701afdd8f5ee842e21d0fa2c8cee2040113e72f1b94b5e6ab", + "title": "lib/source/compile.tri" + }, + { + "name": "tricu-lib-source-core", + "version": "0.3.0", + "manifest": "83e1dc8052f806b19ebc737998bbdfff23211b23a6bbe2ae6adbede8ad1652a2", + "hash": "d7105ef477224dfb10ad2773e54744cb3f87ddf304eb753d7cb9ba40ea9cc3df", + "title": "lib/source/core.tri" + }, + { + "name": "tricu-lib-source-equations", + "version": "0.3.0", + "manifest": "568c5d782a847e4f8d6b7061d51d34fc527a466b872ede27032104293df3bf8f", + "hash": "0898334053aa3bd7cea49407ec3d51c5b155a030eb51dee670da1e349229e1b3", + "title": "lib/source/equations.tri" + }, + { + "name": "tricu-lib-source-export-cache", + "version": "0.3.0", + "manifest": "7f29e52b9154b0ba6410836b055f8628f76bc51aa572efa2ef691f37ecaec077", + "hash": "7e6e0a045b50e8e6e44e28d8b06f2a471c26a14e9613837bc20e72941a2a5bb9", + "title": "lib/source/export-cache.tri" + }, + { + "name": "tricu-lib-source-index", + "version": "0.3.0", + "manifest": "c2946fe3ac0daf1a06d6f7deab9f7ad08d679c241b04ad9c0c6d3b6038cf091d", + "hash": "1f18232479e776982515edc3fe2c0f39fad79e2b428c2ff040d92edf5441ac6a", + "title": "lib/source/index.tri" + }, + { + "name": "tricu-lib-source-lexer", + "version": "0.3.0", + "manifest": "4cc4ed214d6e474b339c970d04cc09ced20c6472758b58897aabbd6f3a5bbb42", + "hash": "b61e8d7d31f730c1e4db08c729435302e76eb911ee2c45b110f2932a60b2eb33", + "title": "lib/source/lexer.tri" + }, + { + "name": "tricu-lib-source-lock", + "version": "0.3.0", + "manifest": "eb0f1347b5ff7773d074212c4f01276398a8dcd9e01fbd61643a5ce0cdb7ec6e", + "hash": "dcb5f1c60fac3c0cf1752d88b9e2482223d0759ef310cd7b401ef0148b7a6ffa", + "title": "lib/source/lock.tri" + }, + { + "name": "tricu-lib-source-map", + "version": "0.3.0", + "manifest": "b8326b79c0b2f7b1c95d7892752a8543077897ce0d61fe5050cbb60d1a9f0cf9", + "hash": "93174e0bad1894364a0a12560a75eea646e5747bcc2a71b7fd198bf9bb635596", + "title": "lib/source/map.tri" + }, + { + "name": "tricu-lib-source-module", + "version": "0.3.0", + "manifest": "4241d44daa8875d2c479fc02e854ee62e5b03ce45395f026d0430a80e912ab74", + "hash": "80b2e70901d380aaca74a7a40019d3394b1171e6e76e771f58955f03bf8da798", + "title": "lib/source/module.tri" + }, + { + "name": "tricu-lib-source-object", + "version": "0.3.0", + "manifest": "dc29e3d043b9dc8685ed05ede1c226b3f14f47c63365b623214cf709a275b3bf", + "hash": "acb79eb9c2f56a18c1c740aaaee97e9e5e53f55b56602bd16a351d85cfadc192", + "title": "lib/source/object.tri" + }, + { + "name": "tricu-lib-source-order", + "version": "0.3.0", + "manifest": "1d55b1616e892be989d2c987099c84bef61686fc67f6a3eb5b1a373626b0ca5e", + "hash": "4586d8b96a93d22e2382f40a0eed353dccebe6ab05713336451b13dfd756e813", + "title": "lib/source/order.tri" + }, + { + "name": "tricu-lib-source-parser", + "version": "0.3.0", + "manifest": "425b921ef62e99dd93f6d3389c82fdbb583eaeb857975717441c5469f98f3a73", + "hash": "ec7f3cddb70f48ec5db7eac7afb7641150a6bb3400d0734ca3419b6f7a5bbfff", + "title": "lib/source/parser.tri" + }, + { + "name": "tricu-lib-source-pattern", + "version": "0.3.0", + "manifest": "d14232cb623da7a59883ae5e0c773fa71037a887a7dcf3352e48cc8dff421123", + "hash": "c2426615e6f90e2084bbb268305b11c06aea844e6cd3905efb92708fb2b91dde", + "title": "lib/source/pattern.tri" + }, + { + "name": "tricu-lib-source-program", + "version": "0.3.0", + "manifest": "447aa7d321344146772a2693e83b2ab87a0058e281c42780e1bb5b24e0ea995d", + "hash": "7da891b3098e3f405741f78a59e068445bbf4def4c41553bda2e5a57a4e63e2c", + "title": "lib/source/program.tri" + }, + { + "name": "tricu-lib-source-resolve", + "version": "0.3.0", + "manifest": "ed934dd01014852aa2e3734444538d0c0807da41bc661cd3965eca6ed16ceffe", + "hash": "6fc6e4138589d8550886cbb2cc95d1de91940bee589ef400e5e6098bf3cc55ff", + "title": "lib/source/resolve.tri" + }, + { + "name": "tricu-lib-source-stable", + "version": "0.3.0", + "manifest": "5189315a72af93ee9fe3dbc8c73e07e97b980b4c91b9c2f6244d447461db55dd", + "hash": "b4bc7576279d3721981a0254b55184fdd7cc11426c2591adf8a6405c3e388283", + "title": "lib/source/stable.tri" + }, + { + "name": "tricu-lib-source-staged-conditional-experiment", + "version": "0.3.0", + "manifest": "43113de593d0e70f3f94e8dafff0600d6f60b5a011d80cdc6e84166fed29b682", + "hash": "9b504c57dd3989c64c748841a5be71dd0f217994bae874ee799f4f09c7dfc1f8", + "title": "lib/source/staged-conditional-experiment.tri" + }, + { + "name": "tricu-lib-source-staged-list-experiment", + "version": "0.3.0", + "manifest": "c1c062475b966bd6adae0148db1751959400f59ba73c6f84ca0e561599639e98", + "hash": "eac98c45250ba80f2331cb71128306b25bd61b4e8e3e063b9b635ec654f4d698", + "title": "lib/source/staged-list-experiment.tri" + }, + { + "name": "tricu-lib-source-staging-experiment", + "version": "0.3.0", + "manifest": "db8e78afce2dadd987a2e7840b1107da75d3cc9c4ac3e5cd217cf0bc2ff00790", + "hash": "bd742a4ec55cf68f1f1b382979fdf6b5c098039089be16c76b4621b8ca07d9cb", + "title": "lib/source/staging-experiment.tri" + }, + { + "name": "tricu-lib-source-unit", + "version": "0.3.0", + "manifest": "1e395371289a7c43d4237a30b3a6c186a38039f0b7c9a87f27e64f43f4da90a9", + "hash": "8e179edc0710085a37167af76c1f5bad871bb84901a7aa7345febda5d0f6c460", + "title": "lib/source/unit.tri" + }, + { + "name": "tricu-lib-arboricx-inspect", + "version": "0.3.0", + "manifest": "fe9b420e1e776fa1dda7b77857e322c0509ed308bb18441b76a3b03023f93468", + "hash": "f571888c5aa3f7a91e9d5d6c45c674851ea8e3598514ad8d535fd3e9056d0314", + "title": "lib/arboricx/inspect.tri" + }, + { + "name": "tricu-lib-packages-base", + "version": "0.3.0", + "manifest": "fa9d4df0f82cac2754fdd3e92009cb48064856ff4cc5b18f092309aef7ff5ed4", + "hash": "f9f0ab0e44f6ae39479d74c6c66a2bdaba3f40bd26781c3ec95300c2ee3c07f3", + "title": "lib/packages/base.tri" + }, + { + "name": "tricu-lib-packages-io", + "version": "0.3.0", + "manifest": "6a22866c2cff143599cb854b2cd3bb3c8948e40835425ed62d942d88bed5c5aa", + "hash": "401961d889131c735bf48b415f53d3b85dfab0136496299f60cf1dcb0b264f14", + "title": "lib/packages/io.tri" + }, + { + "name": "tricu-lib-recursion-list", + "version": "0.3.0", + "manifest": "4c79b7ad124027147b8fddd98c2b66cfd776c36d915c95dfb1fbf9b31a51fb88", + "hash": "60afc41f04fa65130326eeed4ca9e128bee5e90c7041f9641bbf9cfe87c142cd", + "title": "lib/recursion/list.tri" + }, + { + "name": "tricu-lib-source-bundle-stable", + "version": "0.3.0", + "manifest": "a06948780686a4432f97ce0a7ab5f8ed66a535a6d5563275e5f32375a679cb59", + "hash": "3de401378f33dd8f93e9ca11c1c2bd73a458dabcd8d631a33ba17306f83d7d3b", + "title": "lib/source/bundle-stable.tri" + }, + { + "name": "tricu-lib-tools-format-tri", + "version": "0.3.0", + "manifest": "e8bad7dcea5944336083f5bfa3ada63d7542286fbdec0f34dfeb65e9879ba2fc", + "hash": "3bd4df273ab4e4599417a18210ec3ad39e2ace2f7df6c0b7cad62999c4cb52a2", + "title": "lib/tools/format-tri.tri" + }, + { + "name": "parser-demo", + "version": "0.3.1", + "hash": "355e41506f39e05da8c8a72a68aa810a486e062480322bac11af67e86980520e", + "manifest": "0c34bfdf800f8bd1b742e375a8f7c555c88d0c827268f684259433e834d94fed", + "title": "Parser combinators: complete input, prefixes and committed errors", + "demo": "parser" + }, + { + "name": "lexer-demo", + "version": "0.3.1", + "hash": "e756a481b3056a2e76f50316ccf77bfab8b15727b7bec899580c2eb919e668b2", + "manifest": "ed99e054e9c862668e165f458d3afcdc56279f766eea7a3886d440aea7252b63", + "title": "Located scans: matched prefix, remainder and character positions", + "demo": "lexer" } ] } diff --git a/ext/demo-site/parser-demo.json b/ext/demo-site/parser-demo.json @@ -1,10 +1,10 @@ { "id": "parser", - "source": "!import 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 *\n!import 14282088469cc420dd014700da06998f6bb8dcf990fc885a464c0a1e1858e20d *\n!import 7f87549d587fa8c3be88af0ea988db3adcc3b35f1ffb48973553491b075614db as N\n!export parseNames\n!export parsePrefix\n\n-- Lowercase names separated by commas. Try \"red,green\", \"red,,blue\",\n-- \"red,\" and \"red green\". A comma commits to another name.\n-- parseNames requires the entire input; parsePrefix exposes any remainder.\n-- Edit the parser or labels below; valid edits compile locally.\n-- Imports pin complete library interfaces, fetched only when compiling.\nnameParser = parserLabel \"lowercase name\" (parserSome (parserSatisfy (c : N.inRange c 97 122)))\ncommaParser = parserThen (parserExpect 44) parserCommit\nnamesPrefix = parserSepBy1 nameParser commaParser\nnamesComplete = parserBefore namesPrefix (parserLabel \"end of input\" parserEof)\n\nreport reply = (parserMatchReply\n (diagnostic rest consumed committed : [\n [\"status\" 0 \"error\"]\n [\"expected\" 0 (parserDiagnosticExpected diagnostic)]\n [\"remaining\" 0 rest]\n [\"consumed\" 2 consumed]\n [\"committed\" 2 committed]])\n (names rest consumed committed : [\n [\"status\" 0 \"ok\"]\n [\"names\" 0 (intercalate \", \" names)]\n [\"count\" 1 (length names)]\n [\"remaining\" 0 rest]\n [\"consumed\" 2 consumed]\n [\"committed\" 2 committed]])\n reply)\nparseNames text = report (namesComplete text)\nparsePrefix text = report (namesPrefix text)\n", + "source": "!import 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 *\n!import 14282088469cc420dd014700da06998f6bb8dcf990fc885a464c0a1e1858e20d *\n!import 7f87549d587fa8c3be88af0ea988db3adcc3b35f1ffb48973553491b075614db as N\n!export parseNames\n!export parsePrefix\n\n-- Lowercase names separated by commas. Try \"red,green\", \"red,,blue\",\n-- \"red,\" and \"red green\". A comma commits to another name.\n-- parseNames requires the entire input; parsePrefix exposes any remainder.\n-- Edit the parser or labels below; valid edits compile locally.\n-- Imports pin complete library interfaces, fetched only when compiling.\nnameParser = parserSatisfy (c : N.inRange c 97 122)\n |> parserSome\n |> parserLabel \"lowercase name\"\ncommaParser = parserThen (parserExpect 44) parserCommit\nnamesPrefix = parserSepBy1 nameParser commaParser\nnamesComplete = parserBefore namesPrefix <| parserLabel \"end of input\" parserEof\n\nreport reply = parserMatchReply\n (diagnostic rest consumed committed : [\n [\"status\" 0 \"error\"]\n [\"expected\" 0 (parserDiagnosticExpected diagnostic)]\n [\"remaining\" 0 rest]\n [\"consumed\" 2 consumed]\n [\"committed\" 2 committed]])\n (names rest consumed committed : [\n [\"status\" 0 \"ok\"]\n [\"names\" 0 (intercalate \", \" names)]\n [\"count\" 1 (length names)]\n [\"remaining\" 0 rest]\n [\"consumed\" 2 consumed]\n [\"committed\" 2 committed]])\n reply\nparseNames text = namesComplete text |> report\nparsePrefix text = namesPrefix text |> report\n", "hash": "355e41506f39e05da8c8a72a68aa810a486e062480322bac11af67e86980520e", "mode": "pure", - "compilerSha256": "d70de875988dfa309f2c167992928866f88b08af351918b8c7b5d88c541c6e94", - "sourceSha256": "18aa0a464dabb595749abdab5edb1bb11c4356c0e753cf0985a644901bb5c241", + "compilerSha256": "bd9b236492bb6359a6cc4dcd7c988ac2bf64abea4a1cc1c7233d1d023ca0dd1e", + "sourceSha256": "9c005993cf43c07ec5c7e4f7f420b2f63c66e605d9522ab4b7e044de5e6cb8df", "haskellCases": [ { "export": "parseNames", diff --git a/ext/demo-site/test/browser.mjs b/ext/demo-site/test/browser.mjs @@ -5,7 +5,7 @@ import {resolve} from 'node:path'; if(!process.env.ARBORICX_SITE_ROOT)throw Error('Set ARBORICX_SITE_ROOT to the built arboricxSite, including all runtime assets'); process.env.TEST_IDE='1'; -process.env.TEST_BACKEND??='js'; +process.env.TEST_BACKEND??='haskell-wasm'; if(process.argv[3])process.env.TEST_SCREENSHOT_PREFIX=process.argv[3]; const browser=process.argv[2]||'chromium'; process.argv=[process.argv[0],process.argv[1],resolve(process.env.ARBORICX_SITE_ROOT,'runtime/haskell'),browser]; diff --git a/ext/demo-site/test/bundle.test.mjs b/ext/demo-site/test/bundle.test.mjs @@ -7,7 +7,7 @@ import {COMPILER_BUNDLE_LIMIT,decodeBundle,loadBundle,bundleHash,fetchBytes,fetc import {makeBundle,sizedBundle} from './bundle-fixture.mjs'; // Independently counted from the authenticated compiler manifest with the // Python bundle reader; older indexed compiler releases remain retained. -const COMPILER_EXPORT_COUNT=1191; +const COMPILER_EXPORT_COUNT=1194; const data=JSON.parse(await readFile(new URL('../demos.json',import.meta.url))); test('stable packaged sources/pins and real compiler bundle decode',async()=>{ for(const [name,demo] of Object.entries(data.demos)){ diff --git a/ext/demo-site/test/compiler-conformance.json b/ext/demo-site/test/compiler-conformance.json @@ -1,6 +1,6 @@ { - "compilerBundleSha256": "9c61d59cd76036000691da6ff5e2e9f641cf5c614b424d7280e052cfcb716e75", - "hostSha256": "662fcf80231c070e4aa15dff1438aa1f5c99fb27a905f46a62efaff46c49f668", + "compilerBundleSha256": "91f78730b3623d019e33f96e9e2712d61b04837b21ef3eccec3071ac9260944d", + "hostSha256": "2bb21ddb1307e69bad141eb62f4e94b71efdf900614ba7333821e2eef2204547", "backend": "stable", "export": "source_unit.compileStableModuleDefinitions", "cases": [ @@ -76,6 +76,29 @@ "result": "2021020210202100" }, { + "source": "id x = x\nmain =\n id\n 42", + "export": "main", + "arguments": [], + "expectedNumber": 42, + "extended": true, + "definitions": { + "id": "21100", + "main": "2021020210202100" + }, + "result": "2021020210202100" + }, + { + "source": "main = case t of\n t = value\n _ = 0\nwhere value = 42", + "export": "main", + "arguments": [], + "expectedNumber": 42, + "extended": true, + "definitions": { + "main": "2021020210202100" + }, + "result": "2021020210202100" + }, + { "source": "id = (", "diagnostic": "Compiler diagnostic 2: expected token kind 7" }, diff --git a/ext/demo-site/test/conformance.json b/ext/demo-site/test/conformance.json @@ -1,5 +1,5 @@ { - "hostSha256": "662fcf80231c070e4aa15dff1438aa1f5c99fb27a905f46a62efaff46c49f668", + "hostSha256": "2bb21ddb1307e69bad141eb62f4e94b71efdf900614ba7333821e2eef2204547", "description": "All normal trees <=5 nodes, every ordered application pair; lazy regression and partial/multiple applications.", "cases": [ { diff --git a/ext/demo-site/test/contracts-conformance.json b/ext/demo-site/test/contracts-conformance.json @@ -1,6 +1,6 @@ { - "compilerBundleSha256": "9c61d59cd76036000691da6ff5e2e9f641cf5c614b424d7280e052cfcb716e75", - "hostSha256": "662fcf80231c070e4aa15dff1438aa1f5c99fb27a905f46a62efaff46c49f668", + "compilerBundleSha256": "91f78730b3623d019e33f96e9e2712d61b04837b21ef3eccec3071ac9260944d", + "hostSha256": "2bb21ddb1307e69bad141eb62f4e94b71efdf900614ba7333821e2eef2204547", "contractsSourceSha256": "8f69b32c50461edd5db536becb6faedd5ba33945bf774534592034350702600a", "bindings": { "matchResult": "base.matchResult", diff --git a/ext/demo-site/test/live-ux-probe.mjs b/ext/demo-site/test/live-ux-probe.mjs @@ -88,7 +88,8 @@ export async function run(control,backend='haskell-wasm',alreadyUsed=false){ input('source-editor','answer = missingLatestName');await status('Compilation failed'); assert(el('run').disabled&&!el('compile-diagnostic').hidden,'Invalid latest source blocks evaluation'); assert(el('result').textContent==='45'&&!el('result-stale').hidden,'Diagnostic preserves prior result'); - input('source-editor','answer = 46');await status('Compiled');await evaluate('answer','46'); + // The body and its argument align: no parentheses or extra argument indent. + input('source-editor','identity value = value\nanswer =\n identity\n 46');await status('Compiled');await evaluate('answer','46'); // Runtime switching rebuilds automatically but cannot carry definitions across. const other=backend==='haskell-wasm'?'zig-wasm':'haskell-wasm'; change('runtime-backend',other);assert(el('run').disabled,'Backend change invalidates runnable revision'); diff --git a/ext/demo-site/test/prepare-compiler.py b/ext/demo-site/test/prepare-compiler.py @@ -45,6 +45,8 @@ cases = [ dict(source='id = (x : x)\nanswer = id 42\nother = id 7\nmore = id 9\nextra = id 11\nlast = id 13', export='other', arguments=[]), dict(source='io=t "tricuIO" (t 1 (t 11 t))', export='io', arguments=[], mode='io', input='λ雪🙂'), dict(source='main xs = (let rec\n last [h] = h\n last [_ | rest] = last rest\n last _ = 0\n in case xs of\n [] = 0\n _ = last xs)', export='main', arguments=['2'+p.of_number(7)+'2'+p.of_number(42)+'0'], expectedNumber=42, extended=True), + dict(source='id x = x\nmain =\n id\n 42', export='main', arguments=[], expectedNumber=42, extended=True), + dict(source='main = case t of\n t = value\n _ = 0\nwhere value = 42', export='main', arguments=[], expectedNumber=42, extended=True), dict(source='id = ('), dict(source='id = nope'), ] diff --git a/ext/demo-site/test/release.py b/ext/demo-site/test/release.py @@ -117,8 +117,9 @@ def main(): entries = {'dist/app.js', 'dist/wasm-worker.js', 'dist/local-module-worker.js', 'dist/zig-helpers.js', 'runtime/haskell/client.mjs', 'runtime/haskell/worker.mjs', 'runtime/zig/site-session.mjs'} + # The early theme script is copied verbatim, not an esbuild entrypoint. assert {p.relative_to(args.site).as_posix() for p in args.site.rglob('*') - if p.suffix in ['.js', '.mjs']} == entries + if p.suffix in ['.js', '.mjs']} == entries | {'theme.js'} graphs = json.loads((support / 'bundle-graphs.json').read_text()) assert set(graphs) == entries | {'dist/probe-api.js'} for entry, graph in graphs.items(): diff --git a/lib/source/parser.tri b/lib/source/parser.tri @@ -63,38 +63,30 @@ sourceGateParseBindingWith valueParser input = sourceEquationBinding valueParser sourceGateParseBinding expression = sourceGateParseBindingWith expression --- Shared layout transition after `=`, `in`, or another binding boundary. --- Inline values use the enclosing expression context. After newlines, the --- next located token selects the new indentation context without rewriting --- source text or exposing recursion driven by a known indentation counter. -sourceGateParseLayoutFirst expression indentedExpression label input = - lazyList - (_ : parserReplyFail (parserDiagnostic 40 label t t t) - input false false) - (token rest : - lazyBool - (_ : expression input) - (_ : indentedExpression - (sourcePositionColumn (sourceTokenStart token)) input) - (equal? (sourcePositionColumn (sourceTokenStart token)) 1)) - input +-- A body belongs to its definition/statement even when its first operand +-- follows a newline. Never reset the continuation boundary to that operand. +-- Validate before consuming it so a sibling cannot become a missing body. +sourceGateParseLayoutFirst expression mode label input = (lazyList + (_ : parserReplyFail (parserDiagnostic 40 label t t t) input false false) + (token rest : lazyBool + (_ : expression input) + (_ : parserReplyFail (parserDiagnostic 40 label (sourceTokenKind token) + (sourceTokenStart token) t) input false false) + (or? (fst mode) + (not? (lte_? (sourcePositionColumn (sourceTokenStart token)) (snd mode))))) input) -sourceGateParseLayoutValue expression indentedExpression label input = - lazyList +sourceGateParseLayoutValue expression mode label input = (lazyList + (_ : expression input) + (token rest : lazyBool + (_ : parserThen sourceGateSkipNestedNewlines + (sourceGateParseLayoutFirst expression mode label) input) (_ : expression input) - (token rest : - lazyBool - (_ : parserThen sourceGateSkipNestedNewlines - (sourceGateParseLayoutFirst expression indentedExpression label) - input) - (_ : expression input) - (equal? (sourceTokenKind token) sourceTokenNewline)) - input + (equal? (sourceTokenKind token) sourceTokenNewline)) input) -- Local groups share the program head grammar, but are deliberately not -- dependency-sorted: nested nonrecursive lets expose only earlier groups. sourceGateLocalValue indentedExpression column input = - sourceGateParseLayoutValue (indentedExpression column) indentedExpression + sourceGateParseLayoutValue (indentedExpression column) (sourceGateLayoutIndented column) "local binding value" input sourceGateLocalNext? input column = (lazyList (_ : false) (token rest : lazyBool @@ -116,11 +108,10 @@ sourceGateLocalGroupsReply bindings input = (lazyResult (diagnostic remainder : parserReplyFail diagnostic input false false) (_ unused : parserReplyOk groups input false false) (sourceEquationUnique groups)) (sourceEquationGroups bindings)) -sourceGateLocalBindings indentedExpression input = (lazyList +sourceGateLocalBindings valueParser indentedExpression input = (lazyList (_ : sourceGateAtomError input) (token rest : parserBind - (sourceEquationBinding (sourceGateLocalValue indentedExpression - (sourcePositionColumn (sourceTokenStart token)))) + (sourceEquationBinding valueParser) (first : parserBind (parserMany (sourceGateLocalNext indentedExpression (sourcePositionColumn (sourceTokenStart token)))) (remaining : sourceGateLocalGroupsReply (pair first remaining))) input) input) @@ -130,17 +121,23 @@ sourceGateLocalBuild bindings body start end = (foldr sourceGateLocalIndented indentedExpression parentColumn input = (lazyList (_ : parserReplyFail (parserDiagnostic 40 "indented local block" t t t) input false false) (token rest : lazyBool - (_ : sourceGateLocalBindings indentedExpression input) + (_ : sourceGateLocalBindings + (sourceGateLocalValue indentedExpression (sourcePositionColumn (sourceTokenStart token))) + indentedExpression input) (_ : parserReplyFail (parserDiagnostic 40 "indented local block" (sourceTokenKind token) (sourceTokenStart token) t) input false false) (and? (not? (lte_? (sourcePositionColumn (sourceTokenStart token)) parentColumn)) (not? (lte_? (sourcePositionColumn (sourceTokenStart token)) 1)))) input) -sourceGateLocalStart indentedExpression parentColumn input = (lazyList - (_ : sourceGateLocalBindings indentedExpression input) +-- An inline binding inherits its enclosing expression context (including +-- explicit grouping). A newline after let/where opens a separate local block. +sourceGateLocalStart expression indentedExpression mode input = (lazyList + (_ : sourceGateLocalBindings + (sourceGateParseLayoutValue expression mode "local binding value") indentedExpression input) (token rest : lazyBool (_ : parserThen sourceGateSkipNestedNewlines - (sourceGateLocalIndented indentedExpression parentColumn) input) - (_ : sourceGateLocalBindings indentedExpression input) + (sourceGateLocalIndented indentedExpression (snd mode)) input) + (_ : sourceGateLocalBindings + (sourceGateParseLayoutValue expression mode "local binding value") indentedExpression input) (equal? (sourceTokenKind token) sourceTokenNewline)) input) -- rec applies to exactly one contiguous function group. It is not a mutually -- recursive block and never changes the scope of plain let/where bindings. @@ -154,17 +151,17 @@ sourceGateLocalFinish _ _ _ start _ input = sourceGateRecursive = (parserMap (present : lazyMaybe (_ : false) (_ : true) present) (parserOptional (sourceGateExpect sourceTokenRec))) -sourceGateParseLet expression indentedExpression parentColumn input = (parserBind +sourceGateParseLet expression indentedExpression mode input = (parserBind (sourceGateExpect sourceTokenLet) (keyword : parserBind sourceGateRecursive (recursive : - parserBind (sourceGateLocalStart indentedExpression parentColumn) (bindings : + parserBind (sourceGateLocalStart expression indentedExpression mode) (bindings : parserThen sourceGateSkipNestedNewlines (parserThen (sourceGateExpect sourceTokenIn) - (parserBind (sourceGateParseLayoutValue expression indentedExpression "local binding body") + (parserBind (sourceGateParseLayoutValue expression mode "local binding body") (body : sourceGateLocalFinish recursive bindings body (sourceTokenStart keyword) (sourceAstEnd body))))))) input) -sourceGateParseWhere expression indentedExpression body parentColumn input = (parserThen +sourceGateParseWhere expression indentedExpression body mode input = (parserThen (sourceGateExpect sourceTokenWhere) (parserBind sourceGateRecursive (recursive : - parserBind (sourceGateLocalStart indentedExpression parentColumn) (bindings : + parserBind (sourceGateLocalStart expression indentedExpression mode) (bindings : sourceGateLocalFinish recursive bindings body (sourceAstStart body) (sourceAstEnd (snd (foldl (_ binding : binding) (fst bindings) bindings)))))) input) @@ -174,7 +171,7 @@ sourceGateCaseArm expression column input = (parserBind sourceEquationParse (pat parserThen (sourceGateExpect sourceTokenAssign) (parserMap (body : pair [pattern] body) (sourceGateParseLayoutValue (tokens : expression tokens (sourceGateLayoutIndented column)) - (indent tokens : expression tokens (sourceGateLayoutIndented indent)) "case arm body"))) input) + (sourceGateLayoutIndented column) "case arm body"))) input) sourceGateCasePatternStarts? kind = (or? (sourceGateAtomStarts? kind) (equal? kind sourceTokenPin)) sourceGateCaseSameColumn? input column = (lazyList (_ : false) @@ -268,7 +265,7 @@ sourceGateParseDoStatement expression indentedExpression column input = (parserMap (action : pair (just name) action) (sourceGateParseLayoutValue (tokens : expression tokens (sourceGateLayoutIndented column)) - indentedExpression "do binding action"))) input) + (sourceGateLayoutIndented column) "do binding action"))) input) (_ : parserMap (action : pair nothing action) (tokens : expression tokens (sourceGateLayoutIndented column)) input) @@ -283,7 +280,7 @@ sourceGateParseDoNext expression indentedExpression column input = (sourceGateExpected "do statement" t t) input false false) (sourceGateDoSameColumn? input column) -sourceGateParseDoFirst expression indentedExpression keyword operator input = +sourceGateParseDoFirst expression indentedExpression parentColumn keyword operator input = lazyList (_ : parserReplyFail (parserDiagnostic 40 "indented do block" t t t) input false false) @@ -311,16 +308,17 @@ sourceGateParseDoFirst expression indentedExpression keyword operator input = (parserDiagnostic 40 "indented do block" (sourceTokenKind token) (sourceTokenStart token) t) input false false) - (not? (lte_? (sourcePositionColumn (sourceTokenStart token)) 1))) + (and? (not? (lte_? (sourcePositionColumn (sourceTokenStart token)) parentColumn)) + (not? (lte_? (sourcePositionColumn (sourceTokenStart token)) 1)))) input -sourceGateParseDo expression indentedExpression atom input = +sourceGateParseDo expression indentedExpression parentColumn atom input = parserBind (sourceGateExpect sourceTokenDo) (keyword : parserThen sourceGateSkipNestedNewlines (parserBind atom (operator : parserThen (sourceGateExpect sourceTokenNewline) (parserThen sourceGateSkipNestedNewlines - (sourceGateParseDoFirst expression indentedExpression + (sourceGateParseDoFirst expression indentedExpression parentColumn keyword operator))))) input -- Dispatch only after observing the first token. A selected parser consumes @@ -331,9 +329,9 @@ sourceGateParseAtom expression mode input = (lazyList (token _ : (let indented column tokens = expression tokens (sourceGateLayoutIndented column) in let parse = (case sourceTokenKind token of ^sourceTokenCase = sourceGateParseCase expression mode - ^sourceTokenDo = (sourceGateParseDo expression indented + ^sourceTokenDo = (sourceGateParseDo expression indented (snd mode) (sourceGateParseAtom expression sourceGateLayoutTop)) - ^sourceTokenLet = sourceGateParseLet (tokens : expression tokens mode) indented (snd mode) + ^sourceTokenLet = sourceGateParseLet (tokens : expression tokens mode) indented mode ^sourceTokenT = parserMap sourceAstLeaf (sourceGateExpect sourceTokenT) ^sourceTokenName = parserMap sourceAstName (sourceGateExpect sourceTokenName) ^sourceTokenNumber = parserMap sourceAstNumber (sourceGateExpect sourceTokenNumber) @@ -346,7 +344,7 @@ sourceGateParseAtom expression mode input = (lazyList -- Only a successful atom consumes another operand. A close paren, colon or -- newline is left intact for the enclosing parser; an opened but malformed -- group propagates its consumed failure instead of silently ending the app. --- A newline is a continuation only inside a delimiter and only when a +-- A newline continues inside a delimiter or deeper than its owner, when a -- following token can start an atom. Looking ahead prevents a newline before -- ')' or 'where' from becoming a committed atom failure. sourceGateAtomStarts? kind = @@ -365,25 +363,30 @@ sourceGateLayoutTop = pair false 0 sourceGateLayoutNested = pair true 0 sourceGateLayoutIndented column = pair false column -sourceGateNewlineStarts? tokens predicate mode = +sourceGateNewlineStartsWith? tokens predicate mode inclusive = lazyList (_ : false) (token rest : lazyBool - (_ : sourceGateNewlineStarts? rest predicate mode) + (_ : sourceGateNewlineStartsWith? rest predicate mode inclusive) (_ : and? (predicate (sourceTokenKind token)) (or? (fst mode) - (and? (not? (isZero_? (snd mode))) - (not? (lte_? (sourcePositionColumn (sourceTokenStart token)) - (snd mode)))))) + (lazyBool + (_ : lte_? (snd mode) (sourcePositionColumn (sourceTokenStart token))) + (_ : and? (not? (isZero_? (snd mode))) + (not? (lte_? (sourcePositionColumn (sourceTokenStart token)) (snd mode)))) + inclusive))) (equal? (sourceTokenKind token) sourceTokenNewline)) tokens +sourceGateNewlineStarts? tokens predicate mode = + sourceGateNewlineStartsWith? tokens predicate mode false + -- Do not consume a newline until a matching token at an allowed indentation -- is visible. This retains layout boundaries in parser remainders. -sourceGateAfterLayoutNewlines mode starts parser input = +sourceGateAfterNewlines mode inclusive starts parser input = lazyList (_ : parser input) (token rest : @@ -391,11 +394,16 @@ sourceGateAfterLayoutNewlines mode starts parser input = (_ : lazyBool (_ : parserThen sourceGateSkipNestedNewlines parser input) (_ : parser input) - (sourceGateNewlineStarts? rest starts mode)) + (sourceGateNewlineStartsWith? rest starts mode inclusive)) (_ : parser input) (equal? (sourceTokenKind token) sourceTokenNewline)) input +-- Operators and `where` may align with their owner, but cannot cross a +-- dedent out of an arm, local binding or do statement. +sourceGateAfterLayoutNewlines mode = sourceGateAfterNewlines mode false +sourceGateAfterSuffixNewlines mode = sourceGateAfterNewlines mode true + sourceGateAppNext mode expression input = sourceGateAfterLayoutNewlines mode sourceGateAtomStarts? (sourceGateParseAtom expression mode) input @@ -421,11 +429,11 @@ sourceGateParsePipeOperator = sourceGateParsePipeSegment mode expression input = parserBind - (sourceGateAfterLayoutNewlines sourceGateLayoutNested + (sourceGateAfterSuffixNewlines mode sourceGatePipeStarts? sourceGateParsePipeOperator) - (operator : parserThen sourceGateSkipNestedNewlines - (parserMap (right : pair operator right) - (sourceGateParseApplication mode expression))) input + (operator : parserMap (right : pair operator right) + (sourceGateParseLayoutValue (sourceGateParseApplication mode expression) + mode "pipe operand")) input -- Application binds tighter than a left-associative pipe chain. Retain an -- explicit located AST pipe; core resolution chooses the direction later. @@ -443,12 +451,12 @@ sourceGateExprWithLayout input mode = (sourceGateParsePipes mode sourceGateExprWithLayout) (body : parserMap (suffix : lazyMaybe (_ : body) (local : local) suffix) - (parserOptional (sourceGateAfterLayoutNewlines sourceGateLayoutNested + (parserOptional (sourceGateAfterSuffixNewlines mode (kind : equal? kind sourceTokenWhere) (sourceGateParseWhere (tokens : sourceGateExprWithLayout tokens mode) (column tokens : sourceGateExprWithLayout tokens (sourceGateLayoutIndented column)) - body (snd mode))))) input) + body mode)))) input) (sourceGateLambdaHead? input) sourceGateExpr = (input : sourceGateExprWithLayout input sourceGateLayoutTop) diff --git a/lib/source/program.tri b/lib/source/program.tri @@ -20,12 +20,10 @@ sourceDefinitionBody definition = snd definition sourceProgramSkipNewlines = parserMap (_ : t) (parserMany (sourceGateExpect sourceTokenNewline)) --- Both definition and local-binding bodies use the same located transition: --- unindented lines are top-level; indented values may continue on lines whose --- first token starts in a strictly deeper column. -sourceProgramDefinitionValue = - sourceGateParseLayoutValue sourceGateExpr sourceGateExprIndented - "definition body" +-- Plain and annotated heads share the owning definition's layout boundary. +sourceProgramDefinitionValue column = + sourceGateParseLayoutValue (sourceGateExprIndented column) + (sourceGateLayoutIndented column) "definition body" -- Look ahead across the head (including delimited pattern newlines). This -- distinguishes `f t` (expression) from `f x = x` (definition), without @@ -47,7 +45,7 @@ sourceProgramDefinitionHead? tokens = -- Keep the runtime Result checks (including short-circuit and value passing) -- identical to Frontend.ContractDesugar's supported base-library forms. sourceProgramContract = - parserOr (sourceGateParseGroup sourceGateExpr) + parserOr (sourceGateParseGroup (tokens : sourceGateExprWithLayout tokens sourceGateLayoutNested)) (parserMap sourceAstName (sourceGateExpect sourceTokenName)) -- Argument = pair (Maybe namedBinderToken) (Maybe contractExpression). @@ -214,7 +212,7 @@ sourceProgramParseAnnotatedBinding input = sourceProgramContract)) (result : parserMap (body : pair name (sourceProgramLowerDefinition name args result body)) - sourceProgramDefinitionValue)) remaining) + (sourceProgramDefinitionValue (sourcePositionColumn (sourceTokenStart name))))) remaining) (_ : parserReplyFail (parserDiagnostic 47 "supported contract head" t (sourceTokenStart name) t) remaining true false) @@ -234,9 +232,7 @@ sourceProgramAnnotated? input = (lazyList (_ : false) sourceProgramParsePlainBinding input = (lazyList (_ : sourceGateAtomError input) (token rest : sourceEquationBinding - (sourceGateParseLayoutValue - (sourceGateExprIndented (sourcePositionColumn (sourceTokenStart token))) - sourceGateExprIndented "definition body") input) input) + (sourceProgramDefinitionValue (sourcePositionColumn (sourceTokenStart token))) input) input) sourceProgramParseDefinition input = lazyBool (_ : lazyBool (_ : sourceProgramParseAnnotatedBinding input) diff --git a/src/PortableCompiler.hs b/src/PortableCompiler.hs @@ -63,7 +63,7 @@ loadCompiler sample options store = do -- retain their data closure when invoked outside the checkout. An explicit -- tricu_datadir override is useful for relocatable distributions and diagnostics. packagedCompilerSha256 :: String -packagedCompilerSha256 = "d70de875988dfa309f2c167992928866f88b08af351918b8c7b5d88c541c6e94" +packagedCompilerSha256 = "bd9b236492bb6359a6cc4dcd7c988ac2bf64abea4a1cc1c7233d1d023ca0dd1e" packagedCompiler :: StorePath -> IO T.Text packagedCompiler store = do diff --git a/test/Spec.hs b/test/Spec.hs @@ -2367,7 +2367,7 @@ gateUnitTests = testGroup "Feasibility-gate program compiler" , ("main = (x\n where x = t)", "goldenLeaf", parserOk Leaf Leaf) , ("main =\n t", "goldenLeaf", parserOk Leaf Leaf) - , ("main =\nt", "goldenLeaf", parserOk Leaf Leaf) + , ("main =\n t\n t", "goldenMultilineGroup", parserOk (Stem Leaf) Leaf) , ("main =\n (x : x)\n 2", "goldenTwo", parserOk (ofNumber 2) Leaf) , ("main =\n id\n t\nid x = x", "goldenLeaf", @@ -2661,9 +2661,11 @@ gateUnitTests = testGroup "Feasibility-gate program compiler" , testCase "indented definition bodies preserve continuation layout" $ do let sources = [ ("main =\n t", Leaf) - , ("main =\nt", Leaf) , ("main =\n (x : x)\n 2", ofNumber 2) , ("main =\n id\n t\nid x = x", Leaf) + , ("main =\n id\n 23\nid x = x", ofNumber 23) + , ("main =\n id\n 23\nid x = x", ofNumber 23) + , ("main = id\n 23\nid x = x", ofNumber 23) , ("main = value\nwhere value = t", Leaf) , ("main =\n value\n where value = t", Leaf) ] @@ -2752,6 +2754,12 @@ gateUnitTests = testGroup "Feasibility-gate program compiler" , testCase "unused divergent body is checked but not demanded" $ do let source = "unused = (x : x x) (x : x x)\nmain = t" check Leaf source (parserOk Leaf Leaf) + , testCase "a next-line body cannot occupy its owner's column" $ do + let reply = apply (gateProgramEnv Map.! "parseGateProgram") + (ofString "main =\nt") + diagnostic = portableDiagnostic (ofNumber 40) + (ofString "definition body") (ofNumber 1) (gatePosition 2 1 7) Leaf + apply (fixtureExports "parser" Map.! "parserReplyPayload") reply @?= diagnostic , testCase "missing multiline definition body is a structured diagnostic" $ check Leaf "main =\n" (parserErr (portableDiagnostic (ofNumber 40) (ofString "definition body") diff --git a/test/bootstrap_smoke.py b/test/bootstrap_smoke.py @@ -77,6 +77,8 @@ def main(): assert sha(args.tricu) == accepted['inputs'][1]['runtime_sha256'] root = args.directory.resolve(); root.mkdir(parents=True) workspace = root/'workspace'; workspace.mkdir() + # Isolate staged siblings from an enclosing checkout's source map. + (workspace/'tricu.workspace').write_text('tricu.workspace.v1\n') sources = {name:'lib/'+name+'.tri' for name in ['base','bytes','conversions','prelude']} sources['native_math'] = 'lib/math/native.tri' for alias, path in sources.items(): diff --git a/test/fixtures/compiler-library.arboricx b/test/fixtures/compiler-library.arboricx Binary files differ. diff --git a/test/fixtures/compiler-library.v1 b/test/fixtures/compiler-library.v1 @@ -11,13 +11,13 @@ module source.build source_build lib/source/build.tri 5c24cc853df42e433916b1528f module parser parser lib/parser.tri 31e8c679e086bdf9b68e05a4bb71fd413e66e53fd93b2e4b4a806930020b36e4 module source.order source_order lib/source/order.tri ec97f34c89ead701af75053ea340ead1bb0fda13d83b474ca760c3aa359970fa module source.compile source_compile lib/source/compile.tri 3764484ae723d4311cf04b769251badf7f7a190d9480389303847be1ce665bb9 -module source.program source_program lib/source/program.tri 67cd6e68d939e49922b1718e0164854a01e5c85023a45bfab485c71c4dde55b1 +module source.program source_program lib/source/program.tri 7a99fcc8da4c502ff67bc723b3ef317409a84f608c607cfa99331dd30245845a module source.ast source_ast lib/source/ast.tri b6d05cace61c04032ea39a858dedc7482988dbb3ed47581a9a3239094263d314 module base base lib/base.tri 7ba2537cc4ec0571a7aa8a02557551245ca04f5bc08d9f9c1eb4d2606ec67b37 module bytes bytes lib/bytes.tri 6d057be42bc16788a34ce80cca7cb97251cf7dbbae8fd57100a31206ab3dd2a0 module conversions conversions lib/conversions.tri fd93454ad6cf7b0d906f367bed9a679f7f7e73cf424e33d8a62e63b023db6522 module source.lexer source_lexer lib/source/lexer.tri 94ee3a70dbed59015891f7f5c2ef588d64f1a885218edc35eed98d96d85fd11b -module source.parser source_parser lib/source/parser.tri 00d64064122dace90dd8fa8535e4f9a76450bc61de572ae40f4a05692aeac9a0 +module source.parser source_parser lib/source/parser.tri 23c8142e9629f029ae22b7c0b377bbfb69e4f9ecc5ce452094c47d063a49c9d6 module source.core source_core lib/source/core.tri b132ca49c22098c8a5d638517d701ad8141028d9389594ac2134240d240a2637 module source.lock source_lock lib/source/lock.tri 31ffd58166bf861e82da0a90594cfb9c6c12e19baa51d5166fe0e4414d24af94 module source.bundle source_bundle lib/source/bundle.tri 3fedb41000f22609b0bdab8fb222175d1347202eceabe7bdb983bc28b3258627 @@ -27,4 +27,4 @@ module source.pattern source_pattern lib/source/pattern.tri b27f1eac18cbe8ad80cd module source.equations source_equations lib/source/equations.tri 825f175f5c6dd56e103b94e924283acf5913cbc4554fb42fc07a034f460d2076 module source.stable source_stable lib/source/stable.tri b407662fec9436bfb7cc06eed2c14961174c6fa19863413ffc74d58ef72c5431 module math.native native_math lib/math/native.tri e9d0b87564d13695bef695c552e9707710d9147877f9d9dc5282c7335664cc57 -bundle 110c5740b61f91f8a6dc8926541fd2ca89cebe8771191b13ed284122964b7c2b +bundle aa29656c146d2fc239d27da869498670c401cf344516314d06b7e5634c02d6f1 diff --git a/test/fixtures/reference-source/23c8142e9629f029ae22b7c0b377bbfb69e4f9ecc5ce452094c47d063a49c9d6.tri b/test/fixtures/reference-source/23c8142e9629f029ae22b7c0b377bbfb69e4f9ecc5ce452094c47d063a49c9d6.tri @@ -0,0 +1,470 @@ +!import prelude * +!import parser * +!import source_lexer * +!import source_ast * +!import source_equations * +!export * + +-- Small, single-expression gate grammar. Its recursive expression parser is +-- one direct self-recursive dispatcher; atom/application/lambda helpers receive +-- the recursive parser as an argument rather than forming top-level cycles. +sourceGateExpected kind found location = + parserDiagnostic 2 kind found location t + +sourceGateExpect kind input = + lazyList + (_ : parserReplyFail (sourceGateExpected kind t t) input false false) + (token rest : + lazyBool + (_ : parserReplyOk token rest true false) + (_ : parserReplyFail + (sourceGateExpected kind (sourceTokenKind token) + (sourceTokenStart token)) input false false) + (equal? (sourceTokenKind token) kind)) + input + +sourceGateEof input = + lazyList + (_ : parserReplyOk t input false false) + (token rest : parserReplyFail + (sourceGateExpected t (sourceTokenKind token) + (sourceTokenStart token)) input false false) + input + +-- A lambda head is one or more name tokens followed by a same-line colon. +-- Stop scanning on the first non-name; do not mistake an ordinary `f x` +-- application for a multi-binder head when no colon follows. +sourceGateLambdaHead? input = (let rec + scan tokens seen = (lazyList (_ : false) + (token rest : lazyBool (_ : scan rest true) + (_ : and? seen (equal? (sourceTokenKind token) sourceTokenColon)) + (equal? (sourceTokenKind token) sourceTokenName)) tokens) + in scan input false) + +sourceGateParseLambda expression input = + parserBind (parserSome (sourceGateExpect sourceTokenName)) (names : + parserThen (sourceGateExpect sourceTokenColon) + (parserThen sourceGateSkipNestedNewlines + (parserMap (body : foldr + (value name : sourceAstLambda name value) body names) + expression))) input + +sourceGateParseGroup expression input = + parserBind (sourceGateExpect sourceTokenOpen) (open : + parserThen sourceGateSkipNestedNewlines + (parserBind expression (body : + parserThen sourceGateSkipNestedNewlines + (parserMap (close : sourceAstGroup open body close) + (sourceGateExpect sourceTokenClose))))) input + +-- Shared binding head: retain patterns until contiguous equations have +-- coalesced. Only unique all-name singleton heads take the lambda fast path. +sourceGateParseBindingWith valueParser input = sourceEquationBinding valueParser input + +sourceGateParseBinding expression = sourceGateParseBindingWith expression + +-- A body belongs to its definition/statement even when its first operand +-- follows a newline. Never reset the continuation boundary to that operand. +-- Validate before consuming it so a sibling cannot become a missing body. +sourceGateParseLayoutFirst expression mode label input = (lazyList + (_ : parserReplyFail (parserDiagnostic 40 label t t t) input false false) + (token rest : lazyBool + (_ : expression input) + (_ : parserReplyFail (parserDiagnostic 40 label (sourceTokenKind token) + (sourceTokenStart token) t) input false false) + (or? (fst mode) + (not? (lte_? (sourcePositionColumn (sourceTokenStart token)) (snd mode))))) input) + +sourceGateParseLayoutValue expression mode label input = (lazyList + (_ : expression input) + (token rest : lazyBool + (_ : parserThen sourceGateSkipNestedNewlines + (sourceGateParseLayoutFirst expression mode label) input) + (_ : expression input) + (equal? (sourceTokenKind token) sourceTokenNewline)) input) + +-- Local groups share the program head grammar, but are deliberately not +-- dependency-sorted: nested nonrecursive lets expose only earlier groups. +sourceGateLocalValue indentedExpression column input = + sourceGateParseLayoutValue (indentedExpression column) (sourceGateLayoutIndented column) + "local binding value" input +sourceGateLocalNext? input column = (lazyList (_ : false) + (token rest : lazyBool + (_ : sourceGateLocalAfterNewlines? rest column) + (_ : false) (equal? (sourceTokenKind token) sourceTokenNewline)) input) +sourceGateLocalAfterNewlines? input column = (lazyList (_ : false) + (token rest : lazyBool (_ : sourceGateLocalAfterNewlines? rest column) + (_ : and? (equal? (sourcePositionColumn (sourceTokenStart token)) column) + (sourceEquationBindingHead? input)) + (equal? (sourceTokenKind token) sourceTokenNewline)) input) +sourceGateLocalNext indentedExpression column input = (lazyBool + (_ : parserThen sourceGateSkipNestedNewlines + (sourceEquationBinding (sourceGateLocalValue indentedExpression column)) input) + (_ : parserReplyFail (sourceGateExpected "local equation" t t) input false false) + (sourceGateLocalNext? input column)) +sourceGateLocalGroupsReply bindings input = (lazyResult + (diagnostic remainder : parserReplyFail diagnostic input false false) + (groups unused : lazyResult + (diagnostic remainder : parserReplyFail diagnostic input false false) + (_ unused : parserReplyOk groups input false false) + (sourceEquationUnique groups)) (sourceEquationGroups bindings)) +sourceGateLocalBindings valueParser indentedExpression input = (lazyList + (_ : sourceGateAtomError input) + (token rest : parserBind + (sourceEquationBinding valueParser) + (first : parserBind (parserMany (sourceGateLocalNext indentedExpression + (sourcePositionColumn (sourceTokenStart token)))) + (remaining : sourceGateLocalGroupsReply (pair first remaining))) input) input) +sourceGateLocalBuild bindings body start end = (foldr + (rest binding : sourceAstLocal (fst binding) (snd binding) rest start end) + body bindings) +sourceGateLocalIndented indentedExpression parentColumn input = (lazyList + (_ : parserReplyFail (parserDiagnostic 40 "indented local block" t t t) input false false) + (token rest : lazyBool + (_ : sourceGateLocalBindings + (sourceGateLocalValue indentedExpression (sourcePositionColumn (sourceTokenStart token))) + indentedExpression input) + (_ : parserReplyFail (parserDiagnostic 40 "indented local block" + (sourceTokenKind token) (sourceTokenStart token) t) input false false) + (and? (not? (lte_? (sourcePositionColumn (sourceTokenStart token)) parentColumn)) + (not? (lte_? (sourcePositionColumn (sourceTokenStart token)) 1)))) input) +-- An inline binding inherits its enclosing expression context (including +-- explicit grouping). A newline after let/where opens a separate local block. +sourceGateLocalStart expression indentedExpression mode input = (lazyList + (_ : sourceGateLocalBindings + (sourceGateParseLayoutValue expression mode "local binding value") indentedExpression input) + (token rest : lazyBool + (_ : parserThen sourceGateSkipNestedNewlines + (sourceGateLocalIndented indentedExpression (snd mode)) input) + (_ : sourceGateLocalBindings + (sourceGateParseLayoutValue expression mode "local binding value") indentedExpression input) + (equal? (sourceTokenKind token) sourceTokenNewline)) input) +-- rec applies to exactly one contiguous function group. It is not a mutually +-- recursive block and never changes the scope of plain let/where bindings. +sourceGateLocalFinish ^false bindings body start end input = + parserReplyOk (sourceGateLocalBuild bindings body start end) input false false +sourceGateLocalFinish ^true [binding] body start end input = + parserReplyOk (sourceAstRecursive (fst binding) (snd binding) body start end) input false false +sourceGateLocalFinish _ _ _ start _ input = + parserReplyFail (parserDiagnostic 48 "one recursive local function" t start t) input false false + +sourceGateRecursive = (parserMap (present : lazyMaybe (_ : false) (_ : true) present) + (parserOptional (sourceGateExpect sourceTokenRec))) + +sourceGateParseLet expression indentedExpression mode input = (parserBind + (sourceGateExpect sourceTokenLet) (keyword : parserBind sourceGateRecursive (recursive : + parserBind (sourceGateLocalStart expression indentedExpression mode) (bindings : + parserThen sourceGateSkipNestedNewlines + (parserThen (sourceGateExpect sourceTokenIn) + (parserBind (sourceGateParseLayoutValue expression mode "local binding body") + (body : sourceGateLocalFinish recursive bindings body + (sourceTokenStart keyword) (sourceAstEnd body))))))) input) +sourceGateParseWhere expression indentedExpression body mode input = (parserThen + (sourceGateExpect sourceTokenWhere) (parserBind sourceGateRecursive (recursive : + parserBind (sourceGateLocalStart expression indentedExpression mode) (bindings : + sourceGateLocalFinish recursive bindings body (sourceAstStart body) + (sourceAstEnd (snd (foldl (_ binding : binding) (fst bindings) bindings)))))) input) + +-- Case arms share equation patterns/validation. The branch column delimits +-- bodies, including nested cases and do blocks. A pattern has no function name. +sourceGateCaseArm expression column input = (parserBind sourceEquationParse (pattern : + parserThen (sourceGateExpect sourceTokenAssign) + (parserMap (body : pair [pattern] body) + (sourceGateParseLayoutValue (tokens : expression tokens (sourceGateLayoutIndented column)) + (sourceGateLayoutIndented column) "case arm body"))) input) +sourceGateCasePatternStarts? kind = (or? (sourceGateAtomStarts? kind) + (equal? kind sourceTokenPin)) +sourceGateCaseSameColumn? input column = (lazyList (_ : false) + (token rest : lazyBool (_ : sourceGateCaseSameColumn? rest column) + (_ : and? (equal? (sourcePositionColumn (sourceTokenStart token)) column) + (sourceGateCasePatternStarts? (sourceTokenKind token))) + (equal? (sourceTokenKind token) sourceTokenNewline)) input) +sourceGateCaseNext expression column input = (lazyList + (_ : parserReplyFail (sourceGateExpected "case arm" t t) input false false) + (token rest : lazyBool + (_ : parserThen sourceGateSkipNestedNewlines (sourceGateCaseArm expression column) input) + (_ : parserReplyFail (sourceGateExpected "case arm" t t) input false false) + (and? (equal? (sourceTokenKind token) sourceTokenNewline) + (sourceGateCaseSameColumn? rest column))) input) +sourceGateCaseFirst expression keyword subject parentColumn input = (lazyList + (_ : parserReplyFail (parserDiagnostic 40 "indented case arms" t t t) input false false) + (token rest : let column = sourcePositionColumn (sourceTokenStart token) in + lazyBool + (_ : parserBind (sourceGateCaseArm expression column) (first : + parserMap (remaining : sourceAstCase subject (pair first remaining) + (sourceTokenStart keyword) (sourceAstEnd (snd (foldl (_ arm : arm) first remaining)))) + (parserMany (sourceGateCaseNext expression column))) input) + (_ : parserReplyFail (parserDiagnostic 40 "indented case arms" + (sourceTokenKind token) (sourceTokenStart token) t) input false false) + (and? (not? (lte_? column parentColumn)) (not? (lte_? column 1)))) input) +sourceGateParseCase expression mode input = (parserBind (sourceGateExpect sourceTokenCase) (keyword : + parserBind (tokens : expression tokens mode) (subject : + parserThen (sourceGateExpect sourceTokenOf) + (parserThen (sourceGateExpect sourceTokenNewline) + (parserThen sourceGateSkipNestedNewlines + (sourceGateCaseFirst expression keyword subject (snd mode)))))) input) + +-- Newlines are meaningful between top-level expressions but are trivia +-- within a bracketed list. Each element is one atom: applications inside a +-- list need parentheses, as in the bootstrap grammar. +sourceGateSkipNestedNewlines = + parserMap (_ : t) (parserMany (sourceGateExpect sourceTokenNewline)) + +sourceGateParseList atom input = + parserBind (sourceGateExpect sourceTokenLeftBracket) (open : + parserThen sourceGateSkipNestedNewlines + (parserBind + (parserMany + (parserBefore atom sourceGateSkipNestedNewlines)) + (elements : parserMap + (close : sourceAstList open elements close) + (sourceGateExpect sourceTokenRightBracket)))) input + +sourceGateAtomError input = + lazyList + (_ : parserReplyFail (sourceGateExpected 7 t t) input false false) + (token rest : parserReplyFail + (sourceGateExpected 7 (sourceTokenKind token) + (sourceTokenStart token)) input false false) + input + +-- A do block begins after an explicit operator atom and a newline. Its +-- statements start at one located column; deeper lines belong to the current +-- expression, while a new line at that column starts the next statement. +sourceGateDoBindHead? input = + lazyList + (_ : false) + (token rest : + lazyBool + (_ : lazyList + (_ : false) + (next tail : equal? (sourceTokenKind next) sourceTokenBindArrow) + rest) + (_ : false) + (equal? (sourceTokenKind token) sourceTokenName)) + input + +sourceGateDoSameColumn? input column = + lazyList + (_ : false) + (token rest : + lazyBool + (_ : sourceGateDoSameColumn? rest column) + (_ : and? + (equal? (sourcePositionColumn (sourceTokenStart token)) column) + (sourceGateAtomStarts? (sourceTokenKind token))) + (equal? (sourceTokenKind token) sourceTokenNewline)) + input + + + +sourceGateParseDoStatement expression indentedExpression column input = + lazyBool + (_ : parserBind (sourceGateExpect sourceTokenName) (name : + parserThen (sourceGateExpect sourceTokenBindArrow) + (parserMap (action : pair (just name) action) + (sourceGateParseLayoutValue + (tokens : expression tokens (sourceGateLayoutIndented column)) + (sourceGateLayoutIndented column) "do binding action"))) input) + (_ : parserMap (action : pair nothing action) + (tokens : expression tokens (sourceGateLayoutIndented column)) + input) + (sourceGateDoBindHead? input) + +sourceGateParseDoNext expression indentedExpression column input = + lazyBool + (_ : parserThen sourceGateSkipNestedNewlines + (sourceGateParseDoStatement expression indentedExpression column) + input) + (_ : parserReplyFail + (sourceGateExpected "do statement" t t) input false false) + (sourceGateDoSameColumn? input column) + +sourceGateParseDoFirst expression indentedExpression parentColumn keyword operator input = + lazyList + (_ : parserReplyFail + (parserDiagnostic 40 "indented do block" t t t) input false false) + (token rest : + lazyBool + (_ : parserBind + (sourceGateParseDoStatement expression indentedExpression + (sourcePositionColumn (sourceTokenStart token))) + (first : parserBind + (parserMany (sourceGateParseDoNext expression indentedExpression + (sourcePositionColumn (sourceTokenStart token)))) + (remaining : (nextInput : let last = foldl (_ statement : statement) first remaining in + lazyMaybe + (_ : parserReplyOk + (sourceAstDo keyword operator (pair first remaining) + (sourceAstDoStatementValue last)) + nextInput false false) + (name : parserReplyFail + (parserDiagnostic 40 "do final expression" t + (sourceTokenStart name) t) + nextInput false false) + (sourceAstDoStatementBinder last)))) + input) + (_ : parserReplyFail + (parserDiagnostic 40 "indented do block" + (sourceTokenKind token) (sourceTokenStart token) t) + input false false) + (and? (not? (lte_? (sourcePositionColumn (sourceTokenStart token)) parentColumn)) + (not? (lte_? (sourcePositionColumn (sourceTokenStart token)) 1)))) + input + +sourceGateParseDo expression indentedExpression parentColumn atom input = + parserBind (sourceGateExpect sourceTokenDo) (keyword : + parserThen sourceGateSkipNestedNewlines + (parserBind atom (operator : + parserThen (sourceGateExpect sourceTokenNewline) + (parserThen sourceGateSkipNestedNewlines + (sourceGateParseDoFirst expression indentedExpression parentColumn + keyword operator))))) input + +-- Dispatch only after observing the first token. A selected parser consumes +-- its opening token; its failure must not retry another token kind. Unknown +-- prefixes retain the same unconsumed atom diagnostic as ordered choice. +sourceGateParseAtom expression mode input = (lazyList + (_ : sourceGateAtomError input) + (token _ : (let indented column tokens = expression tokens (sourceGateLayoutIndented column) in + let parse = (case sourceTokenKind token of + ^sourceTokenCase = sourceGateParseCase expression mode + ^sourceTokenDo = (sourceGateParseDo expression indented (snd mode) + (sourceGateParseAtom expression sourceGateLayoutTop)) + ^sourceTokenLet = sourceGateParseLet (tokens : expression tokens mode) indented mode + ^sourceTokenT = parserMap sourceAstLeaf (sourceGateExpect sourceTokenT) + ^sourceTokenName = parserMap sourceAstName (sourceGateExpect sourceTokenName) + ^sourceTokenNumber = parserMap sourceAstNumber (sourceGateExpect sourceTokenNumber) + ^sourceTokenString = parserMap sourceAstString (sourceGateExpect sourceTokenString) + ^sourceTokenOpen = sourceGateParseGroup (tokens : expression tokens sourceGateLayoutNested) + ^sourceTokenLeftBracket = sourceGateParseList (sourceGateParseAtom expression sourceGateLayoutNested) + _ = sourceGateAtomError) + in parse input)) input) + +-- Only a successful atom consumes another operand. A close paren, colon or +-- newline is left intact for the enclosing parser; an opened but malformed +-- group propagates its consumed failure instead of silently ending the app. +-- A newline continues inside a delimiter or deeper than its owner, when a +-- following token can start an atom. Looking ahead prevents a newline before +-- ')' or 'where' from becoming a committed atom failure. +sourceGateAtomStarts? kind = + or? (equal? kind sourceTokenT) + (or? (equal? kind sourceTokenName) + (or? (equal? kind sourceTokenNumber) + (or? (equal? kind sourceTokenString) + (or? (equal? kind sourceTokenOpen) + (or? (equal? kind sourceTokenLeftBracket) + (or? (equal? kind sourceTokenLet) + (or? (equal? kind sourceTokenDo) (equal? kind sourceTokenCase)))))))) + +-- mode = pair insideDelimiter baseColumn. A top-level baseColumn of zero +-- disables continuation; a nonzero column allows strictly deeper lines. +sourceGateLayoutTop = pair false 0 +sourceGateLayoutNested = pair true 0 +sourceGateLayoutIndented column = pair false column + +sourceGateNewlineStartsWith? tokens predicate mode inclusive = + lazyList + (_ : false) + (token rest : + lazyBool + (_ : sourceGateNewlineStartsWith? rest predicate mode inclusive) + (_ : and? (predicate (sourceTokenKind token)) + (or? (fst mode) + (lazyBool + (_ : lte_? (snd mode) (sourcePositionColumn (sourceTokenStart token))) + (_ : and? (not? (isZero_? (snd mode))) + (not? (lte_? (sourcePositionColumn (sourceTokenStart token)) (snd mode)))) + inclusive))) + (equal? (sourceTokenKind token) sourceTokenNewline)) + tokens + + + +sourceGateNewlineStarts? tokens predicate mode = + sourceGateNewlineStartsWith? tokens predicate mode false + +-- Do not consume a newline until a matching token at an allowed indentation +-- is visible. This retains layout boundaries in parser remainders. +sourceGateAfterNewlines mode inclusive starts parser input = + lazyList + (_ : parser input) + (token rest : + lazyBool + (_ : lazyBool + (_ : parserThen sourceGateSkipNestedNewlines parser input) + (_ : parser input) + (sourceGateNewlineStartsWith? rest starts mode inclusive)) + (_ : parser input) + (equal? (sourceTokenKind token) sourceTokenNewline)) + input + +-- Operators and `where` may align with their owner, but cannot cross a +-- dedent out of an arm, local binding or do statement. +sourceGateAfterLayoutNewlines mode = sourceGateAfterNewlines mode false +sourceGateAfterSuffixNewlines mode = sourceGateAfterNewlines mode true + +sourceGateAppNext mode expression input = + sourceGateAfterLayoutNewlines mode sourceGateAtomStarts? + (sourceGateParseAtom expression mode) input + +sourceGateParseApplication mode expression input = (let rec + remaining input acc consumed = (parserMatchReply + (diagnostic rest stepConsumed committed : lazyBool + (_ : parserReplyFail diagnostic rest (or? consumed stepConsumed) committed) + (_ : parserReplyOk acc input consumed false) + (or? stepConsumed committed)) + (atom rest _ _ : remaining rest (sourceAstApply acc atom) true) + (sourceGateAppNext mode expression input)) + in parserBind (sourceGateParseAtom expression mode) + (first : rest : remaining rest first false) input) + +sourceGatePipeStarts? kind = + or? (equal? kind sourceTokenPipeBackward) + (equal? kind sourceTokenPipeForward) + +sourceGateParsePipeOperator = + parserOr (sourceGateExpect sourceTokenPipeBackward) + (sourceGateExpect sourceTokenPipeForward) + +sourceGateParsePipeSegment mode expression input = + parserBind + (sourceGateAfterSuffixNewlines mode + sourceGatePipeStarts? sourceGateParsePipeOperator) + (operator : parserMap (right : pair operator right) + (sourceGateParseLayoutValue (sourceGateParseApplication mode expression) + mode "pipe operand")) input + +-- Application binds tighter than a left-associative pipe chain. Retain an +-- explicit located AST pipe; core resolution chooses the direction later. +sourceGateParsePipes mode expression input = + parserBind (sourceGateParseApplication mode expression) (first : + parserMap (segments : foldl + (left segment : sourceAstPipe (fst segment) left (snd segment)) + first segments) + (parserMany (sourceGateParsePipeSegment mode expression))) input + +sourceGateExprWithLayout input mode = + lazyBool + (_ : sourceGateParseLambda (tokens : sourceGateExprWithLayout tokens mode) input) + (_ : parserBind + (sourceGateParsePipes mode sourceGateExprWithLayout) + (body : + parserMap (suffix : lazyMaybe (_ : body) (local : local) suffix) + (parserOptional (sourceGateAfterSuffixNewlines mode + (kind : equal? kind sourceTokenWhere) + (sourceGateParseWhere + (tokens : sourceGateExprWithLayout tokens mode) + (column tokens : sourceGateExprWithLayout tokens (sourceGateLayoutIndented column)) + body mode)))) input) + (sourceGateLambdaHead? input) + +sourceGateExpr = (input : sourceGateExprWithLayout input sourceGateLayoutTop) +sourceGateExprIndented = (column input : + sourceGateExprWithLayout input (sourceGateLayoutIndented column)) + +parseGateTokens input = + parserBefore sourceGateExpr sourceGateEof input + +parseGateSource = parserWithLexer lexGateSource parseGateTokens + diff --git a/test/fixtures/reference-source/7a99fcc8da4c502ff67bc723b3ef317409a84f608c607cfa99331dd30245845a.tri b/test/fixtures/reference-source/7a99fcc8da4c502ff67bc723b3ef317409a84f608c607cfa99331dd30245845a.tri @@ -0,0 +1,260 @@ +!import prelude * +!import parser * +!import source_parser * +!import source_lexer * +!import source_ast * +!import source_equations * +!export * + +-- Program = pair definitions (Maybe finalExpression). +-- Definition = pair locatedNameToken body. Contiguous plain equations +-- coalesce into one located equation body; unique all-name singleton heads +-- take the ordinary lambda path. Program parsing is distinct from the +-- single-expression gate. +sourceProgramDefinitions program = fst program +sourceProgramFinal program = snd program +sourceDefinitionName definition = sourceTokenPayload (fst definition) +sourceDefinitionPosition definition = sourceTokenStart (fst definition) +sourceDefinitionBody definition = snd definition + +sourceProgramSkipNewlines = + parserMap (_ : t) (parserMany (sourceGateExpect sourceTokenNewline)) + +-- Plain and annotated heads share the owning definition's layout boundary. +sourceProgramDefinitionValue column = + sourceGateParseLayoutValue (sourceGateExprIndented column) + (sourceGateLayoutIndented column) "definition body" + +-- Look ahead across the head (including delimited pattern newlines). This +-- distinguishes `f t` (expression) from `f x = x` (definition), without +-- consuming tokens or trying a partially consumed alternative. +sourceProgramAssignOnLine? tokens = sourceEquationAssignLine? tokens + +sourceProgramDefinitionHead? tokens = + lazyList + (_ : false) + (token rest : + lazyBool + (_ : sourceProgramAssignOnLine? rest) + (_ : false) + (equal? (sourceTokenKind token) sourceTokenName)) + tokens + +-- Bootstrap contract profile: definition heads only. Contract expressions +-- are ordinary names or parenthesized applications, never static types. +-- Keep the runtime Result checks (including short-circuit and value passing) +-- identical to Frontend.ContractDesugar's supported base-library forms. +sourceProgramContract = + parserOr (sourceGateParseGroup (tokens : sourceGateExprWithLayout tokens sourceGateLayoutNested)) + (parserMap sourceAstName (sourceGateExpect sourceTokenName)) + +-- Argument = pair (Maybe namedBinderToken) (Maybe contractExpression). +sourceProgramArgNamed input = + parserBind (sourceGateExpect sourceTokenName) (name : + parserMap (contract : pair (just name) contract) + (parserOptional (parserThen (sourceGateExpect sourceTokenAt) + sourceProgramContract))) input + +sourceProgramArgPhantom = + parserMap (contract : pair nothing (just contract)) + (parserThen (sourceGateExpect sourceTokenAt) sourceProgramContract) + +sourceProgramArgument = parserOr sourceProgramArgPhantom sourceProgramArgNamed + +sourceProgramSynthetic name node = + sourceToken sourceTokenName name + (sourceAstStart node) (sourceAstStart node) + +sourceProgramName name node = sourceAstName (sourceProgramSynthetic name node) +sourceProgramApply2 function first second = + sourceAstApply (sourceAstApply function first) second +sourceProgramApply3 function first second third = + sourceAstApply (sourceProgramApply2 function first second) third + +sourceProgramChecked contract value = + sourceProgramApply2 (sourceProgramName "withContract" contract) contract value + +sourceProgramFailure msg = + sourceProgramApply2 + (sourceProgramName "err" msg) msg + (sourceAstLeaf (sourceProgramSynthetic "t" msg)) + +sourceProgramOnFailure node = + sourceAstLambda + (sourceProgramSynthetic "msg" node) + (sourceAstLambda (sourceProgramSynthetic "_" node) + (sourceProgramFailure (sourceProgramName "msg" node))) + +-- Earlier failed arguments must still accept the remaining arguments before +-- producing the error, just like the historical Haskell lowering. +sourceProgramAbsorbFailure node = + sourceAstLambda + (sourceProgramSynthetic "msg" node) + (sourceAstLambda (sourceProgramSynthetic "_" node) + (sourceAstLambda (sourceProgramSynthetic "_" node) + (sourceProgramFailure (sourceProgramName "msg" node)))) + +sourceProgramReturn contract body = + lazyMaybe + (_ : body) + (c : sourceProgramApply3 + (sourceProgramName "matchResult" c) + (sourceProgramOnFailure c) + (sourceAstLambda (sourceProgramSynthetic "r" c) + (sourceAstLambda (sourceProgramSynthetic "_" c) + (sourceProgramName "r" c))) + (sourceProgramChecked c body)) + contract + +sourceProgramArgName arg index anchor = + lazyMaybe + (_ : sourceProgramSynthetic + (if (isZero_? index) "x" (if (equal? index 1) "y" "z")) anchor) + (token : token) + (fst arg) + +sourceProgramRawApply args raw = (let rec + walk args raw index = + lazyList + (_ : raw) + (arg rest : walk rest + (sourceAstApply raw + (sourceAstName (sourceProgramArgName arg index raw))) + (succ index)) + args + in walk args raw 0) + +sourceProgramWrapArgs args body = (let rec + walk args index = + lazyList + (_ : body) + (arg rest : + sourceAstLambda (sourceProgramArgName arg index body) + (lazyMaybe + (_ : walk rest (succ index)) + (c : sourceProgramApply3 + (sourceProgramName "matchResult" c) + (lazyList + (_ : sourceProgramOnFailure c) + (other tail : sourceProgramAbsorbFailure c) + rest) + (sourceAstLambda (sourceProgramArgName arg index body) + (sourceAstLambda (sourceProgramSynthetic "_" c) + (walk rest (succ index)))) + (sourceProgramChecked c + (sourceAstName (sourceProgramArgName arg index body)))) + (snd arg))) + args + in walk args 0) + +sourceProgramAnyContract? args = + lazyList + (_ : false) + (arg rest : lazyMaybe + (_ : sourceProgramAnyContract? rest) + (contract : true) + (snd arg)) + args + +sourceProgramAnyPhantom? args = + lazyList + (_ : false) + (arg rest : lazyMaybe + (_ : true) + (name : sourceProgramAnyPhantom? rest) + (fst arg)) + args + +sourceProgramAllPhantom? args = + lazyList + (_ : true) + (arg rest : lazyMaybe + (_ : sourceProgramAllPhantom? rest) + (name : false) + (fst arg)) + args + +sourceProgramPlainArgs args body = + lazyList + (_ : body) + (arg rest : sourceAstLambda (sourceProgramArgName arg 0 body) + (sourceProgramPlainArgs rest body)) + args + +sourceProgramLowerDefinition name args result body = + lazyBool + (_ : lazyBool + (_ : sourceAstLocal + (sourceToken sourceTokenName + (append "_" (append (sourceTokenPayload name) "_raw")) + (sourceTokenStart name) (sourceTokenEnd name)) + body + (sourceProgramWrapArgs args + (sourceProgramReturn result + (sourceProgramRawApply args + (sourceProgramName + (append "_" (append (sourceTokenPayload name) "_raw")) + body)))) + (sourceTokenStart name) (sourceAstEnd body)) + (_ : sourceProgramWrapArgs args (sourceProgramReturn result body)) + (sourceProgramAnyPhantom? args)) + (_ : sourceProgramPlainArgs args body) + (or? (sourceProgramAnyContract? args) + (lazyMaybe (_ : false) (contract : true) result)) + +sourceProgramParseAnnotatedBinding input = + parserBind (sourceGateExpect sourceTokenName) (name : + parserBind (parserMany sourceProgramArgument) (args : + (remaining : lazyBool + (_ : parserThen (sourceGateExpect sourceTokenAssign) + (parserBind (parserOptional + (parserThen (sourceGateExpect sourceTokenAt) + sourceProgramContract)) (result : + parserMap (body : pair name + (sourceProgramLowerDefinition name args result body)) + (sourceProgramDefinitionValue (sourcePositionColumn (sourceTokenStart name))))) remaining) + (_ : parserReplyFail + (parserDiagnostic 47 "supported contract head" t + (sourceTokenStart name) t) remaining true false) + (or? (not? (sourceProgramAnyPhantom? args)) + (and? (sourceProgramAllPhantom? args) + (lte_? (length args) 2)))))) input + +-- Preserve the existing bounded annotated-head path. Plain heads now retain +-- located equations; annotated definitions cannot merge with those groups. +sourceProgramAnnotated? input = (lazyList (_ : false) + (token rest : let kind = sourceTokenKind token in (lazyBool (_ : true) + (_ : lazyBool (_ : lazyList (_ : false) + (next unused : equal? (sourceTokenKind next) sourceTokenAt) rest) + (_ : lazyBool (_ : false) (_ : sourceProgramAnnotated? rest) + (equal? kind sourceTokenNewline)) + (equal? kind sourceTokenAssign)) (equal? kind sourceTokenAt))) input) +sourceProgramParsePlainBinding input = (lazyList + (_ : sourceGateAtomError input) + (token rest : sourceEquationBinding + (sourceProgramDefinitionValue (sourcePositionColumn (sourceTokenStart token))) input) input) +sourceProgramParseDefinition input = + lazyBool + (_ : lazyBool (_ : sourceProgramParseAnnotatedBinding input) + (_ : sourceProgramParsePlainBinding input) (sourceProgramAnnotated? input)) + (_ : parserReplyFail + (parserDiagnostic 2 sourceTokenAssign t t t) input false false) + (sourceProgramDefinitionHead? input) + +sourceProgramParseTokens = + parserThen sourceProgramSkipNewlines + (parserBind + (parserMany + (parserBefore sourceProgramParseDefinition sourceProgramSkipNewlines)) + (definitions : parserBind + (input : lazyResult + (diagnostic rest : parserReplyFail diagnostic input false false) + (groups unused : parserReplyOk groups input false false) + (sourceEquationGroups definitions)) + (groups : parserBind + (parserOptional + (parserBefore sourceGateExpr sourceProgramSkipNewlines)) + (final : parserMap (_ : pair groups final) sourceGateEof)))) + +parseGateProgram = parserWithLexer lexGateSource sourceProgramParseTokens + diff --git a/test/fixtures/support-library.arboricx b/test/fixtures/support-library.arboricx Binary files differ. diff --git a/test/fixtures/support-library.v1 b/test/fixtures/support-library.v1 @@ -39,48 +39,48 @@ module tests.stagingExperiment tests_stagingExperiment test/stagingExperiment.tr module tests.stagedConditionalRunner tests_stagedConditionalRunner test/stagedConditionalRunner.tri 9f9f7c11a470595fa8d92933219bdb7653bc5ff647eff7afc352504e0c29eb66 module patterns patterns lib/patterns.tri d61f2de7b3dce93c9b8914fb980224437d0ea4207787caab9098041cf5bfe896 relocated compiler-library patterns patterns lib/patterns.tri -compiler-fixture 110c5740b61f91f8a6dc8926541fd2ca89cebe8771191b13ed284122964b7c2b +compiler-fixture aa29656c146d2fc239d27da869498670c401cf344516314d06b7e5634c02d6f1 origin-metadata f7c9bdccb402d1b7ea41f7a63b2e78e18546d2129ad25faed7b3871663d91c0a origin-compiler 91b04273bf18429028e12a35126fc98fbad82911a2699a8937379573908ca78d origin-support f15f1e3740e5639e1fb08877ad2bf27af9758c74e468fae474d5ec4a71894b85 -rebuilt-support 54b638195f7da43d44c1782ebe7c589eb801c3a20464c80f9bcf8caa726f5f3d -rebuilt socket 036e5c01e091aa70b7fb3adf494c82d1912467940448e035d3a129f3828ade3b 49fc19156894c8f5b5a7124760eb8db2ac504404dcda77ae0e3a0dea39983d44 8d05a27a702067eb242de35e1d92ff1bc0255eed9d9baf1640f1255b2ea43475 -rebuilt intensional 88d663c79566723dc1a1382452c68d1febde696548df9cea829898193cc26d19 7467e74f0c5b7dfad8d6a14d34171b2b0bcd7750423894e2ca920e0535fde7d1 8d05a27a702067eb242de35e1d92ff1bc0255eed9d9baf1640f1255b2ea43475 -rebuilt binary 44164828733b44b43060136114a34b9aeabb1506478f50fb76d02311ace06d56 7a24af56a9ce9b947cadcafd3a9da127b1507275bfac62b9fa55e27490b176dc 8d05a27a702067eb242de35e1d92ff1bc0255eed9d9baf1640f1255b2ea43475 -rebuilt http 1d34fcf7bd8eb8059b47ac5bb0dc8bc532ae505ad721b58781506de506aaf9ee e6195e968697ca5799891bcd9096b568dceb717ea6e2b14adbdb8ca041a01691 8d05a27a702067eb242de35e1d92ff1bc0255eed9d9baf1640f1255b2ea43475 -rebuilt arboricx_common ce943fe890fc27d043ddaa837f7ee4fff87ae70675a9670fc37d35cbdecef364 0d779adef29b51ee875bf2f46ec03bef30ec48d200e7e05c9e20bd90b28ac4a4 8d05a27a702067eb242de35e1d92ff1bc0255eed9d9baf1640f1255b2ea43475 -rebuilt arboricx_nodes f363223fb239810298ed1fa3bead456d8f411e1a1c0a539993a4814d9ed814ec d158e4ebe9fd6cfb752023bbe031614b190b9eab79e9680875a1fc55dc481a23 8d05a27a702067eb242de35e1d92ff1bc0255eed9d9baf1640f1255b2ea43475 -rebuilt arboricx_manifest 61e8c625fd88a8e380fdef0ab79ebc12ed92f65ed26813e70aad7ce7bbad7a41 2a8a2b591dfc4192b8ded6e2ea75e94f6ff41183636f6024b6d5eb590ec8d2aa 8d05a27a702067eb242de35e1d92ff1bc0255eed9d9baf1640f1255b2ea43475 -rebuilt arboricx 8865add220dd836cadab18caa476bc0619f44b98ce088c1377e04a40c2f6b786 3f70d95cf1bae0928ee89acd2a9e0cdd8287796efae32a9f08d33e3dd0149c55 8d05a27a702067eb242de35e1d92ff1bc0255eed9d9baf1640f1255b2ea43475 -rebuilt arboricx_dispatch 783d55c9e3ee3592ceabd182f338274ffe4348579cfc63efadbcf9ec6b2e1d8a eda078ba018de68718b2b7aa2d790578ac079cf98c963a78f7fcae5178fd2c19 8d05a27a702067eb242de35e1d92ff1bc0255eed9d9baf1640f1255b2ea43475 -rebuilt arboricx_server d233338d45e0389c22a44f44626e45e25ed0465fa5ac57a8923a9efaf4a7e3e0 451e24aeec39ff1295c0c735897dcefd34b9219ef72a8b0c619b678373afcfa1 8d05a27a702067eb242de35e1d92ff1bc0255eed9d9baf1640f1255b2ea43475 -rebuilt source_build_stable bb17f534639316adb9f826ad23e40e0a1d238f652d1066b6e563a77e36f55e2d b7d49cb984e23aa3a70afdc4044e6f5ba98f3c71b7e78bd9269426c1c061a750 8d05a27a702067eb242de35e1d92ff1bc0255eed9d9baf1640f1255b2ea43475 -rebuilt source_export_cache e408c96daf51a2d88185b983b6a2f2b02d92a49f63103d50c18085edd65a4091 ba1c6fbb9c4af886b1466e0ea16bc0ceba1c0a60c5ad298c19be0b755e25b11b 8d05a27a702067eb242de35e1d92ff1bc0255eed9d9baf1640f1255b2ea43475 -rebuilt demos_equality a999948973f1b64bb3ad8165d1d901cb30dbc2bbe29ddfd6eb791f9cb38cfc7a 96bb649c2206620cd514820a8d8ca9dedb3cb3b713744bdff1ef500d9ec55ab0 8d05a27a702067eb242de35e1d92ff1bc0255eed9d9baf1640f1255b2ea43475 -rebuilt demos_size 78dcb90d9dd821d27d68e7db7db5daa059ca552a51f44688bdfccde73e8fd70d c628107a60003ede5cac28ee6f6f20e2fc74d01f699924733a1c54001ebee934 8d05a27a702067eb242de35e1d92ff1bc0255eed9d9baf1640f1255b2ea43475 -rebuilt demos_toSource 23c7688cf79f2917b755f59a54b76bb05a41baff98566697db4042871674671c 31148e782eb67ea2265ee9e0fd2a186ef2d2c24c1c8f38f98c0f3e8df955cb69 8d05a27a702067eb242de35e1d92ff1bc0255eed9d9baf1640f1255b2ea43475 -rebuilt demos_patternMatching 0871610a204e95028da6f7f818761c853b4b6d1f352ce9cf3e76368b908e9460 6ce77cdea44f0bbb9ff4b8e59b07b48b79a2aff349f07b6e9c57a225a0ae1f79 8d05a27a702067eb242de35e1d92ff1bc0255eed9d9baf1640f1255b2ea43475 -rebuilt demos_levelOrderTraversal d92f34b8fcc5e961a1750bb59e3a671ac386515a8ba0a4a331793acf5b83a9cf a83874999378a9ff9b15ea99ed7f51c90a2dc48b0fd6b7d8980a29ffa088582c 8d05a27a702067eb242de35e1d92ff1bc0255eed9d9baf1640f1255b2ea43475 -rebuilt demos_contractEffects 9eb1f2db2470b9ec8ab1dfbfbf9494e00eaf52778bd967d2d1cd9e10dcd027a7 8ef18c3d4c4a817d6afc966295a2783f4caaa3411e7ff4081f44fd8af6f7e872 8d05a27a702067eb242de35e1d92ff1bc0255eed9d9baf1640f1255b2ea43475 -rebuilt demos_interactionTrees 3afec7c399045ae259d3b7766b1d26f71c35a34a35a873cb6fc380aeb72d6b8f 806c9fa617d5c1397ee5573d22f9e03aa0bbde13f3100450591926566015a1a7 8d05a27a702067eb242de35e1d92ff1bc0255eed9d9baf1640f1255b2ea43475 -rebuilt demos_runArboricxBundle b5e29f891066d4031b211203d7954ae8247646e5af75210057eae449be9d153c 8f0b54be481f1a6d123748689e5a4ee26b98f4f415d396056e62cc5c644ee608 8d05a27a702067eb242de35e1d92ff1bc0255eed9d9baf1640f1255b2ea43475 -rebuilt demos_interactionTrees_greet 77eb5c3762a0d3aba60b38074e0db37764b1a0c3940bc416bd9db2d42bb4791f cc8b75304621d4747a6ba5951d63726776b311b423cb3cf4190cd61be43ea706 8d05a27a702067eb242de35e1d92ff1bc0255eed9d9baf1640f1255b2ea43475 -rebuilt demos_interactionTrees_environment f4002116c0574c180ef043d64eac5fb3e3fe85e08e3b1dcec13f412912822cf0 73aa85f792fa244c5ef5f21cee568764b6b10974c606091b30c421cb333a44c9 8d05a27a702067eb242de35e1d92ff1bc0255eed9d9baf1640f1255b2ea43475 -rebuilt demos_interactionTrees_state 1462f4230c7381c2745ee783a74028c1057b26acb16dcfd7236d80cf7f6372ba 0a1a75ed6807a13528e087c23812c1b0b7f7cba916d7d697332e197d44beecde 8d05a27a702067eb242de35e1d92ff1bc0255eed9d9baf1640f1255b2ea43475 -rebuilt demos_interactionTrees_shout fb81622a2f2d233478d13e2c2f493bd00ff22bcc1ced5043ace964ffc24ed4f6 f45d98fc0f3b982734ee2ade6f3cf93975e3101756be38cf6ca2dec2f2fc0ace 8d05a27a702067eb242de35e1d92ff1bc0255eed9d9baf1640f1255b2ea43475 -rebuilt demos_interactionTrees_forkAwait eeb43cde184d36dbf3957cb57de39f2afe564d10da7b733e37604ef8fca0a9ca d6b939af9c141227cf383f359ef4418702813e7426db43fc1dcd6a179ad5059b 8d05a27a702067eb242de35e1d92ff1bc0255eed9d9baf1640f1255b2ea43475 -rebuilt demos_interactionTrees_writeThenRead 2d8df311d1119a66db3ea37923f18667944746952d3eefcfd35e0e8f2dedb459 79fe12a0c2f6761514069b31e611ae97e7ca69e0c6ae6bd2d2606e4971c9667b 8d05a27a702067eb242de35e1d92ff1bc0255eed9d9baf1640f1255b2ea43475 -rebuilt demos_interactionTrees_safeRead 7aabbc340aa6c1b0fbc3e3931ab9d4de12d3bf41d08de2b176adad71b5409d27 1bafa9ab78a08f434958517c79ef9e9d3518fcd4e91f4235b4a920bdc5cfc936 8d05a27a702067eb242de35e1d92ff1bc0255eed9d9baf1640f1255b2ea43475 -rebuilt demos_interactionTrees_yield 478275fa8ca9e3fa444279f122e4f095eab8eaec3fdb4cdf014d7d4184a16e6b f276979eefa248d6af204a721b8737c057eacc3a27d211286db3d92bd36441f7 8d05a27a702067eb242de35e1d92ff1bc0255eed9d9baf1640f1255b2ea43475 -rebuilt demos_interactionTrees_getLineAsync 3091c6d5518e5404018c065bde34ac37ffd9816c990e5235727a8e0856de53a9 3341c45590f6fc86ddff6720fb52fb4dc058a27e4f60d9e488a16fe1d5ada90d 8d05a27a702067eb242de35e1d92ff1bc0255eed9d9baf1640f1255b2ea43475 -rebuilt demos_interactionTrees_echoServer 3d96cf0f276a9ba361dc4a51b37463722c3a2527cf45a9642ed54fc35710268b b95fe82d3ef87fe7b3a1aa213dc4dd9ccf867dff464e540e7a762f1875517546 8d05a27a702067eb242de35e1d92ff1bc0255eed9d9baf1640f1255b2ea43475 -rebuilt demos_interactionTrees_arboricxServer 6d450cd0322fcb3877c93059df7eef7a24140611410fa977ac259a24734fe01a 4dffa5e8e3c9b3ab58f9b8e8d21360f9d41267ff22baf569be3a34ce07836816 8d05a27a702067eb242de35e1d92ff1bc0255eed9d9baf1640f1255b2ea43475 -rebuilt demos_contractBasics 266c0f125bd553dfc3972acbb94328db88db6bbe42e2fd386f066b9738a79e89 3bc358514f4ea4b65afca8a8e04f26bc616d88d98e41a8ced1cade820a3a2b35 8d05a27a702067eb242de35e1d92ff1bc0255eed9d9baf1640f1255b2ea43475 -rebuilt demos_interactionTrees_httpServer 311859f552abc85b7fd6ed0a416bf156b73cf6c7dfba140eb784f336df09ee3b e8809f0967a2f4a6bac9004c28e316072ea17d924e6e5996f73961121d8e4de0 8d05a27a702067eb242de35e1d92ff1bc0255eed9d9baf1640f1255b2ea43475 -rebuilt source_staging_experiment 796c51b29737f2dcaddbd54738014d1b3e97aba4630696c26290a9eac8c119c9 db8e78afce2dadd987a2e7840b1107da75d3cc9c4ac3e5cd217cf0bc2ff00790 8d05a27a702067eb242de35e1d92ff1bc0255eed9d9baf1640f1255b2ea43475 -rebuilt source_staged_list_experiment 4d64ef9c3051705e8901024aba4117db00b616eb41e7cb1196daceaa67b7f3ba c1c062475b966bd6adae0148db1751959400f59ba73c6f84ca0e561599639e98 8d05a27a702067eb242de35e1d92ff1bc0255eed9d9baf1640f1255b2ea43475 -rebuilt source_staged_conditional_experiment cdd45cfae23ba10e754dcb47928271e7291c1ca99c02b10163d069c3aa34cc40 f09eb17db370560404991726c7961b9d05992077beb54051bb0dac2e9f54c57c 8d05a27a702067eb242de35e1d92ff1bc0255eed9d9baf1640f1255b2ea43475 -rebuilt tests_stagingExperiment 994c912d57ff8becafc7f2db1ed5886fbc4184097bb03d4cda549f87909d22bf a28053bcf2363d097dca2b03d8f55614c90898333ca1e893078ef5015a18f687 8d05a27a702067eb242de35e1d92ff1bc0255eed9d9baf1640f1255b2ea43475 -rebuilt tests_stagedConditionalRunner 483fbe105d156483c35afe39fafc15162f2b51be376f122ed7f0ece4f3b78cd2 bc09e8577e01668a817ba771392e3000d8cfd306ed397c5589384260f2b17a4a 8d05a27a702067eb242de35e1d92ff1bc0255eed9d9baf1640f1255b2ea43475 -rebuilt patterns 39fff0b826e3bbae4e229c39a20048ce7a824e495800152b9a3c893fd26a7dcc 703db8cd6c5679861257d1cc38c17be200241ade8db3812e8c387e9274aaa56e 8d05a27a702067eb242de35e1d92ff1bc0255eed9d9baf1640f1255b2ea43475 -bundle 54b638195f7da43d44c1782ebe7c589eb801c3a20464c80f9bcf8caa726f5f3d +rebuilt-support ee4907c11429ebd064efa8d414e634c813a4aed1d08360b337187d6bc3f55b44 +rebuilt socket 4d83b01a38a451728c81488e3ad4ddff15bf982cad2d743694203583184410cf 49fc19156894c8f5b5a7124760eb8db2ac504404dcda77ae0e3a0dea39983d44 7feafa413be4da75dcd0218795679065bf5b6894f022e2eb044c0a0ba827eb86 +rebuilt intensional 08343113b4851f67766002014148543a11ecc317abbe54918c0b6a8c143387db 7467e74f0c5b7dfad8d6a14d34171b2b0bcd7750423894e2ca920e0535fde7d1 7feafa413be4da75dcd0218795679065bf5b6894f022e2eb044c0a0ba827eb86 +rebuilt binary effa7bb25fbd71e7ee54d9ba5ba53e76b05aebb2eb7b50e021a12d9b2a3bda94 7a24af56a9ce9b947cadcafd3a9da127b1507275bfac62b9fa55e27490b176dc 7feafa413be4da75dcd0218795679065bf5b6894f022e2eb044c0a0ba827eb86 +rebuilt http f0afce4e54933c592e6987610423d4d192c7a4f22e7eac1a6250e9825e4a861e e6195e968697ca5799891bcd9096b568dceb717ea6e2b14adbdb8ca041a01691 7feafa413be4da75dcd0218795679065bf5b6894f022e2eb044c0a0ba827eb86 +rebuilt arboricx_common b4990c9065292e67a8630930dd74228daa8d9eeeafa5b9dea3b3c853de2a2435 0d779adef29b51ee875bf2f46ec03bef30ec48d200e7e05c9e20bd90b28ac4a4 7feafa413be4da75dcd0218795679065bf5b6894f022e2eb044c0a0ba827eb86 +rebuilt arboricx_nodes 4e0f65135ce3db43c32eb43e72d99e9cc42979f28fec0df0b3cfaae2006c9018 d158e4ebe9fd6cfb752023bbe031614b190b9eab79e9680875a1fc55dc481a23 7feafa413be4da75dcd0218795679065bf5b6894f022e2eb044c0a0ba827eb86 +rebuilt arboricx_manifest dabe4637c448146d99055588096e1485678d8d7637c97f247b76e956bd0ec9d3 2a8a2b591dfc4192b8ded6e2ea75e94f6ff41183636f6024b6d5eb590ec8d2aa 7feafa413be4da75dcd0218795679065bf5b6894f022e2eb044c0a0ba827eb86 +rebuilt arboricx 0c9361d459580541fa1962a9c43d747a3564378beb2266b52f765465518517ea 3f70d95cf1bae0928ee89acd2a9e0cdd8287796efae32a9f08d33e3dd0149c55 7feafa413be4da75dcd0218795679065bf5b6894f022e2eb044c0a0ba827eb86 +rebuilt arboricx_dispatch 754c396fa5c584d78405957e577f037eda481c6abd2ad4634487355f5e135ed1 eda078ba018de68718b2b7aa2d790578ac079cf98c963a78f7fcae5178fd2c19 7feafa413be4da75dcd0218795679065bf5b6894f022e2eb044c0a0ba827eb86 +rebuilt arboricx_server 17480c86cdec6a8463dfcb8c6003fb5e0061b4629ad5b58160b799a3d4e38f44 451e24aeec39ff1295c0c735897dcefd34b9219ef72a8b0c619b678373afcfa1 7feafa413be4da75dcd0218795679065bf5b6894f022e2eb044c0a0ba827eb86 +rebuilt source_build_stable 509b96ab0d3f88813e3c7d989f150cb0da768f8b7789c421e8fbae68b394a68a 899ebd78231147cbf6b72a71298a72c7047d6fb1d8033fac88898e178613e6a7 7feafa413be4da75dcd0218795679065bf5b6894f022e2eb044c0a0ba827eb86 +rebuilt source_export_cache 248a1ade9b70c2753b9526748766de589294a512a827d28409fc9778bb172a2b 7f29e52b9154b0ba6410836b055f8628f76bc51aa572efa2ef691f37ecaec077 7feafa413be4da75dcd0218795679065bf5b6894f022e2eb044c0a0ba827eb86 +rebuilt demos_equality 96db578fc577cc690363849555686cfb01a3157f17bcab42e0c2bbc5f1f06287 96bb649c2206620cd514820a8d8ca9dedb3cb3b713744bdff1ef500d9ec55ab0 7feafa413be4da75dcd0218795679065bf5b6894f022e2eb044c0a0ba827eb86 +rebuilt demos_size 3fb10da4b1085e3fd35a862ff6bb4ba93160b0997f0b3382f916bdee73b3c051 c628107a60003ede5cac28ee6f6f20e2fc74d01f699924733a1c54001ebee934 7feafa413be4da75dcd0218795679065bf5b6894f022e2eb044c0a0ba827eb86 +rebuilt demos_toSource c67281b62fc8831ec5f638f5416dc2564e9dd8d885caf4dd9d9ee7b1a89bad09 31148e782eb67ea2265ee9e0fd2a186ef2d2c24c1c8f38f98c0f3e8df955cb69 7feafa413be4da75dcd0218795679065bf5b6894f022e2eb044c0a0ba827eb86 +rebuilt demos_patternMatching 2c8624382d69872088eeb9950b33cf39b314678ec2089af9dd41a2ae61d8d972 6ce77cdea44f0bbb9ff4b8e59b07b48b79a2aff349f07b6e9c57a225a0ae1f79 7feafa413be4da75dcd0218795679065bf5b6894f022e2eb044c0a0ba827eb86 +rebuilt demos_levelOrderTraversal 7d04b0eb83f80e0b13d6ce8689d9a6f1372c426f586e6dd26d1649be4c0b54d4 a83874999378a9ff9b15ea99ed7f51c90a2dc48b0fd6b7d8980a29ffa088582c 7feafa413be4da75dcd0218795679065bf5b6894f022e2eb044c0a0ba827eb86 +rebuilt demos_contractEffects 6d3b99bae3a9bdc38c9f0d7c60c0ac368e1c0297d6dd44907c0ae009b38e0b26 8ef18c3d4c4a817d6afc966295a2783f4caaa3411e7ff4081f44fd8af6f7e872 7feafa413be4da75dcd0218795679065bf5b6894f022e2eb044c0a0ba827eb86 +rebuilt demos_interactionTrees 9788057da1c16087de608d1d163f00050714829fc75be3206a47707543a6dd48 806c9fa617d5c1397ee5573d22f9e03aa0bbde13f3100450591926566015a1a7 7feafa413be4da75dcd0218795679065bf5b6894f022e2eb044c0a0ba827eb86 +rebuilt demos_runArboricxBundle a5477a4ea34b086e5388d7db289247d9b6d8e516dc28f77097f8aa562e86bec2 8f0b54be481f1a6d123748689e5a4ee26b98f4f415d396056e62cc5c644ee608 7feafa413be4da75dcd0218795679065bf5b6894f022e2eb044c0a0ba827eb86 +rebuilt demos_interactionTrees_greet 101c50431f4b0b2fe1a7e7537862f354fe9745ab173dc37a8cee380aae4950aa cc8b75304621d4747a6ba5951d63726776b311b423cb3cf4190cd61be43ea706 7feafa413be4da75dcd0218795679065bf5b6894f022e2eb044c0a0ba827eb86 +rebuilt demos_interactionTrees_environment 503cc9b6a82d4cd5e4c2efedf13b0fafb2732504e8c5cfae6c0064da99695c14 73aa85f792fa244c5ef5f21cee568764b6b10974c606091b30c421cb333a44c9 7feafa413be4da75dcd0218795679065bf5b6894f022e2eb044c0a0ba827eb86 +rebuilt demos_interactionTrees_state 00c9b3dfdbd7bda41c541916a87ddea59312860eab20a23212c1057998ada242 0a1a75ed6807a13528e087c23812c1b0b7f7cba916d7d697332e197d44beecde 7feafa413be4da75dcd0218795679065bf5b6894f022e2eb044c0a0ba827eb86 +rebuilt demos_interactionTrees_shout 81da0d56bb7b6fc2ac9887212ca164e6bbedea975c4bc370b4fbfac0428e3698 f45d98fc0f3b982734ee2ade6f3cf93975e3101756be38cf6ca2dec2f2fc0ace 7feafa413be4da75dcd0218795679065bf5b6894f022e2eb044c0a0ba827eb86 +rebuilt demos_interactionTrees_forkAwait 153e2308b47e2ba07de978ef2f8349e1ba244a41f7240c39637aeac9bd4ed30e d6b939af9c141227cf383f359ef4418702813e7426db43fc1dcd6a179ad5059b 7feafa413be4da75dcd0218795679065bf5b6894f022e2eb044c0a0ba827eb86 +rebuilt demos_interactionTrees_writeThenRead a94fe429eac7a04ab564c549285c7b90ba8270dbb46678c35d664fc6d5e3e011 79fe12a0c2f6761514069b31e611ae97e7ca69e0c6ae6bd2d2606e4971c9667b 7feafa413be4da75dcd0218795679065bf5b6894f022e2eb044c0a0ba827eb86 +rebuilt demos_interactionTrees_safeRead bcf0029f99d28bb6f8b61760c16186b8e2af6e9f3fc01560adb7b2177a039795 1bafa9ab78a08f434958517c79ef9e9d3518fcd4e91f4235b4a920bdc5cfc936 7feafa413be4da75dcd0218795679065bf5b6894f022e2eb044c0a0ba827eb86 +rebuilt demos_interactionTrees_yield cc0a7d67fcdb08304f86254b2473767530e301cfeac15ad9ed6b598f83e7a41d f276979eefa248d6af204a721b8737c057eacc3a27d211286db3d92bd36441f7 7feafa413be4da75dcd0218795679065bf5b6894f022e2eb044c0a0ba827eb86 +rebuilt demos_interactionTrees_getLineAsync 6112bf99aa32a2c933850e5499bfd5e24b096736971cde3bc26a40e592604378 3341c45590f6fc86ddff6720fb52fb4dc058a27e4f60d9e488a16fe1d5ada90d 7feafa413be4da75dcd0218795679065bf5b6894f022e2eb044c0a0ba827eb86 +rebuilt demos_interactionTrees_echoServer a6ead80eb6a554523773eb767ece4421937b7b489443d3f75e6ca597d6c2eb02 b95fe82d3ef87fe7b3a1aa213dc4dd9ccf867dff464e540e7a762f1875517546 7feafa413be4da75dcd0218795679065bf5b6894f022e2eb044c0a0ba827eb86 +rebuilt demos_interactionTrees_arboricxServer 622dbc0ae369cac9ac23d7ddd0249f84a406106aa4b8e1aa75bcdaf5310531d0 4dffa5e8e3c9b3ab58f9b8e8d21360f9d41267ff22baf569be3a34ce07836816 7feafa413be4da75dcd0218795679065bf5b6894f022e2eb044c0a0ba827eb86 +rebuilt demos_contractBasics fadba29322d6a70d71e5df057b1599ba493929684f232c2ddb96caebf21cbdd9 3bc358514f4ea4b65afca8a8e04f26bc616d88d98e41a8ced1cade820a3a2b35 7feafa413be4da75dcd0218795679065bf5b6894f022e2eb044c0a0ba827eb86 +rebuilt demos_interactionTrees_httpServer de9ebdf71b8129c0d352692e89477e6a83ddff936b292d7dbac57f3241ca1b7f e8809f0967a2f4a6bac9004c28e316072ea17d924e6e5996f73961121d8e4de0 7feafa413be4da75dcd0218795679065bf5b6894f022e2eb044c0a0ba827eb86 +rebuilt source_staging_experiment 0d2b58ab1f75f21368a5d5cabdfb3466e5d521bac9b18aa6c6ac07626ab9ebbc db8e78afce2dadd987a2e7840b1107da75d3cc9c4ac3e5cd217cf0bc2ff00790 7feafa413be4da75dcd0218795679065bf5b6894f022e2eb044c0a0ba827eb86 +rebuilt source_staged_list_experiment 84036fb35637c1e1e7eb7c3c1b3481c9af9ad6d59fe62ba2fa8eec1d2f08fe0c c1c062475b966bd6adae0148db1751959400f59ba73c6f84ca0e561599639e98 7feafa413be4da75dcd0218795679065bf5b6894f022e2eb044c0a0ba827eb86 +rebuilt source_staged_conditional_experiment 5ae47c992ad2130d251d8767c1b1136b57c66cf64a95facce55f409b8279f8ec 43113de593d0e70f3f94e8dafff0600d6f60b5a011d80cdc6e84166fed29b682 7feafa413be4da75dcd0218795679065bf5b6894f022e2eb044c0a0ba827eb86 +rebuilt tests_stagingExperiment a3052beed1f6f999eea83325ec17808d0e38a186b5dfe0f0b9d6e47054397588 a28053bcf2363d097dca2b03d8f55614c90898333ca1e893078ef5015a18f687 7feafa413be4da75dcd0218795679065bf5b6894f022e2eb044c0a0ba827eb86 +rebuilt tests_stagedConditionalRunner abcf3af01c00de58e1a7fec3fc30c389cca5fa00b46dc9a76fef32f5455b1e79 5ade29f516881ba475705960a54294300c1ae56a50296d1c6cec2a8f8478f159 7feafa413be4da75dcd0218795679065bf5b6894f022e2eb044c0a0ba827eb86 +rebuilt patterns 7d1e465f4c0732d87e843a2c3f08085c81f060a97b651181c06fa4127e1cc4f5 703db8cd6c5679861257d1cc38c17be200241ade8db3812e8c387e9274aaa56e 7feafa413be4da75dcd0218795679065bf5b6894f022e2eb044c0a0ba827eb86 +bundle ee4907c11429ebd064efa8d414e634c813a4aed1d08360b337187d6bc3f55b44 diff --git a/test/fixtures/support-rebuilt.arboricx b/test/fixtures/support-rebuilt.arboricx Binary files differ. diff --git a/test/fixtures/support-receipts/arboricx.receipt b/test/fixtures/support-receipts/arboricx.receipt @@ -1,14 +1,14 @@ arboricx.build-receipt.v1 source 0faaece47cc9b961a9d1e0ea0bca82c33453ad85b383c95152ed6db4fafd22b2 -compiler 8d05a27a702067eb242de35e1d92ff1bc0255eed9d9baf1640f1255b2ea43475 +compiler 7feafa413be4da75dcd0218795679065bf5b6894f022e2eb044c0a0ba827eb86 options 307cf2eafa67562f5c3a6d4555c1fc1ccb9b91f43d0b74d564f5aa0bb73ffd0f output 3f70d95cf1bae0928ee89acd2a9e0cdd8287796efae32a9f08d33e3dd0149c55 -local prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 9c6504f5a10a82b2718c956a5ee5a52844e44a045796ef027a6fa86def7593c5 -local binary 7a24af56a9ce9b947cadcafd3a9da127b1507275bfac62b9fa55e27490b176dc 44164828733b44b43060136114a34b9aeabb1506478f50fb76d02311ace06d56 -local native_math 7f87549d587fa8c3be88af0ea988db3adcc3b35f1ffb48973553491b075614db 0cf635fc86821db09e0d0fa2761991d3b0222f8c4b33f2514c2a8943f03553c9 -local arboricx_common 0d779adef29b51ee875bf2f46ec03bef30ec48d200e7e05c9e20bd90b28ac4a4 ce943fe890fc27d043ddaa837f7ee4fff87ae70675a9670fc37d35cbdecef364 -local arboricx_manifest 2a8a2b591dfc4192b8ded6e2ea75e94f6ff41183636f6024b6d5eb590ec8d2aa 61e8c625fd88a8e380fdef0ab79ebc12ed92f65ed26813e70aad7ce7bbad7a41 -local arboricx_nodes d158e4ebe9fd6cfb752023bbe031614b190b9eab79e9680875a1fc55dc481a23 f363223fb239810298ed1fa3bead456d8f411e1a1c0a539993a4814d9ed814ec +local prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 fb089d73a8923bb5211af6a7f93025c268745660ace4a6c89a38bd6e89f218f8 +local binary 7a24af56a9ce9b947cadcafd3a9da127b1507275bfac62b9fa55e27490b176dc effa7bb25fbd71e7ee54d9ba5ba53e76b05aebb2eb7b50e021a12d9b2a3bda94 +local native_math 7f87549d587fa8c3be88af0ea988db3adcc3b35f1ffb48973553491b075614db 3c2b355c055b99e9555b359ab75d92f95deb68ab17b893ecc79245b3f80d4b0f +local arboricx_common 0d779adef29b51ee875bf2f46ec03bef30ec48d200e7e05c9e20bd90b28ac4a4 b4990c9065292e67a8630930dd74228daa8d9eeeafa5b9dea3b3c853de2a2435 +local arboricx_manifest 2a8a2b591dfc4192b8ded6e2ea75e94f6ff41183636f6024b6d5eb590ec8d2aa dabe4637c448146d99055588096e1485678d8d7637c97f247b76e956bd0ec9d3 +local arboricx_nodes d158e4ebe9fd6cfb752023bbe031614b190b9eab79e9680875a1fc55dc481a23 4e0f65135ce3db43c32eb43e72d99e9cc42979f28fec0df0b3cfaae2006c9018 pin prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 false 6f93378feaa8bf5ab7cefc071175a654c871bfd53f165d7d96795fb2b38483f1 pin prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 _ 6f93378feaa8bf5ab7cefc071175a654c871bfd53f165d7d96795fb2b38483f1 pin prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 true 2177bae1081d12a6f888b5efc89a27616aaf6e5df019f156a0f3d4c2d14bb270 diff --git a/test/fixtures/support-receipts/arboricx_common.receipt b/test/fixtures/support-receipts/arboricx_common.receipt @@ -1,11 +1,11 @@ arboricx.build-receipt.v1 source a8bf1c965133ed0c2fd253c73c4a8cc5330f68de554b470c29f6e659a1174115 -compiler 8d05a27a702067eb242de35e1d92ff1bc0255eed9d9baf1640f1255b2ea43475 +compiler 7feafa413be4da75dcd0218795679065bf5b6894f022e2eb044c0a0ba827eb86 options 307cf2eafa67562f5c3a6d4555c1fc1ccb9b91f43d0b74d564f5aa0bb73ffd0f output 0d779adef29b51ee875bf2f46ec03bef30ec48d200e7e05c9e20bd90b28ac4a4 -local prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 9c6504f5a10a82b2718c956a5ee5a52844e44a045796ef027a6fa86def7593c5 -local binary 7a24af56a9ce9b947cadcafd3a9da127b1507275bfac62b9fa55e27490b176dc 44164828733b44b43060136114a34b9aeabb1506478f50fb76d02311ace06d56 -local native_math 7f87549d587fa8c3be88af0ea988db3adcc3b35f1ffb48973553491b075614db 0cf635fc86821db09e0d0fa2761991d3b0222f8c4b33f2514c2a8943f03553c9 +local prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 fb089d73a8923bb5211af6a7f93025c268745660ace4a6c89a38bd6e89f218f8 +local binary 7a24af56a9ce9b947cadcafd3a9da127b1507275bfac62b9fa55e27490b176dc effa7bb25fbd71e7ee54d9ba5ba53e76b05aebb2eb7b50e021a12d9b2a3bda94 +local native_math 7f87549d587fa8c3be88af0ea988db3adcc3b35f1ffb48973553491b075614db 3c2b355c055b99e9555b359ab75d92f95deb68ab17b893ecc79245b3f80d4b0f pin prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 false 6f93378feaa8bf5ab7cefc071175a654c871bfd53f165d7d96795fb2b38483f1 pin prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 _ 6f93378feaa8bf5ab7cefc071175a654c871bfd53f165d7d96795fb2b38483f1 pin prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 true 2177bae1081d12a6f888b5efc89a27616aaf6e5df019f156a0f3d4c2d14bb270 diff --git a/test/fixtures/support-receipts/arboricx_dispatch.receipt b/test/fixtures/support-receipts/arboricx_dispatch.receipt @@ -1,9 +1,9 @@ arboricx.build-receipt.v1 source ba6facabd08809542b8cbc57b81cbafeb9b94cf7c771d313702685e36d06ff7f -compiler 8d05a27a702067eb242de35e1d92ff1bc0255eed9d9baf1640f1255b2ea43475 +compiler 7feafa413be4da75dcd0218795679065bf5b6894f022e2eb044c0a0ba827eb86 options 307cf2eafa67562f5c3a6d4555c1fc1ccb9b91f43d0b74d564f5aa0bb73ffd0f output eda078ba018de68718b2b7aa2d790578ac079cf98c963a78f7fcae5178fd2c19 -local arboricx 3f70d95cf1bae0928ee89acd2a9e0cdd8287796efae32a9f08d33e3dd0149c55 8865add220dd836cadab18caa476bc0619f44b98ce088c1377e04a40c2f6b786 +local arboricx 3f70d95cf1bae0928ee89acd2a9e0cdd8287796efae32a9f08d33e3dd0149c55 0c9361d459580541fa1962a9c43d747a3564378beb2266b52f765465518517ea pin arboricx 3f70d95cf1bae0928ee89acd2a9e0cdd8287796efae32a9f08d33e3dd0149c55 readArboricxDecoded b59eefef9ea509792ac66aac8f9e770af09d58370dc34f3ffa2fcf72d1a4b673 pin arboricx 3f70d95cf1bae0928ee89acd2a9e0cdd8287796efae32a9f08d33e3dd0149c55 readArboricxBundle 78e9ef86e33bfa86a8eee8395cbb4cba9359c7408623c9fae23a1ad10f9b0ae7 pin arboricx 3f70d95cf1bae0928ee89acd2a9e0cdd8287796efae32a9f08d33e3dd0149c55 readArboricxExecutableByName a90d75ca259e957c031492e93de8d365a7cac3f54470c09d75484bf6391fa55f diff --git a/test/fixtures/support-receipts/arboricx_manifest.receipt b/test/fixtures/support-receipts/arboricx_manifest.receipt @@ -1,11 +1,11 @@ arboricx.build-receipt.v1 source 880ca4eefe955ed2ac38ca0a6ce8f04e41e44aeaf32c82b1bd4d8fb7342d9dba -compiler 8d05a27a702067eb242de35e1d92ff1bc0255eed9d9baf1640f1255b2ea43475 +compiler 7feafa413be4da75dcd0218795679065bf5b6894f022e2eb044c0a0ba827eb86 options 307cf2eafa67562f5c3a6d4555c1fc1ccb9b91f43d0b74d564f5aa0bb73ffd0f output 2a8a2b591dfc4192b8ded6e2ea75e94f6ff41183636f6024b6d5eb590ec8d2aa -local prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 9c6504f5a10a82b2718c956a5ee5a52844e44a045796ef027a6fa86def7593c5 -local binary 7a24af56a9ce9b947cadcafd3a9da127b1507275bfac62b9fa55e27490b176dc 44164828733b44b43060136114a34b9aeabb1506478f50fb76d02311ace06d56 -local arboricx_common 0d779adef29b51ee875bf2f46ec03bef30ec48d200e7e05c9e20bd90b28ac4a4 ce943fe890fc27d043ddaa837f7ee4fff87ae70675a9670fc37d35cbdecef364 +local prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 fb089d73a8923bb5211af6a7f93025c268745660ace4a6c89a38bd6e89f218f8 +local binary 7a24af56a9ce9b947cadcafd3a9da127b1507275bfac62b9fa55e27490b176dc effa7bb25fbd71e7ee54d9ba5ba53e76b05aebb2eb7b50e021a12d9b2a3bda94 +local arboricx_common 0d779adef29b51ee875bf2f46ec03bef30ec48d200e7e05c9e20bd90b28ac4a4 b4990c9065292e67a8630930dd74228daa8d9eeeafa5b9dea3b3c853de2a2435 pin prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 false 6f93378feaa8bf5ab7cefc071175a654c871bfd53f165d7d96795fb2b38483f1 pin prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 _ 6f93378feaa8bf5ab7cefc071175a654c871bfd53f165d7d96795fb2b38483f1 pin prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 true 2177bae1081d12a6f888b5efc89a27616aaf6e5df019f156a0f3d4c2d14bb270 diff --git a/test/fixtures/support-receipts/arboricx_nodes.receipt b/test/fixtures/support-receipts/arboricx_nodes.receipt @@ -1,12 +1,12 @@ arboricx.build-receipt.v1 source 6c0e9998875942bb19c1f783ebffe61b23aa1eb578a46a874034444c4a9a3c49 -compiler 8d05a27a702067eb242de35e1d92ff1bc0255eed9d9baf1640f1255b2ea43475 +compiler 7feafa413be4da75dcd0218795679065bf5b6894f022e2eb044c0a0ba827eb86 options 307cf2eafa67562f5c3a6d4555c1fc1ccb9b91f43d0b74d564f5aa0bb73ffd0f output d158e4ebe9fd6cfb752023bbe031614b190b9eab79e9680875a1fc55dc481a23 -local prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 9c6504f5a10a82b2718c956a5ee5a52844e44a045796ef027a6fa86def7593c5 -local binary 7a24af56a9ce9b947cadcafd3a9da127b1507275bfac62b9fa55e27490b176dc 44164828733b44b43060136114a34b9aeabb1506478f50fb76d02311ace06d56 -local arboricx_common 0d779adef29b51ee875bf2f46ec03bef30ec48d200e7e05c9e20bd90b28ac4a4 ce943fe890fc27d043ddaa837f7ee4fff87ae70675a9670fc37d35cbdecef364 -local native_math 7f87549d587fa8c3be88af0ea988db3adcc3b35f1ffb48973553491b075614db 0cf635fc86821db09e0d0fa2761991d3b0222f8c4b33f2514c2a8943f03553c9 +local prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 fb089d73a8923bb5211af6a7f93025c268745660ace4a6c89a38bd6e89f218f8 +local binary 7a24af56a9ce9b947cadcafd3a9da127b1507275bfac62b9fa55e27490b176dc effa7bb25fbd71e7ee54d9ba5ba53e76b05aebb2eb7b50e021a12d9b2a3bda94 +local arboricx_common 0d779adef29b51ee875bf2f46ec03bef30ec48d200e7e05c9e20bd90b28ac4a4 b4990c9065292e67a8630930dd74228daa8d9eeeafa5b9dea3b3c853de2a2435 +local native_math 7f87549d587fa8c3be88af0ea988db3adcc3b35f1ffb48973553491b075614db 3c2b355c055b99e9555b359ab75d92f95deb68ab17b893ecc79245b3f80d4b0f pin prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 false 6f93378feaa8bf5ab7cefc071175a654c871bfd53f165d7d96795fb2b38483f1 pin prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 _ 6f93378feaa8bf5ab7cefc071175a654c871bfd53f165d7d96795fb2b38483f1 pin prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 true 2177bae1081d12a6f888b5efc89a27616aaf6e5df019f156a0f3d4c2d14bb270 diff --git a/test/fixtures/support-receipts/arboricx_server.receipt b/test/fixtures/support-receipts/arboricx_server.receipt @@ -1,13 +1,13 @@ arboricx.build-receipt.v1 source e577638282739414d645feea13edb8a30615af7f2da6838e7a7d9aa6ea475f98 -compiler 8d05a27a702067eb242de35e1d92ff1bc0255eed9d9baf1640f1255b2ea43475 +compiler 7feafa413be4da75dcd0218795679065bf5b6894f022e2eb044c0a0ba827eb86 options 307cf2eafa67562f5c3a6d4555c1fc1ccb9b91f43d0b74d564f5aa0bb73ffd0f output 451e24aeec39ff1295c0c735897dcefd34b9219ef72a8b0c619b678373afcfa1 -local prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 9c6504f5a10a82b2718c956a5ee5a52844e44a045796ef027a6fa86def7593c5 -local io 2d23be85d277457fd36c84f5eaa227e94e1c4efec281ff73017aaee109096f49 ee4cd1e9f841ca05c177c88d58d627b9a8d1095e0e000ac6b01505bdfc3d0f40 -local http e6195e968697ca5799891bcd9096b568dceb717ea6e2b14adbdb8ca041a01691 1d34fcf7bd8eb8059b47ac5bb0dc8bc532ae505ad721b58781506de506aaf9ee -local socket 49fc19156894c8f5b5a7124760eb8db2ac504404dcda77ae0e3a0dea39983d44 036e5c01e091aa70b7fb3adf494c82d1912467940448e035d3a129f3828ade3b -local native_math 7f87549d587fa8c3be88af0ea988db3adcc3b35f1ffb48973553491b075614db 0cf635fc86821db09e0d0fa2761991d3b0222f8c4b33f2514c2a8943f03553c9 +local prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 fb089d73a8923bb5211af6a7f93025c268745660ace4a6c89a38bd6e89f218f8 +local io 2d23be85d277457fd36c84f5eaa227e94e1c4efec281ff73017aaee109096f49 a88eccbc20c6c03eaf19d2b7ebf10cfd8963a24cde4bd64e16dd1df4664b7be5 +local http e6195e968697ca5799891bcd9096b568dceb717ea6e2b14adbdb8ca041a01691 f0afce4e54933c592e6987610423d4d192c7a4f22e7eac1a6250e9825e4a861e +local socket 49fc19156894c8f5b5a7124760eb8db2ac504404dcda77ae0e3a0dea39983d44 4d83b01a38a451728c81488e3ad4ddff15bf982cad2d743694203583184410cf +local native_math 7f87549d587fa8c3be88af0ea988db3adcc3b35f1ffb48973553491b075614db 3c2b355c055b99e9555b359ab75d92f95deb68ab17b893ecc79245b3f80d4b0f pin prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 false 6f93378feaa8bf5ab7cefc071175a654c871bfd53f165d7d96795fb2b38483f1 pin prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 _ 6f93378feaa8bf5ab7cefc071175a654c871bfd53f165d7d96795fb2b38483f1 pin prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 true 2177bae1081d12a6f888b5efc89a27616aaf6e5df019f156a0f3d4c2d14bb270 diff --git a/test/fixtures/support-receipts/binary.receipt b/test/fixtures/support-receipts/binary.receipt @@ -1,9 +1,9 @@ arboricx.build-receipt.v1 source 6dcf2f2087adef04a9b60330563c58c782ab51678622fafdbd7c7a6b14d20483 -compiler 8d05a27a702067eb242de35e1d92ff1bc0255eed9d9baf1640f1255b2ea43475 +compiler 7feafa413be4da75dcd0218795679065bf5b6894f022e2eb044c0a0ba827eb86 options 307cf2eafa67562f5c3a6d4555c1fc1ccb9b91f43d0b74d564f5aa0bb73ffd0f output 7a24af56a9ce9b947cadcafd3a9da127b1507275bfac62b9fa55e27490b176dc -local base bd2c14d6db6b69308a5252a8e839705a55d30e815f012900b094315263e08d81 ffa0a044291aa558b1ab7ce669fcb8e159bcf492b123e3283d9e35ef99c0d275 +local base bd2c14d6db6b69308a5252a8e839705a55d30e815f012900b094315263e08d81 2b3ccb358f6e262bbb6f9a28c17c9c96a8e3a07a162d4069a8226c9208be03f3 pin base bd2c14d6db6b69308a5252a8e839705a55d30e815f012900b094315263e08d81 false 6f93378feaa8bf5ab7cefc071175a654c871bfd53f165d7d96795fb2b38483f1 pin base bd2c14d6db6b69308a5252a8e839705a55d30e815f012900b094315263e08d81 _ 6f93378feaa8bf5ab7cefc071175a654c871bfd53f165d7d96795fb2b38483f1 pin base bd2c14d6db6b69308a5252a8e839705a55d30e815f012900b094315263e08d81 true 2177bae1081d12a6f888b5efc89a27616aaf6e5df019f156a0f3d4c2d14bb270 diff --git a/test/fixtures/support-receipts/demos_contractBasics.receipt b/test/fixtures/support-receipts/demos_contractBasics.receipt @@ -1,9 +1,9 @@ arboricx.build-receipt.v1 source 6ffab139ecc27fd6b8ddbe6f8a134c91abba2b0491f5e28602dbe2dcd773928f -compiler 8d05a27a702067eb242de35e1d92ff1bc0255eed9d9baf1640f1255b2ea43475 +compiler 7feafa413be4da75dcd0218795679065bf5b6894f022e2eb044c0a0ba827eb86 options 307cf2eafa67562f5c3a6d4555c1fc1ccb9b91f43d0b74d564f5aa0bb73ffd0f output 3bc358514f4ea4b65afca8a8e04f26bc616d88d98e41a8ced1cade820a3a2b35 -local prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 9c6504f5a10a82b2718c956a5ee5a52844e44a045796ef027a6fa86def7593c5 +local prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 fb089d73a8923bb5211af6a7f93025c268745660ace4a6c89a38bd6e89f218f8 pin prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 false 6f93378feaa8bf5ab7cefc071175a654c871bfd53f165d7d96795fb2b38483f1 pin prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 _ 6f93378feaa8bf5ab7cefc071175a654c871bfd53f165d7d96795fb2b38483f1 pin prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 true 2177bae1081d12a6f888b5efc89a27616aaf6e5df019f156a0f3d4c2d14bb270 diff --git a/test/fixtures/support-receipts/demos_contractEffects.receipt b/test/fixtures/support-receipts/demos_contractEffects.receipt @@ -1,9 +1,9 @@ arboricx.build-receipt.v1 source 67252839e937e841c9fdc37a2518622a1da5bfd907d983494e92ee30b10427f4 -compiler 8d05a27a702067eb242de35e1d92ff1bc0255eed9d9baf1640f1255b2ea43475 +compiler 7feafa413be4da75dcd0218795679065bf5b6894f022e2eb044c0a0ba827eb86 options 307cf2eafa67562f5c3a6d4555c1fc1ccb9b91f43d0b74d564f5aa0bb73ffd0f output 8ef18c3d4c4a817d6afc966295a2783f4caaa3411e7ff4081f44fd8af6f7e872 -local prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 9c6504f5a10a82b2718c956a5ee5a52844e44a045796ef027a6fa86def7593c5 +local prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 fb089d73a8923bb5211af6a7f93025c268745660ace4a6c89a38bd6e89f218f8 pin prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 false 6f93378feaa8bf5ab7cefc071175a654c871bfd53f165d7d96795fb2b38483f1 pin prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 _ 6f93378feaa8bf5ab7cefc071175a654c871bfd53f165d7d96795fb2b38483f1 pin prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 true 2177bae1081d12a6f888b5efc89a27616aaf6e5df019f156a0f3d4c2d14bb270 diff --git a/test/fixtures/support-receipts/demos_equality.receipt b/test/fixtures/support-receipts/demos_equality.receipt @@ -1,9 +1,9 @@ arboricx.build-receipt.v1 source d14168490eeb3a4bab3c431d4ae936c51ead54e4e7155d9dded065442f2b9da0 -compiler 8d05a27a702067eb242de35e1d92ff1bc0255eed9d9baf1640f1255b2ea43475 +compiler 7feafa413be4da75dcd0218795679065bf5b6894f022e2eb044c0a0ba827eb86 options 307cf2eafa67562f5c3a6d4555c1fc1ccb9b91f43d0b74d564f5aa0bb73ffd0f output 96bb649c2206620cd514820a8d8ca9dedb3cb3b713744bdff1ef500d9ec55ab0 -local prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 9c6504f5a10a82b2718c956a5ee5a52844e44a045796ef027a6fa86def7593c5 +local prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 fb089d73a8923bb5211af6a7f93025c268745660ace4a6c89a38bd6e89f218f8 pin prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 false 6f93378feaa8bf5ab7cefc071175a654c871bfd53f165d7d96795fb2b38483f1 pin prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 _ 6f93378feaa8bf5ab7cefc071175a654c871bfd53f165d7d96795fb2b38483f1 pin prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 true 2177bae1081d12a6f888b5efc89a27616aaf6e5df019f156a0f3d4c2d14bb270 diff --git a/test/fixtures/support-receipts/demos_interactionTrees.receipt b/test/fixtures/support-receipts/demos_interactionTrees.receipt @@ -1,10 +1,10 @@ arboricx.build-receipt.v1 source 1d81c9b0665494ef2acdfc60a3b4c243518121dc5a7a35bdb4a31244eee5f076 -compiler 8d05a27a702067eb242de35e1d92ff1bc0255eed9d9baf1640f1255b2ea43475 +compiler 7feafa413be4da75dcd0218795679065bf5b6894f022e2eb044c0a0ba827eb86 options 307cf2eafa67562f5c3a6d4555c1fc1ccb9b91f43d0b74d564f5aa0bb73ffd0f output 806c9fa617d5c1397ee5573d22f9e03aa0bbde13f3100450591926566015a1a7 -local prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 9c6504f5a10a82b2718c956a5ee5a52844e44a045796ef027a6fa86def7593c5 -local io 2d23be85d277457fd36c84f5eaa227e94e1c4efec281ff73017aaee109096f49 ee4cd1e9f841ca05c177c88d58d627b9a8d1095e0e000ac6b01505bdfc3d0f40 +local prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 fb089d73a8923bb5211af6a7f93025c268745660ace4a6c89a38bd6e89f218f8 +local io 2d23be85d277457fd36c84f5eaa227e94e1c4efec281ff73017aaee109096f49 a88eccbc20c6c03eaf19d2b7ebf10cfd8963a24cde4bd64e16dd1df4664b7be5 pin prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 false 6f93378feaa8bf5ab7cefc071175a654c871bfd53f165d7d96795fb2b38483f1 pin prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 _ 6f93378feaa8bf5ab7cefc071175a654c871bfd53f165d7d96795fb2b38483f1 pin prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 true 2177bae1081d12a6f888b5efc89a27616aaf6e5df019f156a0f3d4c2d14bb270 diff --git a/test/fixtures/support-receipts/demos_interactionTrees_arboricxServer.receipt b/test/fixtures/support-receipts/demos_interactionTrees_arboricxServer.receipt @@ -1,11 +1,11 @@ arboricx.build-receipt.v1 source 26fd628be229f54f5376a0a8addc32fe79fc34e7a8941ecfe488a7323a47924e -compiler 8d05a27a702067eb242de35e1d92ff1bc0255eed9d9baf1640f1255b2ea43475 +compiler 7feafa413be4da75dcd0218795679065bf5b6894f022e2eb044c0a0ba827eb86 options 307cf2eafa67562f5c3a6d4555c1fc1ccb9b91f43d0b74d564f5aa0bb73ffd0f output 4dffa5e8e3c9b3ab58f9b8e8d21360f9d41267ff22baf569be3a34ce07836816 -local prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 9c6504f5a10a82b2718c956a5ee5a52844e44a045796ef027a6fa86def7593c5 -local io 2d23be85d277457fd36c84f5eaa227e94e1c4efec281ff73017aaee109096f49 ee4cd1e9f841ca05c177c88d58d627b9a8d1095e0e000ac6b01505bdfc3d0f40 -local arboricx_server 451e24aeec39ff1295c0c735897dcefd34b9219ef72a8b0c619b678373afcfa1 d233338d45e0389c22a44f44626e45e25ed0465fa5ac57a8923a9efaf4a7e3e0 +local prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 fb089d73a8923bb5211af6a7f93025c268745660ace4a6c89a38bd6e89f218f8 +local io 2d23be85d277457fd36c84f5eaa227e94e1c4efec281ff73017aaee109096f49 a88eccbc20c6c03eaf19d2b7ebf10cfd8963a24cde4bd64e16dd1df4664b7be5 +local arboricx_server 451e24aeec39ff1295c0c735897dcefd34b9219ef72a8b0c619b678373afcfa1 17480c86cdec6a8463dfcb8c6003fb5e0061b4629ad5b58160b799a3d4e38f44 pin prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 false 6f93378feaa8bf5ab7cefc071175a654c871bfd53f165d7d96795fb2b38483f1 pin prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 _ 6f93378feaa8bf5ab7cefc071175a654c871bfd53f165d7d96795fb2b38483f1 pin prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 true 2177bae1081d12a6f888b5efc89a27616aaf6e5df019f156a0f3d4c2d14bb270 diff --git a/test/fixtures/support-receipts/demos_interactionTrees_echoServer.receipt b/test/fixtures/support-receipts/demos_interactionTrees_echoServer.receipt @@ -1,11 +1,11 @@ arboricx.build-receipt.v1 source 2c0562ca2688383132093fca8365ab15012cfab0b8d918e566902c82ed9eb42f -compiler 8d05a27a702067eb242de35e1d92ff1bc0255eed9d9baf1640f1255b2ea43475 +compiler 7feafa413be4da75dcd0218795679065bf5b6894f022e2eb044c0a0ba827eb86 options 307cf2eafa67562f5c3a6d4555c1fc1ccb9b91f43d0b74d564f5aa0bb73ffd0f output b95fe82d3ef87fe7b3a1aa213dc4dd9ccf867dff464e540e7a762f1875517546 -local prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 9c6504f5a10a82b2718c956a5ee5a52844e44a045796ef027a6fa86def7593c5 -local io 2d23be85d277457fd36c84f5eaa227e94e1c4efec281ff73017aaee109096f49 ee4cd1e9f841ca05c177c88d58d627b9a8d1095e0e000ac6b01505bdfc3d0f40 -local socket 49fc19156894c8f5b5a7124760eb8db2ac504404dcda77ae0e3a0dea39983d44 036e5c01e091aa70b7fb3adf494c82d1912467940448e035d3a129f3828ade3b +local prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 fb089d73a8923bb5211af6a7f93025c268745660ace4a6c89a38bd6e89f218f8 +local io 2d23be85d277457fd36c84f5eaa227e94e1c4efec281ff73017aaee109096f49 a88eccbc20c6c03eaf19d2b7ebf10cfd8963a24cde4bd64e16dd1df4664b7be5 +local socket 49fc19156894c8f5b5a7124760eb8db2ac504404dcda77ae0e3a0dea39983d44 4d83b01a38a451728c81488e3ad4ddff15bf982cad2d743694203583184410cf pin prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 false 6f93378feaa8bf5ab7cefc071175a654c871bfd53f165d7d96795fb2b38483f1 pin prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 _ 6f93378feaa8bf5ab7cefc071175a654c871bfd53f165d7d96795fb2b38483f1 pin prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 true 2177bae1081d12a6f888b5efc89a27616aaf6e5df019f156a0f3d4c2d14bb270 diff --git a/test/fixtures/support-receipts/demos_interactionTrees_environment.receipt b/test/fixtures/support-receipts/demos_interactionTrees_environment.receipt @@ -1,10 +1,10 @@ arboricx.build-receipt.v1 source abe18fb13b4fdafce7d6d7a011bf230b21d081ddbc7c9c842ede42a9b6db4594 -compiler 8d05a27a702067eb242de35e1d92ff1bc0255eed9d9baf1640f1255b2ea43475 +compiler 7feafa413be4da75dcd0218795679065bf5b6894f022e2eb044c0a0ba827eb86 options 307cf2eafa67562f5c3a6d4555c1fc1ccb9b91f43d0b74d564f5aa0bb73ffd0f output 73aa85f792fa244c5ef5f21cee568764b6b10974c606091b30c421cb333a44c9 -local prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 9c6504f5a10a82b2718c956a5ee5a52844e44a045796ef027a6fa86def7593c5 -local io 2d23be85d277457fd36c84f5eaa227e94e1c4efec281ff73017aaee109096f49 ee4cd1e9f841ca05c177c88d58d627b9a8d1095e0e000ac6b01505bdfc3d0f40 +local prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 fb089d73a8923bb5211af6a7f93025c268745660ace4a6c89a38bd6e89f218f8 +local io 2d23be85d277457fd36c84f5eaa227e94e1c4efec281ff73017aaee109096f49 a88eccbc20c6c03eaf19d2b7ebf10cfd8963a24cde4bd64e16dd1df4664b7be5 pin prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 false 6f93378feaa8bf5ab7cefc071175a654c871bfd53f165d7d96795fb2b38483f1 pin prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 _ 6f93378feaa8bf5ab7cefc071175a654c871bfd53f165d7d96795fb2b38483f1 pin prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 true 2177bae1081d12a6f888b5efc89a27616aaf6e5df019f156a0f3d4c2d14bb270 diff --git a/test/fixtures/support-receipts/demos_interactionTrees_forkAwait.receipt b/test/fixtures/support-receipts/demos_interactionTrees_forkAwait.receipt @@ -1,10 +1,10 @@ arboricx.build-receipt.v1 source 4911d6c33e4c159fa6723fa9849681666724a9b7247ab982decf347dab5fb6e5 -compiler 8d05a27a702067eb242de35e1d92ff1bc0255eed9d9baf1640f1255b2ea43475 +compiler 7feafa413be4da75dcd0218795679065bf5b6894f022e2eb044c0a0ba827eb86 options 307cf2eafa67562f5c3a6d4555c1fc1ccb9b91f43d0b74d564f5aa0bb73ffd0f output d6b939af9c141227cf383f359ef4418702813e7426db43fc1dcd6a179ad5059b -local prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 9c6504f5a10a82b2718c956a5ee5a52844e44a045796ef027a6fa86def7593c5 -local io 2d23be85d277457fd36c84f5eaa227e94e1c4efec281ff73017aaee109096f49 ee4cd1e9f841ca05c177c88d58d627b9a8d1095e0e000ac6b01505bdfc3d0f40 +local prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 fb089d73a8923bb5211af6a7f93025c268745660ace4a6c89a38bd6e89f218f8 +local io 2d23be85d277457fd36c84f5eaa227e94e1c4efec281ff73017aaee109096f49 a88eccbc20c6c03eaf19d2b7ebf10cfd8963a24cde4bd64e16dd1df4664b7be5 pin prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 false 6f93378feaa8bf5ab7cefc071175a654c871bfd53f165d7d96795fb2b38483f1 pin prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 _ 6f93378feaa8bf5ab7cefc071175a654c871bfd53f165d7d96795fb2b38483f1 pin prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 true 2177bae1081d12a6f888b5efc89a27616aaf6e5df019f156a0f3d4c2d14bb270 diff --git a/test/fixtures/support-receipts/demos_interactionTrees_getLineAsync.receipt b/test/fixtures/support-receipts/demos_interactionTrees_getLineAsync.receipt @@ -1,10 +1,10 @@ arboricx.build-receipt.v1 source 7eaf0dbf9f3ed9b6e1098c1ee0d5953668d835070976596b8fc20e40c7d859d9 -compiler 8d05a27a702067eb242de35e1d92ff1bc0255eed9d9baf1640f1255b2ea43475 +compiler 7feafa413be4da75dcd0218795679065bf5b6894f022e2eb044c0a0ba827eb86 options 307cf2eafa67562f5c3a6d4555c1fc1ccb9b91f43d0b74d564f5aa0bb73ffd0f output 3341c45590f6fc86ddff6720fb52fb4dc058a27e4f60d9e488a16fe1d5ada90d -local prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 9c6504f5a10a82b2718c956a5ee5a52844e44a045796ef027a6fa86def7593c5 -local io 2d23be85d277457fd36c84f5eaa227e94e1c4efec281ff73017aaee109096f49 ee4cd1e9f841ca05c177c88d58d627b9a8d1095e0e000ac6b01505bdfc3d0f40 +local prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 fb089d73a8923bb5211af6a7f93025c268745660ace4a6c89a38bd6e89f218f8 +local io 2d23be85d277457fd36c84f5eaa227e94e1c4efec281ff73017aaee109096f49 a88eccbc20c6c03eaf19d2b7ebf10cfd8963a24cde4bd64e16dd1df4664b7be5 pin prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 false 6f93378feaa8bf5ab7cefc071175a654c871bfd53f165d7d96795fb2b38483f1 pin prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 _ 6f93378feaa8bf5ab7cefc071175a654c871bfd53f165d7d96795fb2b38483f1 pin prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 true 2177bae1081d12a6f888b5efc89a27616aaf6e5df019f156a0f3d4c2d14bb270 diff --git a/test/fixtures/support-receipts/demos_interactionTrees_greet.receipt b/test/fixtures/support-receipts/demos_interactionTrees_greet.receipt @@ -1,10 +1,10 @@ arboricx.build-receipt.v1 source ced74e1406629ffec2a9eeae58b87828f9507cae7d2f112a2bdd65ff74034f93 -compiler 8d05a27a702067eb242de35e1d92ff1bc0255eed9d9baf1640f1255b2ea43475 +compiler 7feafa413be4da75dcd0218795679065bf5b6894f022e2eb044c0a0ba827eb86 options 307cf2eafa67562f5c3a6d4555c1fc1ccb9b91f43d0b74d564f5aa0bb73ffd0f output cc8b75304621d4747a6ba5951d63726776b311b423cb3cf4190cd61be43ea706 -local prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 9c6504f5a10a82b2718c956a5ee5a52844e44a045796ef027a6fa86def7593c5 -local io 2d23be85d277457fd36c84f5eaa227e94e1c4efec281ff73017aaee109096f49 ee4cd1e9f841ca05c177c88d58d627b9a8d1095e0e000ac6b01505bdfc3d0f40 +local prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 fb089d73a8923bb5211af6a7f93025c268745660ace4a6c89a38bd6e89f218f8 +local io 2d23be85d277457fd36c84f5eaa227e94e1c4efec281ff73017aaee109096f49 a88eccbc20c6c03eaf19d2b7ebf10cfd8963a24cde4bd64e16dd1df4664b7be5 pin prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 false 6f93378feaa8bf5ab7cefc071175a654c871bfd53f165d7d96795fb2b38483f1 pin prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 _ 6f93378feaa8bf5ab7cefc071175a654c871bfd53f165d7d96795fb2b38483f1 pin prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 true 2177bae1081d12a6f888b5efc89a27616aaf6e5df019f156a0f3d4c2d14bb270 diff --git a/test/fixtures/support-receipts/demos_interactionTrees_httpServer.receipt b/test/fixtures/support-receipts/demos_interactionTrees_httpServer.receipt @@ -1,12 +1,12 @@ arboricx.build-receipt.v1 source 664cc315f466f9a8ea5b39e1b7e16febd78e1e7b950f86b0cecc0ec6d82fefa7 -compiler 8d05a27a702067eb242de35e1d92ff1bc0255eed9d9baf1640f1255b2ea43475 +compiler 7feafa413be4da75dcd0218795679065bf5b6894f022e2eb044c0a0ba827eb86 options 307cf2eafa67562f5c3a6d4555c1fc1ccb9b91f43d0b74d564f5aa0bb73ffd0f output e8809f0967a2f4a6bac9004c28e316072ea17d924e6e5996f73961121d8e4de0 -local prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 9c6504f5a10a82b2718c956a5ee5a52844e44a045796ef027a6fa86def7593c5 -local io 2d23be85d277457fd36c84f5eaa227e94e1c4efec281ff73017aaee109096f49 ee4cd1e9f841ca05c177c88d58d627b9a8d1095e0e000ac6b01505bdfc3d0f40 -local socket 49fc19156894c8f5b5a7124760eb8db2ac504404dcda77ae0e3a0dea39983d44 036e5c01e091aa70b7fb3adf494c82d1912467940448e035d3a129f3828ade3b -local http e6195e968697ca5799891bcd9096b568dceb717ea6e2b14adbdb8ca041a01691 1d34fcf7bd8eb8059b47ac5bb0dc8bc532ae505ad721b58781506de506aaf9ee +local prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 fb089d73a8923bb5211af6a7f93025c268745660ace4a6c89a38bd6e89f218f8 +local io 2d23be85d277457fd36c84f5eaa227e94e1c4efec281ff73017aaee109096f49 a88eccbc20c6c03eaf19d2b7ebf10cfd8963a24cde4bd64e16dd1df4664b7be5 +local socket 49fc19156894c8f5b5a7124760eb8db2ac504404dcda77ae0e3a0dea39983d44 4d83b01a38a451728c81488e3ad4ddff15bf982cad2d743694203583184410cf +local http e6195e968697ca5799891bcd9096b568dceb717ea6e2b14adbdb8ca041a01691 f0afce4e54933c592e6987610423d4d192c7a4f22e7eac1a6250e9825e4a861e pin prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 false 6f93378feaa8bf5ab7cefc071175a654c871bfd53f165d7d96795fb2b38483f1 pin prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 _ 6f93378feaa8bf5ab7cefc071175a654c871bfd53f165d7d96795fb2b38483f1 pin prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 true 2177bae1081d12a6f888b5efc89a27616aaf6e5df019f156a0f3d4c2d14bb270 diff --git a/test/fixtures/support-receipts/demos_interactionTrees_safeRead.receipt b/test/fixtures/support-receipts/demos_interactionTrees_safeRead.receipt @@ -1,10 +1,10 @@ arboricx.build-receipt.v1 source e9435aaeafcafcdc5ad778a1360328490306ce44395713d318edaa82119a3d10 -compiler 8d05a27a702067eb242de35e1d92ff1bc0255eed9d9baf1640f1255b2ea43475 +compiler 7feafa413be4da75dcd0218795679065bf5b6894f022e2eb044c0a0ba827eb86 options 307cf2eafa67562f5c3a6d4555c1fc1ccb9b91f43d0b74d564f5aa0bb73ffd0f output 1bafa9ab78a08f434958517c79ef9e9d3518fcd4e91f4235b4a920bdc5cfc936 -local prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 9c6504f5a10a82b2718c956a5ee5a52844e44a045796ef027a6fa86def7593c5 -local io 2d23be85d277457fd36c84f5eaa227e94e1c4efec281ff73017aaee109096f49 ee4cd1e9f841ca05c177c88d58d627b9a8d1095e0e000ac6b01505bdfc3d0f40 +local prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 fb089d73a8923bb5211af6a7f93025c268745660ace4a6c89a38bd6e89f218f8 +local io 2d23be85d277457fd36c84f5eaa227e94e1c4efec281ff73017aaee109096f49 a88eccbc20c6c03eaf19d2b7ebf10cfd8963a24cde4bd64e16dd1df4664b7be5 pin prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 false 6f93378feaa8bf5ab7cefc071175a654c871bfd53f165d7d96795fb2b38483f1 pin prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 _ 6f93378feaa8bf5ab7cefc071175a654c871bfd53f165d7d96795fb2b38483f1 pin prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 true 2177bae1081d12a6f888b5efc89a27616aaf6e5df019f156a0f3d4c2d14bb270 diff --git a/test/fixtures/support-receipts/demos_interactionTrees_shout.receipt b/test/fixtures/support-receipts/demos_interactionTrees_shout.receipt @@ -1,10 +1,10 @@ arboricx.build-receipt.v1 source 2beaabce9c2d9c6ee299d8ccbd3be62499782b9c10b6439c1027c8da7452a166 -compiler 8d05a27a702067eb242de35e1d92ff1bc0255eed9d9baf1640f1255b2ea43475 +compiler 7feafa413be4da75dcd0218795679065bf5b6894f022e2eb044c0a0ba827eb86 options 307cf2eafa67562f5c3a6d4555c1fc1ccb9b91f43d0b74d564f5aa0bb73ffd0f output f45d98fc0f3b982734ee2ade6f3cf93975e3101756be38cf6ca2dec2f2fc0ace -local prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 9c6504f5a10a82b2718c956a5ee5a52844e44a045796ef027a6fa86def7593c5 -local io 2d23be85d277457fd36c84f5eaa227e94e1c4efec281ff73017aaee109096f49 ee4cd1e9f841ca05c177c88d58d627b9a8d1095e0e000ac6b01505bdfc3d0f40 +local prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 fb089d73a8923bb5211af6a7f93025c268745660ace4a6c89a38bd6e89f218f8 +local io 2d23be85d277457fd36c84f5eaa227e94e1c4efec281ff73017aaee109096f49 a88eccbc20c6c03eaf19d2b7ebf10cfd8963a24cde4bd64e16dd1df4664b7be5 pin prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 false 6f93378feaa8bf5ab7cefc071175a654c871bfd53f165d7d96795fb2b38483f1 pin prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 _ 6f93378feaa8bf5ab7cefc071175a654c871bfd53f165d7d96795fb2b38483f1 pin prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 true 2177bae1081d12a6f888b5efc89a27616aaf6e5df019f156a0f3d4c2d14bb270 diff --git a/test/fixtures/support-receipts/demos_interactionTrees_state.receipt b/test/fixtures/support-receipts/demos_interactionTrees_state.receipt @@ -1,10 +1,10 @@ arboricx.build-receipt.v1 source aa0d8294256048c5caaa9e079a79ad729d0d77b182fa93d86e390bae008189c0 -compiler 8d05a27a702067eb242de35e1d92ff1bc0255eed9d9baf1640f1255b2ea43475 +compiler 7feafa413be4da75dcd0218795679065bf5b6894f022e2eb044c0a0ba827eb86 options 307cf2eafa67562f5c3a6d4555c1fc1ccb9b91f43d0b74d564f5aa0bb73ffd0f output 0a1a75ed6807a13528e087c23812c1b0b7f7cba916d7d697332e197d44beecde -local prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 9c6504f5a10a82b2718c956a5ee5a52844e44a045796ef027a6fa86def7593c5 -local io 2d23be85d277457fd36c84f5eaa227e94e1c4efec281ff73017aaee109096f49 ee4cd1e9f841ca05c177c88d58d627b9a8d1095e0e000ac6b01505bdfc3d0f40 +local prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 fb089d73a8923bb5211af6a7f93025c268745660ace4a6c89a38bd6e89f218f8 +local io 2d23be85d277457fd36c84f5eaa227e94e1c4efec281ff73017aaee109096f49 a88eccbc20c6c03eaf19d2b7ebf10cfd8963a24cde4bd64e16dd1df4664b7be5 pin prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 false 6f93378feaa8bf5ab7cefc071175a654c871bfd53f165d7d96795fb2b38483f1 pin prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 _ 6f93378feaa8bf5ab7cefc071175a654c871bfd53f165d7d96795fb2b38483f1 pin prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 true 2177bae1081d12a6f888b5efc89a27616aaf6e5df019f156a0f3d4c2d14bb270 diff --git a/test/fixtures/support-receipts/demos_interactionTrees_writeThenRead.receipt b/test/fixtures/support-receipts/demos_interactionTrees_writeThenRead.receipt @@ -1,10 +1,10 @@ arboricx.build-receipt.v1 source 32496972f1c1b6b06eb6fb58b83e054d692ea9e5e4b601947c20c72c92a0751b -compiler 8d05a27a702067eb242de35e1d92ff1bc0255eed9d9baf1640f1255b2ea43475 +compiler 7feafa413be4da75dcd0218795679065bf5b6894f022e2eb044c0a0ba827eb86 options 307cf2eafa67562f5c3a6d4555c1fc1ccb9b91f43d0b74d564f5aa0bb73ffd0f output 79fe12a0c2f6761514069b31e611ae97e7ca69e0c6ae6bd2d2606e4971c9667b -local prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 9c6504f5a10a82b2718c956a5ee5a52844e44a045796ef027a6fa86def7593c5 -local io 2d23be85d277457fd36c84f5eaa227e94e1c4efec281ff73017aaee109096f49 ee4cd1e9f841ca05c177c88d58d627b9a8d1095e0e000ac6b01505bdfc3d0f40 +local prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 fb089d73a8923bb5211af6a7f93025c268745660ace4a6c89a38bd6e89f218f8 +local io 2d23be85d277457fd36c84f5eaa227e94e1c4efec281ff73017aaee109096f49 a88eccbc20c6c03eaf19d2b7ebf10cfd8963a24cde4bd64e16dd1df4664b7be5 pin prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 false 6f93378feaa8bf5ab7cefc071175a654c871bfd53f165d7d96795fb2b38483f1 pin prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 _ 6f93378feaa8bf5ab7cefc071175a654c871bfd53f165d7d96795fb2b38483f1 pin prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 true 2177bae1081d12a6f888b5efc89a27616aaf6e5df019f156a0f3d4c2d14bb270 diff --git a/test/fixtures/support-receipts/demos_interactionTrees_yield.receipt b/test/fixtures/support-receipts/demos_interactionTrees_yield.receipt @@ -1,10 +1,10 @@ arboricx.build-receipt.v1 source 17faf5560459e4c0ad2aa1724846d73614dd71b68198684b0613aba49866f0d2 -compiler 8d05a27a702067eb242de35e1d92ff1bc0255eed9d9baf1640f1255b2ea43475 +compiler 7feafa413be4da75dcd0218795679065bf5b6894f022e2eb044c0a0ba827eb86 options 307cf2eafa67562f5c3a6d4555c1fc1ccb9b91f43d0b74d564f5aa0bb73ffd0f output f276979eefa248d6af204a721b8737c057eacc3a27d211286db3d92bd36441f7 -local prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 9c6504f5a10a82b2718c956a5ee5a52844e44a045796ef027a6fa86def7593c5 -local io 2d23be85d277457fd36c84f5eaa227e94e1c4efec281ff73017aaee109096f49 ee4cd1e9f841ca05c177c88d58d627b9a8d1095e0e000ac6b01505bdfc3d0f40 +local prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 fb089d73a8923bb5211af6a7f93025c268745660ace4a6c89a38bd6e89f218f8 +local io 2d23be85d277457fd36c84f5eaa227e94e1c4efec281ff73017aaee109096f49 a88eccbc20c6c03eaf19d2b7ebf10cfd8963a24cde4bd64e16dd1df4664b7be5 pin prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 false 6f93378feaa8bf5ab7cefc071175a654c871bfd53f165d7d96795fb2b38483f1 pin prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 _ 6f93378feaa8bf5ab7cefc071175a654c871bfd53f165d7d96795fb2b38483f1 pin prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 true 2177bae1081d12a6f888b5efc89a27616aaf6e5df019f156a0f3d4c2d14bb270 diff --git a/test/fixtures/support-receipts/demos_levelOrderTraversal.receipt b/test/fixtures/support-receipts/demos_levelOrderTraversal.receipt @@ -1,9 +1,9 @@ arboricx.build-receipt.v1 source 1278072b994e7b4f50b42f32ae7c94b09c9bea23a1c4aaee12ec2d14f2387cec -compiler 8d05a27a702067eb242de35e1d92ff1bc0255eed9d9baf1640f1255b2ea43475 +compiler 7feafa413be4da75dcd0218795679065bf5b6894f022e2eb044c0a0ba827eb86 options 307cf2eafa67562f5c3a6d4555c1fc1ccb9b91f43d0b74d564f5aa0bb73ffd0f output a83874999378a9ff9b15ea99ed7f51c90a2dc48b0fd6b7d8980a29ffa088582c -local prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 9c6504f5a10a82b2718c956a5ee5a52844e44a045796ef027a6fa86def7593c5 +local prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 fb089d73a8923bb5211af6a7f93025c268745660ace4a6c89a38bd6e89f218f8 pin prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 false 6f93378feaa8bf5ab7cefc071175a654c871bfd53f165d7d96795fb2b38483f1 pin prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 _ 6f93378feaa8bf5ab7cefc071175a654c871bfd53f165d7d96795fb2b38483f1 pin prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 true 2177bae1081d12a6f888b5efc89a27616aaf6e5df019f156a0f3d4c2d14bb270 diff --git a/test/fixtures/support-receipts/demos_patternMatching.receipt b/test/fixtures/support-receipts/demos_patternMatching.receipt @@ -1,10 +1,10 @@ arboricx.build-receipt.v1 source 82199ce4c4ba4c014c2cd09bdcc0644732c2f6863c0eff2710f4156dcb50a1e5 -compiler 8d05a27a702067eb242de35e1d92ff1bc0255eed9d9baf1640f1255b2ea43475 +compiler 7feafa413be4da75dcd0218795679065bf5b6894f022e2eb044c0a0ba827eb86 options 307cf2eafa67562f5c3a6d4555c1fc1ccb9b91f43d0b74d564f5aa0bb73ffd0f output 6ce77cdea44f0bbb9ff4b8e59b07b48b79a2aff349f07b6e9c57a225a0ae1f79 -local prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 9c6504f5a10a82b2718c956a5ee5a52844e44a045796ef027a6fa86def7593c5 -local patterns 703db8cd6c5679861257d1cc38c17be200241ade8db3812e8c387e9274aaa56e 39fff0b826e3bbae4e229c39a20048ce7a824e495800152b9a3c893fd26a7dcc +local prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 fb089d73a8923bb5211af6a7f93025c268745660ace4a6c89a38bd6e89f218f8 +local patterns 703db8cd6c5679861257d1cc38c17be200241ade8db3812e8c387e9274aaa56e 7d1e465f4c0732d87e843a2c3f08085c81f060a97b651181c06fa4127e1cc4f5 pin prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 false 6f93378feaa8bf5ab7cefc071175a654c871bfd53f165d7d96795fb2b38483f1 pin prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 _ 6f93378feaa8bf5ab7cefc071175a654c871bfd53f165d7d96795fb2b38483f1 pin prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 true 2177bae1081d12a6f888b5efc89a27616aaf6e5df019f156a0f3d4c2d14bb270 diff --git a/test/fixtures/support-receipts/demos_runArboricxBundle.receipt b/test/fixtures/support-receipts/demos_runArboricxBundle.receipt @@ -1,11 +1,11 @@ arboricx.build-receipt.v1 source dba78c003920b0e9d459c94cbf929b29c440ddb9f1d7bf79d917ca68279c5850 -compiler 8d05a27a702067eb242de35e1d92ff1bc0255eed9d9baf1640f1255b2ea43475 +compiler 7feafa413be4da75dcd0218795679065bf5b6894f022e2eb044c0a0ba827eb86 options 307cf2eafa67562f5c3a6d4555c1fc1ccb9b91f43d0b74d564f5aa0bb73ffd0f output 8f0b54be481f1a6d123748689e5a4ee26b98f4f415d396056e62cc5c644ee608 -local prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 9c6504f5a10a82b2718c956a5ee5a52844e44a045796ef027a6fa86def7593c5 -local io 2d23be85d277457fd36c84f5eaa227e94e1c4efec281ff73017aaee109096f49 ee4cd1e9f841ca05c177c88d58d627b9a8d1095e0e000ac6b01505bdfc3d0f40 -local arboricx 3f70d95cf1bae0928ee89acd2a9e0cdd8287796efae32a9f08d33e3dd0149c55 8865add220dd836cadab18caa476bc0619f44b98ce088c1377e04a40c2f6b786 +local prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 fb089d73a8923bb5211af6a7f93025c268745660ace4a6c89a38bd6e89f218f8 +local io 2d23be85d277457fd36c84f5eaa227e94e1c4efec281ff73017aaee109096f49 a88eccbc20c6c03eaf19d2b7ebf10cfd8963a24cde4bd64e16dd1df4664b7be5 +local arboricx 3f70d95cf1bae0928ee89acd2a9e0cdd8287796efae32a9f08d33e3dd0149c55 0c9361d459580541fa1962a9c43d747a3564378beb2266b52f765465518517ea pin prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 false 6f93378feaa8bf5ab7cefc071175a654c871bfd53f165d7d96795fb2b38483f1 pin prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 _ 6f93378feaa8bf5ab7cefc071175a654c871bfd53f165d7d96795fb2b38483f1 pin prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 true 2177bae1081d12a6f888b5efc89a27616aaf6e5df019f156a0f3d4c2d14bb270 diff --git a/test/fixtures/support-receipts/demos_size.receipt b/test/fixtures/support-receipts/demos_size.receipt @@ -1,9 +1,9 @@ arboricx.build-receipt.v1 source b8d20a3ef0666e85684b34079e438ffbb1c7a7444b9c3ae6472cefd4fd21dcfd -compiler 8d05a27a702067eb242de35e1d92ff1bc0255eed9d9baf1640f1255b2ea43475 +compiler 7feafa413be4da75dcd0218795679065bf5b6894f022e2eb044c0a0ba827eb86 options 307cf2eafa67562f5c3a6d4555c1fc1ccb9b91f43d0b74d564f5aa0bb73ffd0f output c628107a60003ede5cac28ee6f6f20e2fc74d01f699924733a1c54001ebee934 -local prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 9c6504f5a10a82b2718c956a5ee5a52844e44a045796ef027a6fa86def7593c5 +local prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 fb089d73a8923bb5211af6a7f93025c268745660ace4a6c89a38bd6e89f218f8 pin prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 false 6f93378feaa8bf5ab7cefc071175a654c871bfd53f165d7d96795fb2b38483f1 pin prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 _ 6f93378feaa8bf5ab7cefc071175a654c871bfd53f165d7d96795fb2b38483f1 pin prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 true 2177bae1081d12a6f888b5efc89a27616aaf6e5df019f156a0f3d4c2d14bb270 diff --git a/test/fixtures/support-receipts/demos_toSource.receipt b/test/fixtures/support-receipts/demos_toSource.receipt @@ -1,9 +1,9 @@ arboricx.build-receipt.v1 source a1d060c00dae207ae61cdbfb15027a585cd650e748b83cf5b5c231f02fe5e1b7 -compiler 8d05a27a702067eb242de35e1d92ff1bc0255eed9d9baf1640f1255b2ea43475 +compiler 7feafa413be4da75dcd0218795679065bf5b6894f022e2eb044c0a0ba827eb86 options 307cf2eafa67562f5c3a6d4555c1fc1ccb9b91f43d0b74d564f5aa0bb73ffd0f output 31148e782eb67ea2265ee9e0fd2a186ef2d2c24c1c8f38f98c0f3e8df955cb69 -local prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 9c6504f5a10a82b2718c956a5ee5a52844e44a045796ef027a6fa86def7593c5 +local prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 fb089d73a8923bb5211af6a7f93025c268745660ace4a6c89a38bd6e89f218f8 pin prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 false 6f93378feaa8bf5ab7cefc071175a654c871bfd53f165d7d96795fb2b38483f1 pin prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 _ 6f93378feaa8bf5ab7cefc071175a654c871bfd53f165d7d96795fb2b38483f1 pin prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 true 2177bae1081d12a6f888b5efc89a27616aaf6e5df019f156a0f3d4c2d14bb270 diff --git a/test/fixtures/support-receipts/http.receipt b/test/fixtures/support-receipts/http.receipt @@ -1,13 +1,13 @@ arboricx.build-receipt.v1 source d93ca3d550c9d177d9968bd65b0aad0aa4a31f20b8274cfadcaae778f20f1cb4 -compiler 8d05a27a702067eb242de35e1d92ff1bc0255eed9d9baf1640f1255b2ea43475 +compiler 7feafa413be4da75dcd0218795679065bf5b6894f022e2eb044c0a0ba827eb86 options 307cf2eafa67562f5c3a6d4555c1fc1ccb9b91f43d0b74d564f5aa0bb73ffd0f output e6195e968697ca5799891bcd9096b568dceb717ea6e2b14adbdb8ca041a01691 -local prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 9c6504f5a10a82b2718c956a5ee5a52844e44a045796ef027a6fa86def7593c5 -local io 2d23be85d277457fd36c84f5eaa227e94e1c4efec281ff73017aaee109096f49 ee4cd1e9f841ca05c177c88d58d627b9a8d1095e0e000ac6b01505bdfc3d0f40 -local socket 49fc19156894c8f5b5a7124760eb8db2ac504404dcda77ae0e3a0dea39983d44 036e5c01e091aa70b7fb3adf494c82d1912467940448e035d3a129f3828ade3b -local parser 14282088469cc420dd014700da06998f6bb8dcf990fc885a464c0a1e1858e20d c1fbf55dfd94f137ff11675c9aa7bf817414b94d94f4eff7cfe03676f2de4630 -local native_math 7f87549d587fa8c3be88af0ea988db3adcc3b35f1ffb48973553491b075614db 0cf635fc86821db09e0d0fa2761991d3b0222f8c4b33f2514c2a8943f03553c9 +local prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 fb089d73a8923bb5211af6a7f93025c268745660ace4a6c89a38bd6e89f218f8 +local io 2d23be85d277457fd36c84f5eaa227e94e1c4efec281ff73017aaee109096f49 a88eccbc20c6c03eaf19d2b7ebf10cfd8963a24cde4bd64e16dd1df4664b7be5 +local socket 49fc19156894c8f5b5a7124760eb8db2ac504404dcda77ae0e3a0dea39983d44 4d83b01a38a451728c81488e3ad4ddff15bf982cad2d743694203583184410cf +local parser 14282088469cc420dd014700da06998f6bb8dcf990fc885a464c0a1e1858e20d 271e1e5144ed8b4eecc317cf9f8a952f07f83fb62a2966ce5e0437011c508763 +local native_math 7f87549d587fa8c3be88af0ea988db3adcc3b35f1ffb48973553491b075614db 3c2b355c055b99e9555b359ab75d92f95deb68ab17b893ecc79245b3f80d4b0f pin prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 false 6f93378feaa8bf5ab7cefc071175a654c871bfd53f165d7d96795fb2b38483f1 pin prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 _ 6f93378feaa8bf5ab7cefc071175a654c871bfd53f165d7d96795fb2b38483f1 pin prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 true 2177bae1081d12a6f888b5efc89a27616aaf6e5df019f156a0f3d4c2d14bb270 diff --git a/test/fixtures/support-receipts/intensional.receipt b/test/fixtures/support-receipts/intensional.receipt @@ -1,9 +1,9 @@ arboricx.build-receipt.v1 source 4b9470311bb8984bf311371c6b1c056ac971e073c60be5a433a5826780c31d38 -compiler 8d05a27a702067eb242de35e1d92ff1bc0255eed9d9baf1640f1255b2ea43475 +compiler 7feafa413be4da75dcd0218795679065bf5b6894f022e2eb044c0a0ba827eb86 options 307cf2eafa67562f5c3a6d4555c1fc1ccb9b91f43d0b74d564f5aa0bb73ffd0f output 7467e74f0c5b7dfad8d6a14d34171b2b0bcd7750423894e2ca920e0535fde7d1 -local base bd2c14d6db6b69308a5252a8e839705a55d30e815f012900b094315263e08d81 ffa0a044291aa558b1ab7ce669fcb8e159bcf492b123e3283d9e35ef99c0d275 +local base bd2c14d6db6b69308a5252a8e839705a55d30e815f012900b094315263e08d81 2b3ccb358f6e262bbb6f9a28c17c9c96a8e3a07a162d4069a8226c9208be03f3 pin base bd2c14d6db6b69308a5252a8e839705a55d30e815f012900b094315263e08d81 false 6f93378feaa8bf5ab7cefc071175a654c871bfd53f165d7d96795fb2b38483f1 pin base bd2c14d6db6b69308a5252a8e839705a55d30e815f012900b094315263e08d81 _ 6f93378feaa8bf5ab7cefc071175a654c871bfd53f165d7d96795fb2b38483f1 pin base bd2c14d6db6b69308a5252a8e839705a55d30e815f012900b094315263e08d81 true 2177bae1081d12a6f888b5efc89a27616aaf6e5df019f156a0f3d4c2d14bb270 diff --git a/test/fixtures/support-receipts/patterns.receipt b/test/fixtures/support-receipts/patterns.receipt @@ -1,9 +1,9 @@ arboricx.build-receipt.v1 source d61f2de7b3dce93c9b8914fb980224437d0ea4207787caab9098041cf5bfe896 -compiler 8d05a27a702067eb242de35e1d92ff1bc0255eed9d9baf1640f1255b2ea43475 +compiler 7feafa413be4da75dcd0218795679065bf5b6894f022e2eb044c0a0ba827eb86 options 307cf2eafa67562f5c3a6d4555c1fc1ccb9b91f43d0b74d564f5aa0bb73ffd0f output 703db8cd6c5679861257d1cc38c17be200241ade8db3812e8c387e9274aaa56e -local base bd2c14d6db6b69308a5252a8e839705a55d30e815f012900b094315263e08d81 ffa0a044291aa558b1ab7ce669fcb8e159bcf492b123e3283d9e35ef99c0d275 +local base bd2c14d6db6b69308a5252a8e839705a55d30e815f012900b094315263e08d81 2b3ccb358f6e262bbb6f9a28c17c9c96a8e3a07a162d4069a8226c9208be03f3 pin base bd2c14d6db6b69308a5252a8e839705a55d30e815f012900b094315263e08d81 false 6f93378feaa8bf5ab7cefc071175a654c871bfd53f165d7d96795fb2b38483f1 pin base bd2c14d6db6b69308a5252a8e839705a55d30e815f012900b094315263e08d81 _ 6f93378feaa8bf5ab7cefc071175a654c871bfd53f165d7d96795fb2b38483f1 pin base bd2c14d6db6b69308a5252a8e839705a55d30e815f012900b094315263e08d81 true 2177bae1081d12a6f888b5efc89a27616aaf6e5df019f156a0f3d4c2d14bb270 diff --git a/test/fixtures/support-receipts/socket.receipt b/test/fixtures/support-receipts/socket.receipt @@ -1,10 +1,10 @@ arboricx.build-receipt.v1 source 5014c5c41aa63d3b8a52e6cd89600b435505d93325f730b532c9eabaffd58421 -compiler 8d05a27a702067eb242de35e1d92ff1bc0255eed9d9baf1640f1255b2ea43475 +compiler 7feafa413be4da75dcd0218795679065bf5b6894f022e2eb044c0a0ba827eb86 options 307cf2eafa67562f5c3a6d4555c1fc1ccb9b91f43d0b74d564f5aa0bb73ffd0f output 49fc19156894c8f5b5a7124760eb8db2ac504404dcda77ae0e3a0dea39983d44 -local prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 9c6504f5a10a82b2718c956a5ee5a52844e44a045796ef027a6fa86def7593c5 -local io 2d23be85d277457fd36c84f5eaa227e94e1c4efec281ff73017aaee109096f49 ee4cd1e9f841ca05c177c88d58d627b9a8d1095e0e000ac6b01505bdfc3d0f40 +local prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 fb089d73a8923bb5211af6a7f93025c268745660ace4a6c89a38bd6e89f218f8 +local io 2d23be85d277457fd36c84f5eaa227e94e1c4efec281ff73017aaee109096f49 a88eccbc20c6c03eaf19d2b7ebf10cfd8963a24cde4bd64e16dd1df4664b7be5 pin prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 false 6f93378feaa8bf5ab7cefc071175a654c871bfd53f165d7d96795fb2b38483f1 pin prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 _ 6f93378feaa8bf5ab7cefc071175a654c871bfd53f165d7d96795fb2b38483f1 pin prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 true 2177bae1081d12a6f888b5efc89a27616aaf6e5df019f156a0f3d4c2d14bb270 diff --git a/test/fixtures/support-receipts/source_build_stable.manifest b/test/fixtures/support-receipts/source_build_stable.manifest @@ -1,2 +1,2 @@ arboricx.module-manifest.v1 -export sourceBuildGraph arboricx.indexed-tree.v1 3eb5958331dc1a187a3de812fe7989cbefd02f90810387b76c6a940ced6b999e arboricx.abi.tree.v1 +export sourceBuildGraph arboricx.indexed-tree.v1 00bc713f4838c3fce1aeaa1430bbe369a3b7c836cfb3450e502b80bf7fd7834a arboricx.abi.tree.v1 diff --git a/test/fixtures/support-receipts/source_build_stable.receipt b/test/fixtures/support-receipts/source_build_stable.receipt @@ -1,43 +1,43 @@ arboricx.build-receipt.v1 source 240f25295a1fa23fe29faacb204a4bb5b0bda5b9b6d64185ee8135374e1c10c5 -compiler 8d05a27a702067eb242de35e1d92ff1bc0255eed9d9baf1640f1255b2ea43475 +compiler 7feafa413be4da75dcd0218795679065bf5b6894f022e2eb044c0a0ba827eb86 options 307cf2eafa67562f5c3a6d4555c1fc1ccb9b91f43d0b74d564f5aa0bb73ffd0f -output b7d49cb984e23aa3a70afdc4044e6f5ba98f3c71b7e78bd9269426c1c061a750 -local source_build 1af31fab093b742c452db406380ea2eb90d399237eab16138e06e4e9196cdaf3 5122fede31bd244d6d13e9fb89742c46e2261e39315e37cb1d976fda6b4a7d88 -pin source_build 1af31fab093b742c452db406380ea2eb90d399237eab16138e06e4e9196cdaf3 sourceBuildSourcePath 7c3b8e132ff64d64b3257af737c513d021735e65490cf4167ec40ba60342ea34 -pin source_build 1af31fab093b742c452db406380ea2eb90d399237eab16138e06e4e9196cdaf3 sourceBuildContains 6b3ea74330ba5d21a32d5c591ad048bf61d0b5a129708fdc682259d10bb0a6b6 -pin source_build 1af31fab093b742c452db406380ea2eb90d399237eab16138e06e4e9196cdaf3 sourceBuildStage 15f16e238d3739b2924dd1e63e5d14542fb9afa309305866dfb63d24d73ab8f7 -pin source_build 1af31fab093b742c452db406380ea2eb90d399237eab16138e06e4e9196cdaf3 sourceBuildGetManifest ec54d33149037c1ee5b828136d5c8456a0a754b198ad65a83f1bebfd25aad5ba -pin source_build 1af31fab093b742c452db406380ea2eb90d399237eab16138e06e4e9196cdaf3 sourceBuildDone 69dbd1fa6b605b097f901e5a7a1f0d635f1f2386bca540f3633e89172791c0af -pin source_build 1af31fab093b742c452db406380ea2eb90d399237eab16138e06e4e9196cdaf3 sourceBuildResolveRefs 51d53749e0c966e579ee0e22797ce656d2893bb72e1204b215afb371c2f16bfb -pin source_build 1af31fab093b742c452db406380ea2eb90d399237eab16138e06e4e9196cdaf3 sourceBuildGroupsFromLocals 8bb2ae51fd5488b48ef7479cf67854fa0487f9248a165e7c48c0d089922be5fc -pin source_build 1af31fab093b742c452db406380ea2eb90d399237eab16138e06e4e9196cdaf3 sourceBuildGroupManifest 57e2ffb3c76d71634cb3d58eec63086ac16799efe09e0eb3feb1eddb9ae1672e -pin source_build 1af31fab093b742c452db406380ea2eb90d399237eab16138e06e4e9196cdaf3 sourceBuildLocalRows 77c7b92c45ce1d6251d7ebad4aa4a1f9e63dc3e9485ca8767392051061d33002 -pin source_build 1af31fab093b742c452db406380ea2eb90d399237eab16138e06e4e9196cdaf3 sourceBuildPinRows 1db3ed55bae74a35e81c5fe49c9eb4484b19368ab2a10514ab5600b873bc1ddf -pin source_build 1af31fab093b742c452db406380ea2eb90d399237eab16138e06e4e9196cdaf3 sourceBuildAllPinRows 60edda295b215a557fd1df19bdc6cdec7ab19247e1c64c83f74342c34e39a66d -pin source_build 1af31fab093b742c452db406380ea2eb90d399237eab16138e06e4e9196cdaf3 sourceBuildReceiptBytes 87ec2cc88ab699e8612364d28a4e18044dbbe8bdacc8ca76b1bc8da65b702265 -pin source_build 1af31fab093b742c452db406380ea2eb90d399237eab16138e06e4e9196cdaf3 sourceBuildPutReceipt 85b80d7ab4a2dd9af37a454a38281bfe0d5c383f327869c8a881c2affbafd685 -pin source_build 1af31fab093b742c452db406380ea2eb90d399237eab16138e06e4e9196cdaf3 sourceBuildCacheKeyBytes 1649175a9bfcfa9074fc33b530a903652a113ab02f56e8e5def47b6247c87c1d -pin source_build 1af31fab093b742c452db406380ea2eb90d399237eab16138e06e4e9196cdaf3 sourceBuildCachePath 28de4286fd15ea12f0d4cbd166ba820285a86d1e87437f5bb786be2670443cb0 -pin source_build 1af31fab093b742c452db406380ea2eb90d399237eab16138e06e4e9196cdaf3 sourceBuildCacheBytes 6cd52a8119d36859d4ce7c3968f07acedbd4dcb2b9e7f442b14a1c40924af7aa -pin source_build 1af31fab093b742c452db406380ea2eb90d399237eab16138e06e4e9196cdaf3 sourceBuildCacheDecode 873f3727911f46e849c9a9b4e9d40ce08a2490f9f19532856593f277e5efe0d5 -pin source_build 1af31fab093b742c452db406380ea2eb90d399237eab16138e06e4e9196cdaf3 sourceBuildCachePublish d099ca775c62b4700477591a10f353d7d85db3829096a94e3184e241bd16990d -pin source_build 1af31fab093b742c452db406380ea2eb90d399237eab16138e06e4e9196cdaf3 sourceBuildVerifyGroups 78919237f25a30807b662d354331cacf2392098a1f9e95ce2f92c34021543765 -pin source_build 1af31fab093b742c452db406380ea2eb90d399237eab16138e06e4e9196cdaf3 sourceBuildCacheVerifyGroups b57a60a21f3173f3220bc7c25c018dd13e11081d8742259be509b4e19b7ec782 -pin source_build 1af31fab093b742c452db406380ea2eb90d399237eab16138e06e4e9196cdaf3 sourceBuildCacheUse d102d37cc02504675f9b83f7a539e8e17e94564be36e8144232a91a687f8c56e -pin source_build 1af31fab093b742c452db406380ea2eb90d399237eab16138e06e4e9196cdaf3 sourceBuildCompile 9b86dbb47cbf2b95ef46cf0c4871dfafc9ad03f734f1ff266536f4b842adcd09 -pin source_build 1af31fab093b742c452db406380ea2eb90d399237eab16138e06e4e9196cdaf3 sourceBuildCached 0aa88bb8efe3fcd1342246a6be8f717c8fec11b4536db49f07db2183ef8a5191 -pin source_build 1af31fab093b742c452db406380ea2eb90d399237eab16138e06e4e9196cdaf3 sourceBuildFinish 0953f34d5fb746f321d1412e8f38e2ee9fb037748a2a01e0d641c460e65bb689 -pin source_build 1af31fab093b742c452db406380ea2eb90d399237eab16138e06e4e9196cdaf3 sourceBuildReadTriPath 15aafd0e79fef6b63f98b08c66a7d24667d0ddbe285f32e7fe6879d1bcaf07a7 -pin source_build 1af31fab093b742c452db406380ea2eb90d399237eab16138e06e4e9196cdaf3 sourceBuildReadTri 8e5ac6c6028142d8042704c069e3ff360422b375f5843b60e0c78ea2888024a2 -pin source_build 1af31fab093b742c452db406380ea2eb90d399237eab16138e06e4e9196cdaf3 sourceBuildCompileTriWith 6e04a2bbc7a97edb74b1986beea78efe23967639e95612db4b7e9f9f7e5b8dde -pin source_build 1af31fab093b742c452db406380ea2eb90d399237eab16138e06e4e9196cdaf3 sourceBuildCompileTri 15a58598ccaed0c08c2677135088b39eba8317e3068e732af58a0fed983a2bd7 -pin source_build 1af31fab093b742c452db406380ea2eb90d399237eab16138e06e4e9196cdaf3 sourceBuildStableTriProfile edd94533ae9f0e4fdfbc25acb57b52f312b7233f4ecf235514375e96b7446bb3 -pin source_build 1af31fab093b742c452db406380ea2eb90d399237eab16138e06e4e9196cdaf3 sourceBuildTriProfile 0a568ce33ce84f7405c43ace5d1dab5d898ea166c2f49d28fbdbeb949f047716 -pin source_build 1af31fab093b742c452db406380ea2eb90d399237eab16138e06e4e9196cdaf3 sourceBuildDependencies c7c11ac297d87d5e581a0f3bfa467605a074b0b6aace4958e22a21649097f182 -pin source_build 1af31fab093b742c452db406380ea2eb90d399237eab16138e06e4e9196cdaf3 sourceBuildWalk d1bad40a26b5bc02f8c79f913214c6f1d40175d617ec8e416bb59a9c078a2df4 -pin source_build 1af31fab093b742c452db406380ea2eb90d399237eab16138e06e4e9196cdaf3 sourceBuildGraphUnitProfile c0cbe47cdc6a85c948f10c161990c0d8cd4df155ea3b105a8dc0533a07c58c96 -pin source_build 1af31fab093b742c452db406380ea2eb90d399237eab16138e06e4e9196cdaf3 sourceBuildGraphProfile 5822e5a19adf1c714270f8db56638fed9c3318e6674102c69d62faf6a5b64f0b -pin source_build 1af31fab093b742c452db406380ea2eb90d399237eab16138e06e4e9196cdaf3 sourceBuildGraph d0e9f96d02ac0a87d3e28e9101c2542e9d586277298ea93f06c256c4482e54d3 -pin source_build 1af31fab093b742c452db406380ea2eb90d399237eab16138e06e4e9196cdaf3 sourceBuildGraphBundle 79459ca90c52c72f68d00239c3df591f1d03179c9d5ae7c98fc2f474843f8f01 -pin source_build 1af31fab093b742c452db406380ea2eb90d399237eab16138e06e4e9196cdaf3 sourceBuildGraphStable 8d05a27a702067eb242de35e1d92ff1bc0255eed9d9baf1640f1255b2ea43475 +output 899ebd78231147cbf6b72a71298a72c7047d6fb1d8033fac88898e178613e6a7 +local source_build 5a1c79afb0609925c1748a45f720119d35bf6ff44ea2cf1b074971f6a222d14f e53af4a0a1a75ab555200d3fb3a9a00bb9acec43dc56e7288850966217f55779 +pin source_build 5a1c79afb0609925c1748a45f720119d35bf6ff44ea2cf1b074971f6a222d14f sourceBuildSourcePath 7c3b8e132ff64d64b3257af737c513d021735e65490cf4167ec40ba60342ea34 +pin source_build 5a1c79afb0609925c1748a45f720119d35bf6ff44ea2cf1b074971f6a222d14f sourceBuildContains 6b3ea74330ba5d21a32d5c591ad048bf61d0b5a129708fdc682259d10bb0a6b6 +pin source_build 5a1c79afb0609925c1748a45f720119d35bf6ff44ea2cf1b074971f6a222d14f sourceBuildStage 15f16e238d3739b2924dd1e63e5d14542fb9afa309305866dfb63d24d73ab8f7 +pin source_build 5a1c79afb0609925c1748a45f720119d35bf6ff44ea2cf1b074971f6a222d14f sourceBuildGetManifest ec54d33149037c1ee5b828136d5c8456a0a754b198ad65a83f1bebfd25aad5ba +pin source_build 5a1c79afb0609925c1748a45f720119d35bf6ff44ea2cf1b074971f6a222d14f sourceBuildDone 69dbd1fa6b605b097f901e5a7a1f0d635f1f2386bca540f3633e89172791c0af +pin source_build 5a1c79afb0609925c1748a45f720119d35bf6ff44ea2cf1b074971f6a222d14f sourceBuildResolveRefs 51d53749e0c966e579ee0e22797ce656d2893bb72e1204b215afb371c2f16bfb +pin source_build 5a1c79afb0609925c1748a45f720119d35bf6ff44ea2cf1b074971f6a222d14f sourceBuildGroupsFromLocals 8bb2ae51fd5488b48ef7479cf67854fa0487f9248a165e7c48c0d089922be5fc +pin source_build 5a1c79afb0609925c1748a45f720119d35bf6ff44ea2cf1b074971f6a222d14f sourceBuildGroupManifest 57e2ffb3c76d71634cb3d58eec63086ac16799efe09e0eb3feb1eddb9ae1672e +pin source_build 5a1c79afb0609925c1748a45f720119d35bf6ff44ea2cf1b074971f6a222d14f sourceBuildLocalRows 77c7b92c45ce1d6251d7ebad4aa4a1f9e63dc3e9485ca8767392051061d33002 +pin source_build 5a1c79afb0609925c1748a45f720119d35bf6ff44ea2cf1b074971f6a222d14f sourceBuildPinRows 1db3ed55bae74a35e81c5fe49c9eb4484b19368ab2a10514ab5600b873bc1ddf +pin source_build 5a1c79afb0609925c1748a45f720119d35bf6ff44ea2cf1b074971f6a222d14f sourceBuildAllPinRows 60edda295b215a557fd1df19bdc6cdec7ab19247e1c64c83f74342c34e39a66d +pin source_build 5a1c79afb0609925c1748a45f720119d35bf6ff44ea2cf1b074971f6a222d14f sourceBuildReceiptBytes 87ec2cc88ab699e8612364d28a4e18044dbbe8bdacc8ca76b1bc8da65b702265 +pin source_build 5a1c79afb0609925c1748a45f720119d35bf6ff44ea2cf1b074971f6a222d14f sourceBuildPutReceipt 85b80d7ab4a2dd9af37a454a38281bfe0d5c383f327869c8a881c2affbafd685 +pin source_build 5a1c79afb0609925c1748a45f720119d35bf6ff44ea2cf1b074971f6a222d14f sourceBuildCacheKeyBytes 1649175a9bfcfa9074fc33b530a903652a113ab02f56e8e5def47b6247c87c1d +pin source_build 5a1c79afb0609925c1748a45f720119d35bf6ff44ea2cf1b074971f6a222d14f sourceBuildCachePath 28de4286fd15ea12f0d4cbd166ba820285a86d1e87437f5bb786be2670443cb0 +pin source_build 5a1c79afb0609925c1748a45f720119d35bf6ff44ea2cf1b074971f6a222d14f sourceBuildCacheBytes 6cd52a8119d36859d4ce7c3968f07acedbd4dcb2b9e7f442b14a1c40924af7aa +pin source_build 5a1c79afb0609925c1748a45f720119d35bf6ff44ea2cf1b074971f6a222d14f sourceBuildCacheDecode 873f3727911f46e849c9a9b4e9d40ce08a2490f9f19532856593f277e5efe0d5 +pin source_build 5a1c79afb0609925c1748a45f720119d35bf6ff44ea2cf1b074971f6a222d14f sourceBuildCachePublish d099ca775c62b4700477591a10f353d7d85db3829096a94e3184e241bd16990d +pin source_build 5a1c79afb0609925c1748a45f720119d35bf6ff44ea2cf1b074971f6a222d14f sourceBuildVerifyGroups 78919237f25a30807b662d354331cacf2392098a1f9e95ce2f92c34021543765 +pin source_build 5a1c79afb0609925c1748a45f720119d35bf6ff44ea2cf1b074971f6a222d14f sourceBuildCacheVerifyGroups b57a60a21f3173f3220bc7c25c018dd13e11081d8742259be509b4e19b7ec782 +pin source_build 5a1c79afb0609925c1748a45f720119d35bf6ff44ea2cf1b074971f6a222d14f sourceBuildCacheUse d102d37cc02504675f9b83f7a539e8e17e94564be36e8144232a91a687f8c56e +pin source_build 5a1c79afb0609925c1748a45f720119d35bf6ff44ea2cf1b074971f6a222d14f sourceBuildCompile 9b86dbb47cbf2b95ef46cf0c4871dfafc9ad03f734f1ff266536f4b842adcd09 +pin source_build 5a1c79afb0609925c1748a45f720119d35bf6ff44ea2cf1b074971f6a222d14f sourceBuildCached 0aa88bb8efe3fcd1342246a6be8f717c8fec11b4536db49f07db2183ef8a5191 +pin source_build 5a1c79afb0609925c1748a45f720119d35bf6ff44ea2cf1b074971f6a222d14f sourceBuildFinish 0953f34d5fb746f321d1412e8f38e2ee9fb037748a2a01e0d641c460e65bb689 +pin source_build 5a1c79afb0609925c1748a45f720119d35bf6ff44ea2cf1b074971f6a222d14f sourceBuildReadTriPath 15aafd0e79fef6b63f98b08c66a7d24667d0ddbe285f32e7fe6879d1bcaf07a7 +pin source_build 5a1c79afb0609925c1748a45f720119d35bf6ff44ea2cf1b074971f6a222d14f sourceBuildReadTri 8e5ac6c6028142d8042704c069e3ff360422b375f5843b60e0c78ea2888024a2 +pin source_build 5a1c79afb0609925c1748a45f720119d35bf6ff44ea2cf1b074971f6a222d14f sourceBuildCompileTriWith 6e04a2bbc7a97edb74b1986beea78efe23967639e95612db4b7e9f9f7e5b8dde +pin source_build 5a1c79afb0609925c1748a45f720119d35bf6ff44ea2cf1b074971f6a222d14f sourceBuildCompileTri a47435f075a42d79cbd840cf3b355c7a3b9540f41f3b92fff39facbfc44f9ffa +pin source_build 5a1c79afb0609925c1748a45f720119d35bf6ff44ea2cf1b074971f6a222d14f sourceBuildStableTriProfile e2d1624808dbf487d3818fa0daabcc5e6371e713936045a5f30e3f00582fac28 +pin source_build 5a1c79afb0609925c1748a45f720119d35bf6ff44ea2cf1b074971f6a222d14f sourceBuildTriProfile 49802768ca04c964cde1888dbffb25a77dc9ef95422e7303ef375ac38003b74b +pin source_build 5a1c79afb0609925c1748a45f720119d35bf6ff44ea2cf1b074971f6a222d14f sourceBuildDependencies c7c11ac297d87d5e581a0f3bfa467605a074b0b6aace4958e22a21649097f182 +pin source_build 5a1c79afb0609925c1748a45f720119d35bf6ff44ea2cf1b074971f6a222d14f sourceBuildWalk d1bad40a26b5bc02f8c79f913214c6f1d40175d617ec8e416bb59a9c078a2df4 +pin source_build 5a1c79afb0609925c1748a45f720119d35bf6ff44ea2cf1b074971f6a222d14f sourceBuildGraphUnitProfile c0cbe47cdc6a85c948f10c161990c0d8cd4df155ea3b105a8dc0533a07c58c96 +pin source_build 5a1c79afb0609925c1748a45f720119d35bf6ff44ea2cf1b074971f6a222d14f sourceBuildGraphProfile 5822e5a19adf1c714270f8db56638fed9c3318e6674102c69d62faf6a5b64f0b +pin source_build 5a1c79afb0609925c1748a45f720119d35bf6ff44ea2cf1b074971f6a222d14f sourceBuildGraph da85f1448bb0f644a6e471ba262cead255718def5621f065c5483cb193bcad5e +pin source_build 5a1c79afb0609925c1748a45f720119d35bf6ff44ea2cf1b074971f6a222d14f sourceBuildGraphBundle ebcf92ac4fcc32688a02818a3d57fed0e380f3f324350fc85593ac8d8d351f63 +pin source_build 5a1c79afb0609925c1748a45f720119d35bf6ff44ea2cf1b074971f6a222d14f sourceBuildGraphStable 7feafa413be4da75dcd0218795679065bf5b6894f022e2eb044c0a0ba827eb86 diff --git a/test/fixtures/support-receipts/source_export_cache.manifest b/test/fixtures/support-receipts/source_export_cache.manifest @@ -2,6 +2,6 @@ arboricx.module-manifest.v1 export sourceExportCacheOne arboricx.indexed-tree.v1 48090ec3746b7bb54e6e85419f34aaaf7fa635e068e41cea0b6d227af519d1de arboricx.abi.tree.v1 export sourceExportCacheAll arboricx.indexed-tree.v1 1110ecff489c2473953e7b8256b6de6b4a981ed4f3c21e6d3ce7b77e8a13a2c0 arboricx.abi.tree.v1 export sourceExportCacheSelect arboricx.indexed-tree.v1 4c7c41c500bfd71b070dab0824426ba8a69c4ddfe38327e711b9c054c9b55f7c arboricx.abi.tree.v1 -export sourceExportCacheBuild arboricx.indexed-tree.v1 f3d58fdc721ee76192e753cb206882e78d017df41052867a077619b70d147fd4 arboricx.abi.tree.v1 -export sourceExportCacheCompile arboricx.indexed-tree.v1 c638d1d564177508af1aa4c063c22f3842d6eb5cc6080b32e92e88b7cb02deb2 arboricx.abi.tree.v1 -export sourceExportCacheProfile arboricx.indexed-tree.v1 a43ab234ba027a81825ae21cfb076e98e7790dc8f8aa12eeb37837443f2c92d2 arboricx.abi.tree.v1 +export sourceExportCacheBuild arboricx.indexed-tree.v1 26036248a3ca987241019f77b24bce21d31b9594063b77053ea05bee693dcd3a arboricx.abi.tree.v1 +export sourceExportCacheCompile arboricx.indexed-tree.v1 bc5e91bacc9d1d7136229eb591b475ef17e07e86ea08d03a761ef9da29bcfe51 arboricx.abi.tree.v1 +export sourceExportCacheProfile arboricx.indexed-tree.v1 fb6b7876ecb3aa01267355f0ba62b4a20be576bf30bcb6d5e42682f736e82255 arboricx.abi.tree.v1 diff --git a/test/fixtures/support-receipts/source_export_cache.receipt b/test/fixtures/support-receipts/source_export_cache.receipt @@ -1,16 +1,16 @@ arboricx.build-receipt.v1 source 378ca283a0ef856e6fde25e88ebd321b89eb348ef52232a5895f4240be0b5369 -compiler 8d05a27a702067eb242de35e1d92ff1bc0255eed9d9baf1640f1255b2ea43475 +compiler 7feafa413be4da75dcd0218795679065bf5b6894f022e2eb044c0a0ba827eb86 options 307cf2eafa67562f5c3a6d4555c1fc1ccb9b91f43d0b74d564f5aa0bb73ffd0f -output ba1c6fbb9c4af886b1466e0ea16bc0ceba1c0a60c5ad298c19be0b755e25b11b -local prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 9c6504f5a10a82b2718c956a5ee5a52844e44a045796ef027a6fa86def7593c5 -local io 2d23be85d277457fd36c84f5eaa227e94e1c4efec281ff73017aaee109096f49 ee4cd1e9f841ca05c177c88d58d627b9a8d1095e0e000ac6b01505bdfc3d0f40 -local source_object dc29e3d043b9dc8685ed05ede1c226b3f14f47c63365b623214cf709a275b3bf d6ba07354f894f64c7d2d687e9db49807f1f52b9b98ddc3872470c717e6ba5bd -local source_module 23bbacaee8dba34c8df664877235a65594569adcc91bd2ebc886b32f287e1cd9 f23ab05052d145b0ca6d937c265aed766887c9a128021587711c5e8199c23136 -local source_lock de672f2d1d040095997894b57a1091f3746d61bcd2e278f263cdbc51ba4391f6 e72ca5ca8d27f690adef696f7a44c10684d8fd57ed77cc4fb54c5400782279c9 -local source_build 1af31fab093b742c452db406380ea2eb90d399237eab16138e06e4e9196cdaf3 5122fede31bd244d6d13e9fb89742c46e2261e39315e37cb1d976fda6b4a7d88 -local source_unit 908400c8137869ba4313fa875fc2bf87db8a736debddd5bf2a40d6147295158f 4e0c422e94ca2d689741a4b7859102a6744c5f13a1c9d197b8e399a7e58a3a38 -local source_resolve 9c0daa3e05f1f7dfad613037e5dea3828aa14ddd509624c69c339d8ff089977a 949c1c3a35bc6d33fade31a73add20aa3396ec81c3c6763f0caba6a618fbd331 +output 7f29e52b9154b0ba6410836b055f8628f76bc51aa572efa2ef691f37ecaec077 +local prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 fb089d73a8923bb5211af6a7f93025c268745660ace4a6c89a38bd6e89f218f8 +local io 2d23be85d277457fd36c84f5eaa227e94e1c4efec281ff73017aaee109096f49 a88eccbc20c6c03eaf19d2b7ebf10cfd8963a24cde4bd64e16dd1df4664b7be5 +local source_object dc29e3d043b9dc8685ed05ede1c226b3f14f47c63365b623214cf709a275b3bf a3d3726263cd93f4983382f73114455721a03adf499c12a84ee5711473f4e382 +local source_module 4241d44daa8875d2c479fc02e854ee62e5b03ce45395f026d0430a80e912ab74 556ff9c43221c27b76583d41d3015f64f446a3cf58c507eccc01363964bb5f04 +local source_lock eb0f1347b5ff7773d074212c4f01276398a8dcd9e01fbd61643a5ce0cdb7ec6e 654250856a4ad10acb61a4d2de5c78fbdac6eeff5509c984d088d776783862c8 +local source_build 5a1c79afb0609925c1748a45f720119d35bf6ff44ea2cf1b074971f6a222d14f e53af4a0a1a75ab555200d3fb3a9a00bb9acec43dc56e7288850966217f55779 +local source_unit 1e395371289a7c43d4237a30b3a6c186a38039f0b7c9a87f27e64f43f4da90a9 91f3faa6fafd792dffefedd83caa74b5b3b0af1618a8648aa0e75eacf650db45 +local source_resolve ed934dd01014852aa2e3734444538d0c0807da41bc661cd3965eca6ed16ceffe 048bb0fbeeb4817c58c790cc7bcb1a318d66a21939933e140aec025152ddf624 pin prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 false 6f93378feaa8bf5ab7cefc071175a654c871bfd53f165d7d96795fb2b38483f1 pin prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 _ 6f93378feaa8bf5ab7cefc071175a654c871bfd53f165d7d96795fb2b38483f1 pin prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 true 2177bae1081d12a6f888b5efc89a27616aaf6e5df019f156a0f3d4c2d14bb270 @@ -258,181 +258,181 @@ pin source_object dc29e3d043b9dc8685ed05ede1c226b3f14f47c63365b623214cf709a275b3 pin source_object dc29e3d043b9dc8685ed05ede1c226b3f14f47c63365b623214cf709a275b3bf sourceObjectStore a9d7e92635a1112769392bbaabb6a1f7275fc4d2fbb917106356453f6ea32f3b pin source_object dc29e3d043b9dc8685ed05ede1c226b3f14f47c63365b623214cf709a275b3bf sourceObjectPutTree 3b4de09659d6a81e6dc1f1b0e296db873460ca6bee496cfe9b9b0efe5131196d pin source_object dc29e3d043b9dc8685ed05ede1c226b3f14f47c63365b623214cf709a275b3bf sourceObjectGetTree 9ee7835b6a1d2e8aa00f69cf388d9412809557096e6a2a00bd66c1a44c3709c7 -pin source_module 23bbacaee8dba34c8df664877235a65594569adcc91bd2ebc886b32f287e1cd9 sourceModuleHeader 014dbf8e671474ae3d199918887682b380a16c26c311146e08aae3026938fe42 -pin source_module 23bbacaee8dba34c8df664877235a65594569adcc91bd2ebc886b32f287e1cd9 sourceModuleEscapeByte 1b6d5b402502059107f4a1b46ca036f6804d309a98a473b72dd7906d6bd5eae9 -pin source_module 23bbacaee8dba34c8df664877235a65594569adcc91bd2ebc886b32f287e1cd9 sourceModuleEscape 60f4b264d5c1c5171f44a325127361db9e7e1f36507675464d7b88ac3e656a71 -pin source_module 23bbacaee8dba34c8df664877235a65594569adcc91bd2ebc886b32f287e1cd9 sourceModuleUnescapeCode 65d9d4574d61975ced2696b5d38b65568a5e47aaf56028b99dda19ef62f76297 -pin source_module 23bbacaee8dba34c8df664877235a65594569adcc91bd2ebc886b32f287e1cd9 sourceModuleUnescape 3acfbdfaa86ced865a3e164c4922cd5554ef70593de654fd416e3a7ce8243bb1 -pin source_module 23bbacaee8dba34c8df664877235a65594569adcc91bd2ebc886b32f287e1cd9 sourceModuleRow 996220a8ab7cf15e5c6e004e0912f027446daad01325c62c88a8457389f7c7df -pin source_module 23bbacaee8dba34c8df664877235a65594569adcc91bd2ebc886b32f287e1cd9 sourceModuleEncodeRows f6bbad852ec1a14b80929a651ba0343c14b5dc6d6fed5f024bdaff8dfb32f04a -pin source_module 23bbacaee8dba34c8df664877235a65594569adcc91bd2ebc886b32f287e1cd9 sourceModuleEncode 5eb453bfd8aee435062cdaccb64cb0cac7c3c56c99c2da9bd64dac31d343fd0f -pin source_module 23bbacaee8dba34c8df664877235a65594569adcc91bd2ebc886b32f287e1cd9 sourceModuleExportChar? 7c5664b8d8e95e42cc079b6e6cefb2bb23af4e09a31a9d42c12b4534b9ebc4d7 -pin source_module 23bbacaee8dba34c8df664877235a65594569adcc91bd2ebc886b32f287e1cd9 sourceModuleExportNameRest b81a1cbcb247c0bd60197bec62c23cea8a7e16190b9d66eec37d6b56337b815a -pin source_module 23bbacaee8dba34c8df664877235a65594569adcc91bd2ebc886b32f287e1cd9 sourceModuleExportNameValid f97e5907e840f15823e647df99e02cf3a216aea4cec437e34c5af384c3e57c47 -pin source_module 23bbacaee8dba34c8df664877235a65594569adcc91bd2ebc886b32f287e1cd9 sourceModuleAliasByte? 3de4eb817cdc55e776c70e14345cb58365b31dca55cc6a32d8f34ca86e895dff -pin source_module 23bbacaee8dba34c8df664877235a65594569adcc91bd2ebc886b32f287e1cd9 sourceModuleAliasTail aae14807564168269c224ba9f17a21fa19dcddde7784ea432e60089f63bee7f0 -pin source_module 23bbacaee8dba34c8df664877235a65594569adcc91bd2ebc886b32f287e1cd9 sourceModuleAliasValid e8077f24f23ab799389aecc79dac8dd0c53654d996668a282dd3c2a94be95295 -pin source_module 23bbacaee8dba34c8df664877235a65594569adcc91bd2ebc886b32f287e1cd9 sourceModuleDigest? 0b59c83ee327830d8e8e6dce33f58f2f558221fbe3f7226c643a4754f16f91a3 -pin source_module 23bbacaee8dba34c8df664877235a65594569adcc91bd2ebc886b32f287e1cd9 sourceModuleRowParse 7df610a570b86a755e5f3fd0a208bc6689248f17101d718f3825dcc70484a77e -pin source_module 23bbacaee8dba34c8df664877235a65594569adcc91bd2ebc886b32f287e1cd9 sourceModuleRows 132b631e39f9f2350de9be0af90d38b83d4e2a09cab663b4cf28f5a2a9ee96aa -pin source_module 23bbacaee8dba34c8df664877235a65594569adcc91bd2ebc886b32f287e1cd9 sourceModuleDecode d3b85232602be8aa4e099b17522581a8c203b24da0c8d651e77b0d3161a49559 -pin source_module 23bbacaee8dba34c8df664877235a65594569adcc91bd2ebc886b32f287e1cd9 sourceModuleEntriesValid f91b876b5c7927f1b776a47da60a009801d3e73d8df75cbc2d9b1f51b3bc4207 -pin source_module 23bbacaee8dba34c8df664877235a65594569adcc91bd2ebc886b32f287e1cd9 sourceModulePutManifest a543a6545513850a7ec94c3f877d4da8617d3ceab1cdd900abe2522652fd9f3c -pin source_module 23bbacaee8dba34c8df664877235a65594569adcc91bd2ebc886b32f287e1cd9 sourceModuleGetManifest 01d4ef86fdac1ffe774c15cc00c16740a525909e6a3fb551a00cab517983983b -pin source_module 23bbacaee8dba34c8df664877235a65594569adcc91bd2ebc886b32f287e1cd9 sourceModuleAliasPath b19a469ec2aca677d0853a139fb48b9150d74b0436882b3c3e5cb0a7387ace8d -pin source_module 23bbacaee8dba34c8df664877235a65594569adcc91bd2ebc886b32f287e1cd9 sourceModuleAliasBytes eefe3e19e91d41292cbf3ecb91d2ef607343652160b6f07a1a73b9acc35d56b5 -pin source_module 23bbacaee8dba34c8df664877235a65594569adcc91bd2ebc886b32f287e1cd9 sourceModuleParseAliasHash aa3d5f6814de00047cd0207b4808beba291ff61665c2488e53947988f36397b7 -pin source_module 23bbacaee8dba34c8df664877235a65594569adcc91bd2ebc886b32f287e1cd9 sourceModuleParseAlias fdf6b087c1156ec4d28b8ba479056749088fddd84b9232f11ec254d04c48fcf1 -pin source_module 23bbacaee8dba34c8df664877235a65594569adcc91bd2ebc886b32f287e1cd9 sourceModuleResolveAlias 862926c0c7e6cde7d71d046796eac3e24ae0fb8471c23183a9b12ef92fcfc360 -pin source_module 23bbacaee8dba34c8df664877235a65594569adcc91bd2ebc886b32f287e1cd9 sourceModuleResolveRef aa6ebd257de32f1a92db859dcc7ba9075a7cc09214cfde771cff16a8b25402d0 -pin source_module 23bbacaee8dba34c8df664877235a65594569adcc91bd2ebc886b32f287e1cd9 sourceModulePinAlias 83f9ed9e20c41f83b3505f6e40b94a9d8625e95f56e433882d3f8f2448eebafa -pin source_module 23bbacaee8dba34c8df664877235a65594569adcc91bd2ebc886b32f287e1cd9 sourceModuleGetRefManifest c89f0a565cd5f037a21febb56148bce73dc9f6bd0d897fe93b95a178c1c5fd8a -pin source_module 23bbacaee8dba34c8df664877235a65594569adcc91bd2ebc886b32f287e1cd9 sourceModuleLoadSelected a9dc5a24892a0465d9a30e1d4293a8d7d7a28e4b30cd7db4681b862d5b70d1fa -pin source_module 23bbacaee8dba34c8df664877235a65594569adcc91bd2ebc886b32f287e1cd9 sourceModulePublishPending d86a1d0530bb8a45f3a994ae578d4f8b807d4e48c056b9bf3898e7729ea48624 -pin source_module 23bbacaee8dba34c8df664877235a65594569adcc91bd2ebc886b32f287e1cd9 sourceModulePublishNames e2427c3f98f07cec0dd96ce89f1d82015a5293fcfa4b389c1a7d43caa49dba75 -pin source_module 23bbacaee8dba34c8df664877235a65594569adcc91bd2ebc886b32f287e1cd9 sourceModulePublish bfb7d4660cd2c83dc7bbdf39e1d9f1fc7f083fafeaa02a792cf945e1d6daf558 -pin source_module 23bbacaee8dba34c8df664877235a65594569adcc91bd2ebc886b32f287e1cd9 sourceHeaderScanLine e2b6fe9954b3d524fcd40e7d871ca44f650028e0eaab4a8659420ecce7a669b3 -pin source_module 23bbacaee8dba34c8df664877235a65594569adcc91bd2ebc886b32f287e1cd9 sourceHeaderLine bc7197671810e39abb5151e6d605ddda0d2a149341acea79f4e141e4c72c730a -pin source_module 23bbacaee8dba34c8df664877235a65594569adcc91bd2ebc886b32f287e1cd9 sourceHeaderComment? 1a3ae5d2b063fd7ecb076a90f088c0287eca96f3bf4acc7a68e1e9f7f9e067ee -pin source_module 23bbacaee8dba34c8df664877235a65594569adcc91bd2ebc886b32f287e1cd9 sourceHeaderMask 86f358d3d18821cfb75700cc80abfbe6006b7178b882ff39cf03558d899505f4 -pin source_module 23bbacaee8dba34c8df664877235a65594569adcc91bd2ebc886b32f287e1cd9 sourceHeaderError a3d4d8ec05b2eccc9e3560b3c2817e253fea0074accfbd6235bba5cf7a29939f -pin source_module 23bbacaee8dba34c8df664877235a65594569adcc91bd2ebc886b32f287e1cd9 sourceHeaderContains 6b3ea74330ba5d21a32d5c591ad048bf61d0b5a129708fdc682259d10bb0a6b6 -pin source_module 23bbacaee8dba34c8df664877235a65594569adcc91bd2ebc886b32f287e1cd9 sourceHeaderRefValid 4365d749c8d6aa7cc88688a372adb21f0689c5531f0f416aaedf44760b94d857 -pin source_module 23bbacaee8dba34c8df664877235a65594569adcc91bd2ebc886b32f287e1cd9 sourceHeaderEdge fa475d2d72f8a83c859d2370705248c2b232e6a5c549a7164bf9ffecae0540e5 -pin source_module 23bbacaee8dba34c8df664877235a65594569adcc91bd2ebc886b32f287e1cd9 sourceHeaderNext 508718a30533482617ea73403adff34aaf954d059545c881926bee1433c97076 -pin source_module 23bbacaee8dba34c8df664877235a65594569adcc91bd2ebc886b32f287e1cd9 sourceHeaderSourceShape 951ad4613377b799f7f0d1b7dc8633911cd5a89d93592c5fa9bbf4e798dcd8a6 -pin source_module 23bbacaee8dba34c8df664877235a65594569adcc91bd2ebc886b32f287e1cd9 sourceModuleUseShape 044c0a31f041c4a674f6202549023b864f9940e06409ef775e322d317b0ef2ad -pin source_module 23bbacaee8dba34c8df664877235a65594569adcc91bd2ebc886b32f287e1cd9 sourceModuleExportShape 9553e216b8a5bf4d2f24ce4e815bb6fbd9c1f50f5bf9d1faa8428d72cc3ce72e -pin source_module 23bbacaee8dba34c8df664877235a65594569adcc91bd2ebc886b32f287e1cd9 sourceHeaderScan e4e90d7ee205f3fa558b0518bed6a04d3668e3fbbdf3b2755a17045e12e7d8d7 -pin source_module 23bbacaee8dba34c8df664877235a65594569adcc91bd2ebc886b32f287e1cd9 sourceModuleHeaderStageWith de9b91a1cc879944d6e61606a0d7c747541e51d396df02f434d962d449164bad -pin source_module 23bbacaee8dba34c8df664877235a65594569adcc91bd2ebc886b32f287e1cd9 sourceModuleHeaderStage e707f762d16e1f3080d224a1897cb146db13270dc285b50e48b9bfacbbe255e2 -pin source_module 23bbacaee8dba34c8df664877235a65594569adcc91bd2ebc886b32f287e1cd9 sourceModuleStage 35ac82349bb5f2f2a06cc3d3aa39fecd2cbe93556723f7be628825368a1f364e -pin source_module 23bbacaee8dba34c8df664877235a65594569adcc91bd2ebc886b32f287e1cd9 sourceModuleQualified 82f06d7cb7b3d86af08ea6254728d8ce4000d96d618390ba65067d558be2bb7a -pin source_module 23bbacaee8dba34c8df664877235a65594569adcc91bd2ebc886b32f287e1cd9 sourceModuleExtendEntries e4d4227249e6917fd7e8c91d553e9fbc354c57f154189962f8343daf7b609ae5 -pin source_module 23bbacaee8dba34c8df664877235a65594569adcc91bd2ebc886b32f287e1cd9 sourceModuleExtendOne 5978437522db827a54382dbffce6b1a73edd31effac23d27643bd069ddcd905c -pin source_module 23bbacaee8dba34c8df664877235a65594569adcc91bd2ebc886b32f287e1cd9 sourceModuleExtendPending b6c56684b7b2ea8efcf6b4cd72cb59ff714bad3100e99e2030c95edd2a2843dc -pin source_module 23bbacaee8dba34c8df664877235a65594569adcc91bd2ebc886b32f287e1cd9 sourceModuleExtendUsesWith 3043d74527beff937f803bc7136eb3e334b2c44ed97abe838844b7b5404ada7f -pin source_module 23bbacaee8dba34c8df664877235a65594569adcc91bd2ebc886b32f287e1cd9 sourceModuleExtendUses af0f1699057a92eb1ac220f579f96dd5a8d6a6aa65bf72276af80f05342efc65 -pin source_module 23bbacaee8dba34c8df664877235a65594569adcc91bd2ebc886b32f287e1cd9 sourceModuleExportEntries 7d8f026e9c3c0dfd22457c5ba867eb35d66e65115ce194656cfca68d1412ccc3 -pin source_module 23bbacaee8dba34c8df664877235a65594569adcc91bd2ebc886b32f287e1cd9 sourceModuleExportAll 67b368b52a88fdd1356e9c37d589bdbabb5735d5e6971b525d92e71d8bbe6437 -pin source_module 23bbacaee8dba34c8df664877235a65594569adcc91bd2ebc886b32f287e1cd9 sourceModuleAddPending f9cfd11830d5e08b676b2628917cbb58537226383aedc2f017b96a0c70070dce -pin source_module 23bbacaee8dba34c8df664877235a65594569adcc91bd2ebc886b32f287e1cd9 sourceModuleAddEntries 666341a21fb44a36ba5244c8547ce799e4253ec99d8daddc53bcc8796e9bcfa9 -pin source_module 23bbacaee8dba34c8df664877235a65594569adcc91bd2ebc886b32f287e1cd9 sourceModuleSelectPending 14802675adb54f451e30a1d3099ad72ee2158eef41856a0982e7e1515eb3d70e -pin source_module 23bbacaee8dba34c8df664877235a65594569adcc91bd2ebc886b32f287e1cd9 sourceModuleSelectWith a8a9d3d8f75d0f7e7e89bff984c761593933ea6ea81950d971d4fcdcdf63d90f -pin source_module 23bbacaee8dba34c8df664877235a65594569adcc91bd2ebc886b32f287e1cd9 sourceModuleSelect df9ad3118c533f447f049a141579df49da47c5dcf4099c6bdeb2ab17325e8d40 -pin source_module 23bbacaee8dba34c8df664877235a65594569adcc91bd2ebc886b32f287e1cd9 sourceModuleBuildResolvedWith ab9f0a1d3b7590a42b39e01c54dea35e08ed0890a591d81279c65fbb434db154 -pin source_module 23bbacaee8dba34c8df664877235a65594569adcc91bd2ebc886b32f287e1cd9 sourceModuleBuildStagedWith 27fc2cd0df365403763b2a413c2a18065832586da8517afdade5eca5e1ff3b30 -pin source_module 23bbacaee8dba34c8df664877235a65594569adcc91bd2ebc886b32f287e1cd9 sourceModuleBuildWith 35bd83c4f4392bed514a34629157f2f04fc5b76fa87612240586b13471e97e66 -pin source_module 23bbacaee8dba34c8df664877235a65594569adcc91bd2ebc886b32f287e1cd9 sourceModuleBuild 270b6f8cf7b7fb4b18f267fc619e7d2fde27cd1ecfc8099fe278430dddb02cc2 -pin source_module 23bbacaee8dba34c8df664877235a65594569adcc91bd2ebc886b32f287e1cd9 sourceModuleBuildStaged 4db29fd2b0423e00f7c95e52cb59cba121ec46d93e628971fa99ca9e9807b554 -pin source_lock de672f2d1d040095997894b57a1091f3746d61bcd2e278f263cdbc51ba4391f6 sourceLockHeader 3c3714f6df9346378fa0b99e7478b862dc8c2b3ad97c5f5726988ac8339493fb -pin source_lock de672f2d1d040095997894b57a1091f3746d61bcd2e278f263cdbc51ba4391f6 sourceLockPath 3758c80b1bc11689ea2b8eb9418eccd80ef59cd86b9208282d033a487607bec4 -pin source_lock de672f2d1d040095997894b57a1091f3746d61bcd2e278f263cdbc51ba4391f6 sourceLockRow e86b8b2dc49723447fb4d22024b2a29b04bc4261b4b88ea878d957faa0289b56 -pin source_lock de672f2d1d040095997894b57a1091f3746d61bcd2e278f263cdbc51ba4391f6 sourceLockRows 4138adab05f325b243ade3838df83037a0c4ce1c675f7b1cc4514f456f476f84 -pin source_lock de672f2d1d040095997894b57a1091f3746d61bcd2e278f263cdbc51ba4391f6 sourceLockGroups 5bffe166498aec38d0a8751d818c0b9a3dc01f5eb8c744fc8137544a3c4ea3e3 -pin source_lock de672f2d1d040095997894b57a1091f3746d61bcd2e278f263cdbc51ba4391f6 sourceLockEncode 25d5f0b1ed1069e9fb4fbf88866474d590456d620b6234642bfabc80cb0bcf67 -pin source_lock de672f2d1d040095997894b57a1091f3746d61bcd2e278f263cdbc51ba4391f6 sourceLockParseRow f1bfbd1696197ec6f6af58bfe43d7d15dff50e4652988a8e63edc30f720d182e -pin source_lock de672f2d1d040095997894b57a1091f3746d61bcd2e278f263cdbc51ba4391f6 sourceLockParseRows 945ee92e420c0e8934d41fed2e65f51cffdeb6f1fa8fceba4f432c89ff4025c8 -pin source_lock de672f2d1d040095997894b57a1091f3746d61bcd2e278f263cdbc51ba4391f6 sourceLockDecode 7f6ca476f92ed74e4c87a2f3bc3f32eb9692ec9a9ae3527b37a361338e820cd9 -pin source_lock de672f2d1d040095997894b57a1091f3746d61bcd2e278f263cdbc51ba4391f6 sourceLockDistinct 50459be98404ff23ea075bd73b97a90b0a6e3812c35a4bdac4892318deeefd81 -pin source_lock de672f2d1d040095997894b57a1091f3746d61bcd2e278f263cdbc51ba4391f6 sourceLockSelectRows d6845e4fe52c5db24e843ce31c31baaacbbd34f1a50fe970e17ebba165c6fcb7 -pin source_lock de672f2d1d040095997894b57a1091f3746d61bcd2e278f263cdbc51ba4391f6 sourceLockRowsFor cfb79d96bd8b1e102c22b9b3ec31efeaec6d85417546c84ba4434ea3d335a332 -pin source_lock de672f2d1d040095997894b57a1091f3746d61bcd2e278f263cdbc51ba4391f6 sourceLockCheckEntries cddb28578724c4af416ac4bde2e51aba19083d1d915d283b4d017bd551a91901 -pin source_lock de672f2d1d040095997894b57a1091f3746d61bcd2e278f263cdbc51ba4391f6 sourceLockCheckTrees d6503e78de654347057a4283cbac1a20660d58dcd195973027f603571e269a78 -pin source_lock de672f2d1d040095997894b57a1091f3746d61bcd2e278f263cdbc51ba4391f6 sourceLockVerifyRefs d2d955ca87bc06be5c0480921d839eb6ef8baa40f84b60c5f4f27c167081b8dd -pin source_lock de672f2d1d040095997894b57a1091f3746d61bcd2e278f263cdbc51ba4391f6 sourceLockVerify 49878d5ebebeaae464809c7bf0f0b229b8e0ce04e08ec0b9bd6f3b6212ea4d67 -pin source_lock de672f2d1d040095997894b57a1091f3746d61bcd2e278f263cdbc51ba4391f6 sourceLockCollect ff09380ffbe4a0766e65d9b5df80acf5e9da3c1af18ea0cda169c6f40f6c82ec -pin source_lock de672f2d1d040095997894b57a1091f3746d61bcd2e278f263cdbc51ba4391f6 sourceLockUseRefs bfe4b79531e7e4bd11a9eecbdf411caf180788070b8a4a1f12998c77da29c4aa -pin source_lock de672f2d1d040095997894b57a1091f3746d61bcd2e278f263cdbc51ba4391f6 sourceLockExportRefs 0aefa7ebcc6555fb1978118be6bdb593bd3dceda2ab9ac7fbaae8f8acf786191 -pin source_lock de672f2d1d040095997894b57a1091f3746d61bcd2e278f263cdbc51ba4391f6 sourceLockSourceRefs b4a78253305414629d9ab5b06fba4fe248f507acd6ababc1a3e3626757cf6f71 -pin source_lock de672f2d1d040095997894b57a1091f3746d61bcd2e278f263cdbc51ba4391f6 sourceLockUpdate 10920701156a1410ddeee49204301a33b203566afcc3dd7ca7879084a863887b -pin source_lock de672f2d1d040095997894b57a1091f3746d61bcd2e278f263cdbc51ba4391f6 sourceLockRewriteUses 4ec3f266233239245acb3479216ad6fe1c4a453be9a425cd531221a99f2de457 -pin source_lock de672f2d1d040095997894b57a1091f3746d61bcd2e278f263cdbc51ba4391f6 sourceLockRewriteExports 418139a80c01c59954423f6c24dc4e23fccad9e50172312d38e174a4b3fc2f3c -pin source_lock de672f2d1d040095997894b57a1091f3746d61bcd2e278f263cdbc51ba4391f6 sourceLockRewriteSource 6b63a759c98c72a50252478b77f645dd7bba7916ba1e724e266281489fd6f946 -pin source_lock de672f2d1d040095997894b57a1091f3746d61bcd2e278f263cdbc51ba4391f6 sourceLockRewriteStaged 8dec8746da9f2f79b2a2e5fd7f649e083495b9ae767d0899ccb325f88657b3db -pin source_lock de672f2d1d040095997894b57a1091f3746d61bcd2e278f263cdbc51ba4391f6 sourceLockGroupRefs 1263838e1498db005b1b18d142b6d5e461adcb1ee6adbb632dc3c58dff11c976 -pin source_lock de672f2d1d040095997894b57a1091f3746d61bcd2e278f263cdbc51ba4391f6 sourceLockUniqueRefs 2f17c23d49529d804b8a23123f2d686f6b5d3dbd031f93c939c58e28d2f4bdd3 -pin source_lock de672f2d1d040095997894b57a1091f3746d61bcd2e278f263cdbc51ba4391f6 sourceLockBuild 690b63fbe28550989193328a29148e83b416dcb5455ea038063b8ca37e9cf3ac -pin source_build 1af31fab093b742c452db406380ea2eb90d399237eab16138e06e4e9196cdaf3 sourceBuildSourcePath 7c3b8e132ff64d64b3257af737c513d021735e65490cf4167ec40ba60342ea34 -pin source_build 1af31fab093b742c452db406380ea2eb90d399237eab16138e06e4e9196cdaf3 sourceBuildContains 6b3ea74330ba5d21a32d5c591ad048bf61d0b5a129708fdc682259d10bb0a6b6 -pin source_build 1af31fab093b742c452db406380ea2eb90d399237eab16138e06e4e9196cdaf3 sourceBuildStage 15f16e238d3739b2924dd1e63e5d14542fb9afa309305866dfb63d24d73ab8f7 -pin source_build 1af31fab093b742c452db406380ea2eb90d399237eab16138e06e4e9196cdaf3 sourceBuildGetManifest ec54d33149037c1ee5b828136d5c8456a0a754b198ad65a83f1bebfd25aad5ba -pin source_build 1af31fab093b742c452db406380ea2eb90d399237eab16138e06e4e9196cdaf3 sourceBuildDone 69dbd1fa6b605b097f901e5a7a1f0d635f1f2386bca540f3633e89172791c0af -pin source_build 1af31fab093b742c452db406380ea2eb90d399237eab16138e06e4e9196cdaf3 sourceBuildResolveRefs 51d53749e0c966e579ee0e22797ce656d2893bb72e1204b215afb371c2f16bfb -pin source_build 1af31fab093b742c452db406380ea2eb90d399237eab16138e06e4e9196cdaf3 sourceBuildGroupsFromLocals 8bb2ae51fd5488b48ef7479cf67854fa0487f9248a165e7c48c0d089922be5fc -pin source_build 1af31fab093b742c452db406380ea2eb90d399237eab16138e06e4e9196cdaf3 sourceBuildGroupManifest 57e2ffb3c76d71634cb3d58eec63086ac16799efe09e0eb3feb1eddb9ae1672e -pin source_build 1af31fab093b742c452db406380ea2eb90d399237eab16138e06e4e9196cdaf3 sourceBuildLocalRows 77c7b92c45ce1d6251d7ebad4aa4a1f9e63dc3e9485ca8767392051061d33002 -pin source_build 1af31fab093b742c452db406380ea2eb90d399237eab16138e06e4e9196cdaf3 sourceBuildPinRows 1db3ed55bae74a35e81c5fe49c9eb4484b19368ab2a10514ab5600b873bc1ddf -pin source_build 1af31fab093b742c452db406380ea2eb90d399237eab16138e06e4e9196cdaf3 sourceBuildAllPinRows 60edda295b215a557fd1df19bdc6cdec7ab19247e1c64c83f74342c34e39a66d -pin source_build 1af31fab093b742c452db406380ea2eb90d399237eab16138e06e4e9196cdaf3 sourceBuildReceiptBytes 87ec2cc88ab699e8612364d28a4e18044dbbe8bdacc8ca76b1bc8da65b702265 -pin source_build 1af31fab093b742c452db406380ea2eb90d399237eab16138e06e4e9196cdaf3 sourceBuildPutReceipt 85b80d7ab4a2dd9af37a454a38281bfe0d5c383f327869c8a881c2affbafd685 -pin source_build 1af31fab093b742c452db406380ea2eb90d399237eab16138e06e4e9196cdaf3 sourceBuildCacheKeyBytes 1649175a9bfcfa9074fc33b530a903652a113ab02f56e8e5def47b6247c87c1d -pin source_build 1af31fab093b742c452db406380ea2eb90d399237eab16138e06e4e9196cdaf3 sourceBuildCachePath 28de4286fd15ea12f0d4cbd166ba820285a86d1e87437f5bb786be2670443cb0 -pin source_build 1af31fab093b742c452db406380ea2eb90d399237eab16138e06e4e9196cdaf3 sourceBuildCacheBytes 6cd52a8119d36859d4ce7c3968f07acedbd4dcb2b9e7f442b14a1c40924af7aa -pin source_build 1af31fab093b742c452db406380ea2eb90d399237eab16138e06e4e9196cdaf3 sourceBuildCacheDecode 873f3727911f46e849c9a9b4e9d40ce08a2490f9f19532856593f277e5efe0d5 -pin source_build 1af31fab093b742c452db406380ea2eb90d399237eab16138e06e4e9196cdaf3 sourceBuildCachePublish d099ca775c62b4700477591a10f353d7d85db3829096a94e3184e241bd16990d -pin source_build 1af31fab093b742c452db406380ea2eb90d399237eab16138e06e4e9196cdaf3 sourceBuildVerifyGroups 78919237f25a30807b662d354331cacf2392098a1f9e95ce2f92c34021543765 -pin source_build 1af31fab093b742c452db406380ea2eb90d399237eab16138e06e4e9196cdaf3 sourceBuildCacheVerifyGroups b57a60a21f3173f3220bc7c25c018dd13e11081d8742259be509b4e19b7ec782 -pin source_build 1af31fab093b742c452db406380ea2eb90d399237eab16138e06e4e9196cdaf3 sourceBuildCacheUse d102d37cc02504675f9b83f7a539e8e17e94564be36e8144232a91a687f8c56e -pin source_build 1af31fab093b742c452db406380ea2eb90d399237eab16138e06e4e9196cdaf3 sourceBuildCompile 9b86dbb47cbf2b95ef46cf0c4871dfafc9ad03f734f1ff266536f4b842adcd09 -pin source_build 1af31fab093b742c452db406380ea2eb90d399237eab16138e06e4e9196cdaf3 sourceBuildCached 0aa88bb8efe3fcd1342246a6be8f717c8fec11b4536db49f07db2183ef8a5191 -pin source_build 1af31fab093b742c452db406380ea2eb90d399237eab16138e06e4e9196cdaf3 sourceBuildFinish 0953f34d5fb746f321d1412e8f38e2ee9fb037748a2a01e0d641c460e65bb689 -pin source_build 1af31fab093b742c452db406380ea2eb90d399237eab16138e06e4e9196cdaf3 sourceBuildReadTriPath 15aafd0e79fef6b63f98b08c66a7d24667d0ddbe285f32e7fe6879d1bcaf07a7 -pin source_build 1af31fab093b742c452db406380ea2eb90d399237eab16138e06e4e9196cdaf3 sourceBuildReadTri 8e5ac6c6028142d8042704c069e3ff360422b375f5843b60e0c78ea2888024a2 -pin source_build 1af31fab093b742c452db406380ea2eb90d399237eab16138e06e4e9196cdaf3 sourceBuildCompileTriWith 6e04a2bbc7a97edb74b1986beea78efe23967639e95612db4b7e9f9f7e5b8dde -pin source_build 1af31fab093b742c452db406380ea2eb90d399237eab16138e06e4e9196cdaf3 sourceBuildCompileTri 15a58598ccaed0c08c2677135088b39eba8317e3068e732af58a0fed983a2bd7 -pin source_build 1af31fab093b742c452db406380ea2eb90d399237eab16138e06e4e9196cdaf3 sourceBuildStableTriProfile edd94533ae9f0e4fdfbc25acb57b52f312b7233f4ecf235514375e96b7446bb3 -pin source_build 1af31fab093b742c452db406380ea2eb90d399237eab16138e06e4e9196cdaf3 sourceBuildTriProfile 0a568ce33ce84f7405c43ace5d1dab5d898ea166c2f49d28fbdbeb949f047716 -pin source_build 1af31fab093b742c452db406380ea2eb90d399237eab16138e06e4e9196cdaf3 sourceBuildDependencies c7c11ac297d87d5e581a0f3bfa467605a074b0b6aace4958e22a21649097f182 -pin source_build 1af31fab093b742c452db406380ea2eb90d399237eab16138e06e4e9196cdaf3 sourceBuildWalk d1bad40a26b5bc02f8c79f913214c6f1d40175d617ec8e416bb59a9c078a2df4 -pin source_build 1af31fab093b742c452db406380ea2eb90d399237eab16138e06e4e9196cdaf3 sourceBuildGraphUnitProfile c0cbe47cdc6a85c948f10c161990c0d8cd4df155ea3b105a8dc0533a07c58c96 -pin source_build 1af31fab093b742c452db406380ea2eb90d399237eab16138e06e4e9196cdaf3 sourceBuildGraphProfile 5822e5a19adf1c714270f8db56638fed9c3318e6674102c69d62faf6a5b64f0b -pin source_build 1af31fab093b742c452db406380ea2eb90d399237eab16138e06e4e9196cdaf3 sourceBuildGraph d0e9f96d02ac0a87d3e28e9101c2542e9d586277298ea93f06c256c4482e54d3 -pin source_build 1af31fab093b742c452db406380ea2eb90d399237eab16138e06e4e9196cdaf3 sourceBuildGraphBundle 79459ca90c52c72f68d00239c3df591f1d03179c9d5ae7c98fc2f474843f8f01 -pin source_build 1af31fab093b742c452db406380ea2eb90d399237eab16138e06e4e9196cdaf3 sourceBuildGraphStable 8d05a27a702067eb242de35e1d92ff1bc0255eed9d9baf1640f1255b2ea43475 -pin source_unit 908400c8137869ba4313fa875fc2bf87db8a736debddd5bf2a40d6147295158f sourceCompileDefinition 2419e4f91a6b79fcde05a6b479bf26c270d331c16fccd0104cf1bba38cdbe35b -pin source_unit 908400c8137869ba4313fa875fc2bf87db8a736debddd5bf2a40d6147295158f sourceCompileOrderedUsing 1c33484341a092e5a11946c39982989b9b4a9024994b07f56df31796aa6d711a -pin source_unit 908400c8137869ba4313fa875fc2bf87db8a736debddd5bf2a40d6147295158f sourceCompileOrderedWith 6e1c008cb41b8e92bde306f177e830b795cd474b04b8601be8c5b9756255739c -pin source_unit 908400c8137869ba4313fa875fc2bf87db8a736debddd5bf2a40d6147295158f sourceCompileOrdered fecbbfc9a00cfffed5cdc944273ff4f039ce1dee30b42ace00d0154d8043dfca -pin source_unit 908400c8137869ba4313fa875fc2bf87db8a736debddd5bf2a40d6147295158f sourceSelectProgram 029245427e9110079106c46ba748f27497befd98c8cca789c1cac1f4c0c8c176 -pin source_unit 908400c8137869ba4313fa875fc2bf87db8a736debddd5bf2a40d6147295158f compileGateProgramOutput fb47d9a3f1b5a6a8dca60bacbff6b211f3d75f92eb06ddb14e7681e1dff5b5b4 -pin source_unit 908400c8137869ba4313fa875fc2bf87db8a736debddd5bf2a40d6147295158f compileSource 85fd162127f935e69033f29c251c00214f3e13bbc11c3ff71446146d30ac0d34 -pin source_unit 908400c8137869ba4313fa875fc2bf87db8a736debddd5bf2a40d6147295158f sourceModuleCheckShadows 5e20d0bc192e9dbbf8f52611199ae83e9468264ddd19bd8e48ec6135aea762da -pin source_unit 908400c8137869ba4313fa875fc2bf87db8a736debddd5bf2a40d6147295158f compileModuleDefinitionsUsing 722c48fffcc7cf2f02ee8a23394457858ff629c5f32bfc8238982e58cee7d0b4 -pin source_unit 908400c8137869ba4313fa875fc2bf87db8a736debddd5bf2a40d6147295158f compileModuleDefinitionsWith 522622d97e96494ac1fcb0ec96d6fdeaaded3a8d88927f636a4e57a88c31ea4d -pin source_unit 908400c8137869ba4313fa875fc2bf87db8a736debddd5bf2a40d6147295158f sourceCompileStableModuleProgram eb90fba935375a1a2ee20867ed83fbf9919c2f81d2f40c11a4f3b247ffa250a0 -pin source_unit 908400c8137869ba4313fa875fc2bf87db8a736debddd5bf2a40d6147295158f compileModuleDefinitions e25116ba21e0546f004c9a4a46e98d93b32bd078d0f91d798f2b49643a45a964 -pin source_unit 908400c8137869ba4313fa875fc2bf87db8a736debddd5bf2a40d6147295158f compileStableModuleDefinitions ac6fae6578fe59bc00d3f03d364fd7f61c7092b0a4e38176e2cb421ab954acb3 -pin source_unit 908400c8137869ba4313fa875fc2bf87db8a736debddd5bf2a40d6147295158f compileGateProgram d52931adde1d21f7a5693ced750b1fd2f88a20705a0e7350532fd1b01ee00d2d -pin source_resolve 9c0daa3e05f1f7dfad613037e5dea3828aa14ddd509624c69c339d8ff089977a sourceFindBinder 16d2b5adac452f490f7d67c9a60871ce419747e65e2499128bdbd1f769fc5bd5 -pin source_resolve 9c0daa3e05f1f7dfad613037e5dea3828aa14ddd509624c69c339d8ff089977a sourceFindExternal cbca0a8f60da95678fd13835871910a93b6cfe5efa53eed964d223a5f7e6607f -pin source_resolve 9c0daa3e05f1f7dfad613037e5dea3828aa14ddd509624c69c339d8ff089977a sourceResolveNameWithLookup f036dddc3bd3aaf48d3d9e08ddd7685bcc90465d2b886fccdfed6e9e1d7ab316 -pin source_resolve 9c0daa3e05f1f7dfad613037e5dea3828aa14ddd509624c69c339d8ff089977a sourceResolveApply 1caa7453ed94a7d8f8d7b62ae1c2fb85c80bed0826285866029efbf889799fb1 -pin source_resolve 9c0daa3e05f1f7dfad613037e5dea3828aa14ddd509624c69c339d8ff089977a sourceResolvePipe 8b9a2d54d1dadbe5be89c00648c61b48012aa9fc60fb21e6077d3a79ec05b42b -pin source_resolve 9c0daa3e05f1f7dfad613037e5dea3828aa14ddd509624c69c339d8ff089977a sourceResolveLambda 7f78e8c73bd6521f30a4a8133396bf708d7c7da7c693e0b0faf14348b44d1e91 -pin source_resolve 9c0daa3e05f1f7dfad613037e5dea3828aa14ddd509624c69c339d8ff089977a sourceResolveGroup a9df39db96d81db0a444617bfb4c96ca1f8b05767fd52a207aeb94af2139dbee -pin source_resolve 9c0daa3e05f1f7dfad613037e5dea3828aa14ddd509624c69c339d8ff089977a sourceResolveDo 75bb3992b8741039e782228b8a469005a60329cac52b53c399b8b695f051ead0 -pin source_resolve 9c0daa3e05f1f7dfad613037e5dea3828aa14ddd509624c69c339d8ff089977a sourceResolveLocal fa2c54492fc1714eac73f279a774fb1fc23906d69249367585b9dfab49942732 -pin source_resolve 9c0daa3e05f1f7dfad613037e5dea3828aa14ddd509624c69c339d8ff089977a sourceResolveElements f97597a53de0ffec5a1bf4667c442c7f78ed1cd323fd95e338fb3a8597db4a9a -pin source_resolve 9c0daa3e05f1f7dfad613037e5dea3828aa14ddd509624c69c339d8ff089977a sourceResolveList e4fbbe44d1618c6bfb42da16ca0ba88f85e56f69e50f7861e74b4e9f734eb839 -pin source_resolve 9c0daa3e05f1f7dfad613037e5dea3828aa14ddd509624c69c339d8ff089977a sourceResolvePatternNode 5e7fbe1cc96788a12687ef518a3ffa6844365fc1ee4be4670ac013cf92556fe6 -pin source_resolve 9c0daa3e05f1f7dfad613037e5dea3828aa14ddd509624c69c339d8ff089977a sourceResolvePatternChild 4636c1c61a8770cafce1eb84b3eadf13cd4954cd89faf27daa7098b394082135 -pin source_resolve 9c0daa3e05f1f7dfad613037e5dea3828aa14ddd509624c69c339d8ff089977a sourceResolvePatternLookup e1791322206fc3d69693e6af9bf6e973fd07048fea6b15da1c5b490ab40e7644 -pin source_resolve 9c0daa3e05f1f7dfad613037e5dea3828aa14ddd509624c69c339d8ff089977a sourceResolveEquationLookup 468a8669188c36d80484b8c8ac11e3cc7c59de389ff4bb00b4d17e42afd3441a -pin source_resolve 9c0daa3e05f1f7dfad613037e5dea3828aa14ddd509624c69c339d8ff089977a sourceResolveEquationsWithLookup 8877f3432b0fbc1b2eb22417bae5b9308a17bfecdee54ccefb2e52713733072b -pin source_resolve 9c0daa3e05f1f7dfad613037e5dea3828aa14ddd509624c69c339d8ff089977a sourceResolveOrdinaryWithLookup 3112ad948fc68a696f95abf5fd75aa6bf06b6330dc4125671248bae4bc495cd8 -pin source_resolve 9c0daa3e05f1f7dfad613037e5dea3828aa14ddd509624c69c339d8ff089977a sourceResolveCase c41248bcf41a4c8922a97df4003aa3ec4b0d1c266fd0ef46bc42658c1b0dd385 -pin source_resolve 9c0daa3e05f1f7dfad613037e5dea3828aa14ddd509624c69c339d8ff089977a sourceResolveRec e8d80671a673ceed4e6af4277e7c21ce9c6aabf59e9e39c1410d65b23095a0ba -pin source_resolve 9c0daa3e05f1f7dfad613037e5dea3828aa14ddd509624c69c339d8ff089977a sourceResolveStableWithLookup 1a3e6c72ce291ea2100a1a8dd35fa91661191e4cdf0560e2af85f0ba809b6b47 -pin source_resolve 9c0daa3e05f1f7dfad613037e5dea3828aa14ddd509624c69c339d8ff089977a resolveStableGateAstWithLookup 1423ad35df275fb487bdfc76553c080fe10fdb661a8fa1aad812d10894cdb8d5 -pin source_resolve 9c0daa3e05f1f7dfad613037e5dea3828aa14ddd509624c69c339d8ff089977a sourceResolveName 85b9b73aba66c084cf62055d96e019bb79330027b9bd642241ce36daf91c0f44 -pin source_resolve 9c0daa3e05f1f7dfad613037e5dea3828aa14ddd509624c69c339d8ff089977a sourceResolvePattern ba0115eccae369a3b66ddf66836878d4c7df7f7895c8e6c6091e45ed18375b5a -pin source_resolve 9c0daa3e05f1f7dfad613037e5dea3828aa14ddd509624c69c339d8ff089977a sourceResolveEquation 0023162f47033079124407e44f201a5c56fe0317a8e35d59f435a85768144ec2 -pin source_resolve 9c0daa3e05f1f7dfad613037e5dea3828aa14ddd509624c69c339d8ff089977a sourceResolveEquationsWith 2669f6a770d3e73d46419bb7f2bc6333bf7e8fb4356e66b58a4e111710dcf563 -pin source_resolve 9c0daa3e05f1f7dfad613037e5dea3828aa14ddd509624c69c339d8ff089977a sourceResolveEquations 1f469dfa983101f1507147b4f3fda04d46f2fb3cab0743f7efce4df031a8db05 -pin source_resolve 9c0daa3e05f1f7dfad613037e5dea3828aa14ddd509624c69c339d8ff089977a sourceResolveOrdinary b93dae0ce7ed05bec58e51f2b3c0334ef4284c0af084b9a61f9d8bf97281c0e8 -pin source_resolve 9c0daa3e05f1f7dfad613037e5dea3828aa14ddd509624c69c339d8ff089977a sourceResolve 5eefd8d756aa966f902e7c07301045ace247135dbbb6b442d31990b09384f60a -pin source_resolve 9c0daa3e05f1f7dfad613037e5dea3828aa14ddd509624c69c339d8ff089977a resolveGateAst 2af1f88c9eb28b30395edcadba96cbb7e3d12f5d5649eb27e2d48f52c2fd8366 -pin source_resolve 9c0daa3e05f1f7dfad613037e5dea3828aa14ddd509624c69c339d8ff089977a resolveGateSource 1d42e746622951873835ad804eee6abdda09b7bea8456edde5477398bdc202ca -pin source_resolve 9c0daa3e05f1f7dfad613037e5dea3828aa14ddd509624c69c339d8ff089977a sourceResolveStable 676e75a8c97a32e544f55fc797a60b0838b7cfccca3d5427ebbdb501fdef0273 -pin source_resolve 9c0daa3e05f1f7dfad613037e5dea3828aa14ddd509624c69c339d8ff089977a resolveStableGateAst 12e2a91aa4293614ac1b3a2d4a11db8d4f4049e5cd269f4fa79d152c44accb4c +pin source_module 4241d44daa8875d2c479fc02e854ee62e5b03ce45395f026d0430a80e912ab74 sourceModuleHeader 014dbf8e671474ae3d199918887682b380a16c26c311146e08aae3026938fe42 +pin source_module 4241d44daa8875d2c479fc02e854ee62e5b03ce45395f026d0430a80e912ab74 sourceModuleEscapeByte 1b6d5b402502059107f4a1b46ca036f6804d309a98a473b72dd7906d6bd5eae9 +pin source_module 4241d44daa8875d2c479fc02e854ee62e5b03ce45395f026d0430a80e912ab74 sourceModuleEscape 60f4b264d5c1c5171f44a325127361db9e7e1f36507675464d7b88ac3e656a71 +pin source_module 4241d44daa8875d2c479fc02e854ee62e5b03ce45395f026d0430a80e912ab74 sourceModuleUnescapeCode 65d9d4574d61975ced2696b5d38b65568a5e47aaf56028b99dda19ef62f76297 +pin source_module 4241d44daa8875d2c479fc02e854ee62e5b03ce45395f026d0430a80e912ab74 sourceModuleUnescape 3acfbdfaa86ced865a3e164c4922cd5554ef70593de654fd416e3a7ce8243bb1 +pin source_module 4241d44daa8875d2c479fc02e854ee62e5b03ce45395f026d0430a80e912ab74 sourceModuleRow 996220a8ab7cf15e5c6e004e0912f027446daad01325c62c88a8457389f7c7df +pin source_module 4241d44daa8875d2c479fc02e854ee62e5b03ce45395f026d0430a80e912ab74 sourceModuleEncodeRows f6bbad852ec1a14b80929a651ba0343c14b5dc6d6fed5f024bdaff8dfb32f04a +pin source_module 4241d44daa8875d2c479fc02e854ee62e5b03ce45395f026d0430a80e912ab74 sourceModuleEncode 5eb453bfd8aee435062cdaccb64cb0cac7c3c56c99c2da9bd64dac31d343fd0f +pin source_module 4241d44daa8875d2c479fc02e854ee62e5b03ce45395f026d0430a80e912ab74 sourceModuleExportChar? 7c5664b8d8e95e42cc079b6e6cefb2bb23af4e09a31a9d42c12b4534b9ebc4d7 +pin source_module 4241d44daa8875d2c479fc02e854ee62e5b03ce45395f026d0430a80e912ab74 sourceModuleExportNameRest b81a1cbcb247c0bd60197bec62c23cea8a7e16190b9d66eec37d6b56337b815a +pin source_module 4241d44daa8875d2c479fc02e854ee62e5b03ce45395f026d0430a80e912ab74 sourceModuleExportNameValid f97e5907e840f15823e647df99e02cf3a216aea4cec437e34c5af384c3e57c47 +pin source_module 4241d44daa8875d2c479fc02e854ee62e5b03ce45395f026d0430a80e912ab74 sourceModuleAliasByte? 3de4eb817cdc55e776c70e14345cb58365b31dca55cc6a32d8f34ca86e895dff +pin source_module 4241d44daa8875d2c479fc02e854ee62e5b03ce45395f026d0430a80e912ab74 sourceModuleAliasTail aae14807564168269c224ba9f17a21fa19dcddde7784ea432e60089f63bee7f0 +pin source_module 4241d44daa8875d2c479fc02e854ee62e5b03ce45395f026d0430a80e912ab74 sourceModuleAliasValid e8077f24f23ab799389aecc79dac8dd0c53654d996668a282dd3c2a94be95295 +pin source_module 4241d44daa8875d2c479fc02e854ee62e5b03ce45395f026d0430a80e912ab74 sourceModuleDigest? 0b59c83ee327830d8e8e6dce33f58f2f558221fbe3f7226c643a4754f16f91a3 +pin source_module 4241d44daa8875d2c479fc02e854ee62e5b03ce45395f026d0430a80e912ab74 sourceModuleRowParse 7df610a570b86a755e5f3fd0a208bc6689248f17101d718f3825dcc70484a77e +pin source_module 4241d44daa8875d2c479fc02e854ee62e5b03ce45395f026d0430a80e912ab74 sourceModuleRows 132b631e39f9f2350de9be0af90d38b83d4e2a09cab663b4cf28f5a2a9ee96aa +pin source_module 4241d44daa8875d2c479fc02e854ee62e5b03ce45395f026d0430a80e912ab74 sourceModuleDecode d3b85232602be8aa4e099b17522581a8c203b24da0c8d651e77b0d3161a49559 +pin source_module 4241d44daa8875d2c479fc02e854ee62e5b03ce45395f026d0430a80e912ab74 sourceModuleEntriesValid f91b876b5c7927f1b776a47da60a009801d3e73d8df75cbc2d9b1f51b3bc4207 +pin source_module 4241d44daa8875d2c479fc02e854ee62e5b03ce45395f026d0430a80e912ab74 sourceModulePutManifest a543a6545513850a7ec94c3f877d4da8617d3ceab1cdd900abe2522652fd9f3c +pin source_module 4241d44daa8875d2c479fc02e854ee62e5b03ce45395f026d0430a80e912ab74 sourceModuleGetManifest 01d4ef86fdac1ffe774c15cc00c16740a525909e6a3fb551a00cab517983983b +pin source_module 4241d44daa8875d2c479fc02e854ee62e5b03ce45395f026d0430a80e912ab74 sourceModuleAliasPath b19a469ec2aca677d0853a139fb48b9150d74b0436882b3c3e5cb0a7387ace8d +pin source_module 4241d44daa8875d2c479fc02e854ee62e5b03ce45395f026d0430a80e912ab74 sourceModuleAliasBytes eefe3e19e91d41292cbf3ecb91d2ef607343652160b6f07a1a73b9acc35d56b5 +pin source_module 4241d44daa8875d2c479fc02e854ee62e5b03ce45395f026d0430a80e912ab74 sourceModuleParseAliasHash aa3d5f6814de00047cd0207b4808beba291ff61665c2488e53947988f36397b7 +pin source_module 4241d44daa8875d2c479fc02e854ee62e5b03ce45395f026d0430a80e912ab74 sourceModuleParseAlias fdf6b087c1156ec4d28b8ba479056749088fddd84b9232f11ec254d04c48fcf1 +pin source_module 4241d44daa8875d2c479fc02e854ee62e5b03ce45395f026d0430a80e912ab74 sourceModuleResolveAlias 862926c0c7e6cde7d71d046796eac3e24ae0fb8471c23183a9b12ef92fcfc360 +pin source_module 4241d44daa8875d2c479fc02e854ee62e5b03ce45395f026d0430a80e912ab74 sourceModuleResolveRef aa6ebd257de32f1a92db859dcc7ba9075a7cc09214cfde771cff16a8b25402d0 +pin source_module 4241d44daa8875d2c479fc02e854ee62e5b03ce45395f026d0430a80e912ab74 sourceModulePinAlias 83f9ed9e20c41f83b3505f6e40b94a9d8625e95f56e433882d3f8f2448eebafa +pin source_module 4241d44daa8875d2c479fc02e854ee62e5b03ce45395f026d0430a80e912ab74 sourceModuleGetRefManifest c89f0a565cd5f037a21febb56148bce73dc9f6bd0d897fe93b95a178c1c5fd8a +pin source_module 4241d44daa8875d2c479fc02e854ee62e5b03ce45395f026d0430a80e912ab74 sourceModuleLoadSelected a9dc5a24892a0465d9a30e1d4293a8d7d7a28e4b30cd7db4681b862d5b70d1fa +pin source_module 4241d44daa8875d2c479fc02e854ee62e5b03ce45395f026d0430a80e912ab74 sourceModulePublishPending d86a1d0530bb8a45f3a994ae578d4f8b807d4e48c056b9bf3898e7729ea48624 +pin source_module 4241d44daa8875d2c479fc02e854ee62e5b03ce45395f026d0430a80e912ab74 sourceModulePublishNames e2427c3f98f07cec0dd96ce89f1d82015a5293fcfa4b389c1a7d43caa49dba75 +pin source_module 4241d44daa8875d2c479fc02e854ee62e5b03ce45395f026d0430a80e912ab74 sourceModulePublish 8e21299f9c498d2ce39d4ea4ffd4c28b9814facb8d5968d1c7be678e97c1289f +pin source_module 4241d44daa8875d2c479fc02e854ee62e5b03ce45395f026d0430a80e912ab74 sourceHeaderScanLine e2b6fe9954b3d524fcd40e7d871ca44f650028e0eaab4a8659420ecce7a669b3 +pin source_module 4241d44daa8875d2c479fc02e854ee62e5b03ce45395f026d0430a80e912ab74 sourceHeaderLine bc7197671810e39abb5151e6d605ddda0d2a149341acea79f4e141e4c72c730a +pin source_module 4241d44daa8875d2c479fc02e854ee62e5b03ce45395f026d0430a80e912ab74 sourceHeaderComment? 1a3ae5d2b063fd7ecb076a90f088c0287eca96f3bf4acc7a68e1e9f7f9e067ee +pin source_module 4241d44daa8875d2c479fc02e854ee62e5b03ce45395f026d0430a80e912ab74 sourceHeaderMask 86f358d3d18821cfb75700cc80abfbe6006b7178b882ff39cf03558d899505f4 +pin source_module 4241d44daa8875d2c479fc02e854ee62e5b03ce45395f026d0430a80e912ab74 sourceHeaderError a3d4d8ec05b2eccc9e3560b3c2817e253fea0074accfbd6235bba5cf7a29939f +pin source_module 4241d44daa8875d2c479fc02e854ee62e5b03ce45395f026d0430a80e912ab74 sourceHeaderContains 6b3ea74330ba5d21a32d5c591ad048bf61d0b5a129708fdc682259d10bb0a6b6 +pin source_module 4241d44daa8875d2c479fc02e854ee62e5b03ce45395f026d0430a80e912ab74 sourceHeaderRefValid 4365d749c8d6aa7cc88688a372adb21f0689c5531f0f416aaedf44760b94d857 +pin source_module 4241d44daa8875d2c479fc02e854ee62e5b03ce45395f026d0430a80e912ab74 sourceHeaderEdge fa475d2d72f8a83c859d2370705248c2b232e6a5c549a7164bf9ffecae0540e5 +pin source_module 4241d44daa8875d2c479fc02e854ee62e5b03ce45395f026d0430a80e912ab74 sourceHeaderNext 508718a30533482617ea73403adff34aaf954d059545c881926bee1433c97076 +pin source_module 4241d44daa8875d2c479fc02e854ee62e5b03ce45395f026d0430a80e912ab74 sourceHeaderSourceShape 951ad4613377b799f7f0d1b7dc8633911cd5a89d93592c5fa9bbf4e798dcd8a6 +pin source_module 4241d44daa8875d2c479fc02e854ee62e5b03ce45395f026d0430a80e912ab74 sourceModuleUseShape 044c0a31f041c4a674f6202549023b864f9940e06409ef775e322d317b0ef2ad +pin source_module 4241d44daa8875d2c479fc02e854ee62e5b03ce45395f026d0430a80e912ab74 sourceModuleExportShape 9553e216b8a5bf4d2f24ce4e815bb6fbd9c1f50f5bf9d1faa8428d72cc3ce72e +pin source_module 4241d44daa8875d2c479fc02e854ee62e5b03ce45395f026d0430a80e912ab74 sourceHeaderScan e4e90d7ee205f3fa558b0518bed6a04d3668e3fbbdf3b2755a17045e12e7d8d7 +pin source_module 4241d44daa8875d2c479fc02e854ee62e5b03ce45395f026d0430a80e912ab74 sourceModuleHeaderStageWith de9b91a1cc879944d6e61606a0d7c747541e51d396df02f434d962d449164bad +pin source_module 4241d44daa8875d2c479fc02e854ee62e5b03ce45395f026d0430a80e912ab74 sourceModuleHeaderStage e707f762d16e1f3080d224a1897cb146db13270dc285b50e48b9bfacbbe255e2 +pin source_module 4241d44daa8875d2c479fc02e854ee62e5b03ce45395f026d0430a80e912ab74 sourceModuleStage 35ac82349bb5f2f2a06cc3d3aa39fecd2cbe93556723f7be628825368a1f364e +pin source_module 4241d44daa8875d2c479fc02e854ee62e5b03ce45395f026d0430a80e912ab74 sourceModuleQualified 82f06d7cb7b3d86af08ea6254728d8ce4000d96d618390ba65067d558be2bb7a +pin source_module 4241d44daa8875d2c479fc02e854ee62e5b03ce45395f026d0430a80e912ab74 sourceModuleExtendEntries e4d4227249e6917fd7e8c91d553e9fbc354c57f154189962f8343daf7b609ae5 +pin source_module 4241d44daa8875d2c479fc02e854ee62e5b03ce45395f026d0430a80e912ab74 sourceModuleExtendOne 5978437522db827a54382dbffce6b1a73edd31effac23d27643bd069ddcd905c +pin source_module 4241d44daa8875d2c479fc02e854ee62e5b03ce45395f026d0430a80e912ab74 sourceModuleExtendPending b6c56684b7b2ea8efcf6b4cd72cb59ff714bad3100e99e2030c95edd2a2843dc +pin source_module 4241d44daa8875d2c479fc02e854ee62e5b03ce45395f026d0430a80e912ab74 sourceModuleExtendUsesWith 3043d74527beff937f803bc7136eb3e334b2c44ed97abe838844b7b5404ada7f +pin source_module 4241d44daa8875d2c479fc02e854ee62e5b03ce45395f026d0430a80e912ab74 sourceModuleExtendUses af0f1699057a92eb1ac220f579f96dd5a8d6a6aa65bf72276af80f05342efc65 +pin source_module 4241d44daa8875d2c479fc02e854ee62e5b03ce45395f026d0430a80e912ab74 sourceModuleExportEntries 7d8f026e9c3c0dfd22457c5ba867eb35d66e65115ce194656cfca68d1412ccc3 +pin source_module 4241d44daa8875d2c479fc02e854ee62e5b03ce45395f026d0430a80e912ab74 sourceModuleExportAll 67b368b52a88fdd1356e9c37d589bdbabb5735d5e6971b525d92e71d8bbe6437 +pin source_module 4241d44daa8875d2c479fc02e854ee62e5b03ce45395f026d0430a80e912ab74 sourceModuleAddPending f9cfd11830d5e08b676b2628917cbb58537226383aedc2f017b96a0c70070dce +pin source_module 4241d44daa8875d2c479fc02e854ee62e5b03ce45395f026d0430a80e912ab74 sourceModuleAddEntries 666341a21fb44a36ba5244c8547ce799e4253ec99d8daddc53bcc8796e9bcfa9 +pin source_module 4241d44daa8875d2c479fc02e854ee62e5b03ce45395f026d0430a80e912ab74 sourceModuleSelectPending 14802675adb54f451e30a1d3099ad72ee2158eef41856a0982e7e1515eb3d70e +pin source_module 4241d44daa8875d2c479fc02e854ee62e5b03ce45395f026d0430a80e912ab74 sourceModuleSelectWith a8a9d3d8f75d0f7e7e89bff984c761593933ea6ea81950d971d4fcdcdf63d90f +pin source_module 4241d44daa8875d2c479fc02e854ee62e5b03ce45395f026d0430a80e912ab74 sourceModuleSelect df9ad3118c533f447f049a141579df49da47c5dcf4099c6bdeb2ab17325e8d40 +pin source_module 4241d44daa8875d2c479fc02e854ee62e5b03ce45395f026d0430a80e912ab74 sourceModuleBuildResolvedWith ab9f0a1d3b7590a42b39e01c54dea35e08ed0890a591d81279c65fbb434db154 +pin source_module 4241d44daa8875d2c479fc02e854ee62e5b03ce45395f026d0430a80e912ab74 sourceModuleBuildStagedWith 27fc2cd0df365403763b2a413c2a18065832586da8517afdade5eca5e1ff3b30 +pin source_module 4241d44daa8875d2c479fc02e854ee62e5b03ce45395f026d0430a80e912ab74 sourceModuleBuildWith 35bd83c4f4392bed514a34629157f2f04fc5b76fa87612240586b13471e97e66 +pin source_module 4241d44daa8875d2c479fc02e854ee62e5b03ce45395f026d0430a80e912ab74 sourceModuleBuild 124f4be25eb799d46f7d93abc6375640e607eda94233b600e303a7ab0d52e95a +pin source_module 4241d44daa8875d2c479fc02e854ee62e5b03ce45395f026d0430a80e912ab74 sourceModuleBuildStaged 728efd0fed6e6906f2bfb1eb42811ac8b5a415b239a00113b5a9f913099651ca +pin source_lock eb0f1347b5ff7773d074212c4f01276398a8dcd9e01fbd61643a5ce0cdb7ec6e sourceLockHeader 3c3714f6df9346378fa0b99e7478b862dc8c2b3ad97c5f5726988ac8339493fb +pin source_lock eb0f1347b5ff7773d074212c4f01276398a8dcd9e01fbd61643a5ce0cdb7ec6e sourceLockPath 3758c80b1bc11689ea2b8eb9418eccd80ef59cd86b9208282d033a487607bec4 +pin source_lock eb0f1347b5ff7773d074212c4f01276398a8dcd9e01fbd61643a5ce0cdb7ec6e sourceLockRow e86b8b2dc49723447fb4d22024b2a29b04bc4261b4b88ea878d957faa0289b56 +pin source_lock eb0f1347b5ff7773d074212c4f01276398a8dcd9e01fbd61643a5ce0cdb7ec6e sourceLockRows 4138adab05f325b243ade3838df83037a0c4ce1c675f7b1cc4514f456f476f84 +pin source_lock eb0f1347b5ff7773d074212c4f01276398a8dcd9e01fbd61643a5ce0cdb7ec6e sourceLockGroups 5bffe166498aec38d0a8751d818c0b9a3dc01f5eb8c744fc8137544a3c4ea3e3 +pin source_lock eb0f1347b5ff7773d074212c4f01276398a8dcd9e01fbd61643a5ce0cdb7ec6e sourceLockEncode 25d5f0b1ed1069e9fb4fbf88866474d590456d620b6234642bfabc80cb0bcf67 +pin source_lock eb0f1347b5ff7773d074212c4f01276398a8dcd9e01fbd61643a5ce0cdb7ec6e sourceLockParseRow f1bfbd1696197ec6f6af58bfe43d7d15dff50e4652988a8e63edc30f720d182e +pin source_lock eb0f1347b5ff7773d074212c4f01276398a8dcd9e01fbd61643a5ce0cdb7ec6e sourceLockParseRows 945ee92e420c0e8934d41fed2e65f51cffdeb6f1fa8fceba4f432c89ff4025c8 +pin source_lock eb0f1347b5ff7773d074212c4f01276398a8dcd9e01fbd61643a5ce0cdb7ec6e sourceLockDecode 7f6ca476f92ed74e4c87a2f3bc3f32eb9692ec9a9ae3527b37a361338e820cd9 +pin source_lock eb0f1347b5ff7773d074212c4f01276398a8dcd9e01fbd61643a5ce0cdb7ec6e sourceLockDistinct 50459be98404ff23ea075bd73b97a90b0a6e3812c35a4bdac4892318deeefd81 +pin source_lock eb0f1347b5ff7773d074212c4f01276398a8dcd9e01fbd61643a5ce0cdb7ec6e sourceLockSelectRows d6845e4fe52c5db24e843ce31c31baaacbbd34f1a50fe970e17ebba165c6fcb7 +pin source_lock eb0f1347b5ff7773d074212c4f01276398a8dcd9e01fbd61643a5ce0cdb7ec6e sourceLockRowsFor cfb79d96bd8b1e102c22b9b3ec31efeaec6d85417546c84ba4434ea3d335a332 +pin source_lock eb0f1347b5ff7773d074212c4f01276398a8dcd9e01fbd61643a5ce0cdb7ec6e sourceLockCheckEntries cddb28578724c4af416ac4bde2e51aba19083d1d915d283b4d017bd551a91901 +pin source_lock eb0f1347b5ff7773d074212c4f01276398a8dcd9e01fbd61643a5ce0cdb7ec6e sourceLockCheckTrees d6503e78de654347057a4283cbac1a20660d58dcd195973027f603571e269a78 +pin source_lock eb0f1347b5ff7773d074212c4f01276398a8dcd9e01fbd61643a5ce0cdb7ec6e sourceLockVerifyRefs d2d955ca87bc06be5c0480921d839eb6ef8baa40f84b60c5f4f27c167081b8dd +pin source_lock eb0f1347b5ff7773d074212c4f01276398a8dcd9e01fbd61643a5ce0cdb7ec6e sourceLockVerify 49878d5ebebeaae464809c7bf0f0b229b8e0ce04e08ec0b9bd6f3b6212ea4d67 +pin source_lock eb0f1347b5ff7773d074212c4f01276398a8dcd9e01fbd61643a5ce0cdb7ec6e sourceLockCollect ff09380ffbe4a0766e65d9b5df80acf5e9da3c1af18ea0cda169c6f40f6c82ec +pin source_lock eb0f1347b5ff7773d074212c4f01276398a8dcd9e01fbd61643a5ce0cdb7ec6e sourceLockUseRefs bfe4b79531e7e4bd11a9eecbdf411caf180788070b8a4a1f12998c77da29c4aa +pin source_lock eb0f1347b5ff7773d074212c4f01276398a8dcd9e01fbd61643a5ce0cdb7ec6e sourceLockExportRefs 0aefa7ebcc6555fb1978118be6bdb593bd3dceda2ab9ac7fbaae8f8acf786191 +pin source_lock eb0f1347b5ff7773d074212c4f01276398a8dcd9e01fbd61643a5ce0cdb7ec6e sourceLockSourceRefs b4a78253305414629d9ab5b06fba4fe248f507acd6ababc1a3e3626757cf6f71 +pin source_lock eb0f1347b5ff7773d074212c4f01276398a8dcd9e01fbd61643a5ce0cdb7ec6e sourceLockUpdate 10920701156a1410ddeee49204301a33b203566afcc3dd7ca7879084a863887b +pin source_lock eb0f1347b5ff7773d074212c4f01276398a8dcd9e01fbd61643a5ce0cdb7ec6e sourceLockRewriteUses 4ec3f266233239245acb3479216ad6fe1c4a453be9a425cd531221a99f2de457 +pin source_lock eb0f1347b5ff7773d074212c4f01276398a8dcd9e01fbd61643a5ce0cdb7ec6e sourceLockRewriteExports 418139a80c01c59954423f6c24dc4e23fccad9e50172312d38e174a4b3fc2f3c +pin source_lock eb0f1347b5ff7773d074212c4f01276398a8dcd9e01fbd61643a5ce0cdb7ec6e sourceLockRewriteSource 6b63a759c98c72a50252478b77f645dd7bba7916ba1e724e266281489fd6f946 +pin source_lock eb0f1347b5ff7773d074212c4f01276398a8dcd9e01fbd61643a5ce0cdb7ec6e sourceLockRewriteStaged 8dec8746da9f2f79b2a2e5fd7f649e083495b9ae767d0899ccb325f88657b3db +pin source_lock eb0f1347b5ff7773d074212c4f01276398a8dcd9e01fbd61643a5ce0cdb7ec6e sourceLockGroupRefs 1263838e1498db005b1b18d142b6d5e461adcb1ee6adbb632dc3c58dff11c976 +pin source_lock eb0f1347b5ff7773d074212c4f01276398a8dcd9e01fbd61643a5ce0cdb7ec6e sourceLockUniqueRefs 2f17c23d49529d804b8a23123f2d686f6b5d3dbd031f93c939c58e28d2f4bdd3 +pin source_lock eb0f1347b5ff7773d074212c4f01276398a8dcd9e01fbd61643a5ce0cdb7ec6e sourceLockBuild 47e83ad4fe3daa8bf3e9b56f721575a70007041b463636becefe6eb7bf30d6d5 +pin source_build 5a1c79afb0609925c1748a45f720119d35bf6ff44ea2cf1b074971f6a222d14f sourceBuildSourcePath 7c3b8e132ff64d64b3257af737c513d021735e65490cf4167ec40ba60342ea34 +pin source_build 5a1c79afb0609925c1748a45f720119d35bf6ff44ea2cf1b074971f6a222d14f sourceBuildContains 6b3ea74330ba5d21a32d5c591ad048bf61d0b5a129708fdc682259d10bb0a6b6 +pin source_build 5a1c79afb0609925c1748a45f720119d35bf6ff44ea2cf1b074971f6a222d14f sourceBuildStage 15f16e238d3739b2924dd1e63e5d14542fb9afa309305866dfb63d24d73ab8f7 +pin source_build 5a1c79afb0609925c1748a45f720119d35bf6ff44ea2cf1b074971f6a222d14f sourceBuildGetManifest ec54d33149037c1ee5b828136d5c8456a0a754b198ad65a83f1bebfd25aad5ba +pin source_build 5a1c79afb0609925c1748a45f720119d35bf6ff44ea2cf1b074971f6a222d14f sourceBuildDone 69dbd1fa6b605b097f901e5a7a1f0d635f1f2386bca540f3633e89172791c0af +pin source_build 5a1c79afb0609925c1748a45f720119d35bf6ff44ea2cf1b074971f6a222d14f sourceBuildResolveRefs 51d53749e0c966e579ee0e22797ce656d2893bb72e1204b215afb371c2f16bfb +pin source_build 5a1c79afb0609925c1748a45f720119d35bf6ff44ea2cf1b074971f6a222d14f sourceBuildGroupsFromLocals 8bb2ae51fd5488b48ef7479cf67854fa0487f9248a165e7c48c0d089922be5fc +pin source_build 5a1c79afb0609925c1748a45f720119d35bf6ff44ea2cf1b074971f6a222d14f sourceBuildGroupManifest 57e2ffb3c76d71634cb3d58eec63086ac16799efe09e0eb3feb1eddb9ae1672e +pin source_build 5a1c79afb0609925c1748a45f720119d35bf6ff44ea2cf1b074971f6a222d14f sourceBuildLocalRows 77c7b92c45ce1d6251d7ebad4aa4a1f9e63dc3e9485ca8767392051061d33002 +pin source_build 5a1c79afb0609925c1748a45f720119d35bf6ff44ea2cf1b074971f6a222d14f sourceBuildPinRows 1db3ed55bae74a35e81c5fe49c9eb4484b19368ab2a10514ab5600b873bc1ddf +pin source_build 5a1c79afb0609925c1748a45f720119d35bf6ff44ea2cf1b074971f6a222d14f sourceBuildAllPinRows 60edda295b215a557fd1df19bdc6cdec7ab19247e1c64c83f74342c34e39a66d +pin source_build 5a1c79afb0609925c1748a45f720119d35bf6ff44ea2cf1b074971f6a222d14f sourceBuildReceiptBytes 87ec2cc88ab699e8612364d28a4e18044dbbe8bdacc8ca76b1bc8da65b702265 +pin source_build 5a1c79afb0609925c1748a45f720119d35bf6ff44ea2cf1b074971f6a222d14f sourceBuildPutReceipt 85b80d7ab4a2dd9af37a454a38281bfe0d5c383f327869c8a881c2affbafd685 +pin source_build 5a1c79afb0609925c1748a45f720119d35bf6ff44ea2cf1b074971f6a222d14f sourceBuildCacheKeyBytes 1649175a9bfcfa9074fc33b530a903652a113ab02f56e8e5def47b6247c87c1d +pin source_build 5a1c79afb0609925c1748a45f720119d35bf6ff44ea2cf1b074971f6a222d14f sourceBuildCachePath 28de4286fd15ea12f0d4cbd166ba820285a86d1e87437f5bb786be2670443cb0 +pin source_build 5a1c79afb0609925c1748a45f720119d35bf6ff44ea2cf1b074971f6a222d14f sourceBuildCacheBytes 6cd52a8119d36859d4ce7c3968f07acedbd4dcb2b9e7f442b14a1c40924af7aa +pin source_build 5a1c79afb0609925c1748a45f720119d35bf6ff44ea2cf1b074971f6a222d14f sourceBuildCacheDecode 873f3727911f46e849c9a9b4e9d40ce08a2490f9f19532856593f277e5efe0d5 +pin source_build 5a1c79afb0609925c1748a45f720119d35bf6ff44ea2cf1b074971f6a222d14f sourceBuildCachePublish d099ca775c62b4700477591a10f353d7d85db3829096a94e3184e241bd16990d +pin source_build 5a1c79afb0609925c1748a45f720119d35bf6ff44ea2cf1b074971f6a222d14f sourceBuildVerifyGroups 78919237f25a30807b662d354331cacf2392098a1f9e95ce2f92c34021543765 +pin source_build 5a1c79afb0609925c1748a45f720119d35bf6ff44ea2cf1b074971f6a222d14f sourceBuildCacheVerifyGroups b57a60a21f3173f3220bc7c25c018dd13e11081d8742259be509b4e19b7ec782 +pin source_build 5a1c79afb0609925c1748a45f720119d35bf6ff44ea2cf1b074971f6a222d14f sourceBuildCacheUse d102d37cc02504675f9b83f7a539e8e17e94564be36e8144232a91a687f8c56e +pin source_build 5a1c79afb0609925c1748a45f720119d35bf6ff44ea2cf1b074971f6a222d14f sourceBuildCompile 9b86dbb47cbf2b95ef46cf0c4871dfafc9ad03f734f1ff266536f4b842adcd09 +pin source_build 5a1c79afb0609925c1748a45f720119d35bf6ff44ea2cf1b074971f6a222d14f sourceBuildCached 0aa88bb8efe3fcd1342246a6be8f717c8fec11b4536db49f07db2183ef8a5191 +pin source_build 5a1c79afb0609925c1748a45f720119d35bf6ff44ea2cf1b074971f6a222d14f sourceBuildFinish 0953f34d5fb746f321d1412e8f38e2ee9fb037748a2a01e0d641c460e65bb689 +pin source_build 5a1c79afb0609925c1748a45f720119d35bf6ff44ea2cf1b074971f6a222d14f sourceBuildReadTriPath 15aafd0e79fef6b63f98b08c66a7d24667d0ddbe285f32e7fe6879d1bcaf07a7 +pin source_build 5a1c79afb0609925c1748a45f720119d35bf6ff44ea2cf1b074971f6a222d14f sourceBuildReadTri 8e5ac6c6028142d8042704c069e3ff360422b375f5843b60e0c78ea2888024a2 +pin source_build 5a1c79afb0609925c1748a45f720119d35bf6ff44ea2cf1b074971f6a222d14f sourceBuildCompileTriWith 6e04a2bbc7a97edb74b1986beea78efe23967639e95612db4b7e9f9f7e5b8dde +pin source_build 5a1c79afb0609925c1748a45f720119d35bf6ff44ea2cf1b074971f6a222d14f sourceBuildCompileTri a47435f075a42d79cbd840cf3b355c7a3b9540f41f3b92fff39facbfc44f9ffa +pin source_build 5a1c79afb0609925c1748a45f720119d35bf6ff44ea2cf1b074971f6a222d14f sourceBuildStableTriProfile e2d1624808dbf487d3818fa0daabcc5e6371e713936045a5f30e3f00582fac28 +pin source_build 5a1c79afb0609925c1748a45f720119d35bf6ff44ea2cf1b074971f6a222d14f sourceBuildTriProfile 49802768ca04c964cde1888dbffb25a77dc9ef95422e7303ef375ac38003b74b +pin source_build 5a1c79afb0609925c1748a45f720119d35bf6ff44ea2cf1b074971f6a222d14f sourceBuildDependencies c7c11ac297d87d5e581a0f3bfa467605a074b0b6aace4958e22a21649097f182 +pin source_build 5a1c79afb0609925c1748a45f720119d35bf6ff44ea2cf1b074971f6a222d14f sourceBuildWalk d1bad40a26b5bc02f8c79f913214c6f1d40175d617ec8e416bb59a9c078a2df4 +pin source_build 5a1c79afb0609925c1748a45f720119d35bf6ff44ea2cf1b074971f6a222d14f sourceBuildGraphUnitProfile c0cbe47cdc6a85c948f10c161990c0d8cd4df155ea3b105a8dc0533a07c58c96 +pin source_build 5a1c79afb0609925c1748a45f720119d35bf6ff44ea2cf1b074971f6a222d14f sourceBuildGraphProfile 5822e5a19adf1c714270f8db56638fed9c3318e6674102c69d62faf6a5b64f0b +pin source_build 5a1c79afb0609925c1748a45f720119d35bf6ff44ea2cf1b074971f6a222d14f sourceBuildGraph da85f1448bb0f644a6e471ba262cead255718def5621f065c5483cb193bcad5e +pin source_build 5a1c79afb0609925c1748a45f720119d35bf6ff44ea2cf1b074971f6a222d14f sourceBuildGraphBundle ebcf92ac4fcc32688a02818a3d57fed0e380f3f324350fc85593ac8d8d351f63 +pin source_build 5a1c79afb0609925c1748a45f720119d35bf6ff44ea2cf1b074971f6a222d14f sourceBuildGraphStable 7feafa413be4da75dcd0218795679065bf5b6894f022e2eb044c0a0ba827eb86 +pin source_unit 1e395371289a7c43d4237a30b3a6c186a38039f0b7c9a87f27e64f43f4da90a9 sourceCompileDefinition 2419e4f91a6b79fcde05a6b479bf26c270d331c16fccd0104cf1bba38cdbe35b +pin source_unit 1e395371289a7c43d4237a30b3a6c186a38039f0b7c9a87f27e64f43f4da90a9 sourceCompileOrderedUsing 1c33484341a092e5a11946c39982989b9b4a9024994b07f56df31796aa6d711a +pin source_unit 1e395371289a7c43d4237a30b3a6c186a38039f0b7c9a87f27e64f43f4da90a9 sourceCompileOrderedWith 6e1c008cb41b8e92bde306f177e830b795cd474b04b8601be8c5b9756255739c +pin source_unit 1e395371289a7c43d4237a30b3a6c186a38039f0b7c9a87f27e64f43f4da90a9 sourceCompileOrdered fecbbfc9a00cfffed5cdc944273ff4f039ce1dee30b42ace00d0154d8043dfca +pin source_unit 1e395371289a7c43d4237a30b3a6c186a38039f0b7c9a87f27e64f43f4da90a9 sourceSelectProgram 029245427e9110079106c46ba748f27497befd98c8cca789c1cac1f4c0c8c176 +pin source_unit 1e395371289a7c43d4237a30b3a6c186a38039f0b7c9a87f27e64f43f4da90a9 compileGateProgramOutput 8866b60973261b020a2168dcb21ec36c5cf33d56cdc4ae34c69670484f292d5d +pin source_unit 1e395371289a7c43d4237a30b3a6c186a38039f0b7c9a87f27e64f43f4da90a9 compileSource c68654175310382f101df5f71eb91918ad7706d23f767f2b82b80fbf6da91b4c +pin source_unit 1e395371289a7c43d4237a30b3a6c186a38039f0b7c9a87f27e64f43f4da90a9 sourceModuleCheckShadows 5e20d0bc192e9dbbf8f52611199ae83e9468264ddd19bd8e48ec6135aea762da +pin source_unit 1e395371289a7c43d4237a30b3a6c186a38039f0b7c9a87f27e64f43f4da90a9 compileModuleDefinitionsUsing 2049c1bb989c1363e9e1b3d9b187a269b583c62d7c91f7d84eeb844345b6b00e +pin source_unit 1e395371289a7c43d4237a30b3a6c186a38039f0b7c9a87f27e64f43f4da90a9 compileModuleDefinitionsWith f707d378941e819b23bb6c89f4836694b7b8adab463886a658c10b3ca11b6cd0 +pin source_unit 1e395371289a7c43d4237a30b3a6c186a38039f0b7c9a87f27e64f43f4da90a9 sourceCompileStableModuleProgram eb90fba935375a1a2ee20867ed83fbf9919c2f81d2f40c11a4f3b247ffa250a0 +pin source_unit 1e395371289a7c43d4237a30b3a6c186a38039f0b7c9a87f27e64f43f4da90a9 compileModuleDefinitions 2e876c8a00018bd13f9036e51289d789e66cc9bc642c9e7a5fdd008f06645f7b +pin source_unit 1e395371289a7c43d4237a30b3a6c186a38039f0b7c9a87f27e64f43f4da90a9 compileStableModuleDefinitions 9823ea3f695a1910ad8ba3917bb0986bcad9f8452c65ce0a43b2a5871d36000d +pin source_unit 1e395371289a7c43d4237a30b3a6c186a38039f0b7c9a87f27e64f43f4da90a9 compileGateProgram a3210cdca9869ca2b9d267b18f94c4f78519734ec2f7c6198c2816c7aea4d82e +pin source_resolve ed934dd01014852aa2e3734444538d0c0807da41bc661cd3965eca6ed16ceffe sourceFindBinder 16d2b5adac452f490f7d67c9a60871ce419747e65e2499128bdbd1f769fc5bd5 +pin source_resolve ed934dd01014852aa2e3734444538d0c0807da41bc661cd3965eca6ed16ceffe sourceFindExternal cbca0a8f60da95678fd13835871910a93b6cfe5efa53eed964d223a5f7e6607f +pin source_resolve ed934dd01014852aa2e3734444538d0c0807da41bc661cd3965eca6ed16ceffe sourceResolveNameWithLookup f036dddc3bd3aaf48d3d9e08ddd7685bcc90465d2b886fccdfed6e9e1d7ab316 +pin source_resolve ed934dd01014852aa2e3734444538d0c0807da41bc661cd3965eca6ed16ceffe sourceResolveApply 1caa7453ed94a7d8f8d7b62ae1c2fb85c80bed0826285866029efbf889799fb1 +pin source_resolve ed934dd01014852aa2e3734444538d0c0807da41bc661cd3965eca6ed16ceffe sourceResolvePipe 8b9a2d54d1dadbe5be89c00648c61b48012aa9fc60fb21e6077d3a79ec05b42b +pin source_resolve ed934dd01014852aa2e3734444538d0c0807da41bc661cd3965eca6ed16ceffe sourceResolveLambda 7f78e8c73bd6521f30a4a8133396bf708d7c7da7c693e0b0faf14348b44d1e91 +pin source_resolve ed934dd01014852aa2e3734444538d0c0807da41bc661cd3965eca6ed16ceffe sourceResolveGroup a9df39db96d81db0a444617bfb4c96ca1f8b05767fd52a207aeb94af2139dbee +pin source_resolve ed934dd01014852aa2e3734444538d0c0807da41bc661cd3965eca6ed16ceffe sourceResolveDo 75bb3992b8741039e782228b8a469005a60329cac52b53c399b8b695f051ead0 +pin source_resolve ed934dd01014852aa2e3734444538d0c0807da41bc661cd3965eca6ed16ceffe sourceResolveLocal fa2c54492fc1714eac73f279a774fb1fc23906d69249367585b9dfab49942732 +pin source_resolve ed934dd01014852aa2e3734444538d0c0807da41bc661cd3965eca6ed16ceffe sourceResolveElements f97597a53de0ffec5a1bf4667c442c7f78ed1cd323fd95e338fb3a8597db4a9a +pin source_resolve ed934dd01014852aa2e3734444538d0c0807da41bc661cd3965eca6ed16ceffe sourceResolveList e4fbbe44d1618c6bfb42da16ca0ba88f85e56f69e50f7861e74b4e9f734eb839 +pin source_resolve ed934dd01014852aa2e3734444538d0c0807da41bc661cd3965eca6ed16ceffe sourceResolvePatternNode 5e7fbe1cc96788a12687ef518a3ffa6844365fc1ee4be4670ac013cf92556fe6 +pin source_resolve ed934dd01014852aa2e3734444538d0c0807da41bc661cd3965eca6ed16ceffe sourceResolvePatternChild 4636c1c61a8770cafce1eb84b3eadf13cd4954cd89faf27daa7098b394082135 +pin source_resolve ed934dd01014852aa2e3734444538d0c0807da41bc661cd3965eca6ed16ceffe sourceResolvePatternLookup e1791322206fc3d69693e6af9bf6e973fd07048fea6b15da1c5b490ab40e7644 +pin source_resolve ed934dd01014852aa2e3734444538d0c0807da41bc661cd3965eca6ed16ceffe sourceResolveEquationLookup 468a8669188c36d80484b8c8ac11e3cc7c59de389ff4bb00b4d17e42afd3441a +pin source_resolve ed934dd01014852aa2e3734444538d0c0807da41bc661cd3965eca6ed16ceffe sourceResolveEquationsWithLookup 8877f3432b0fbc1b2eb22417bae5b9308a17bfecdee54ccefb2e52713733072b +pin source_resolve ed934dd01014852aa2e3734444538d0c0807da41bc661cd3965eca6ed16ceffe sourceResolveOrdinaryWithLookup 3112ad948fc68a696f95abf5fd75aa6bf06b6330dc4125671248bae4bc495cd8 +pin source_resolve ed934dd01014852aa2e3734444538d0c0807da41bc661cd3965eca6ed16ceffe sourceResolveCase c41248bcf41a4c8922a97df4003aa3ec4b0d1c266fd0ef46bc42658c1b0dd385 +pin source_resolve ed934dd01014852aa2e3734444538d0c0807da41bc661cd3965eca6ed16ceffe sourceResolveRec e8d80671a673ceed4e6af4277e7c21ce9c6aabf59e9e39c1410d65b23095a0ba +pin source_resolve ed934dd01014852aa2e3734444538d0c0807da41bc661cd3965eca6ed16ceffe sourceResolveStableWithLookup 1a3e6c72ce291ea2100a1a8dd35fa91661191e4cdf0560e2af85f0ba809b6b47 +pin source_resolve ed934dd01014852aa2e3734444538d0c0807da41bc661cd3965eca6ed16ceffe resolveStableGateAstWithLookup 1423ad35df275fb487bdfc76553c080fe10fdb661a8fa1aad812d10894cdb8d5 +pin source_resolve ed934dd01014852aa2e3734444538d0c0807da41bc661cd3965eca6ed16ceffe sourceResolveName 85b9b73aba66c084cf62055d96e019bb79330027b9bd642241ce36daf91c0f44 +pin source_resolve ed934dd01014852aa2e3734444538d0c0807da41bc661cd3965eca6ed16ceffe sourceResolvePattern ba0115eccae369a3b66ddf66836878d4c7df7f7895c8e6c6091e45ed18375b5a +pin source_resolve ed934dd01014852aa2e3734444538d0c0807da41bc661cd3965eca6ed16ceffe sourceResolveEquation 0023162f47033079124407e44f201a5c56fe0317a8e35d59f435a85768144ec2 +pin source_resolve ed934dd01014852aa2e3734444538d0c0807da41bc661cd3965eca6ed16ceffe sourceResolveEquationsWith 2669f6a770d3e73d46419bb7f2bc6333bf7e8fb4356e66b58a4e111710dcf563 +pin source_resolve ed934dd01014852aa2e3734444538d0c0807da41bc661cd3965eca6ed16ceffe sourceResolveEquations 1f469dfa983101f1507147b4f3fda04d46f2fb3cab0743f7efce4df031a8db05 +pin source_resolve ed934dd01014852aa2e3734444538d0c0807da41bc661cd3965eca6ed16ceffe sourceResolveOrdinary b93dae0ce7ed05bec58e51f2b3c0334ef4284c0af084b9a61f9d8bf97281c0e8 +pin source_resolve ed934dd01014852aa2e3734444538d0c0807da41bc661cd3965eca6ed16ceffe sourceResolve 5eefd8d756aa966f902e7c07301045ace247135dbbb6b442d31990b09384f60a +pin source_resolve ed934dd01014852aa2e3734444538d0c0807da41bc661cd3965eca6ed16ceffe resolveGateAst 2af1f88c9eb28b30395edcadba96cbb7e3d12f5d5649eb27e2d48f52c2fd8366 +pin source_resolve ed934dd01014852aa2e3734444538d0c0807da41bc661cd3965eca6ed16ceffe resolveGateSource 138aad260f05ee6a126b36912b88865ed270573b3fd936a4c6396a5340bda079 +pin source_resolve ed934dd01014852aa2e3734444538d0c0807da41bc661cd3965eca6ed16ceffe sourceResolveStable 676e75a8c97a32e544f55fc797a60b0838b7cfccca3d5427ebbdb501fdef0273 +pin source_resolve ed934dd01014852aa2e3734444538d0c0807da41bc661cd3965eca6ed16ceffe resolveStableGateAst 12e2a91aa4293614ac1b3a2d4a11db8d4f4049e5cd269f4fa79d152c44accb4c diff --git a/test/fixtures/support-receipts/source_staged_conditional_experiment.manifest b/test/fixtures/support-receipts/source_staged_conditional_experiment.manifest @@ -16,4 +16,4 @@ export stagedIfCompileCore arboricx.indexed-tree.v1 14dd36f6b14ad7e956bd28d268c6 export stagedIfEnvironment_ arboricx.indexed-tree.v1 c329b13543ee06e1957760be25248796878ef0361d2a226bd9ede652441f6e75 arboricx.abi.tree.v1 export stagedIfEnvironment arboricx.indexed-tree.v1 faf9c6d774ed996242fa59b8476f8c4c53eb61f23b0f062f8245850632c261d4 arboricx.abi.tree.v1 export stagedIfOrdered_ arboricx.indexed-tree.v1 4a33b3e71f16dc91bfa270e91b89420050138e6aec74f523b8027faeddd2c274 arboricx.abi.tree.v1 -export stagedIfCompileDefinitions arboricx.indexed-tree.v1 6731074bbdeb73587434840c1adf1ab395627f45e094871bcc0f6607c2231092 arboricx.abi.tree.v1 +export stagedIfCompileDefinitions arboricx.indexed-tree.v1 6826c7706e8aa55e73105ea4c865aeec26f1660c5274a40ab1f47a669001873a arboricx.abi.tree.v1 diff --git a/test/fixtures/support-receipts/source_staged_conditional_experiment.receipt b/test/fixtures/support-receipts/source_staged_conditional_experiment.receipt @@ -1,20 +1,20 @@ arboricx.build-receipt.v1 source 989783bbdb71be5447803503f60925672ff29fad15804da31c8f7f83b8c402ad -compiler 8d05a27a702067eb242de35e1d92ff1bc0255eed9d9baf1640f1255b2ea43475 +compiler 7feafa413be4da75dcd0218795679065bf5b6894f022e2eb044c0a0ba827eb86 options 307cf2eafa67562f5c3a6d4555c1fc1ccb9b91f43d0b74d564f5aa0bb73ffd0f -output f09eb17db370560404991726c7961b9d05992077beb54051bb0dac2e9f54c57c -local prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 9c6504f5a10a82b2718c956a5ee5a52844e44a045796ef027a6fa86def7593c5 -local parser 14282088469cc420dd014700da06998f6bb8dcf990fc885a464c0a1e1858e20d c1fbf55dfd94f137ff11675c9aa7bf817414b94d94f4eff7cfe03676f2de4630 -local source_core 83e1dc8052f806b19ebc737998bbdfff23211b23a6bbe2ae6adbede8ad1652a2 1d87e9fa739e2127421a11a5f2a96e49f9a202a796ba3667317c67f65182cdeb -local source_ast c6579f89e47a16694f1c08fe9825b183d8bc272e23cd744eb954c106b689c32f f12b506e00a590c336fd4c1f4517485b40d2a331c7fda0036d82a5ad38727a27 -local source_pattern d14232cb623da7a59883ae5e0c773fa71037a887a7dcf3352e48cc8dff421123 a34972fddfb26db87099ed479a0852a49b569411f44a1c436bf16a7e3acbd129 -local source_compile 9bd7f27b58f640544318153c8bda76079524d06b2657600043625f613c0620d0 f622468f9de2a8e7111912cf46f6f1f606929a50bb5fae293fa62aea21e1f9b7 -local source_resolve 9c0daa3e05f1f7dfad613037e5dea3828aa14ddd509624c69c339d8ff089977a 949c1c3a35bc6d33fade31a73add20aa3396ec81c3c6763f0caba6a618fbd331 -local source_program 384012eefdf503a49ed1c660a6e07b5e95df73585121f83a8eeae98089f1a1ad 55e6f70ddaf3211ec2763d7e30302b3b62368c672b43868838af572cc5c32b3a -local source_order 84c021d4a13df85c9d6cdbdb78769f069fa83fba76657c40ccb5a4bed1e91de2 13fd0622ea02247232483fc597cb82d207cc21243bdb0f07c72613efdb94e6b8 -local source_unit 908400c8137869ba4313fa875fc2bf87db8a736debddd5bf2a40d6147295158f 4e0c422e94ca2d689741a4b7859102a6744c5f13a1c9d197b8e399a7e58a3a38 -local source_staging_experiment db8e78afce2dadd987a2e7840b1107da75d3cc9c4ac3e5cd217cf0bc2ff00790 796c51b29737f2dcaddbd54738014d1b3e97aba4630696c26290a9eac8c119c9 -local source_staged_list_experiment c1c062475b966bd6adae0148db1751959400f59ba73c6f84ca0e561599639e98 4d64ef9c3051705e8901024aba4117db00b616eb41e7cb1196daceaa67b7f3ba +output 43113de593d0e70f3f94e8dafff0600d6f60b5a011d80cdc6e84166fed29b682 +local prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 fb089d73a8923bb5211af6a7f93025c268745660ace4a6c89a38bd6e89f218f8 +local parser 14282088469cc420dd014700da06998f6bb8dcf990fc885a464c0a1e1858e20d 271e1e5144ed8b4eecc317cf9f8a952f07f83fb62a2966ce5e0437011c508763 +local source_core 83e1dc8052f806b19ebc737998bbdfff23211b23a6bbe2ae6adbede8ad1652a2 d0396c92042ff414851f64a8f42edc4ce54d117c9a6a63f6a0d0a37c25214b69 +local source_ast c6579f89e47a16694f1c08fe9825b183d8bc272e23cd744eb954c106b689c32f 4f2f2d6b88cb8b7dd0db5ca27f87d3c31b35912d62c9b99285b997449eb6aeb4 +local source_pattern d14232cb623da7a59883ae5e0c773fa71037a887a7dcf3352e48cc8dff421123 521ec559ce57747ad0349c6fbfa2d3ce3c29c42c9bb1d33177eb38cdcd4642b2 +local source_compile fb41d71410ad8fb9c0da35a5ab0a6b782b9814bd7629737b710b7404648939cd 38ea36490ad3d1a7e91d3c8979c438e663535575d66f7c98cda86e7c7f8fe416 +local source_resolve ed934dd01014852aa2e3734444538d0c0807da41bc661cd3965eca6ed16ceffe 048bb0fbeeb4817c58c790cc7bcb1a318d66a21939933e140aec025152ddf624 +local source_program 447aa7d321344146772a2693e83b2ab87a0058e281c42780e1bb5b24e0ea995d b2b91bef58302ec2cebdee8bdf3374976b2c588a67a72e2e4a1cd478c495af8f +local source_order 1d55b1616e892be989d2c987099c84bef61686fc67f6a3eb5b1a373626b0ca5e f6e404200e96dee8b0d8ef190721900e199ca44f78f88b199e8b34f370ce150d +local source_unit 1e395371289a7c43d4237a30b3a6c186a38039f0b7c9a87f27e64f43f4da90a9 91f3faa6fafd792dffefedd83caa74b5b3b0af1618a8648aa0e75eacf650db45 +local source_staging_experiment db8e78afce2dadd987a2e7840b1107da75d3cc9c4ac3e5cd217cf0bc2ff00790 0d2b58ab1f75f21368a5d5cabdfb3466e5d521bac9b18aa6c6ac07626ab9ebbc +local source_staged_list_experiment c1c062475b966bd6adae0148db1751959400f59ba73c6f84ca0e561599639e98 84036fb35637c1e1e7eb7c3c1b3481c9af9ad6d59fe62ba2fa8eec1d2f08fe0c pin prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 false 6f93378feaa8bf5ab7cefc071175a654c871bfd53f165d7d96795fb2b38483f1 pin prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 _ 6f93378feaa8bf5ab7cefc071175a654c871bfd53f165d7d96795fb2b38483f1 pin prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 true 2177bae1081d12a6f888b5efc89a27616aaf6e5df019f156a0f3d4c2d14bb270 @@ -368,170 +368,170 @@ pin source_pattern d14232cb623da7a59883ae5e0c773fa71037a887a7dcf3352e48cc8dff421 pin source_pattern d14232cb623da7a59883ae5e0c773fa71037a887a7dcf3352e48cc8dff421123 sourceLowerEquationsWith 742c9ab010e19f139fbf1840a51a961767f9853870cc361bbfdd2aed1e124ce7 pin source_pattern d14232cb623da7a59883ae5e0c773fa71037a887a7dcf3352e48cc8dff421123 sourceLowerEquations 58349a18d9d9662a4389d2817b965694e316780aad191d144dac2401942031fa pin source_pattern d14232cb623da7a59883ae5e0c773fa71037a887a7dcf3352e48cc8dff421123 sourceLowerStableEquations b7225e36bc0cee25612ec0be6fe8edc4ff07774e35c76f8b7a229e3fa750685f -pin source_compile 9bd7f27b58f640544318153c8bda76079524d06b2657600043625f613c0620d0 sourceTermNode 4b1f2b11e90b11bcfc522deeae834f7dda74256eb49351ca425110831156a186 -pin source_compile 9bd7f27b58f640544318153c8bda76079524d06b2657600043625f613c0620d0 sourceTermKind 3ec371c2c643a6d27efa4037d67ee1ece8bcd2fce30e914ed8f718c09f26dd8a -pin source_compile 9bd7f27b58f640544318153c8bda76079524d06b2657600043625f613c0620d0 sourceTermPayload 110f1681320cfb98353d697325a848cb3db6e01a4ae4f2ab74e51652dfa29cde -pin source_compile 9bd7f27b58f640544318153c8bda76079524d06b2657600043625f613c0620d0 sourceTermLocation bb1a1c00e6fa0802fba896aae5b63e6ef7149eb00d81dbe14f2deeb84bb009a7 -pin source_compile 9bd7f27b58f640544318153c8bda76079524d06b2657600043625f613c0620d0 sourceTermLiteral 9a134949176756ce1478534cb7d0e70beb721e2718d148e13f84867edd5fcfaa -pin source_compile 9bd7f27b58f640544318153c8bda76079524d06b2657600043625f613c0620d0 sourceTermVariable 7f913636954bcbf99b6a1023a5589664fa356dbe041fab9485950fdc1b4452a6 -pin source_compile 9bd7f27b58f640544318153c8bda76079524d06b2657600043625f613c0620d0 sourceTermApply 029ee1f9c07b7b9519e95381bdf96c2c91c2d760c13a87573f22792badff7374 -pin source_compile 9bd7f27b58f640544318153c8bda76079524d06b2657600043625f613c0620d0 sourceTermInvalid 58b028a6c1016670242f8c36498f6545c824ce7acb6b5137a9908175c9901418 -pin source_compile 9bd7f27b58f640544318153c8bda76079524d06b2657600043625f613c0620d0 sourceCombS 9013b71418248b7c00716505d717226e575e84c8abd0c1e7b675c4c8b88459b1 -pin source_compile 9bd7f27b58f640544318153c8bda76079524d06b2657600043625f613c0620d0 sourceCombK 2177bae1081d12a6f888b5efc89a27616aaf6e5df019f156a0f3d4c2d14bb270 -pin source_compile 9bd7f27b58f640544318153c8bda76079524d06b2657600043625f613c0620d0 sourceCombI 15f13aeab5531e917cb30154730ad17db4f423c0b92784be7fa1817cb4be2287 -pin source_compile 9bd7f27b58f640544318153c8bda76079524d06b2657600043625f613c0620d0 sourceCombB e998485db2b17441c923efbdbaa380629522d91316a5dd74081822c3db8201e4 -pin source_compile 9bd7f27b58f640544318153c8bda76079524d06b2657600043625f613c0620d0 sourceCombC 16102ae548948d41c47e3759a92b50bd27576c7d9c2f81a6c1174d84d56db9ba -pin source_compile 9bd7f27b58f640544318153c8bda76079524d06b2657600043625f613c0620d0 sourceCombT 92fa182ab5b273c9a2e100f3655eedd3921ab94c4fd5c71080642256770ec0a0 -pin source_compile 9bd7f27b58f640544318153c8bda76079524d06b2657600043625f613c0620d0 sourceCombR 3b6490445c7dd944f6b0f4bb58e819e877a30404a7a4d3c683f01d88f7e6c986 -pin source_compile 9bd7f27b58f640544318153c8bda76079524d06b2657600043625f613c0620d0 sourceBracket_ 806f30ac43a0242b56b7a5038d726a8de7a95224dd2a493f1680fad33af258d7 -pin source_compile 9bd7f27b58f640544318153c8bda76079524d06b2657600043625f613c0620d0 sourceBracketReference fe0bd1158c024a535ac9c3abec1e711891dc4556b40f29ace6d0822c6a7e7091 -pin source_compile 9bd7f27b58f640544318153c8bda76079524d06b2657600043625f613c0620d0 sourceContainsBinder_ 65cb2844dd059c2b0942e19c42f6430f72d2f7fc6aa9e39ca32fa78a5bddb5f5 -pin source_compile 9bd7f27b58f640544318153c8bda76079524d06b2657600043625f613c0620d0 sourceContainsBinder 2bd8495f2b6d113ccf1567afe462372d9b48b41a860b37b97705ab6533973c44 -pin source_compile 9bd7f27b58f640544318153c8bda76079524d06b2657600043625f613c0620d0 sourceLower_ 2da1eded06f6b24aaa629fc01512a5c8489c4105fbdba7297408f2a472a166ad -pin source_compile 9bd7f27b58f640544318153c8bda76079524d06b2657600043625f613c0620d0 sourceLower fcb87c9082f4e1f07d2ef06f51d1ac3d9d74c4372f6dcc9bfc9808fe799b16fe -pin source_compile 9bd7f27b58f640544318153c8bda76079524d06b2657600043625f613c0620d0 sourceBracketRightConstant 73843e38e891f76c1b113a1510e74d3dc142f960dcf25344aa59347abdadfbc2 -pin source_compile 9bd7f27b58f640544318153c8bda76079524d06b2657600043625f613c0620d0 sourceBracketDependentApp 0e285cae8c05bb9ec8d5907902c77fe3ec61251c8cd4cf16236b3e44d5f360b2 -pin source_compile 9bd7f27b58f640544318153c8bda76079524d06b2657600043625f613c0620d0 sourceBracketOptimized_ 7ad937ae09e99ad7d2548ad0b0ac0200411b5369a525398048af42fa898b2e74 -pin source_compile 9bd7f27b58f640544318153c8bda76079524d06b2657600043625f613c0620d0 sourceBracket baa59dce7de8c9319c4c070e4669b0d9f2965ecfafbbc3757c1737a50c20e3c2 -pin source_compile 9bd7f27b58f640544318153c8bda76079524d06b2657600043625f613c0620d0 sourceBracketEtaApp 623623f582a155cd876a76372739a78c8d0d6d162365410ef41e0193b9402fb0 -pin source_compile 9bd7f27b58f640544318153c8bda76079524d06b2657600043625f613c0620d0 sourceBracketEta_ 3e5805bd6fc4e0e575ec167a531013144bc55be22f8b2be0b3aa43ea81f9ee55 -pin source_compile 9bd7f27b58f640544318153c8bda76079524d06b2657600043625f613c0620d0 sourceBracketEta 3a5e2e190357ecf16d7865b41defbb60d0a5f701b69f78b3c661281ddbf59de2 -pin source_compile 9bd7f27b58f640544318153c8bda76079524d06b2657600043625f613c0620d0 sourceEliminateList f83a6d3ce89a8edb86bff18d1436ade8ce8198303b663f5a7970c3855816194c -pin source_compile 9bd7f27b58f640544318153c8bda76079524d06b2657600043625f613c0620d0 sourceEliminate_ d07f4b04d554398393a8102028e3a9101540514d2a3689d0718a15fce9790b4b -pin source_compile 9bd7f27b58f640544318153c8bda76079524d06b2657600043625f613c0620d0 sourceEliminate 6d8a42251f11615dd44965b532a58fcfdd1c67e560b5d6da63a2e09696db6c74 -pin source_compile 9bd7f27b58f640544318153c8bda76079524d06b2657600043625f613c0620d0 sourceEliminateEta_ 64f03337158016bc2048b57a341c5053977ae57e50db346fff6f80eb5d70163b -pin source_compile 9bd7f27b58f640544318153c8bda76079524d06b2657600043625f613c0620d0 sourceEliminateEta 2d2a74a692d704aef1b22a7f7b7bf0319817ba20f0be9ea5d57bf7bfe9dae370 -pin source_compile 9bd7f27b58f640544318153c8bda76079524d06b2657600043625f613c0620d0 sourceKFlags_ 78090274e65936710e3a8d293d5d714a8b829db392855fb7813fb461db9f4873 -pin source_compile 9bd7f27b58f640544318153c8bda76079524d06b2657600043625f613c0620d0 sourceKFlags 2f64f47d8acd45bb92a9a2c8b9f838f47be5cbd10ac429fecf14144de95c32c7 -pin source_compile 9bd7f27b58f640544318153c8bda76079524d06b2657600043625f613c0620d0 sourceKTermLiteral? 30336dc0ea40104a8348a681a4e1ffcca50541a82c5a06757c84f776b216d4c1 -pin source_compile 9bd7f27b58f640544318153c8bda76079524d06b2657600043625f613c0620d0 sourceKTermIdentityLeft? ffb10c241dbff1e9b52c49baa59ade9ca6dfdc06ad36cefd0021d0b88f7161e1 -pin source_compile 9bd7f27b58f640544318153c8bda76079524d06b2657600043625f613c0620d0 sourceKTermIdentity? 9093a47ed76a2c43e595d0ec50a878f4c8aff6d52f2cfda0f186e98340542bf4 -pin source_compile 9bd7f27b58f640544318153c8bda76079524d06b2657600043625f613c0620d0 sourceKIsIdentity ff0e147fa12002c5d4105146c70bf7949aaa4c6e3054d14336a57de60548396d -pin source_compile 9bd7f27b58f640544318153c8bda76079524d06b2657600043625f613c0620d0 sourceKHash_ baeb12f689bb95b271bffcadf1f9d2cbe8f61f75a63d1b1e8b87a33a905a69c4 -pin source_compile 9bd7f27b58f640544318153c8bda76079524d06b2657600043625f613c0620d0 sourceKHash aa6c74f4a90c042991866d4c8ba42d4b685d3d288e4b83fe83414c3948a8a5d4 -pin source_compile 9bd7f27b58f640544318153c8bda76079524d06b2657600043625f613c0620d0 sourceKApply e3ac9138be7a6500db0490c8f15c7fd610362bfb4e648405ca5abfd8d78bc0b0 -pin source_compile 9bd7f27b58f640544318153c8bda76079524d06b2657600043625f613c0620d0 sourceKBoundUses_ cefb21f7bb5c55b35411ba86f65254383ccda7db0d2497c792d9b8e526e6d55c -pin source_compile 9bd7f27b58f640544318153c8bda76079524d06b2657600043625f613c0620d0 sourceKBoundUses 21998ebe4374ac5a949d1242d592eee90fa3990ad3fb3f492836af45bd7881ff -pin source_compile 9bd7f27b58f640544318153c8bda76079524d06b2657600043625f613c0620d0 sourceKWeaken_ c563dada1fc0c9590063f33409fb77a4b0ae1b776cc4143d87bf521d16e2b276 -pin source_compile 9bd7f27b58f640544318153c8bda76079524d06b2657600043625f613c0620d0 sourceKWeaken 188c342a9b1a212b951706fc756531e615ae44729573279678a546734aca8ad9 -pin source_compile 9bd7f27b58f640544318153c8bda76079524d06b2657600043625f613c0620d0 sourceKAbstract f12e7587d6392ef6ba0e8980359c0a50b44375b16849d44fcd0a131bb3600294 -pin source_compile 9bd7f27b58f640544318153c8bda76079524d06b2657600043625f613c0620d0 sourceKList_ eefdd6937d8e03e6603988bca4d34d9b9cf0fffab000a8400d1a6a4a6a03b564 -pin source_compile 9bd7f27b58f640544318153c8bda76079524d06b2657600043625f613c0620d0 sourceKList 882282e1bbffcb3a37ebf69a1b8e02b143eb7f76c58e4ab37386c596f05fe2c4 -pin source_compile 9bd7f27b58f640544318153c8bda76079524d06b2657600043625f613c0620d0 sourceKConvertApp 4e1db0f1fe842bf0bdc0c2dbb44ccf68869c97163f9abc996d0c74e683334bd4 -pin source_compile 9bd7f27b58f640544318153c8bda76079524d06b2657600043625f613c0620d0 sourceKConvertLambdaPack 874143dccabf2f15c3f0cbf24157ebe010d035681027c467b36e693762efcd71 -pin source_compile 9bd7f27b58f640544318153c8bda76079524d06b2657600043625f613c0620d0 sourceKConvertLambda 74acfd9c0c40c68d6272ede37c54997198909fa608c7889eccd32a2c88d86110 -pin source_compile 9bd7f27b58f640544318153c8bda76079524d06b2657600043625f613c0620d0 sourceKConvertList 158ed1e64be35f3a283dfc3784a40a301f340b90b1acfd15f9c3ef66600cfc75 -pin source_compile 9bd7f27b58f640544318153c8bda76079524d06b2657600043625f613c0620d0 sourceKConvert_ 18a1c2dbe1c3ab3aaef19512b97728be8fa22663787a19eec940ad48efdb2df6 -pin source_compile 9bd7f27b58f640544318153c8bda76079524d06b2657600043625f613c0620d0 sourceKConvert 3183b6cfe46a2eef3b1f0593ed3848c3e16888ae030c8b8de06f7306bcef27c5 -pin source_compile 9bd7f27b58f640544318153c8bda76079524d06b2657600043625f613c0620d0 sourceRunTerm 3e9977a0d3cb7c150dfc0e4b31623b2424071cc4e433e59e11d696e10c27f528 -pin source_compile 9bd7f27b58f640544318153c8bda76079524d06b2657600043625f613c0620d0 sourceCompileCoreReference 69e9c08853e14f8606d0930a0fa3aa325706794d7c5e6a6cc182e41810369de5 -pin source_compile 9bd7f27b58f640544318153c8bda76079524d06b2657600043625f613c0620d0 sourceCompileCoreKiselyov 9c4b336a7e9d42ee73e624df723949540d01f316b18fc197802a97217d2ee389 -pin source_compile 9bd7f27b58f640544318153c8bda76079524d06b2657600043625f613c0620d0 sourceCompileCore 0b36c5210bd24df83f9bdc63a6895b1524d85b239b61cedbea6a4e64354ff681 -pin source_compile 9bd7f27b58f640544318153c8bda76079524d06b2657600043625f613c0620d0 compileGateSource 990fc7590211aa934cedca36c24c0435eaf1ed7e0333fc6f07396cb74ba95326 -pin source_resolve 9c0daa3e05f1f7dfad613037e5dea3828aa14ddd509624c69c339d8ff089977a sourceFindBinder 16d2b5adac452f490f7d67c9a60871ce419747e65e2499128bdbd1f769fc5bd5 -pin source_resolve 9c0daa3e05f1f7dfad613037e5dea3828aa14ddd509624c69c339d8ff089977a sourceFindExternal cbca0a8f60da95678fd13835871910a93b6cfe5efa53eed964d223a5f7e6607f -pin source_resolve 9c0daa3e05f1f7dfad613037e5dea3828aa14ddd509624c69c339d8ff089977a sourceResolveNameWithLookup f036dddc3bd3aaf48d3d9e08ddd7685bcc90465d2b886fccdfed6e9e1d7ab316 -pin source_resolve 9c0daa3e05f1f7dfad613037e5dea3828aa14ddd509624c69c339d8ff089977a sourceResolveApply 1caa7453ed94a7d8f8d7b62ae1c2fb85c80bed0826285866029efbf889799fb1 -pin source_resolve 9c0daa3e05f1f7dfad613037e5dea3828aa14ddd509624c69c339d8ff089977a sourceResolvePipe 8b9a2d54d1dadbe5be89c00648c61b48012aa9fc60fb21e6077d3a79ec05b42b -pin source_resolve 9c0daa3e05f1f7dfad613037e5dea3828aa14ddd509624c69c339d8ff089977a sourceResolveLambda 7f78e8c73bd6521f30a4a8133396bf708d7c7da7c693e0b0faf14348b44d1e91 -pin source_resolve 9c0daa3e05f1f7dfad613037e5dea3828aa14ddd509624c69c339d8ff089977a sourceResolveGroup a9df39db96d81db0a444617bfb4c96ca1f8b05767fd52a207aeb94af2139dbee -pin source_resolve 9c0daa3e05f1f7dfad613037e5dea3828aa14ddd509624c69c339d8ff089977a sourceResolveDo 75bb3992b8741039e782228b8a469005a60329cac52b53c399b8b695f051ead0 -pin source_resolve 9c0daa3e05f1f7dfad613037e5dea3828aa14ddd509624c69c339d8ff089977a sourceResolveLocal fa2c54492fc1714eac73f279a774fb1fc23906d69249367585b9dfab49942732 -pin source_resolve 9c0daa3e05f1f7dfad613037e5dea3828aa14ddd509624c69c339d8ff089977a sourceResolveElements f97597a53de0ffec5a1bf4667c442c7f78ed1cd323fd95e338fb3a8597db4a9a -pin source_resolve 9c0daa3e05f1f7dfad613037e5dea3828aa14ddd509624c69c339d8ff089977a sourceResolveList e4fbbe44d1618c6bfb42da16ca0ba88f85e56f69e50f7861e74b4e9f734eb839 -pin source_resolve 9c0daa3e05f1f7dfad613037e5dea3828aa14ddd509624c69c339d8ff089977a sourceResolvePatternNode 5e7fbe1cc96788a12687ef518a3ffa6844365fc1ee4be4670ac013cf92556fe6 -pin source_resolve 9c0daa3e05f1f7dfad613037e5dea3828aa14ddd509624c69c339d8ff089977a sourceResolvePatternChild 4636c1c61a8770cafce1eb84b3eadf13cd4954cd89faf27daa7098b394082135 -pin source_resolve 9c0daa3e05f1f7dfad613037e5dea3828aa14ddd509624c69c339d8ff089977a sourceResolvePatternLookup e1791322206fc3d69693e6af9bf6e973fd07048fea6b15da1c5b490ab40e7644 -pin source_resolve 9c0daa3e05f1f7dfad613037e5dea3828aa14ddd509624c69c339d8ff089977a sourceResolveEquationLookup 468a8669188c36d80484b8c8ac11e3cc7c59de389ff4bb00b4d17e42afd3441a -pin source_resolve 9c0daa3e05f1f7dfad613037e5dea3828aa14ddd509624c69c339d8ff089977a sourceResolveEquationsWithLookup 8877f3432b0fbc1b2eb22417bae5b9308a17bfecdee54ccefb2e52713733072b -pin source_resolve 9c0daa3e05f1f7dfad613037e5dea3828aa14ddd509624c69c339d8ff089977a sourceResolveOrdinaryWithLookup 3112ad948fc68a696f95abf5fd75aa6bf06b6330dc4125671248bae4bc495cd8 -pin source_resolve 9c0daa3e05f1f7dfad613037e5dea3828aa14ddd509624c69c339d8ff089977a sourceResolveCase c41248bcf41a4c8922a97df4003aa3ec4b0d1c266fd0ef46bc42658c1b0dd385 -pin source_resolve 9c0daa3e05f1f7dfad613037e5dea3828aa14ddd509624c69c339d8ff089977a sourceResolveRec e8d80671a673ceed4e6af4277e7c21ce9c6aabf59e9e39c1410d65b23095a0ba -pin source_resolve 9c0daa3e05f1f7dfad613037e5dea3828aa14ddd509624c69c339d8ff089977a sourceResolveStableWithLookup 1a3e6c72ce291ea2100a1a8dd35fa91661191e4cdf0560e2af85f0ba809b6b47 -pin source_resolve 9c0daa3e05f1f7dfad613037e5dea3828aa14ddd509624c69c339d8ff089977a resolveStableGateAstWithLookup 1423ad35df275fb487bdfc76553c080fe10fdb661a8fa1aad812d10894cdb8d5 -pin source_resolve 9c0daa3e05f1f7dfad613037e5dea3828aa14ddd509624c69c339d8ff089977a sourceResolveName 85b9b73aba66c084cf62055d96e019bb79330027b9bd642241ce36daf91c0f44 -pin source_resolve 9c0daa3e05f1f7dfad613037e5dea3828aa14ddd509624c69c339d8ff089977a sourceResolvePattern ba0115eccae369a3b66ddf66836878d4c7df7f7895c8e6c6091e45ed18375b5a -pin source_resolve 9c0daa3e05f1f7dfad613037e5dea3828aa14ddd509624c69c339d8ff089977a sourceResolveEquation 0023162f47033079124407e44f201a5c56fe0317a8e35d59f435a85768144ec2 -pin source_resolve 9c0daa3e05f1f7dfad613037e5dea3828aa14ddd509624c69c339d8ff089977a sourceResolveEquationsWith 2669f6a770d3e73d46419bb7f2bc6333bf7e8fb4356e66b58a4e111710dcf563 -pin source_resolve 9c0daa3e05f1f7dfad613037e5dea3828aa14ddd509624c69c339d8ff089977a sourceResolveEquations 1f469dfa983101f1507147b4f3fda04d46f2fb3cab0743f7efce4df031a8db05 -pin source_resolve 9c0daa3e05f1f7dfad613037e5dea3828aa14ddd509624c69c339d8ff089977a sourceResolveOrdinary b93dae0ce7ed05bec58e51f2b3c0334ef4284c0af084b9a61f9d8bf97281c0e8 -pin source_resolve 9c0daa3e05f1f7dfad613037e5dea3828aa14ddd509624c69c339d8ff089977a sourceResolve 5eefd8d756aa966f902e7c07301045ace247135dbbb6b442d31990b09384f60a -pin source_resolve 9c0daa3e05f1f7dfad613037e5dea3828aa14ddd509624c69c339d8ff089977a resolveGateAst 2af1f88c9eb28b30395edcadba96cbb7e3d12f5d5649eb27e2d48f52c2fd8366 -pin source_resolve 9c0daa3e05f1f7dfad613037e5dea3828aa14ddd509624c69c339d8ff089977a resolveGateSource 1d42e746622951873835ad804eee6abdda09b7bea8456edde5477398bdc202ca -pin source_resolve 9c0daa3e05f1f7dfad613037e5dea3828aa14ddd509624c69c339d8ff089977a sourceResolveStable 676e75a8c97a32e544f55fc797a60b0838b7cfccca3d5427ebbdb501fdef0273 -pin source_resolve 9c0daa3e05f1f7dfad613037e5dea3828aa14ddd509624c69c339d8ff089977a resolveStableGateAst 12e2a91aa4293614ac1b3a2d4a11db8d4f4049e5cd269f4fa79d152c44accb4c -pin source_program 384012eefdf503a49ed1c660a6e07b5e95df73585121f83a8eeae98089f1a1ad sourceProgramDefinitions 3ec371c2c643a6d27efa4037d67ee1ece8bcd2fce30e914ed8f718c09f26dd8a -pin source_program 384012eefdf503a49ed1c660a6e07b5e95df73585121f83a8eeae98089f1a1ad sourceProgramFinal 3856245390ebe3c7d20664ab4c7cdac32218f1d4bfedb398d75831362a7ead51 -pin source_program 384012eefdf503a49ed1c660a6e07b5e95df73585121f83a8eeae98089f1a1ad sourceDefinitionName f63dc5c681bc60ce77e80f8e27bd91ff18e024af57bef38b2bbc266965ba9304 -pin source_program 384012eefdf503a49ed1c660a6e07b5e95df73585121f83a8eeae98089f1a1ad sourceDefinitionPosition a1978a34b6825e28070943801476003efc4acb0051b7b4e5ddc1522213846d0f -pin source_program 384012eefdf503a49ed1c660a6e07b5e95df73585121f83a8eeae98089f1a1ad sourceDefinitionBody 3856245390ebe3c7d20664ab4c7cdac32218f1d4bfedb398d75831362a7ead51 -pin source_program 384012eefdf503a49ed1c660a6e07b5e95df73585121f83a8eeae98089f1a1ad sourceProgramSkipNewlines 8b565d0514ad0dcfd73c23665bbea1f3bfba66b762c67e2b53272404b0fda06f -pin source_program 384012eefdf503a49ed1c660a6e07b5e95df73585121f83a8eeae98089f1a1ad sourceProgramDefinitionValue 952062f5351b91e5a0c3494f82017a418c0c6c502295a3538210e28c53459000 -pin source_program 384012eefdf503a49ed1c660a6e07b5e95df73585121f83a8eeae98089f1a1ad sourceProgramAssignOnLine? 5a034b4cef76733c605f419843e78404d4e36a89f0e8a6c1ea2853da4acaf539 -pin source_program 384012eefdf503a49ed1c660a6e07b5e95df73585121f83a8eeae98089f1a1ad sourceProgramDefinitionHead? 8d33d487e1b99f9c5164f959aace32bcf363244997e2f71cadec5331ed5e3870 -pin source_program 384012eefdf503a49ed1c660a6e07b5e95df73585121f83a8eeae98089f1a1ad sourceProgramContract 8587c56540d4ff85bfa4db295d604a09440f321cd69f3a71baed7bb8b6c57e3b -pin source_program 384012eefdf503a49ed1c660a6e07b5e95df73585121f83a8eeae98089f1a1ad sourceProgramArgNamed 41866e72a6a0fc8f3a92e8116c991bede58480d927e517061b3494f684e8d5ea -pin source_program 384012eefdf503a49ed1c660a6e07b5e95df73585121f83a8eeae98089f1a1ad sourceProgramArgPhantom 8e858ce739c36cc7ccb2e612d2187fcec085e200a5ffea4450cf28a6064bf603 -pin source_program 384012eefdf503a49ed1c660a6e07b5e95df73585121f83a8eeae98089f1a1ad sourceProgramArgument 169f9a7450ded3722a4eb43c462d0b51e59ffe1f7181c4971e16fdff5029b2fd -pin source_program 384012eefdf503a49ed1c660a6e07b5e95df73585121f83a8eeae98089f1a1ad sourceProgramSynthetic 3978da80578be58348ff1d1ecd71d86a0ea827df6441d53100360319ce1bcb7b -pin source_program 384012eefdf503a49ed1c660a6e07b5e95df73585121f83a8eeae98089f1a1ad sourceProgramName 410882eb5ceb8e28ec89e297f389b82e37cf819a660aaa7e273ddcffb2bb5dc8 -pin source_program 384012eefdf503a49ed1c660a6e07b5e95df73585121f83a8eeae98089f1a1ad sourceProgramApply2 88fbea11eff70745b30550bcfcaf6e480123e60e0438435cc3fbd961ec5f0a05 -pin source_program 384012eefdf503a49ed1c660a6e07b5e95df73585121f83a8eeae98089f1a1ad sourceProgramApply3 1144ea776326ef34886d082bbfb3f108c02434b143da15f7b3cb27869d188164 -pin source_program 384012eefdf503a49ed1c660a6e07b5e95df73585121f83a8eeae98089f1a1ad sourceProgramChecked 7f560413f21948ceff011c94bc219c5baec5e484d8be7d422b3e8c724d96d938 -pin source_program 384012eefdf503a49ed1c660a6e07b5e95df73585121f83a8eeae98089f1a1ad sourceProgramFailure 524032bbc61bf7d70c99a94734b4b73d08109caa47189cbbd1cd0bb1bafd6351 -pin source_program 384012eefdf503a49ed1c660a6e07b5e95df73585121f83a8eeae98089f1a1ad sourceProgramOnFailure ec211497a700ce8781d8264f23d1a8bd658ad9c0511f35fd0ecf6ca99bb691f9 -pin source_program 384012eefdf503a49ed1c660a6e07b5e95df73585121f83a8eeae98089f1a1ad sourceProgramAbsorbFailure 4a9045977496dc95c9864148055d92a33fd580f5883e743a777ff1261f6a3b4f -pin source_program 384012eefdf503a49ed1c660a6e07b5e95df73585121f83a8eeae98089f1a1ad sourceProgramReturn 1b5892ccb7160c458a3458e4273dd69bfd73951a86caaa7b3c8724a7b21a7528 -pin source_program 384012eefdf503a49ed1c660a6e07b5e95df73585121f83a8eeae98089f1a1ad sourceProgramArgName 586b406878f8b21d2b24daa275fd3b7acae42e612e6a9a229a5eefbadebd11a5 -pin source_program 384012eefdf503a49ed1c660a6e07b5e95df73585121f83a8eeae98089f1a1ad sourceProgramRawApply f3683c5ed0dfe30eb9e5caf6556ddf968a98a6904293665ac4a94f0a3bbb0f1f -pin source_program 384012eefdf503a49ed1c660a6e07b5e95df73585121f83a8eeae98089f1a1ad sourceProgramWrapArgs e20f204d16fa6d7a3dd8daac6caf93706430b7154e2598f16b5f70de08bd3523 -pin source_program 384012eefdf503a49ed1c660a6e07b5e95df73585121f83a8eeae98089f1a1ad sourceProgramAnyContract? 25c9725f3393bef808a46b3fe52f128ece42b5045b72d10f18fdba60b588cb58 -pin source_program 384012eefdf503a49ed1c660a6e07b5e95df73585121f83a8eeae98089f1a1ad sourceProgramAnyPhantom? 69c87efda1c4d92931ce95f8ea8ef6a16fe74b50341c08b114fc34fe8e319af5 -pin source_program 384012eefdf503a49ed1c660a6e07b5e95df73585121f83a8eeae98089f1a1ad sourceProgramAllPhantom? f1077ae2631831a5ad776f9699b5ac35118b123294599cc80d59dbac53dea590 -pin source_program 384012eefdf503a49ed1c660a6e07b5e95df73585121f83a8eeae98089f1a1ad sourceProgramPlainArgs f8ba15083e102c4bacfe3a800356b0ee3708f1d059132631d280985e9f969dec -pin source_program 384012eefdf503a49ed1c660a6e07b5e95df73585121f83a8eeae98089f1a1ad sourceProgramLowerDefinition adf39309b68bf340784e823959d1f43dbc4f09c0e69e68729740747ceff4967e -pin source_program 384012eefdf503a49ed1c660a6e07b5e95df73585121f83a8eeae98089f1a1ad sourceProgramParseAnnotatedBinding 6ef0f24484499bcae71a641cc42948c6682737ff2e5a972902637ae889dad405 -pin source_program 384012eefdf503a49ed1c660a6e07b5e95df73585121f83a8eeae98089f1a1ad sourceProgramAnnotated? 11b79ae7f3537d4e26546cfc12fbdb4be7618e6d4a5c5427bf2d04299f70b7ff -pin source_program 384012eefdf503a49ed1c660a6e07b5e95df73585121f83a8eeae98089f1a1ad sourceProgramParsePlainBinding 6ac1a81f773cbb14eb7899a91b238654c3f5935c2b5fa056bd0c42bc8faf2840 -pin source_program 384012eefdf503a49ed1c660a6e07b5e95df73585121f83a8eeae98089f1a1ad sourceProgramParseDefinition 5149a0a0e0b8b932332299fcdef64f32894689171c20e80fb5a47c1a60f829e2 -pin source_program 384012eefdf503a49ed1c660a6e07b5e95df73585121f83a8eeae98089f1a1ad sourceProgramParseTokens 4ccc6d7a2b4d249090fd64e7e616dcaea4df96dc03e48bc1e55b594a52971dae -pin source_program 384012eefdf503a49ed1c660a6e07b5e95df73585121f83a8eeae98089f1a1ad parseGateProgram b9254d4da84e5b4f57e42fc4bc74c7c1a29c473b4c5ffddf585544c47e5e1b22 -pin source_order 84c021d4a13df85c9d6cdbdb78769f069fa83fba76657c40ccb5a4bed1e91de2 sourceFindDefinition 5efe7dbc0c5c30879cb48bce9fe264c98d78e10e4cc580d3215a4edc1764d75e -pin source_order 84c021d4a13df85c9d6cdbdb78769f069fa83fba76657c40ccb5a4bed1e91de2 sourceFreeList fbe8d73b53bafa84df8dc6bd56e409fdb96e9216dcbf52890511edea1f49b1cc -pin source_order 84c021d4a13df85c9d6cdbdb78769f069fa83fba76657c40ccb5a4bed1e91de2 sourceFreeEquations 96bb6c7663269b05ee7b0246bc2a0a5073351ee5fe04d63d7dc82f3f1db62366 -pin source_order 84c021d4a13df85c9d6cdbdb78769f069fa83fba76657c40ccb5a4bed1e91de2 sourceFreeOrdinary c8c4a4e006145d3cd8624fb868d49d9344a65e374e630e62077cc7a596abc9e9 -pin source_order 84c021d4a13df85c9d6cdbdb78769f069fa83fba76657c40ccb5a4bed1e91de2 sourceCheckDuplicates 4b54c071a6f0d16e30e22d07371248298a8a252411d3a9813e9932e76007bd37 -pin source_order 84c021d4a13df85c9d6cdbdb78769f069fa83fba76657c40ccb5a4bed1e91de2 sourceCheckNames f256048c32d8c5d715648b9764cf8bf74dca9c71680a1ce7c238097735244be5 -pin source_order 84c021d4a13df85c9d6cdbdb78769f069fa83fba76657c40ccb5a4bed1e91de2 sourceDependencyNames f3d3a13bb8dd33214fdd74056624ee6131d4bcf8ff8aca53b9f5ddafe6f5a6fb -pin source_order 84c021d4a13df85c9d6cdbdb78769f069fa83fba76657c40ccb5a4bed1e91de2 sourceAnalyzeNamesUsing 684cf806677be0243b27511cb27495e44fec00c454ac237485e680c33c26fac4 -pin source_order 84c021d4a13df85c9d6cdbdb78769f069fa83fba76657c40ccb5a4bed1e91de2 sourceOrderCycle 87cea9e188fdd8d18b6edb28e232b54651711fc26f888bf3a740f2a40fab3280 -pin source_order 84c021d4a13df85c9d6cdbdb78769f069fa83fba76657c40ccb5a4bed1e91de2 sourceFreeVisit 0dbb4b01492794b47487359dd28a96d3a90cff2592bcdab4845de2c09d060a6e -pin source_order 84c021d4a13df85c9d6cdbdb78769f069fa83fba76657c40ccb5a4bed1e91de2 sourceFreeNames 7479c1844986e65c98ac51bad32e5e2b640c9a81b9587a38f8cdf229af566841 -pin source_order 84c021d4a13df85c9d6cdbdb78769f069fa83fba76657c40ccb5a4bed1e91de2 sourceCheckDefinitionNames 3839daff2dde826528b0b36b41961a27ae3c47aa1518f07578691b67ca48f359 -pin source_order 84c021d4a13df85c9d6cdbdb78769f069fa83fba76657c40ccb5a4bed1e91de2 sourceCheckFinalNames ba6c234c511ed02f50163cf9e23f5fc139d538e9612170d7c04f46ce3b1aadc3 -pin source_order 84c021d4a13df85c9d6cdbdb78769f069fa83fba76657c40ccb5a4bed1e91de2 sourceDefinitionGraph 93f310d7d9778a9a6671d4079615489a95f0547ba421c1cf2612569a20ed66ee -pin source_order 84c021d4a13df85c9d6cdbdb78769f069fa83fba76657c40ccb5a4bed1e91de2 sourceAnalyzeDefinitionsUsing 82008e01bbf90267ac23e9de505f7ae3dde5582fc0ab60ef6cc7f4ee8026b52a -pin source_order 84c021d4a13df85c9d6cdbdb78769f069fa83fba76657c40ccb5a4bed1e91de2 orderGateProgramUsing 676c9d98da7faf4f44a6bec3032a597b3fc7ded4bdd25b4b620d51ce5d5c1151 -pin source_order 84c021d4a13df85c9d6cdbdb78769f069fa83fba76657c40ccb5a4bed1e91de2 sourceAnalyzeNames 1c942c12c5bb7ac70514d847b6bb88a3f7420d36abbbc64eee264fa4eb042ab7 -pin source_order 84c021d4a13df85c9d6cdbdb78769f069fa83fba76657c40ccb5a4bed1e91de2 sourceAnalyzeDefinitions c8fccb79895d554a71c9200f6b6b808df1bf68a4af68f66bd58a6c369bbe90c5 -pin source_order 84c021d4a13df85c9d6cdbdb78769f069fa83fba76657c40ccb5a4bed1e91de2 orderGateProgram 2ac7d4b29c491ef5340e299365d3649def7ee5d0737e95f8868ed50c1fc89990 -pin source_order 84c021d4a13df85c9d6cdbdb78769f069fa83fba76657c40ccb5a4bed1e91de2 orderGateSource 9a47b12ab019342b1debe8198b4a8a062739f3fffa55a2c2c84d89c3780ecead -pin source_order 84c021d4a13df85c9d6cdbdb78769f069fa83fba76657c40ccb5a4bed1e91de2 sourceDefinitionIndex f9e761f7078989846db14e1a82d2e4644cfbc02f0147bc4c50a133cc752be205 -pin source_order 84c021d4a13df85c9d6cdbdb78769f069fa83fba76657c40ccb5a4bed1e91de2 sourceAnalyzeIndexedDefinitions 24a89119b63b695942a8e3ce5ec2370a587ae27d9d2628eb6d725f9cfd885a9f -pin source_unit 908400c8137869ba4313fa875fc2bf87db8a736debddd5bf2a40d6147295158f sourceCompileDefinition 2419e4f91a6b79fcde05a6b479bf26c270d331c16fccd0104cf1bba38cdbe35b -pin source_unit 908400c8137869ba4313fa875fc2bf87db8a736debddd5bf2a40d6147295158f sourceCompileOrderedUsing 1c33484341a092e5a11946c39982989b9b4a9024994b07f56df31796aa6d711a -pin source_unit 908400c8137869ba4313fa875fc2bf87db8a736debddd5bf2a40d6147295158f sourceCompileOrderedWith 6e1c008cb41b8e92bde306f177e830b795cd474b04b8601be8c5b9756255739c -pin source_unit 908400c8137869ba4313fa875fc2bf87db8a736debddd5bf2a40d6147295158f sourceCompileOrdered fecbbfc9a00cfffed5cdc944273ff4f039ce1dee30b42ace00d0154d8043dfca -pin source_unit 908400c8137869ba4313fa875fc2bf87db8a736debddd5bf2a40d6147295158f sourceSelectProgram 029245427e9110079106c46ba748f27497befd98c8cca789c1cac1f4c0c8c176 -pin source_unit 908400c8137869ba4313fa875fc2bf87db8a736debddd5bf2a40d6147295158f compileGateProgramOutput fb47d9a3f1b5a6a8dca60bacbff6b211f3d75f92eb06ddb14e7681e1dff5b5b4 -pin source_unit 908400c8137869ba4313fa875fc2bf87db8a736debddd5bf2a40d6147295158f compileSource 85fd162127f935e69033f29c251c00214f3e13bbc11c3ff71446146d30ac0d34 -pin source_unit 908400c8137869ba4313fa875fc2bf87db8a736debddd5bf2a40d6147295158f sourceModuleCheckShadows 5e20d0bc192e9dbbf8f52611199ae83e9468264ddd19bd8e48ec6135aea762da -pin source_unit 908400c8137869ba4313fa875fc2bf87db8a736debddd5bf2a40d6147295158f compileModuleDefinitionsUsing 722c48fffcc7cf2f02ee8a23394457858ff629c5f32bfc8238982e58cee7d0b4 -pin source_unit 908400c8137869ba4313fa875fc2bf87db8a736debddd5bf2a40d6147295158f compileModuleDefinitionsWith 522622d97e96494ac1fcb0ec96d6fdeaaded3a8d88927f636a4e57a88c31ea4d -pin source_unit 908400c8137869ba4313fa875fc2bf87db8a736debddd5bf2a40d6147295158f sourceCompileStableModuleProgram eb90fba935375a1a2ee20867ed83fbf9919c2f81d2f40c11a4f3b247ffa250a0 -pin source_unit 908400c8137869ba4313fa875fc2bf87db8a736debddd5bf2a40d6147295158f compileModuleDefinitions e25116ba21e0546f004c9a4a46e98d93b32bd078d0f91d798f2b49643a45a964 -pin source_unit 908400c8137869ba4313fa875fc2bf87db8a736debddd5bf2a40d6147295158f compileStableModuleDefinitions ac6fae6578fe59bc00d3f03d364fd7f61c7092b0a4e38176e2cb421ab954acb3 -pin source_unit 908400c8137869ba4313fa875fc2bf87db8a736debddd5bf2a40d6147295158f compileGateProgram d52931adde1d21f7a5693ced750b1fd2f88a20705a0e7350532fd1b01ee00d2d +pin source_compile fb41d71410ad8fb9c0da35a5ab0a6b782b9814bd7629737b710b7404648939cd sourceTermNode 4b1f2b11e90b11bcfc522deeae834f7dda74256eb49351ca425110831156a186 +pin source_compile fb41d71410ad8fb9c0da35a5ab0a6b782b9814bd7629737b710b7404648939cd sourceTermKind 3ec371c2c643a6d27efa4037d67ee1ece8bcd2fce30e914ed8f718c09f26dd8a +pin source_compile fb41d71410ad8fb9c0da35a5ab0a6b782b9814bd7629737b710b7404648939cd sourceTermPayload 110f1681320cfb98353d697325a848cb3db6e01a4ae4f2ab74e51652dfa29cde +pin source_compile fb41d71410ad8fb9c0da35a5ab0a6b782b9814bd7629737b710b7404648939cd sourceTermLocation bb1a1c00e6fa0802fba896aae5b63e6ef7149eb00d81dbe14f2deeb84bb009a7 +pin source_compile fb41d71410ad8fb9c0da35a5ab0a6b782b9814bd7629737b710b7404648939cd sourceTermLiteral 9a134949176756ce1478534cb7d0e70beb721e2718d148e13f84867edd5fcfaa +pin source_compile fb41d71410ad8fb9c0da35a5ab0a6b782b9814bd7629737b710b7404648939cd sourceTermVariable 7f913636954bcbf99b6a1023a5589664fa356dbe041fab9485950fdc1b4452a6 +pin source_compile fb41d71410ad8fb9c0da35a5ab0a6b782b9814bd7629737b710b7404648939cd sourceTermApply 029ee1f9c07b7b9519e95381bdf96c2c91c2d760c13a87573f22792badff7374 +pin source_compile fb41d71410ad8fb9c0da35a5ab0a6b782b9814bd7629737b710b7404648939cd sourceTermInvalid 58b028a6c1016670242f8c36498f6545c824ce7acb6b5137a9908175c9901418 +pin source_compile fb41d71410ad8fb9c0da35a5ab0a6b782b9814bd7629737b710b7404648939cd sourceCombS 9013b71418248b7c00716505d717226e575e84c8abd0c1e7b675c4c8b88459b1 +pin source_compile fb41d71410ad8fb9c0da35a5ab0a6b782b9814bd7629737b710b7404648939cd sourceCombK 2177bae1081d12a6f888b5efc89a27616aaf6e5df019f156a0f3d4c2d14bb270 +pin source_compile fb41d71410ad8fb9c0da35a5ab0a6b782b9814bd7629737b710b7404648939cd sourceCombI 15f13aeab5531e917cb30154730ad17db4f423c0b92784be7fa1817cb4be2287 +pin source_compile fb41d71410ad8fb9c0da35a5ab0a6b782b9814bd7629737b710b7404648939cd sourceCombB e998485db2b17441c923efbdbaa380629522d91316a5dd74081822c3db8201e4 +pin source_compile fb41d71410ad8fb9c0da35a5ab0a6b782b9814bd7629737b710b7404648939cd sourceCombC 16102ae548948d41c47e3759a92b50bd27576c7d9c2f81a6c1174d84d56db9ba +pin source_compile fb41d71410ad8fb9c0da35a5ab0a6b782b9814bd7629737b710b7404648939cd sourceCombT 92fa182ab5b273c9a2e100f3655eedd3921ab94c4fd5c71080642256770ec0a0 +pin source_compile fb41d71410ad8fb9c0da35a5ab0a6b782b9814bd7629737b710b7404648939cd sourceCombR 3b6490445c7dd944f6b0f4bb58e819e877a30404a7a4d3c683f01d88f7e6c986 +pin source_compile fb41d71410ad8fb9c0da35a5ab0a6b782b9814bd7629737b710b7404648939cd sourceBracket_ 806f30ac43a0242b56b7a5038d726a8de7a95224dd2a493f1680fad33af258d7 +pin source_compile fb41d71410ad8fb9c0da35a5ab0a6b782b9814bd7629737b710b7404648939cd sourceBracketReference fe0bd1158c024a535ac9c3abec1e711891dc4556b40f29ace6d0822c6a7e7091 +pin source_compile fb41d71410ad8fb9c0da35a5ab0a6b782b9814bd7629737b710b7404648939cd sourceContainsBinder_ 65cb2844dd059c2b0942e19c42f6430f72d2f7fc6aa9e39ca32fa78a5bddb5f5 +pin source_compile fb41d71410ad8fb9c0da35a5ab0a6b782b9814bd7629737b710b7404648939cd sourceContainsBinder 2bd8495f2b6d113ccf1567afe462372d9b48b41a860b37b97705ab6533973c44 +pin source_compile fb41d71410ad8fb9c0da35a5ab0a6b782b9814bd7629737b710b7404648939cd sourceLower_ 2da1eded06f6b24aaa629fc01512a5c8489c4105fbdba7297408f2a472a166ad +pin source_compile fb41d71410ad8fb9c0da35a5ab0a6b782b9814bd7629737b710b7404648939cd sourceLower fcb87c9082f4e1f07d2ef06f51d1ac3d9d74c4372f6dcc9bfc9808fe799b16fe +pin source_compile fb41d71410ad8fb9c0da35a5ab0a6b782b9814bd7629737b710b7404648939cd sourceBracketRightConstant 73843e38e891f76c1b113a1510e74d3dc142f960dcf25344aa59347abdadfbc2 +pin source_compile fb41d71410ad8fb9c0da35a5ab0a6b782b9814bd7629737b710b7404648939cd sourceBracketDependentApp 0e285cae8c05bb9ec8d5907902c77fe3ec61251c8cd4cf16236b3e44d5f360b2 +pin source_compile fb41d71410ad8fb9c0da35a5ab0a6b782b9814bd7629737b710b7404648939cd sourceBracketOptimized_ 7ad937ae09e99ad7d2548ad0b0ac0200411b5369a525398048af42fa898b2e74 +pin source_compile fb41d71410ad8fb9c0da35a5ab0a6b782b9814bd7629737b710b7404648939cd sourceBracket baa59dce7de8c9319c4c070e4669b0d9f2965ecfafbbc3757c1737a50c20e3c2 +pin source_compile fb41d71410ad8fb9c0da35a5ab0a6b782b9814bd7629737b710b7404648939cd sourceBracketEtaApp 623623f582a155cd876a76372739a78c8d0d6d162365410ef41e0193b9402fb0 +pin source_compile fb41d71410ad8fb9c0da35a5ab0a6b782b9814bd7629737b710b7404648939cd sourceBracketEta_ 3e5805bd6fc4e0e575ec167a531013144bc55be22f8b2be0b3aa43ea81f9ee55 +pin source_compile fb41d71410ad8fb9c0da35a5ab0a6b782b9814bd7629737b710b7404648939cd sourceBracketEta 3a5e2e190357ecf16d7865b41defbb60d0a5f701b69f78b3c661281ddbf59de2 +pin source_compile fb41d71410ad8fb9c0da35a5ab0a6b782b9814bd7629737b710b7404648939cd sourceEliminateList f83a6d3ce89a8edb86bff18d1436ade8ce8198303b663f5a7970c3855816194c +pin source_compile fb41d71410ad8fb9c0da35a5ab0a6b782b9814bd7629737b710b7404648939cd sourceEliminate_ d07f4b04d554398393a8102028e3a9101540514d2a3689d0718a15fce9790b4b +pin source_compile fb41d71410ad8fb9c0da35a5ab0a6b782b9814bd7629737b710b7404648939cd sourceEliminate 6d8a42251f11615dd44965b532a58fcfdd1c67e560b5d6da63a2e09696db6c74 +pin source_compile fb41d71410ad8fb9c0da35a5ab0a6b782b9814bd7629737b710b7404648939cd sourceEliminateEta_ 64f03337158016bc2048b57a341c5053977ae57e50db346fff6f80eb5d70163b +pin source_compile fb41d71410ad8fb9c0da35a5ab0a6b782b9814bd7629737b710b7404648939cd sourceEliminateEta 2d2a74a692d704aef1b22a7f7b7bf0319817ba20f0be9ea5d57bf7bfe9dae370 +pin source_compile fb41d71410ad8fb9c0da35a5ab0a6b782b9814bd7629737b710b7404648939cd sourceKFlags_ 78090274e65936710e3a8d293d5d714a8b829db392855fb7813fb461db9f4873 +pin source_compile fb41d71410ad8fb9c0da35a5ab0a6b782b9814bd7629737b710b7404648939cd sourceKFlags 2f64f47d8acd45bb92a9a2c8b9f838f47be5cbd10ac429fecf14144de95c32c7 +pin source_compile fb41d71410ad8fb9c0da35a5ab0a6b782b9814bd7629737b710b7404648939cd sourceKTermLiteral? 30336dc0ea40104a8348a681a4e1ffcca50541a82c5a06757c84f776b216d4c1 +pin source_compile fb41d71410ad8fb9c0da35a5ab0a6b782b9814bd7629737b710b7404648939cd sourceKTermIdentityLeft? ffb10c241dbff1e9b52c49baa59ade9ca6dfdc06ad36cefd0021d0b88f7161e1 +pin source_compile fb41d71410ad8fb9c0da35a5ab0a6b782b9814bd7629737b710b7404648939cd sourceKTermIdentity? 9093a47ed76a2c43e595d0ec50a878f4c8aff6d52f2cfda0f186e98340542bf4 +pin source_compile fb41d71410ad8fb9c0da35a5ab0a6b782b9814bd7629737b710b7404648939cd sourceKIsIdentity ff0e147fa12002c5d4105146c70bf7949aaa4c6e3054d14336a57de60548396d +pin source_compile fb41d71410ad8fb9c0da35a5ab0a6b782b9814bd7629737b710b7404648939cd sourceKHash_ baeb12f689bb95b271bffcadf1f9d2cbe8f61f75a63d1b1e8b87a33a905a69c4 +pin source_compile fb41d71410ad8fb9c0da35a5ab0a6b782b9814bd7629737b710b7404648939cd sourceKHash aa6c74f4a90c042991866d4c8ba42d4b685d3d288e4b83fe83414c3948a8a5d4 +pin source_compile fb41d71410ad8fb9c0da35a5ab0a6b782b9814bd7629737b710b7404648939cd sourceKApply e3ac9138be7a6500db0490c8f15c7fd610362bfb4e648405ca5abfd8d78bc0b0 +pin source_compile fb41d71410ad8fb9c0da35a5ab0a6b782b9814bd7629737b710b7404648939cd sourceKBoundUses_ cefb21f7bb5c55b35411ba86f65254383ccda7db0d2497c792d9b8e526e6d55c +pin source_compile fb41d71410ad8fb9c0da35a5ab0a6b782b9814bd7629737b710b7404648939cd sourceKBoundUses 21998ebe4374ac5a949d1242d592eee90fa3990ad3fb3f492836af45bd7881ff +pin source_compile fb41d71410ad8fb9c0da35a5ab0a6b782b9814bd7629737b710b7404648939cd sourceKWeaken_ c563dada1fc0c9590063f33409fb77a4b0ae1b776cc4143d87bf521d16e2b276 +pin source_compile fb41d71410ad8fb9c0da35a5ab0a6b782b9814bd7629737b710b7404648939cd sourceKWeaken 188c342a9b1a212b951706fc756531e615ae44729573279678a546734aca8ad9 +pin source_compile fb41d71410ad8fb9c0da35a5ab0a6b782b9814bd7629737b710b7404648939cd sourceKAbstract f12e7587d6392ef6ba0e8980359c0a50b44375b16849d44fcd0a131bb3600294 +pin source_compile fb41d71410ad8fb9c0da35a5ab0a6b782b9814bd7629737b710b7404648939cd sourceKList_ eefdd6937d8e03e6603988bca4d34d9b9cf0fffab000a8400d1a6a4a6a03b564 +pin source_compile fb41d71410ad8fb9c0da35a5ab0a6b782b9814bd7629737b710b7404648939cd sourceKList 882282e1bbffcb3a37ebf69a1b8e02b143eb7f76c58e4ab37386c596f05fe2c4 +pin source_compile fb41d71410ad8fb9c0da35a5ab0a6b782b9814bd7629737b710b7404648939cd sourceKConvertApp 4e1db0f1fe842bf0bdc0c2dbb44ccf68869c97163f9abc996d0c74e683334bd4 +pin source_compile fb41d71410ad8fb9c0da35a5ab0a6b782b9814bd7629737b710b7404648939cd sourceKConvertLambdaPack 874143dccabf2f15c3f0cbf24157ebe010d035681027c467b36e693762efcd71 +pin source_compile fb41d71410ad8fb9c0da35a5ab0a6b782b9814bd7629737b710b7404648939cd sourceKConvertLambda 74acfd9c0c40c68d6272ede37c54997198909fa608c7889eccd32a2c88d86110 +pin source_compile fb41d71410ad8fb9c0da35a5ab0a6b782b9814bd7629737b710b7404648939cd sourceKConvertList 158ed1e64be35f3a283dfc3784a40a301f340b90b1acfd15f9c3ef66600cfc75 +pin source_compile fb41d71410ad8fb9c0da35a5ab0a6b782b9814bd7629737b710b7404648939cd sourceKConvert_ 18a1c2dbe1c3ab3aaef19512b97728be8fa22663787a19eec940ad48efdb2df6 +pin source_compile fb41d71410ad8fb9c0da35a5ab0a6b782b9814bd7629737b710b7404648939cd sourceKConvert 3183b6cfe46a2eef3b1f0593ed3848c3e16888ae030c8b8de06f7306bcef27c5 +pin source_compile fb41d71410ad8fb9c0da35a5ab0a6b782b9814bd7629737b710b7404648939cd sourceRunTerm 3e9977a0d3cb7c150dfc0e4b31623b2424071cc4e433e59e11d696e10c27f528 +pin source_compile fb41d71410ad8fb9c0da35a5ab0a6b782b9814bd7629737b710b7404648939cd sourceCompileCoreReference 69e9c08853e14f8606d0930a0fa3aa325706794d7c5e6a6cc182e41810369de5 +pin source_compile fb41d71410ad8fb9c0da35a5ab0a6b782b9814bd7629737b710b7404648939cd sourceCompileCoreKiselyov 9c4b336a7e9d42ee73e624df723949540d01f316b18fc197802a97217d2ee389 +pin source_compile fb41d71410ad8fb9c0da35a5ab0a6b782b9814bd7629737b710b7404648939cd sourceCompileCore 0b36c5210bd24df83f9bdc63a6895b1524d85b239b61cedbea6a4e64354ff681 +pin source_compile fb41d71410ad8fb9c0da35a5ab0a6b782b9814bd7629737b710b7404648939cd compileGateSource 7a34fd04463fa8bef9e1a22d30b2fc60b3e91f13fcb4e88b65f55e238a13ef56 +pin source_resolve ed934dd01014852aa2e3734444538d0c0807da41bc661cd3965eca6ed16ceffe sourceFindBinder 16d2b5adac452f490f7d67c9a60871ce419747e65e2499128bdbd1f769fc5bd5 +pin source_resolve ed934dd01014852aa2e3734444538d0c0807da41bc661cd3965eca6ed16ceffe sourceFindExternal cbca0a8f60da95678fd13835871910a93b6cfe5efa53eed964d223a5f7e6607f +pin source_resolve ed934dd01014852aa2e3734444538d0c0807da41bc661cd3965eca6ed16ceffe sourceResolveNameWithLookup f036dddc3bd3aaf48d3d9e08ddd7685bcc90465d2b886fccdfed6e9e1d7ab316 +pin source_resolve ed934dd01014852aa2e3734444538d0c0807da41bc661cd3965eca6ed16ceffe sourceResolveApply 1caa7453ed94a7d8f8d7b62ae1c2fb85c80bed0826285866029efbf889799fb1 +pin source_resolve ed934dd01014852aa2e3734444538d0c0807da41bc661cd3965eca6ed16ceffe sourceResolvePipe 8b9a2d54d1dadbe5be89c00648c61b48012aa9fc60fb21e6077d3a79ec05b42b +pin source_resolve ed934dd01014852aa2e3734444538d0c0807da41bc661cd3965eca6ed16ceffe sourceResolveLambda 7f78e8c73bd6521f30a4a8133396bf708d7c7da7c693e0b0faf14348b44d1e91 +pin source_resolve ed934dd01014852aa2e3734444538d0c0807da41bc661cd3965eca6ed16ceffe sourceResolveGroup a9df39db96d81db0a444617bfb4c96ca1f8b05767fd52a207aeb94af2139dbee +pin source_resolve ed934dd01014852aa2e3734444538d0c0807da41bc661cd3965eca6ed16ceffe sourceResolveDo 75bb3992b8741039e782228b8a469005a60329cac52b53c399b8b695f051ead0 +pin source_resolve ed934dd01014852aa2e3734444538d0c0807da41bc661cd3965eca6ed16ceffe sourceResolveLocal fa2c54492fc1714eac73f279a774fb1fc23906d69249367585b9dfab49942732 +pin source_resolve ed934dd01014852aa2e3734444538d0c0807da41bc661cd3965eca6ed16ceffe sourceResolveElements f97597a53de0ffec5a1bf4667c442c7f78ed1cd323fd95e338fb3a8597db4a9a +pin source_resolve ed934dd01014852aa2e3734444538d0c0807da41bc661cd3965eca6ed16ceffe sourceResolveList e4fbbe44d1618c6bfb42da16ca0ba88f85e56f69e50f7861e74b4e9f734eb839 +pin source_resolve ed934dd01014852aa2e3734444538d0c0807da41bc661cd3965eca6ed16ceffe sourceResolvePatternNode 5e7fbe1cc96788a12687ef518a3ffa6844365fc1ee4be4670ac013cf92556fe6 +pin source_resolve ed934dd01014852aa2e3734444538d0c0807da41bc661cd3965eca6ed16ceffe sourceResolvePatternChild 4636c1c61a8770cafce1eb84b3eadf13cd4954cd89faf27daa7098b394082135 +pin source_resolve ed934dd01014852aa2e3734444538d0c0807da41bc661cd3965eca6ed16ceffe sourceResolvePatternLookup e1791322206fc3d69693e6af9bf6e973fd07048fea6b15da1c5b490ab40e7644 +pin source_resolve ed934dd01014852aa2e3734444538d0c0807da41bc661cd3965eca6ed16ceffe sourceResolveEquationLookup 468a8669188c36d80484b8c8ac11e3cc7c59de389ff4bb00b4d17e42afd3441a +pin source_resolve ed934dd01014852aa2e3734444538d0c0807da41bc661cd3965eca6ed16ceffe sourceResolveEquationsWithLookup 8877f3432b0fbc1b2eb22417bae5b9308a17bfecdee54ccefb2e52713733072b +pin source_resolve ed934dd01014852aa2e3734444538d0c0807da41bc661cd3965eca6ed16ceffe sourceResolveOrdinaryWithLookup 3112ad948fc68a696f95abf5fd75aa6bf06b6330dc4125671248bae4bc495cd8 +pin source_resolve ed934dd01014852aa2e3734444538d0c0807da41bc661cd3965eca6ed16ceffe sourceResolveCase c41248bcf41a4c8922a97df4003aa3ec4b0d1c266fd0ef46bc42658c1b0dd385 +pin source_resolve ed934dd01014852aa2e3734444538d0c0807da41bc661cd3965eca6ed16ceffe sourceResolveRec e8d80671a673ceed4e6af4277e7c21ce9c6aabf59e9e39c1410d65b23095a0ba +pin source_resolve ed934dd01014852aa2e3734444538d0c0807da41bc661cd3965eca6ed16ceffe sourceResolveStableWithLookup 1a3e6c72ce291ea2100a1a8dd35fa91661191e4cdf0560e2af85f0ba809b6b47 +pin source_resolve ed934dd01014852aa2e3734444538d0c0807da41bc661cd3965eca6ed16ceffe resolveStableGateAstWithLookup 1423ad35df275fb487bdfc76553c080fe10fdb661a8fa1aad812d10894cdb8d5 +pin source_resolve ed934dd01014852aa2e3734444538d0c0807da41bc661cd3965eca6ed16ceffe sourceResolveName 85b9b73aba66c084cf62055d96e019bb79330027b9bd642241ce36daf91c0f44 +pin source_resolve ed934dd01014852aa2e3734444538d0c0807da41bc661cd3965eca6ed16ceffe sourceResolvePattern ba0115eccae369a3b66ddf66836878d4c7df7f7895c8e6c6091e45ed18375b5a +pin source_resolve ed934dd01014852aa2e3734444538d0c0807da41bc661cd3965eca6ed16ceffe sourceResolveEquation 0023162f47033079124407e44f201a5c56fe0317a8e35d59f435a85768144ec2 +pin source_resolve ed934dd01014852aa2e3734444538d0c0807da41bc661cd3965eca6ed16ceffe sourceResolveEquationsWith 2669f6a770d3e73d46419bb7f2bc6333bf7e8fb4356e66b58a4e111710dcf563 +pin source_resolve ed934dd01014852aa2e3734444538d0c0807da41bc661cd3965eca6ed16ceffe sourceResolveEquations 1f469dfa983101f1507147b4f3fda04d46f2fb3cab0743f7efce4df031a8db05 +pin source_resolve ed934dd01014852aa2e3734444538d0c0807da41bc661cd3965eca6ed16ceffe sourceResolveOrdinary b93dae0ce7ed05bec58e51f2b3c0334ef4284c0af084b9a61f9d8bf97281c0e8 +pin source_resolve ed934dd01014852aa2e3734444538d0c0807da41bc661cd3965eca6ed16ceffe sourceResolve 5eefd8d756aa966f902e7c07301045ace247135dbbb6b442d31990b09384f60a +pin source_resolve ed934dd01014852aa2e3734444538d0c0807da41bc661cd3965eca6ed16ceffe resolveGateAst 2af1f88c9eb28b30395edcadba96cbb7e3d12f5d5649eb27e2d48f52c2fd8366 +pin source_resolve ed934dd01014852aa2e3734444538d0c0807da41bc661cd3965eca6ed16ceffe resolveGateSource 138aad260f05ee6a126b36912b88865ed270573b3fd936a4c6396a5340bda079 +pin source_resolve ed934dd01014852aa2e3734444538d0c0807da41bc661cd3965eca6ed16ceffe sourceResolveStable 676e75a8c97a32e544f55fc797a60b0838b7cfccca3d5427ebbdb501fdef0273 +pin source_resolve ed934dd01014852aa2e3734444538d0c0807da41bc661cd3965eca6ed16ceffe resolveStableGateAst 12e2a91aa4293614ac1b3a2d4a11db8d4f4049e5cd269f4fa79d152c44accb4c +pin source_program 447aa7d321344146772a2693e83b2ab87a0058e281c42780e1bb5b24e0ea995d sourceProgramDefinitions 3ec371c2c643a6d27efa4037d67ee1ece8bcd2fce30e914ed8f718c09f26dd8a +pin source_program 447aa7d321344146772a2693e83b2ab87a0058e281c42780e1bb5b24e0ea995d sourceProgramFinal 3856245390ebe3c7d20664ab4c7cdac32218f1d4bfedb398d75831362a7ead51 +pin source_program 447aa7d321344146772a2693e83b2ab87a0058e281c42780e1bb5b24e0ea995d sourceDefinitionName f63dc5c681bc60ce77e80f8e27bd91ff18e024af57bef38b2bbc266965ba9304 +pin source_program 447aa7d321344146772a2693e83b2ab87a0058e281c42780e1bb5b24e0ea995d sourceDefinitionPosition a1978a34b6825e28070943801476003efc4acb0051b7b4e5ddc1522213846d0f +pin source_program 447aa7d321344146772a2693e83b2ab87a0058e281c42780e1bb5b24e0ea995d sourceDefinitionBody 3856245390ebe3c7d20664ab4c7cdac32218f1d4bfedb398d75831362a7ead51 +pin source_program 447aa7d321344146772a2693e83b2ab87a0058e281c42780e1bb5b24e0ea995d sourceProgramSkipNewlines 8b565d0514ad0dcfd73c23665bbea1f3bfba66b762c67e2b53272404b0fda06f +pin source_program 447aa7d321344146772a2693e83b2ab87a0058e281c42780e1bb5b24e0ea995d sourceProgramDefinitionValue cbf8fd9f34a33faef0b87ae100778e8aa8eb9a02a3d65e3f0b9abc898a752bac +pin source_program 447aa7d321344146772a2693e83b2ab87a0058e281c42780e1bb5b24e0ea995d sourceProgramAssignOnLine? 5a034b4cef76733c605f419843e78404d4e36a89f0e8a6c1ea2853da4acaf539 +pin source_program 447aa7d321344146772a2693e83b2ab87a0058e281c42780e1bb5b24e0ea995d sourceProgramDefinitionHead? 8d33d487e1b99f9c5164f959aace32bcf363244997e2f71cadec5331ed5e3870 +pin source_program 447aa7d321344146772a2693e83b2ab87a0058e281c42780e1bb5b24e0ea995d sourceProgramContract c08f7dae3a916990478867d677c01efc80df87f8507443f56127e0710a085751 +pin source_program 447aa7d321344146772a2693e83b2ab87a0058e281c42780e1bb5b24e0ea995d sourceProgramArgNamed b0f8c9b782cb20c4c0577a69e5de3866afea2198613a66d6a6108fd3a3a999c7 +pin source_program 447aa7d321344146772a2693e83b2ab87a0058e281c42780e1bb5b24e0ea995d sourceProgramArgPhantom d4479e752c9dbaccac2c20892e4755bc99738d16ea9f1e27d445bd90a251fd31 +pin source_program 447aa7d321344146772a2693e83b2ab87a0058e281c42780e1bb5b24e0ea995d sourceProgramArgument 7d01bce20d357140499a2b14830d68051f4a0a55d81304d2e48bfa38974bb4e5 +pin source_program 447aa7d321344146772a2693e83b2ab87a0058e281c42780e1bb5b24e0ea995d sourceProgramSynthetic 3978da80578be58348ff1d1ecd71d86a0ea827df6441d53100360319ce1bcb7b +pin source_program 447aa7d321344146772a2693e83b2ab87a0058e281c42780e1bb5b24e0ea995d sourceProgramName 410882eb5ceb8e28ec89e297f389b82e37cf819a660aaa7e273ddcffb2bb5dc8 +pin source_program 447aa7d321344146772a2693e83b2ab87a0058e281c42780e1bb5b24e0ea995d sourceProgramApply2 88fbea11eff70745b30550bcfcaf6e480123e60e0438435cc3fbd961ec5f0a05 +pin source_program 447aa7d321344146772a2693e83b2ab87a0058e281c42780e1bb5b24e0ea995d sourceProgramApply3 1144ea776326ef34886d082bbfb3f108c02434b143da15f7b3cb27869d188164 +pin source_program 447aa7d321344146772a2693e83b2ab87a0058e281c42780e1bb5b24e0ea995d sourceProgramChecked 7f560413f21948ceff011c94bc219c5baec5e484d8be7d422b3e8c724d96d938 +pin source_program 447aa7d321344146772a2693e83b2ab87a0058e281c42780e1bb5b24e0ea995d sourceProgramFailure 524032bbc61bf7d70c99a94734b4b73d08109caa47189cbbd1cd0bb1bafd6351 +pin source_program 447aa7d321344146772a2693e83b2ab87a0058e281c42780e1bb5b24e0ea995d sourceProgramOnFailure ec211497a700ce8781d8264f23d1a8bd658ad9c0511f35fd0ecf6ca99bb691f9 +pin source_program 447aa7d321344146772a2693e83b2ab87a0058e281c42780e1bb5b24e0ea995d sourceProgramAbsorbFailure 4a9045977496dc95c9864148055d92a33fd580f5883e743a777ff1261f6a3b4f +pin source_program 447aa7d321344146772a2693e83b2ab87a0058e281c42780e1bb5b24e0ea995d sourceProgramReturn 1b5892ccb7160c458a3458e4273dd69bfd73951a86caaa7b3c8724a7b21a7528 +pin source_program 447aa7d321344146772a2693e83b2ab87a0058e281c42780e1bb5b24e0ea995d sourceProgramArgName 586b406878f8b21d2b24daa275fd3b7acae42e612e6a9a229a5eefbadebd11a5 +pin source_program 447aa7d321344146772a2693e83b2ab87a0058e281c42780e1bb5b24e0ea995d sourceProgramRawApply f3683c5ed0dfe30eb9e5caf6556ddf968a98a6904293665ac4a94f0a3bbb0f1f +pin source_program 447aa7d321344146772a2693e83b2ab87a0058e281c42780e1bb5b24e0ea995d sourceProgramWrapArgs e20f204d16fa6d7a3dd8daac6caf93706430b7154e2598f16b5f70de08bd3523 +pin source_program 447aa7d321344146772a2693e83b2ab87a0058e281c42780e1bb5b24e0ea995d sourceProgramAnyContract? 25c9725f3393bef808a46b3fe52f128ece42b5045b72d10f18fdba60b588cb58 +pin source_program 447aa7d321344146772a2693e83b2ab87a0058e281c42780e1bb5b24e0ea995d sourceProgramAnyPhantom? 69c87efda1c4d92931ce95f8ea8ef6a16fe74b50341c08b114fc34fe8e319af5 +pin source_program 447aa7d321344146772a2693e83b2ab87a0058e281c42780e1bb5b24e0ea995d sourceProgramAllPhantom? f1077ae2631831a5ad776f9699b5ac35118b123294599cc80d59dbac53dea590 +pin source_program 447aa7d321344146772a2693e83b2ab87a0058e281c42780e1bb5b24e0ea995d sourceProgramPlainArgs f8ba15083e102c4bacfe3a800356b0ee3708f1d059132631d280985e9f969dec +pin source_program 447aa7d321344146772a2693e83b2ab87a0058e281c42780e1bb5b24e0ea995d sourceProgramLowerDefinition adf39309b68bf340784e823959d1f43dbc4f09c0e69e68729740747ceff4967e +pin source_program 447aa7d321344146772a2693e83b2ab87a0058e281c42780e1bb5b24e0ea995d sourceProgramParseAnnotatedBinding 4d1f9b0f8cb9122387f260ebe917bd56a77a3d978fcf2d3a8cd8c29852434821 +pin source_program 447aa7d321344146772a2693e83b2ab87a0058e281c42780e1bb5b24e0ea995d sourceProgramAnnotated? 11b79ae7f3537d4e26546cfc12fbdb4be7618e6d4a5c5427bf2d04299f70b7ff +pin source_program 447aa7d321344146772a2693e83b2ab87a0058e281c42780e1bb5b24e0ea995d sourceProgramParsePlainBinding f671e2530e39b7f7746cc3c5c6779e241808a5166963c8d9317e37e4a9adef32 +pin source_program 447aa7d321344146772a2693e83b2ab87a0058e281c42780e1bb5b24e0ea995d sourceProgramParseDefinition 24be4c47296f1edc799b9d4441368a8ea8a7982a83dcba4023d7905b9a78a640 +pin source_program 447aa7d321344146772a2693e83b2ab87a0058e281c42780e1bb5b24e0ea995d sourceProgramParseTokens 39f6483fc0ce4411b2c50183f0f949774da7ff4aa1644326bf42a470f412adba +pin source_program 447aa7d321344146772a2693e83b2ab87a0058e281c42780e1bb5b24e0ea995d parseGateProgram e4909797e050abb0cf732dde9df2f5750ca081f6f6b8414d9c8e9bb1c9aed916 +pin source_order 1d55b1616e892be989d2c987099c84bef61686fc67f6a3eb5b1a373626b0ca5e sourceFindDefinition 5efe7dbc0c5c30879cb48bce9fe264c98d78e10e4cc580d3215a4edc1764d75e +pin source_order 1d55b1616e892be989d2c987099c84bef61686fc67f6a3eb5b1a373626b0ca5e sourceFreeList fbe8d73b53bafa84df8dc6bd56e409fdb96e9216dcbf52890511edea1f49b1cc +pin source_order 1d55b1616e892be989d2c987099c84bef61686fc67f6a3eb5b1a373626b0ca5e sourceFreeEquations 96bb6c7663269b05ee7b0246bc2a0a5073351ee5fe04d63d7dc82f3f1db62366 +pin source_order 1d55b1616e892be989d2c987099c84bef61686fc67f6a3eb5b1a373626b0ca5e sourceFreeOrdinary c8c4a4e006145d3cd8624fb868d49d9344a65e374e630e62077cc7a596abc9e9 +pin source_order 1d55b1616e892be989d2c987099c84bef61686fc67f6a3eb5b1a373626b0ca5e sourceCheckDuplicates 4b54c071a6f0d16e30e22d07371248298a8a252411d3a9813e9932e76007bd37 +pin source_order 1d55b1616e892be989d2c987099c84bef61686fc67f6a3eb5b1a373626b0ca5e sourceCheckNames f256048c32d8c5d715648b9764cf8bf74dca9c71680a1ce7c238097735244be5 +pin source_order 1d55b1616e892be989d2c987099c84bef61686fc67f6a3eb5b1a373626b0ca5e sourceDependencyNames f3d3a13bb8dd33214fdd74056624ee6131d4bcf8ff8aca53b9f5ddafe6f5a6fb +pin source_order 1d55b1616e892be989d2c987099c84bef61686fc67f6a3eb5b1a373626b0ca5e sourceAnalyzeNamesUsing 684cf806677be0243b27511cb27495e44fec00c454ac237485e680c33c26fac4 +pin source_order 1d55b1616e892be989d2c987099c84bef61686fc67f6a3eb5b1a373626b0ca5e sourceOrderCycle 87cea9e188fdd8d18b6edb28e232b54651711fc26f888bf3a740f2a40fab3280 +pin source_order 1d55b1616e892be989d2c987099c84bef61686fc67f6a3eb5b1a373626b0ca5e sourceFreeVisit 0dbb4b01492794b47487359dd28a96d3a90cff2592bcdab4845de2c09d060a6e +pin source_order 1d55b1616e892be989d2c987099c84bef61686fc67f6a3eb5b1a373626b0ca5e sourceFreeNames 7479c1844986e65c98ac51bad32e5e2b640c9a81b9587a38f8cdf229af566841 +pin source_order 1d55b1616e892be989d2c987099c84bef61686fc67f6a3eb5b1a373626b0ca5e sourceCheckDefinitionNames 3839daff2dde826528b0b36b41961a27ae3c47aa1518f07578691b67ca48f359 +pin source_order 1d55b1616e892be989d2c987099c84bef61686fc67f6a3eb5b1a373626b0ca5e sourceCheckFinalNames ba6c234c511ed02f50163cf9e23f5fc139d538e9612170d7c04f46ce3b1aadc3 +pin source_order 1d55b1616e892be989d2c987099c84bef61686fc67f6a3eb5b1a373626b0ca5e sourceDefinitionGraph 93f310d7d9778a9a6671d4079615489a95f0547ba421c1cf2612569a20ed66ee +pin source_order 1d55b1616e892be989d2c987099c84bef61686fc67f6a3eb5b1a373626b0ca5e sourceAnalyzeDefinitionsUsing 82008e01bbf90267ac23e9de505f7ae3dde5582fc0ab60ef6cc7f4ee8026b52a +pin source_order 1d55b1616e892be989d2c987099c84bef61686fc67f6a3eb5b1a373626b0ca5e orderGateProgramUsing 676c9d98da7faf4f44a6bec3032a597b3fc7ded4bdd25b4b620d51ce5d5c1151 +pin source_order 1d55b1616e892be989d2c987099c84bef61686fc67f6a3eb5b1a373626b0ca5e sourceAnalyzeNames 1c942c12c5bb7ac70514d847b6bb88a3f7420d36abbbc64eee264fa4eb042ab7 +pin source_order 1d55b1616e892be989d2c987099c84bef61686fc67f6a3eb5b1a373626b0ca5e sourceAnalyzeDefinitions c8fccb79895d554a71c9200f6b6b808df1bf68a4af68f66bd58a6c369bbe90c5 +pin source_order 1d55b1616e892be989d2c987099c84bef61686fc67f6a3eb5b1a373626b0ca5e orderGateProgram 2ac7d4b29c491ef5340e299365d3649def7ee5d0737e95f8868ed50c1fc89990 +pin source_order 1d55b1616e892be989d2c987099c84bef61686fc67f6a3eb5b1a373626b0ca5e orderGateSource 1ff1b2c433c0eb593d1bf6ff3e7b5b3a6186541d73d3182eb46be94842756a3e +pin source_order 1d55b1616e892be989d2c987099c84bef61686fc67f6a3eb5b1a373626b0ca5e sourceDefinitionIndex f9e761f7078989846db14e1a82d2e4644cfbc02f0147bc4c50a133cc752be205 +pin source_order 1d55b1616e892be989d2c987099c84bef61686fc67f6a3eb5b1a373626b0ca5e sourceAnalyzeIndexedDefinitions 24a89119b63b695942a8e3ce5ec2370a587ae27d9d2628eb6d725f9cfd885a9f +pin source_unit 1e395371289a7c43d4237a30b3a6c186a38039f0b7c9a87f27e64f43f4da90a9 sourceCompileDefinition 2419e4f91a6b79fcde05a6b479bf26c270d331c16fccd0104cf1bba38cdbe35b +pin source_unit 1e395371289a7c43d4237a30b3a6c186a38039f0b7c9a87f27e64f43f4da90a9 sourceCompileOrderedUsing 1c33484341a092e5a11946c39982989b9b4a9024994b07f56df31796aa6d711a +pin source_unit 1e395371289a7c43d4237a30b3a6c186a38039f0b7c9a87f27e64f43f4da90a9 sourceCompileOrderedWith 6e1c008cb41b8e92bde306f177e830b795cd474b04b8601be8c5b9756255739c +pin source_unit 1e395371289a7c43d4237a30b3a6c186a38039f0b7c9a87f27e64f43f4da90a9 sourceCompileOrdered fecbbfc9a00cfffed5cdc944273ff4f039ce1dee30b42ace00d0154d8043dfca +pin source_unit 1e395371289a7c43d4237a30b3a6c186a38039f0b7c9a87f27e64f43f4da90a9 sourceSelectProgram 029245427e9110079106c46ba748f27497befd98c8cca789c1cac1f4c0c8c176 +pin source_unit 1e395371289a7c43d4237a30b3a6c186a38039f0b7c9a87f27e64f43f4da90a9 compileGateProgramOutput 8866b60973261b020a2168dcb21ec36c5cf33d56cdc4ae34c69670484f292d5d +pin source_unit 1e395371289a7c43d4237a30b3a6c186a38039f0b7c9a87f27e64f43f4da90a9 compileSource c68654175310382f101df5f71eb91918ad7706d23f767f2b82b80fbf6da91b4c +pin source_unit 1e395371289a7c43d4237a30b3a6c186a38039f0b7c9a87f27e64f43f4da90a9 sourceModuleCheckShadows 5e20d0bc192e9dbbf8f52611199ae83e9468264ddd19bd8e48ec6135aea762da +pin source_unit 1e395371289a7c43d4237a30b3a6c186a38039f0b7c9a87f27e64f43f4da90a9 compileModuleDefinitionsUsing 2049c1bb989c1363e9e1b3d9b187a269b583c62d7c91f7d84eeb844345b6b00e +pin source_unit 1e395371289a7c43d4237a30b3a6c186a38039f0b7c9a87f27e64f43f4da90a9 compileModuleDefinitionsWith f707d378941e819b23bb6c89f4836694b7b8adab463886a658c10b3ca11b6cd0 +pin source_unit 1e395371289a7c43d4237a30b3a6c186a38039f0b7c9a87f27e64f43f4da90a9 sourceCompileStableModuleProgram eb90fba935375a1a2ee20867ed83fbf9919c2f81d2f40c11a4f3b247ffa250a0 +pin source_unit 1e395371289a7c43d4237a30b3a6c186a38039f0b7c9a87f27e64f43f4da90a9 compileModuleDefinitions 2e876c8a00018bd13f9036e51289d789e66cc9bc642c9e7a5fdd008f06645f7b +pin source_unit 1e395371289a7c43d4237a30b3a6c186a38039f0b7c9a87f27e64f43f4da90a9 compileStableModuleDefinitions 9823ea3f695a1910ad8ba3917bb0986bcad9f8452c65ce0a43b2a5871d36000d +pin source_unit 1e395371289a7c43d4237a30b3a6c186a38039f0b7c9a87f27e64f43f4da90a9 compileGateProgram a3210cdca9869ca2b9d267b18f94c4f78519734ec2f7c6198c2816c7aea4d82e pin source_staging_experiment db8e78afce2dadd987a2e7840b1107da75d3cc9c4ac3e5cd217cf0bc2ff00790 stageBranch 908f3ee4663ce2c6a1641062e208ab3c7d8ede308ea2f32f07bfa82db228764e pin source_staging_experiment db8e78afce2dadd987a2e7840b1107da75d3cc9c4ac3e5cd217cf0bc2ff00790 stageRecur ccf9a3a4054b1f3f01116b38541df104b4e0331db604ac3803e2fef946a2a2b3 pin source_staging_experiment db8e78afce2dadd987a2e7840b1107da75d3cc9c4ac3e5cd217cf0bc2ff00790 stageShift_ 1999630276632afabd003628fb5f1b2b95603ce7f9dbab1c02de318283f304ff diff --git a/test/fixtures/support-receipts/source_staged_list_experiment.receipt b/test/fixtures/support-receipts/source_staged_list_experiment.receipt @@ -1,13 +1,13 @@ arboricx.build-receipt.v1 source 179aa28c5e59df55dc1fe9abdf616b509e8f6cb485ba5e615d956aadfd1d4a54 -compiler 8d05a27a702067eb242de35e1d92ff1bc0255eed9d9baf1640f1255b2ea43475 +compiler 7feafa413be4da75dcd0218795679065bf5b6894f022e2eb044c0a0ba827eb86 options 307cf2eafa67562f5c3a6d4555c1fc1ccb9b91f43d0b74d564f5aa0bb73ffd0f output c1c062475b966bd6adae0148db1751959400f59ba73c6f84ca0e561599639e98 -local prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 9c6504f5a10a82b2718c956a5ee5a52844e44a045796ef027a6fa86def7593c5 -local parser 14282088469cc420dd014700da06998f6bb8dcf990fc885a464c0a1e1858e20d c1fbf55dfd94f137ff11675c9aa7bf817414b94d94f4eff7cfe03676f2de4630 -local source_core 83e1dc8052f806b19ebc737998bbdfff23211b23a6bbe2ae6adbede8ad1652a2 1d87e9fa739e2127421a11a5f2a96e49f9a202a796ba3667317c67f65182cdeb -local source_pattern d14232cb623da7a59883ae5e0c773fa71037a887a7dcf3352e48cc8dff421123 a34972fddfb26db87099ed479a0852a49b569411f44a1c436bf16a7e3acbd129 -local source_staging_experiment db8e78afce2dadd987a2e7840b1107da75d3cc9c4ac3e5cd217cf0bc2ff00790 796c51b29737f2dcaddbd54738014d1b3e97aba4630696c26290a9eac8c119c9 +local prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 fb089d73a8923bb5211af6a7f93025c268745660ace4a6c89a38bd6e89f218f8 +local parser 14282088469cc420dd014700da06998f6bb8dcf990fc885a464c0a1e1858e20d 271e1e5144ed8b4eecc317cf9f8a952f07f83fb62a2966ce5e0437011c508763 +local source_core 83e1dc8052f806b19ebc737998bbdfff23211b23a6bbe2ae6adbede8ad1652a2 d0396c92042ff414851f64a8f42edc4ce54d117c9a6a63f6a0d0a37c25214b69 +local source_pattern d14232cb623da7a59883ae5e0c773fa71037a887a7dcf3352e48cc8dff421123 521ec559ce57747ad0349c6fbfa2d3ce3c29c42c9bb1d33177eb38cdcd4642b2 +local source_staging_experiment db8e78afce2dadd987a2e7840b1107da75d3cc9c4ac3e5cd217cf0bc2ff00790 0d2b58ab1f75f21368a5d5cabdfb3466e5d521bac9b18aa6c6ac07626ab9ebbc pin prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 false 6f93378feaa8bf5ab7cefc071175a654c871bfd53f165d7d96795fb2b38483f1 pin prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 _ 6f93378feaa8bf5ab7cefc071175a654c871bfd53f165d7d96795fb2b38483f1 pin prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 true 2177bae1081d12a6f888b5efc89a27616aaf6e5df019f156a0f3d4c2d14bb270 diff --git a/test/fixtures/support-receipts/source_staging_experiment.receipt b/test/fixtures/support-receipts/source_staging_experiment.receipt @@ -1,11 +1,11 @@ arboricx.build-receipt.v1 source 1993cce4a57c4225bf46d355be9436b48ceeffbcaddffd2f5e8184550f0fe7b4 -compiler 8d05a27a702067eb242de35e1d92ff1bc0255eed9d9baf1640f1255b2ea43475 +compiler 7feafa413be4da75dcd0218795679065bf5b6894f022e2eb044c0a0ba827eb86 options 307cf2eafa67562f5c3a6d4555c1fc1ccb9b91f43d0b74d564f5aa0bb73ffd0f output db8e78afce2dadd987a2e7840b1107da75d3cc9c4ac3e5cd217cf0bc2ff00790 -local prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 9c6504f5a10a82b2718c956a5ee5a52844e44a045796ef027a6fa86def7593c5 -local source_core 83e1dc8052f806b19ebc737998bbdfff23211b23a6bbe2ae6adbede8ad1652a2 1d87e9fa739e2127421a11a5f2a96e49f9a202a796ba3667317c67f65182cdeb -local source_pattern d14232cb623da7a59883ae5e0c773fa71037a887a7dcf3352e48cc8dff421123 a34972fddfb26db87099ed479a0852a49b569411f44a1c436bf16a7e3acbd129 +local prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 fb089d73a8923bb5211af6a7f93025c268745660ace4a6c89a38bd6e89f218f8 +local source_core 83e1dc8052f806b19ebc737998bbdfff23211b23a6bbe2ae6adbede8ad1652a2 d0396c92042ff414851f64a8f42edc4ce54d117c9a6a63f6a0d0a37c25214b69 +local source_pattern d14232cb623da7a59883ae5e0c773fa71037a887a7dcf3352e48cc8dff421123 521ec559ce57747ad0349c6fbfa2d3ce3c29c42c9bb1d33177eb38cdcd4642b2 pin prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 false 6f93378feaa8bf5ab7cefc071175a654c871bfd53f165d7d96795fb2b38483f1 pin prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 _ 6f93378feaa8bf5ab7cefc071175a654c871bfd53f165d7d96795fb2b38483f1 pin prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 true 2177bae1081d12a6f888b5efc89a27616aaf6e5df019f156a0f3d4c2d14bb270 diff --git a/test/fixtures/support-receipts/tests_stagedConditionalRunner.manifest b/test/fixtures/support-receipts/tests_stagedConditionalRunner.manifest @@ -1,5 +1,5 @@ arboricx.module-manifest.v1 -export matches arboricx.indexed-tree.v1 dcf343bc749cd1ebfad679b137b92e79305d97a3f3063d71397da33349da4e5a arboricx.abi.tree.v1 +export matches arboricx.indexed-tree.v1 4cd2448e4c1cd0435fb1a819f99da53486d9987268ac621eccee775715dd541e arboricx.abi.tree.v1 export matchesPublished arboricx.indexed-tree.v1 0bb58fa749dc82794feb174db5b9c813fca10a1c55c3b7e75d87aed90eda17ca arboricx.abi.tree.v1 -export ordinarySame arboricx.indexed-tree.v1 0eedcbbe17481bcb5ddc24918b5f33ce9e9ff23c83c0085d9657a9dae7156652 arboricx.abi.tree.v1 -export constructionReady arboricx.indexed-tree.v1 6e394fe7b56ecc3fc0e1613de9b348a9a04d2ff5193d42b830b78d8c432b2085 arboricx.abi.tree.v1 +export ordinarySame arboricx.indexed-tree.v1 15dd357120020306be794d3c0e04a2d8ca56319c8c985e94ed4f5ab2578d082e arboricx.abi.tree.v1 +export constructionReady arboricx.indexed-tree.v1 8b6fee260e6d89e2d02698a3b1129d14a2913293fdc7c7780ea420073b754f5f arboricx.abi.tree.v1 diff --git a/test/fixtures/support-receipts/tests_stagedConditionalRunner.receipt b/test/fixtures/support-receipts/tests_stagedConditionalRunner.receipt @@ -1,13 +1,13 @@ arboricx.build-receipt.v1 source 9f9f7c11a470595fa8d92933219bdb7653bc5ff647eff7afc352504e0c29eb66 -compiler 8d05a27a702067eb242de35e1d92ff1bc0255eed9d9baf1640f1255b2ea43475 +compiler 7feafa413be4da75dcd0218795679065bf5b6894f022e2eb044c0a0ba827eb86 options 307cf2eafa67562f5c3a6d4555c1fc1ccb9b91f43d0b74d564f5aa0bb73ffd0f -output bc09e8577e01668a817ba771392e3000d8cfd306ed397c5589384260f2b17a4a -local prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 9c6504f5a10a82b2718c956a5ee5a52844e44a045796ef027a6fa86def7593c5 -local parser 14282088469cc420dd014700da06998f6bb8dcf990fc885a464c0a1e1858e20d c1fbf55dfd94f137ff11675c9aa7bf817414b94d94f4eff7cfe03676f2de4630 -local source_resolve 9c0daa3e05f1f7dfad613037e5dea3828aa14ddd509624c69c339d8ff089977a 949c1c3a35bc6d33fade31a73add20aa3396ec81c3c6763f0caba6a618fbd331 -local source_unit 908400c8137869ba4313fa875fc2bf87db8a736debddd5bf2a40d6147295158f 4e0c422e94ca2d689741a4b7859102a6744c5f13a1c9d197b8e399a7e58a3a38 -local source_staged_conditional_experiment f09eb17db370560404991726c7961b9d05992077beb54051bb0dac2e9f54c57c cdd45cfae23ba10e754dcb47928271e7291c1ca99c02b10163d069c3aa34cc40 +output 5ade29f516881ba475705960a54294300c1ae56a50296d1c6cec2a8f8478f159 +local prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 fb089d73a8923bb5211af6a7f93025c268745660ace4a6c89a38bd6e89f218f8 +local parser 14282088469cc420dd014700da06998f6bb8dcf990fc885a464c0a1e1858e20d 271e1e5144ed8b4eecc317cf9f8a952f07f83fb62a2966ce5e0437011c508763 +local source_resolve ed934dd01014852aa2e3734444538d0c0807da41bc661cd3965eca6ed16ceffe 048bb0fbeeb4817c58c790cc7bcb1a318d66a21939933e140aec025152ddf624 +local source_unit 1e395371289a7c43d4237a30b3a6c186a38039f0b7c9a87f27e64f43f4da90a9 91f3faa6fafd792dffefedd83caa74b5b3b0af1618a8648aa0e75eacf650db45 +local source_staged_conditional_experiment 43113de593d0e70f3f94e8dafff0600d6f60b5a011d80cdc6e84166fed29b682 5ae47c992ad2130d251d8767c1b1136b57c66cf64a95facce55f409b8279f8ec pin prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 false 6f93378feaa8bf5ab7cefc071175a654c871bfd53f165d7d96795fb2b38483f1 pin prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 _ 6f93378feaa8bf5ab7cefc071175a654c871bfd53f165d7d96795fb2b38483f1 pin prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 true 2177bae1081d12a6f888b5efc89a27616aaf6e5df019f156a0f3d4c2d14bb270 @@ -217,67 +217,67 @@ pin parser 14282088469cc420dd014700da06998f6bb8dcf990fc885a464c0a1e1858e20d pars pin parser 14282088469cc420dd014700da06998f6bb8dcf990fc885a464c0a1e1858e20d parserBetween 2958c93c24534b1964490cdd7b64dae6402779c4bab79b50514eabc557ad8dbb pin parser 14282088469cc420dd014700da06998f6bb8dcf990fc885a464c0a1e1858e20d parserSepBy1 e757fa9298d5910de650ef45cb9198c0db0af29fef7df382eb9ff087f1f64a0e pin parser 14282088469cc420dd014700da06998f6bb8dcf990fc885a464c0a1e1858e20d parserSepBy f75b27a8b18376e9c346fb6443028fabf03b713f7b111ca4daee037b300d70af -pin source_resolve 9c0daa3e05f1f7dfad613037e5dea3828aa14ddd509624c69c339d8ff089977a sourceFindBinder 16d2b5adac452f490f7d67c9a60871ce419747e65e2499128bdbd1f769fc5bd5 -pin source_resolve 9c0daa3e05f1f7dfad613037e5dea3828aa14ddd509624c69c339d8ff089977a sourceFindExternal cbca0a8f60da95678fd13835871910a93b6cfe5efa53eed964d223a5f7e6607f -pin source_resolve 9c0daa3e05f1f7dfad613037e5dea3828aa14ddd509624c69c339d8ff089977a sourceResolveNameWithLookup f036dddc3bd3aaf48d3d9e08ddd7685bcc90465d2b886fccdfed6e9e1d7ab316 -pin source_resolve 9c0daa3e05f1f7dfad613037e5dea3828aa14ddd509624c69c339d8ff089977a sourceResolveApply 1caa7453ed94a7d8f8d7b62ae1c2fb85c80bed0826285866029efbf889799fb1 -pin source_resolve 9c0daa3e05f1f7dfad613037e5dea3828aa14ddd509624c69c339d8ff089977a sourceResolvePipe 8b9a2d54d1dadbe5be89c00648c61b48012aa9fc60fb21e6077d3a79ec05b42b -pin source_resolve 9c0daa3e05f1f7dfad613037e5dea3828aa14ddd509624c69c339d8ff089977a sourceResolveLambda 7f78e8c73bd6521f30a4a8133396bf708d7c7da7c693e0b0faf14348b44d1e91 -pin source_resolve 9c0daa3e05f1f7dfad613037e5dea3828aa14ddd509624c69c339d8ff089977a sourceResolveGroup a9df39db96d81db0a444617bfb4c96ca1f8b05767fd52a207aeb94af2139dbee -pin source_resolve 9c0daa3e05f1f7dfad613037e5dea3828aa14ddd509624c69c339d8ff089977a sourceResolveDo 75bb3992b8741039e782228b8a469005a60329cac52b53c399b8b695f051ead0 -pin source_resolve 9c0daa3e05f1f7dfad613037e5dea3828aa14ddd509624c69c339d8ff089977a sourceResolveLocal fa2c54492fc1714eac73f279a774fb1fc23906d69249367585b9dfab49942732 -pin source_resolve 9c0daa3e05f1f7dfad613037e5dea3828aa14ddd509624c69c339d8ff089977a sourceResolveElements f97597a53de0ffec5a1bf4667c442c7f78ed1cd323fd95e338fb3a8597db4a9a -pin source_resolve 9c0daa3e05f1f7dfad613037e5dea3828aa14ddd509624c69c339d8ff089977a sourceResolveList e4fbbe44d1618c6bfb42da16ca0ba88f85e56f69e50f7861e74b4e9f734eb839 -pin source_resolve 9c0daa3e05f1f7dfad613037e5dea3828aa14ddd509624c69c339d8ff089977a sourceResolvePatternNode 5e7fbe1cc96788a12687ef518a3ffa6844365fc1ee4be4670ac013cf92556fe6 -pin source_resolve 9c0daa3e05f1f7dfad613037e5dea3828aa14ddd509624c69c339d8ff089977a sourceResolvePatternChild 4636c1c61a8770cafce1eb84b3eadf13cd4954cd89faf27daa7098b394082135 -pin source_resolve 9c0daa3e05f1f7dfad613037e5dea3828aa14ddd509624c69c339d8ff089977a sourceResolvePatternLookup e1791322206fc3d69693e6af9bf6e973fd07048fea6b15da1c5b490ab40e7644 -pin source_resolve 9c0daa3e05f1f7dfad613037e5dea3828aa14ddd509624c69c339d8ff089977a sourceResolveEquationLookup 468a8669188c36d80484b8c8ac11e3cc7c59de389ff4bb00b4d17e42afd3441a -pin source_resolve 9c0daa3e05f1f7dfad613037e5dea3828aa14ddd509624c69c339d8ff089977a sourceResolveEquationsWithLookup 8877f3432b0fbc1b2eb22417bae5b9308a17bfecdee54ccefb2e52713733072b -pin source_resolve 9c0daa3e05f1f7dfad613037e5dea3828aa14ddd509624c69c339d8ff089977a sourceResolveOrdinaryWithLookup 3112ad948fc68a696f95abf5fd75aa6bf06b6330dc4125671248bae4bc495cd8 -pin source_resolve 9c0daa3e05f1f7dfad613037e5dea3828aa14ddd509624c69c339d8ff089977a sourceResolveCase c41248bcf41a4c8922a97df4003aa3ec4b0d1c266fd0ef46bc42658c1b0dd385 -pin source_resolve 9c0daa3e05f1f7dfad613037e5dea3828aa14ddd509624c69c339d8ff089977a sourceResolveRec e8d80671a673ceed4e6af4277e7c21ce9c6aabf59e9e39c1410d65b23095a0ba -pin source_resolve 9c0daa3e05f1f7dfad613037e5dea3828aa14ddd509624c69c339d8ff089977a sourceResolveStableWithLookup 1a3e6c72ce291ea2100a1a8dd35fa91661191e4cdf0560e2af85f0ba809b6b47 -pin source_resolve 9c0daa3e05f1f7dfad613037e5dea3828aa14ddd509624c69c339d8ff089977a resolveStableGateAstWithLookup 1423ad35df275fb487bdfc76553c080fe10fdb661a8fa1aad812d10894cdb8d5 -pin source_resolve 9c0daa3e05f1f7dfad613037e5dea3828aa14ddd509624c69c339d8ff089977a sourceResolveName 85b9b73aba66c084cf62055d96e019bb79330027b9bd642241ce36daf91c0f44 -pin source_resolve 9c0daa3e05f1f7dfad613037e5dea3828aa14ddd509624c69c339d8ff089977a sourceResolvePattern ba0115eccae369a3b66ddf66836878d4c7df7f7895c8e6c6091e45ed18375b5a -pin source_resolve 9c0daa3e05f1f7dfad613037e5dea3828aa14ddd509624c69c339d8ff089977a sourceResolveEquation 0023162f47033079124407e44f201a5c56fe0317a8e35d59f435a85768144ec2 -pin source_resolve 9c0daa3e05f1f7dfad613037e5dea3828aa14ddd509624c69c339d8ff089977a sourceResolveEquationsWith 2669f6a770d3e73d46419bb7f2bc6333bf7e8fb4356e66b58a4e111710dcf563 -pin source_resolve 9c0daa3e05f1f7dfad613037e5dea3828aa14ddd509624c69c339d8ff089977a sourceResolveEquations 1f469dfa983101f1507147b4f3fda04d46f2fb3cab0743f7efce4df031a8db05 -pin source_resolve 9c0daa3e05f1f7dfad613037e5dea3828aa14ddd509624c69c339d8ff089977a sourceResolveOrdinary b93dae0ce7ed05bec58e51f2b3c0334ef4284c0af084b9a61f9d8bf97281c0e8 -pin source_resolve 9c0daa3e05f1f7dfad613037e5dea3828aa14ddd509624c69c339d8ff089977a sourceResolve 5eefd8d756aa966f902e7c07301045ace247135dbbb6b442d31990b09384f60a -pin source_resolve 9c0daa3e05f1f7dfad613037e5dea3828aa14ddd509624c69c339d8ff089977a resolveGateAst 2af1f88c9eb28b30395edcadba96cbb7e3d12f5d5649eb27e2d48f52c2fd8366 -pin source_resolve 9c0daa3e05f1f7dfad613037e5dea3828aa14ddd509624c69c339d8ff089977a resolveGateSource 1d42e746622951873835ad804eee6abdda09b7bea8456edde5477398bdc202ca -pin source_resolve 9c0daa3e05f1f7dfad613037e5dea3828aa14ddd509624c69c339d8ff089977a sourceResolveStable 676e75a8c97a32e544f55fc797a60b0838b7cfccca3d5427ebbdb501fdef0273 -pin source_resolve 9c0daa3e05f1f7dfad613037e5dea3828aa14ddd509624c69c339d8ff089977a resolveStableGateAst 12e2a91aa4293614ac1b3a2d4a11db8d4f4049e5cd269f4fa79d152c44accb4c -pin source_unit 908400c8137869ba4313fa875fc2bf87db8a736debddd5bf2a40d6147295158f sourceCompileDefinition 2419e4f91a6b79fcde05a6b479bf26c270d331c16fccd0104cf1bba38cdbe35b -pin source_unit 908400c8137869ba4313fa875fc2bf87db8a736debddd5bf2a40d6147295158f sourceCompileOrderedUsing 1c33484341a092e5a11946c39982989b9b4a9024994b07f56df31796aa6d711a -pin source_unit 908400c8137869ba4313fa875fc2bf87db8a736debddd5bf2a40d6147295158f sourceCompileOrderedWith 6e1c008cb41b8e92bde306f177e830b795cd474b04b8601be8c5b9756255739c -pin source_unit 908400c8137869ba4313fa875fc2bf87db8a736debddd5bf2a40d6147295158f sourceCompileOrdered fecbbfc9a00cfffed5cdc944273ff4f039ce1dee30b42ace00d0154d8043dfca -pin source_unit 908400c8137869ba4313fa875fc2bf87db8a736debddd5bf2a40d6147295158f sourceSelectProgram 029245427e9110079106c46ba748f27497befd98c8cca789c1cac1f4c0c8c176 -pin source_unit 908400c8137869ba4313fa875fc2bf87db8a736debddd5bf2a40d6147295158f compileGateProgramOutput fb47d9a3f1b5a6a8dca60bacbff6b211f3d75f92eb06ddb14e7681e1dff5b5b4 -pin source_unit 908400c8137869ba4313fa875fc2bf87db8a736debddd5bf2a40d6147295158f compileSource 85fd162127f935e69033f29c251c00214f3e13bbc11c3ff71446146d30ac0d34 -pin source_unit 908400c8137869ba4313fa875fc2bf87db8a736debddd5bf2a40d6147295158f sourceModuleCheckShadows 5e20d0bc192e9dbbf8f52611199ae83e9468264ddd19bd8e48ec6135aea762da -pin source_unit 908400c8137869ba4313fa875fc2bf87db8a736debddd5bf2a40d6147295158f compileModuleDefinitionsUsing 722c48fffcc7cf2f02ee8a23394457858ff629c5f32bfc8238982e58cee7d0b4 -pin source_unit 908400c8137869ba4313fa875fc2bf87db8a736debddd5bf2a40d6147295158f compileModuleDefinitionsWith 522622d97e96494ac1fcb0ec96d6fdeaaded3a8d88927f636a4e57a88c31ea4d -pin source_unit 908400c8137869ba4313fa875fc2bf87db8a736debddd5bf2a40d6147295158f sourceCompileStableModuleProgram eb90fba935375a1a2ee20867ed83fbf9919c2f81d2f40c11a4f3b247ffa250a0 -pin source_unit 908400c8137869ba4313fa875fc2bf87db8a736debddd5bf2a40d6147295158f compileModuleDefinitions e25116ba21e0546f004c9a4a46e98d93b32bd078d0f91d798f2b49643a45a964 -pin source_unit 908400c8137869ba4313fa875fc2bf87db8a736debddd5bf2a40d6147295158f compileStableModuleDefinitions ac6fae6578fe59bc00d3f03d364fd7f61c7092b0a4e38176e2cb421ab954acb3 -pin source_unit 908400c8137869ba4313fa875fc2bf87db8a736debddd5bf2a40d6147295158f compileGateProgram d52931adde1d21f7a5693ced750b1fd2f88a20705a0e7350532fd1b01ee00d2d -pin source_staged_conditional_experiment f09eb17db370560404991726c7961b9d05992077beb54051bb0dac2e9f54c57c stagedIfMarker 4336ac112624858b71703feb30921c5f5619b80a3ee3258b51b214262e09b678 -pin source_staged_conditional_experiment f09eb17db370560404991726c7961b9d05992077beb54051bb0dac2e9f54c57c stagedIfBinding 87a7ecbeb4bbb402af75e8807f727e222e49e987edd609dd05c23210607b2058 -pin source_staged_conditional_experiment f09eb17db370560404991726c7961b9d05992077beb54051bb0dac2e9f54c57c stagedSourceBindings 85cb24a83b184c207ed31d1ecad287a72932c67b21af35c286782474ee76f567 -pin source_staged_conditional_experiment f09eb17db370560404991726c7961b9d05992077beb54051bb0dac2e9f54c57c stagedSourceMarker? da952a9e51c47278d3a74790433f99c53f1163b495ee3238f451b1420f5b7286 -pin source_staged_conditional_experiment f09eb17db370560404991726c7961b9d05992077beb54051bb0dac2e9f54c57c stagedIfMarker? 94702d68fe5ff38412353aac7d16218769a4b2e011cd48d3146f77bcaead7c89 -pin source_staged_conditional_experiment f09eb17db370560404991726c7961b9d05992077beb54051bb0dac2e9f54c57c stagedIfError 888e887eb39c0050e38545e346d8073fa608b4d5d5b2c49c537e9748e9ee134d -pin source_staged_conditional_experiment f09eb17db370560404991726c7961b9d05992077beb54051bb0dac2e9f54c57c stagedIfFirst 30c2bdd2fed3976f2e3489cf4a1c75620a928c0573d33f5fe773f1893b7522c4 -pin source_staged_conditional_experiment f09eb17db370560404991726c7961b9d05992077beb54051bb0dac2e9f54c57c stagedIfSecond 9e2467a4d8a331e3aa2d39d0f88409c8e4491b80cf1f1243ea7147168c9c29a3 -pin source_staged_conditional_experiment f09eb17db370560404991726c7961b9d05992077beb54051bb0dac2e9f54c57c stagedIfCall f7b420556abfa57835ebbe972deaabcbc4efb9f51dd0b70212d0ebab02af5645 -pin source_staged_conditional_experiment f09eb17db370560404991726c7961b9d05992077beb54051bb0dac2e9f54c57c stagedIfChildren_ 1ca3a13b9ceb79f43250e29f55348d287239234fa26c4ba9c0073830d3dc8dc3 -pin source_staged_conditional_experiment f09eb17db370560404991726c7961b9d05992077beb54051bb0dac2e9f54c57c stagedIfChildren a79b2f8e8a771f7e5d16618b63a011625d3bbf1e0ec149475117a76f6cb51402 -pin source_staged_conditional_experiment f09eb17db370560404991726c7961b9d05992077beb54051bb0dac2e9f54c57c stagedIfRewrite_ 828305362809aa1bacbeaf7fed5015f13aaac22afaa8cfddf2af67826ca6e05e -pin source_staged_conditional_experiment f09eb17db370560404991726c7961b9d05992077beb54051bb0dac2e9f54c57c stagedIfRewrite bd5f717d41b60e128e9a363fa9a9bf08de8409d4c04dd70da9dca42dc7ecf4a8 -pin source_staged_conditional_experiment f09eb17db370560404991726c7961b9d05992077beb54051bb0dac2e9f54c57c stagedIfCompileCore 14dd36f6b14ad7e956bd28d268c64b5aa112e7060a9774ebc567faf884dad07a -pin source_staged_conditional_experiment f09eb17db370560404991726c7961b9d05992077beb54051bb0dac2e9f54c57c stagedIfEnvironment_ c329b13543ee06e1957760be25248796878ef0361d2a226bd9ede652441f6e75 -pin source_staged_conditional_experiment f09eb17db370560404991726c7961b9d05992077beb54051bb0dac2e9f54c57c stagedIfEnvironment faf9c6d774ed996242fa59b8476f8c4c53eb61f23b0f062f8245850632c261d4 -pin source_staged_conditional_experiment f09eb17db370560404991726c7961b9d05992077beb54051bb0dac2e9f54c57c stagedIfOrdered_ 4a33b3e71f16dc91bfa270e91b89420050138e6aec74f523b8027faeddd2c274 -pin source_staged_conditional_experiment f09eb17db370560404991726c7961b9d05992077beb54051bb0dac2e9f54c57c stagedIfCompileDefinitions 6731074bbdeb73587434840c1adf1ab395627f45e094871bcc0f6607c2231092 +pin source_resolve ed934dd01014852aa2e3734444538d0c0807da41bc661cd3965eca6ed16ceffe sourceFindBinder 16d2b5adac452f490f7d67c9a60871ce419747e65e2499128bdbd1f769fc5bd5 +pin source_resolve ed934dd01014852aa2e3734444538d0c0807da41bc661cd3965eca6ed16ceffe sourceFindExternal cbca0a8f60da95678fd13835871910a93b6cfe5efa53eed964d223a5f7e6607f +pin source_resolve ed934dd01014852aa2e3734444538d0c0807da41bc661cd3965eca6ed16ceffe sourceResolveNameWithLookup f036dddc3bd3aaf48d3d9e08ddd7685bcc90465d2b886fccdfed6e9e1d7ab316 +pin source_resolve ed934dd01014852aa2e3734444538d0c0807da41bc661cd3965eca6ed16ceffe sourceResolveApply 1caa7453ed94a7d8f8d7b62ae1c2fb85c80bed0826285866029efbf889799fb1 +pin source_resolve ed934dd01014852aa2e3734444538d0c0807da41bc661cd3965eca6ed16ceffe sourceResolvePipe 8b9a2d54d1dadbe5be89c00648c61b48012aa9fc60fb21e6077d3a79ec05b42b +pin source_resolve ed934dd01014852aa2e3734444538d0c0807da41bc661cd3965eca6ed16ceffe sourceResolveLambda 7f78e8c73bd6521f30a4a8133396bf708d7c7da7c693e0b0faf14348b44d1e91 +pin source_resolve ed934dd01014852aa2e3734444538d0c0807da41bc661cd3965eca6ed16ceffe sourceResolveGroup a9df39db96d81db0a444617bfb4c96ca1f8b05767fd52a207aeb94af2139dbee +pin source_resolve ed934dd01014852aa2e3734444538d0c0807da41bc661cd3965eca6ed16ceffe sourceResolveDo 75bb3992b8741039e782228b8a469005a60329cac52b53c399b8b695f051ead0 +pin source_resolve ed934dd01014852aa2e3734444538d0c0807da41bc661cd3965eca6ed16ceffe sourceResolveLocal fa2c54492fc1714eac73f279a774fb1fc23906d69249367585b9dfab49942732 +pin source_resolve ed934dd01014852aa2e3734444538d0c0807da41bc661cd3965eca6ed16ceffe sourceResolveElements f97597a53de0ffec5a1bf4667c442c7f78ed1cd323fd95e338fb3a8597db4a9a +pin source_resolve ed934dd01014852aa2e3734444538d0c0807da41bc661cd3965eca6ed16ceffe sourceResolveList e4fbbe44d1618c6bfb42da16ca0ba88f85e56f69e50f7861e74b4e9f734eb839 +pin source_resolve ed934dd01014852aa2e3734444538d0c0807da41bc661cd3965eca6ed16ceffe sourceResolvePatternNode 5e7fbe1cc96788a12687ef518a3ffa6844365fc1ee4be4670ac013cf92556fe6 +pin source_resolve ed934dd01014852aa2e3734444538d0c0807da41bc661cd3965eca6ed16ceffe sourceResolvePatternChild 4636c1c61a8770cafce1eb84b3eadf13cd4954cd89faf27daa7098b394082135 +pin source_resolve ed934dd01014852aa2e3734444538d0c0807da41bc661cd3965eca6ed16ceffe sourceResolvePatternLookup e1791322206fc3d69693e6af9bf6e973fd07048fea6b15da1c5b490ab40e7644 +pin source_resolve ed934dd01014852aa2e3734444538d0c0807da41bc661cd3965eca6ed16ceffe sourceResolveEquationLookup 468a8669188c36d80484b8c8ac11e3cc7c59de389ff4bb00b4d17e42afd3441a +pin source_resolve ed934dd01014852aa2e3734444538d0c0807da41bc661cd3965eca6ed16ceffe sourceResolveEquationsWithLookup 8877f3432b0fbc1b2eb22417bae5b9308a17bfecdee54ccefb2e52713733072b +pin source_resolve ed934dd01014852aa2e3734444538d0c0807da41bc661cd3965eca6ed16ceffe sourceResolveOrdinaryWithLookup 3112ad948fc68a696f95abf5fd75aa6bf06b6330dc4125671248bae4bc495cd8 +pin source_resolve ed934dd01014852aa2e3734444538d0c0807da41bc661cd3965eca6ed16ceffe sourceResolveCase c41248bcf41a4c8922a97df4003aa3ec4b0d1c266fd0ef46bc42658c1b0dd385 +pin source_resolve ed934dd01014852aa2e3734444538d0c0807da41bc661cd3965eca6ed16ceffe sourceResolveRec e8d80671a673ceed4e6af4277e7c21ce9c6aabf59e9e39c1410d65b23095a0ba +pin source_resolve ed934dd01014852aa2e3734444538d0c0807da41bc661cd3965eca6ed16ceffe sourceResolveStableWithLookup 1a3e6c72ce291ea2100a1a8dd35fa91661191e4cdf0560e2af85f0ba809b6b47 +pin source_resolve ed934dd01014852aa2e3734444538d0c0807da41bc661cd3965eca6ed16ceffe resolveStableGateAstWithLookup 1423ad35df275fb487bdfc76553c080fe10fdb661a8fa1aad812d10894cdb8d5 +pin source_resolve ed934dd01014852aa2e3734444538d0c0807da41bc661cd3965eca6ed16ceffe sourceResolveName 85b9b73aba66c084cf62055d96e019bb79330027b9bd642241ce36daf91c0f44 +pin source_resolve ed934dd01014852aa2e3734444538d0c0807da41bc661cd3965eca6ed16ceffe sourceResolvePattern ba0115eccae369a3b66ddf66836878d4c7df7f7895c8e6c6091e45ed18375b5a +pin source_resolve ed934dd01014852aa2e3734444538d0c0807da41bc661cd3965eca6ed16ceffe sourceResolveEquation 0023162f47033079124407e44f201a5c56fe0317a8e35d59f435a85768144ec2 +pin source_resolve ed934dd01014852aa2e3734444538d0c0807da41bc661cd3965eca6ed16ceffe sourceResolveEquationsWith 2669f6a770d3e73d46419bb7f2bc6333bf7e8fb4356e66b58a4e111710dcf563 +pin source_resolve ed934dd01014852aa2e3734444538d0c0807da41bc661cd3965eca6ed16ceffe sourceResolveEquations 1f469dfa983101f1507147b4f3fda04d46f2fb3cab0743f7efce4df031a8db05 +pin source_resolve ed934dd01014852aa2e3734444538d0c0807da41bc661cd3965eca6ed16ceffe sourceResolveOrdinary b93dae0ce7ed05bec58e51f2b3c0334ef4284c0af084b9a61f9d8bf97281c0e8 +pin source_resolve ed934dd01014852aa2e3734444538d0c0807da41bc661cd3965eca6ed16ceffe sourceResolve 5eefd8d756aa966f902e7c07301045ace247135dbbb6b442d31990b09384f60a +pin source_resolve ed934dd01014852aa2e3734444538d0c0807da41bc661cd3965eca6ed16ceffe resolveGateAst 2af1f88c9eb28b30395edcadba96cbb7e3d12f5d5649eb27e2d48f52c2fd8366 +pin source_resolve ed934dd01014852aa2e3734444538d0c0807da41bc661cd3965eca6ed16ceffe resolveGateSource 138aad260f05ee6a126b36912b88865ed270573b3fd936a4c6396a5340bda079 +pin source_resolve ed934dd01014852aa2e3734444538d0c0807da41bc661cd3965eca6ed16ceffe sourceResolveStable 676e75a8c97a32e544f55fc797a60b0838b7cfccca3d5427ebbdb501fdef0273 +pin source_resolve ed934dd01014852aa2e3734444538d0c0807da41bc661cd3965eca6ed16ceffe resolveStableGateAst 12e2a91aa4293614ac1b3a2d4a11db8d4f4049e5cd269f4fa79d152c44accb4c +pin source_unit 1e395371289a7c43d4237a30b3a6c186a38039f0b7c9a87f27e64f43f4da90a9 sourceCompileDefinition 2419e4f91a6b79fcde05a6b479bf26c270d331c16fccd0104cf1bba38cdbe35b +pin source_unit 1e395371289a7c43d4237a30b3a6c186a38039f0b7c9a87f27e64f43f4da90a9 sourceCompileOrderedUsing 1c33484341a092e5a11946c39982989b9b4a9024994b07f56df31796aa6d711a +pin source_unit 1e395371289a7c43d4237a30b3a6c186a38039f0b7c9a87f27e64f43f4da90a9 sourceCompileOrderedWith 6e1c008cb41b8e92bde306f177e830b795cd474b04b8601be8c5b9756255739c +pin source_unit 1e395371289a7c43d4237a30b3a6c186a38039f0b7c9a87f27e64f43f4da90a9 sourceCompileOrdered fecbbfc9a00cfffed5cdc944273ff4f039ce1dee30b42ace00d0154d8043dfca +pin source_unit 1e395371289a7c43d4237a30b3a6c186a38039f0b7c9a87f27e64f43f4da90a9 sourceSelectProgram 029245427e9110079106c46ba748f27497befd98c8cca789c1cac1f4c0c8c176 +pin source_unit 1e395371289a7c43d4237a30b3a6c186a38039f0b7c9a87f27e64f43f4da90a9 compileGateProgramOutput 8866b60973261b020a2168dcb21ec36c5cf33d56cdc4ae34c69670484f292d5d +pin source_unit 1e395371289a7c43d4237a30b3a6c186a38039f0b7c9a87f27e64f43f4da90a9 compileSource c68654175310382f101df5f71eb91918ad7706d23f767f2b82b80fbf6da91b4c +pin source_unit 1e395371289a7c43d4237a30b3a6c186a38039f0b7c9a87f27e64f43f4da90a9 sourceModuleCheckShadows 5e20d0bc192e9dbbf8f52611199ae83e9468264ddd19bd8e48ec6135aea762da +pin source_unit 1e395371289a7c43d4237a30b3a6c186a38039f0b7c9a87f27e64f43f4da90a9 compileModuleDefinitionsUsing 2049c1bb989c1363e9e1b3d9b187a269b583c62d7c91f7d84eeb844345b6b00e +pin source_unit 1e395371289a7c43d4237a30b3a6c186a38039f0b7c9a87f27e64f43f4da90a9 compileModuleDefinitionsWith f707d378941e819b23bb6c89f4836694b7b8adab463886a658c10b3ca11b6cd0 +pin source_unit 1e395371289a7c43d4237a30b3a6c186a38039f0b7c9a87f27e64f43f4da90a9 sourceCompileStableModuleProgram eb90fba935375a1a2ee20867ed83fbf9919c2f81d2f40c11a4f3b247ffa250a0 +pin source_unit 1e395371289a7c43d4237a30b3a6c186a38039f0b7c9a87f27e64f43f4da90a9 compileModuleDefinitions 2e876c8a00018bd13f9036e51289d789e66cc9bc642c9e7a5fdd008f06645f7b +pin source_unit 1e395371289a7c43d4237a30b3a6c186a38039f0b7c9a87f27e64f43f4da90a9 compileStableModuleDefinitions 9823ea3f695a1910ad8ba3917bb0986bcad9f8452c65ce0a43b2a5871d36000d +pin source_unit 1e395371289a7c43d4237a30b3a6c186a38039f0b7c9a87f27e64f43f4da90a9 compileGateProgram a3210cdca9869ca2b9d267b18f94c4f78519734ec2f7c6198c2816c7aea4d82e +pin source_staged_conditional_experiment 43113de593d0e70f3f94e8dafff0600d6f60b5a011d80cdc6e84166fed29b682 stagedIfMarker 4336ac112624858b71703feb30921c5f5619b80a3ee3258b51b214262e09b678 +pin source_staged_conditional_experiment 43113de593d0e70f3f94e8dafff0600d6f60b5a011d80cdc6e84166fed29b682 stagedIfBinding 87a7ecbeb4bbb402af75e8807f727e222e49e987edd609dd05c23210607b2058 +pin source_staged_conditional_experiment 43113de593d0e70f3f94e8dafff0600d6f60b5a011d80cdc6e84166fed29b682 stagedSourceBindings 85cb24a83b184c207ed31d1ecad287a72932c67b21af35c286782474ee76f567 +pin source_staged_conditional_experiment 43113de593d0e70f3f94e8dafff0600d6f60b5a011d80cdc6e84166fed29b682 stagedSourceMarker? da952a9e51c47278d3a74790433f99c53f1163b495ee3238f451b1420f5b7286 +pin source_staged_conditional_experiment 43113de593d0e70f3f94e8dafff0600d6f60b5a011d80cdc6e84166fed29b682 stagedIfMarker? 94702d68fe5ff38412353aac7d16218769a4b2e011cd48d3146f77bcaead7c89 +pin source_staged_conditional_experiment 43113de593d0e70f3f94e8dafff0600d6f60b5a011d80cdc6e84166fed29b682 stagedIfError 888e887eb39c0050e38545e346d8073fa608b4d5d5b2c49c537e9748e9ee134d +pin source_staged_conditional_experiment 43113de593d0e70f3f94e8dafff0600d6f60b5a011d80cdc6e84166fed29b682 stagedIfFirst 30c2bdd2fed3976f2e3489cf4a1c75620a928c0573d33f5fe773f1893b7522c4 +pin source_staged_conditional_experiment 43113de593d0e70f3f94e8dafff0600d6f60b5a011d80cdc6e84166fed29b682 stagedIfSecond 9e2467a4d8a331e3aa2d39d0f88409c8e4491b80cf1f1243ea7147168c9c29a3 +pin source_staged_conditional_experiment 43113de593d0e70f3f94e8dafff0600d6f60b5a011d80cdc6e84166fed29b682 stagedIfCall f7b420556abfa57835ebbe972deaabcbc4efb9f51dd0b70212d0ebab02af5645 +pin source_staged_conditional_experiment 43113de593d0e70f3f94e8dafff0600d6f60b5a011d80cdc6e84166fed29b682 stagedIfChildren_ 1ca3a13b9ceb79f43250e29f55348d287239234fa26c4ba9c0073830d3dc8dc3 +pin source_staged_conditional_experiment 43113de593d0e70f3f94e8dafff0600d6f60b5a011d80cdc6e84166fed29b682 stagedIfChildren a79b2f8e8a771f7e5d16618b63a011625d3bbf1e0ec149475117a76f6cb51402 +pin source_staged_conditional_experiment 43113de593d0e70f3f94e8dafff0600d6f60b5a011d80cdc6e84166fed29b682 stagedIfRewrite_ 828305362809aa1bacbeaf7fed5015f13aaac22afaa8cfddf2af67826ca6e05e +pin source_staged_conditional_experiment 43113de593d0e70f3f94e8dafff0600d6f60b5a011d80cdc6e84166fed29b682 stagedIfRewrite bd5f717d41b60e128e9a363fa9a9bf08de8409d4c04dd70da9dca42dc7ecf4a8 +pin source_staged_conditional_experiment 43113de593d0e70f3f94e8dafff0600d6f60b5a011d80cdc6e84166fed29b682 stagedIfCompileCore 14dd36f6b14ad7e956bd28d268c64b5aa112e7060a9774ebc567faf884dad07a +pin source_staged_conditional_experiment 43113de593d0e70f3f94e8dafff0600d6f60b5a011d80cdc6e84166fed29b682 stagedIfEnvironment_ c329b13543ee06e1957760be25248796878ef0361d2a226bd9ede652441f6e75 +pin source_staged_conditional_experiment 43113de593d0e70f3f94e8dafff0600d6f60b5a011d80cdc6e84166fed29b682 stagedIfEnvironment faf9c6d774ed996242fa59b8476f8c4c53eb61f23b0f062f8245850632c261d4 +pin source_staged_conditional_experiment 43113de593d0e70f3f94e8dafff0600d6f60b5a011d80cdc6e84166fed29b682 stagedIfOrdered_ 4a33b3e71f16dc91bfa270e91b89420050138e6aec74f523b8027faeddd2c274 +pin source_staged_conditional_experiment 43113de593d0e70f3f94e8dafff0600d6f60b5a011d80cdc6e84166fed29b682 stagedIfCompileDefinitions 6826c7706e8aa55e73105ea4c865aeec26f1660c5274a40ab1f47a669001873a diff --git a/test/fixtures/support-receipts/tests_stagingExperiment.receipt b/test/fixtures/support-receipts/tests_stagingExperiment.receipt @@ -1,13 +1,13 @@ arboricx.build-receipt.v1 source 7a5a63f29ea34723bf72330c66f6c4b1b9a9a58988c5b8bd2d04ca9ab861fb03 -compiler 8d05a27a702067eb242de35e1d92ff1bc0255eed9d9baf1640f1255b2ea43475 +compiler 7feafa413be4da75dcd0218795679065bf5b6894f022e2eb044c0a0ba827eb86 options 307cf2eafa67562f5c3a6d4555c1fc1ccb9b91f43d0b74d564f5aa0bb73ffd0f output a28053bcf2363d097dca2b03d8f55614c90898333ca1e893078ef5015a18f687 -local prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 9c6504f5a10a82b2718c956a5ee5a52844e44a045796ef027a6fa86def7593c5 -local source_pattern d14232cb623da7a59883ae5e0c773fa71037a887a7dcf3352e48cc8dff421123 a34972fddfb26db87099ed479a0852a49b569411f44a1c436bf16a7e3acbd129 -local source_compile 9bd7f27b58f640544318153c8bda76079524d06b2657600043625f613c0620d0 f622468f9de2a8e7111912cf46f6f1f606929a50bb5fae293fa62aea21e1f9b7 -local source_core 83e1dc8052f806b19ebc737998bbdfff23211b23a6bbe2ae6adbede8ad1652a2 1d87e9fa739e2127421a11a5f2a96e49f9a202a796ba3667317c67f65182cdeb -local source_staging_experiment db8e78afce2dadd987a2e7840b1107da75d3cc9c4ac3e5cd217cf0bc2ff00790 796c51b29737f2dcaddbd54738014d1b3e97aba4630696c26290a9eac8c119c9 +local prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 fb089d73a8923bb5211af6a7f93025c268745660ace4a6c89a38bd6e89f218f8 +local source_pattern d14232cb623da7a59883ae5e0c773fa71037a887a7dcf3352e48cc8dff421123 521ec559ce57747ad0349c6fbfa2d3ce3c29c42c9bb1d33177eb38cdcd4642b2 +local source_compile fb41d71410ad8fb9c0da35a5ab0a6b782b9814bd7629737b710b7404648939cd 38ea36490ad3d1a7e91d3c8979c438e663535575d66f7c98cda86e7c7f8fe416 +local source_core 83e1dc8052f806b19ebc737998bbdfff23211b23a6bbe2ae6adbede8ad1652a2 d0396c92042ff414851f64a8f42edc4ce54d117c9a6a63f6a0d0a37c25214b69 +local source_staging_experiment db8e78afce2dadd987a2e7840b1107da75d3cc9c4ac3e5cd217cf0bc2ff00790 0d2b58ab1f75f21368a5d5cabdfb3466e5d521bac9b18aa6c6ac07626ab9ebbc pin prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 false 6f93378feaa8bf5ab7cefc071175a654c871bfd53f165d7d96795fb2b38483f1 pin prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 _ 6f93378feaa8bf5ab7cefc071175a654c871bfd53f165d7d96795fb2b38483f1 pin prelude 6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823 true 2177bae1081d12a6f888b5efc89a27616aaf6e5df019f156a0f3d4c2d14bb270 @@ -239,66 +239,66 @@ pin source_pattern d14232cb623da7a59883ae5e0c773fa71037a887a7dcf3352e48cc8dff421 pin source_pattern d14232cb623da7a59883ae5e0c773fa71037a887a7dcf3352e48cc8dff421123 sourceLowerEquationsWith 742c9ab010e19f139fbf1840a51a961767f9853870cc361bbfdd2aed1e124ce7 pin source_pattern d14232cb623da7a59883ae5e0c773fa71037a887a7dcf3352e48cc8dff421123 sourceLowerEquations 58349a18d9d9662a4389d2817b965694e316780aad191d144dac2401942031fa pin source_pattern d14232cb623da7a59883ae5e0c773fa71037a887a7dcf3352e48cc8dff421123 sourceLowerStableEquations b7225e36bc0cee25612ec0be6fe8edc4ff07774e35c76f8b7a229e3fa750685f -pin source_compile 9bd7f27b58f640544318153c8bda76079524d06b2657600043625f613c0620d0 sourceTermNode 4b1f2b11e90b11bcfc522deeae834f7dda74256eb49351ca425110831156a186 -pin source_compile 9bd7f27b58f640544318153c8bda76079524d06b2657600043625f613c0620d0 sourceTermKind 3ec371c2c643a6d27efa4037d67ee1ece8bcd2fce30e914ed8f718c09f26dd8a -pin source_compile 9bd7f27b58f640544318153c8bda76079524d06b2657600043625f613c0620d0 sourceTermPayload 110f1681320cfb98353d697325a848cb3db6e01a4ae4f2ab74e51652dfa29cde -pin source_compile 9bd7f27b58f640544318153c8bda76079524d06b2657600043625f613c0620d0 sourceTermLocation bb1a1c00e6fa0802fba896aae5b63e6ef7149eb00d81dbe14f2deeb84bb009a7 -pin source_compile 9bd7f27b58f640544318153c8bda76079524d06b2657600043625f613c0620d0 sourceTermLiteral 9a134949176756ce1478534cb7d0e70beb721e2718d148e13f84867edd5fcfaa -pin source_compile 9bd7f27b58f640544318153c8bda76079524d06b2657600043625f613c0620d0 sourceTermVariable 7f913636954bcbf99b6a1023a5589664fa356dbe041fab9485950fdc1b4452a6 -pin source_compile 9bd7f27b58f640544318153c8bda76079524d06b2657600043625f613c0620d0 sourceTermApply 029ee1f9c07b7b9519e95381bdf96c2c91c2d760c13a87573f22792badff7374 -pin source_compile 9bd7f27b58f640544318153c8bda76079524d06b2657600043625f613c0620d0 sourceTermInvalid 58b028a6c1016670242f8c36498f6545c824ce7acb6b5137a9908175c9901418 -pin source_compile 9bd7f27b58f640544318153c8bda76079524d06b2657600043625f613c0620d0 sourceCombS 9013b71418248b7c00716505d717226e575e84c8abd0c1e7b675c4c8b88459b1 -pin source_compile 9bd7f27b58f640544318153c8bda76079524d06b2657600043625f613c0620d0 sourceCombK 2177bae1081d12a6f888b5efc89a27616aaf6e5df019f156a0f3d4c2d14bb270 -pin source_compile 9bd7f27b58f640544318153c8bda76079524d06b2657600043625f613c0620d0 sourceCombI 15f13aeab5531e917cb30154730ad17db4f423c0b92784be7fa1817cb4be2287 -pin source_compile 9bd7f27b58f640544318153c8bda76079524d06b2657600043625f613c0620d0 sourceCombB e998485db2b17441c923efbdbaa380629522d91316a5dd74081822c3db8201e4 -pin source_compile 9bd7f27b58f640544318153c8bda76079524d06b2657600043625f613c0620d0 sourceCombC 16102ae548948d41c47e3759a92b50bd27576c7d9c2f81a6c1174d84d56db9ba -pin source_compile 9bd7f27b58f640544318153c8bda76079524d06b2657600043625f613c0620d0 sourceCombT 92fa182ab5b273c9a2e100f3655eedd3921ab94c4fd5c71080642256770ec0a0 -pin source_compile 9bd7f27b58f640544318153c8bda76079524d06b2657600043625f613c0620d0 sourceCombR 3b6490445c7dd944f6b0f4bb58e819e877a30404a7a4d3c683f01d88f7e6c986 -pin source_compile 9bd7f27b58f640544318153c8bda76079524d06b2657600043625f613c0620d0 sourceBracket_ 806f30ac43a0242b56b7a5038d726a8de7a95224dd2a493f1680fad33af258d7 -pin source_compile 9bd7f27b58f640544318153c8bda76079524d06b2657600043625f613c0620d0 sourceBracketReference fe0bd1158c024a535ac9c3abec1e711891dc4556b40f29ace6d0822c6a7e7091 -pin source_compile 9bd7f27b58f640544318153c8bda76079524d06b2657600043625f613c0620d0 sourceContainsBinder_ 65cb2844dd059c2b0942e19c42f6430f72d2f7fc6aa9e39ca32fa78a5bddb5f5 -pin source_compile 9bd7f27b58f640544318153c8bda76079524d06b2657600043625f613c0620d0 sourceContainsBinder 2bd8495f2b6d113ccf1567afe462372d9b48b41a860b37b97705ab6533973c44 -pin source_compile 9bd7f27b58f640544318153c8bda76079524d06b2657600043625f613c0620d0 sourceLower_ 2da1eded06f6b24aaa629fc01512a5c8489c4105fbdba7297408f2a472a166ad -pin source_compile 9bd7f27b58f640544318153c8bda76079524d06b2657600043625f613c0620d0 sourceLower fcb87c9082f4e1f07d2ef06f51d1ac3d9d74c4372f6dcc9bfc9808fe799b16fe -pin source_compile 9bd7f27b58f640544318153c8bda76079524d06b2657600043625f613c0620d0 sourceBracketRightConstant 73843e38e891f76c1b113a1510e74d3dc142f960dcf25344aa59347abdadfbc2 -pin source_compile 9bd7f27b58f640544318153c8bda76079524d06b2657600043625f613c0620d0 sourceBracketDependentApp 0e285cae8c05bb9ec8d5907902c77fe3ec61251c8cd4cf16236b3e44d5f360b2 -pin source_compile 9bd7f27b58f640544318153c8bda76079524d06b2657600043625f613c0620d0 sourceBracketOptimized_ 7ad937ae09e99ad7d2548ad0b0ac0200411b5369a525398048af42fa898b2e74 -pin source_compile 9bd7f27b58f640544318153c8bda76079524d06b2657600043625f613c0620d0 sourceBracket baa59dce7de8c9319c4c070e4669b0d9f2965ecfafbbc3757c1737a50c20e3c2 -pin source_compile 9bd7f27b58f640544318153c8bda76079524d06b2657600043625f613c0620d0 sourceBracketEtaApp 623623f582a155cd876a76372739a78c8d0d6d162365410ef41e0193b9402fb0 -pin source_compile 9bd7f27b58f640544318153c8bda76079524d06b2657600043625f613c0620d0 sourceBracketEta_ 3e5805bd6fc4e0e575ec167a531013144bc55be22f8b2be0b3aa43ea81f9ee55 -pin source_compile 9bd7f27b58f640544318153c8bda76079524d06b2657600043625f613c0620d0 sourceBracketEta 3a5e2e190357ecf16d7865b41defbb60d0a5f701b69f78b3c661281ddbf59de2 -pin source_compile 9bd7f27b58f640544318153c8bda76079524d06b2657600043625f613c0620d0 sourceEliminateList f83a6d3ce89a8edb86bff18d1436ade8ce8198303b663f5a7970c3855816194c -pin source_compile 9bd7f27b58f640544318153c8bda76079524d06b2657600043625f613c0620d0 sourceEliminate_ d07f4b04d554398393a8102028e3a9101540514d2a3689d0718a15fce9790b4b -pin source_compile 9bd7f27b58f640544318153c8bda76079524d06b2657600043625f613c0620d0 sourceEliminate 6d8a42251f11615dd44965b532a58fcfdd1c67e560b5d6da63a2e09696db6c74 -pin source_compile 9bd7f27b58f640544318153c8bda76079524d06b2657600043625f613c0620d0 sourceEliminateEta_ 64f03337158016bc2048b57a341c5053977ae57e50db346fff6f80eb5d70163b -pin source_compile 9bd7f27b58f640544318153c8bda76079524d06b2657600043625f613c0620d0 sourceEliminateEta 2d2a74a692d704aef1b22a7f7b7bf0319817ba20f0be9ea5d57bf7bfe9dae370 -pin source_compile 9bd7f27b58f640544318153c8bda76079524d06b2657600043625f613c0620d0 sourceKFlags_ 78090274e65936710e3a8d293d5d714a8b829db392855fb7813fb461db9f4873 -pin source_compile 9bd7f27b58f640544318153c8bda76079524d06b2657600043625f613c0620d0 sourceKFlags 2f64f47d8acd45bb92a9a2c8b9f838f47be5cbd10ac429fecf14144de95c32c7 -pin source_compile 9bd7f27b58f640544318153c8bda76079524d06b2657600043625f613c0620d0 sourceKTermLiteral? 30336dc0ea40104a8348a681a4e1ffcca50541a82c5a06757c84f776b216d4c1 -pin source_compile 9bd7f27b58f640544318153c8bda76079524d06b2657600043625f613c0620d0 sourceKTermIdentityLeft? ffb10c241dbff1e9b52c49baa59ade9ca6dfdc06ad36cefd0021d0b88f7161e1 -pin source_compile 9bd7f27b58f640544318153c8bda76079524d06b2657600043625f613c0620d0 sourceKTermIdentity? 9093a47ed76a2c43e595d0ec50a878f4c8aff6d52f2cfda0f186e98340542bf4 -pin source_compile 9bd7f27b58f640544318153c8bda76079524d06b2657600043625f613c0620d0 sourceKIsIdentity ff0e147fa12002c5d4105146c70bf7949aaa4c6e3054d14336a57de60548396d -pin source_compile 9bd7f27b58f640544318153c8bda76079524d06b2657600043625f613c0620d0 sourceKHash_ baeb12f689bb95b271bffcadf1f9d2cbe8f61f75a63d1b1e8b87a33a905a69c4 -pin source_compile 9bd7f27b58f640544318153c8bda76079524d06b2657600043625f613c0620d0 sourceKHash aa6c74f4a90c042991866d4c8ba42d4b685d3d288e4b83fe83414c3948a8a5d4 -pin source_compile 9bd7f27b58f640544318153c8bda76079524d06b2657600043625f613c0620d0 sourceKApply e3ac9138be7a6500db0490c8f15c7fd610362bfb4e648405ca5abfd8d78bc0b0 -pin source_compile 9bd7f27b58f640544318153c8bda76079524d06b2657600043625f613c0620d0 sourceKBoundUses_ cefb21f7bb5c55b35411ba86f65254383ccda7db0d2497c792d9b8e526e6d55c -pin source_compile 9bd7f27b58f640544318153c8bda76079524d06b2657600043625f613c0620d0 sourceKBoundUses 21998ebe4374ac5a949d1242d592eee90fa3990ad3fb3f492836af45bd7881ff -pin source_compile 9bd7f27b58f640544318153c8bda76079524d06b2657600043625f613c0620d0 sourceKWeaken_ c563dada1fc0c9590063f33409fb77a4b0ae1b776cc4143d87bf521d16e2b276 -pin source_compile 9bd7f27b58f640544318153c8bda76079524d06b2657600043625f613c0620d0 sourceKWeaken 188c342a9b1a212b951706fc756531e615ae44729573279678a546734aca8ad9 -pin source_compile 9bd7f27b58f640544318153c8bda76079524d06b2657600043625f613c0620d0 sourceKAbstract f12e7587d6392ef6ba0e8980359c0a50b44375b16849d44fcd0a131bb3600294 -pin source_compile 9bd7f27b58f640544318153c8bda76079524d06b2657600043625f613c0620d0 sourceKList_ eefdd6937d8e03e6603988bca4d34d9b9cf0fffab000a8400d1a6a4a6a03b564 -pin source_compile 9bd7f27b58f640544318153c8bda76079524d06b2657600043625f613c0620d0 sourceKList 882282e1bbffcb3a37ebf69a1b8e02b143eb7f76c58e4ab37386c596f05fe2c4 -pin source_compile 9bd7f27b58f640544318153c8bda76079524d06b2657600043625f613c0620d0 sourceKConvertApp 4e1db0f1fe842bf0bdc0c2dbb44ccf68869c97163f9abc996d0c74e683334bd4 -pin source_compile 9bd7f27b58f640544318153c8bda76079524d06b2657600043625f613c0620d0 sourceKConvertLambdaPack 874143dccabf2f15c3f0cbf24157ebe010d035681027c467b36e693762efcd71 -pin source_compile 9bd7f27b58f640544318153c8bda76079524d06b2657600043625f613c0620d0 sourceKConvertLambda 74acfd9c0c40c68d6272ede37c54997198909fa608c7889eccd32a2c88d86110 -pin source_compile 9bd7f27b58f640544318153c8bda76079524d06b2657600043625f613c0620d0 sourceKConvertList 158ed1e64be35f3a283dfc3784a40a301f340b90b1acfd15f9c3ef66600cfc75 -pin source_compile 9bd7f27b58f640544318153c8bda76079524d06b2657600043625f613c0620d0 sourceKConvert_ 18a1c2dbe1c3ab3aaef19512b97728be8fa22663787a19eec940ad48efdb2df6 -pin source_compile 9bd7f27b58f640544318153c8bda76079524d06b2657600043625f613c0620d0 sourceKConvert 3183b6cfe46a2eef3b1f0593ed3848c3e16888ae030c8b8de06f7306bcef27c5 -pin source_compile 9bd7f27b58f640544318153c8bda76079524d06b2657600043625f613c0620d0 sourceRunTerm 3e9977a0d3cb7c150dfc0e4b31623b2424071cc4e433e59e11d696e10c27f528 -pin source_compile 9bd7f27b58f640544318153c8bda76079524d06b2657600043625f613c0620d0 sourceCompileCoreReference 69e9c08853e14f8606d0930a0fa3aa325706794d7c5e6a6cc182e41810369de5 -pin source_compile 9bd7f27b58f640544318153c8bda76079524d06b2657600043625f613c0620d0 sourceCompileCoreKiselyov 9c4b336a7e9d42ee73e624df723949540d01f316b18fc197802a97217d2ee389 -pin source_compile 9bd7f27b58f640544318153c8bda76079524d06b2657600043625f613c0620d0 sourceCompileCore 0b36c5210bd24df83f9bdc63a6895b1524d85b239b61cedbea6a4e64354ff681 -pin source_compile 9bd7f27b58f640544318153c8bda76079524d06b2657600043625f613c0620d0 compileGateSource 990fc7590211aa934cedca36c24c0435eaf1ed7e0333fc6f07396cb74ba95326 +pin source_compile fb41d71410ad8fb9c0da35a5ab0a6b782b9814bd7629737b710b7404648939cd sourceTermNode 4b1f2b11e90b11bcfc522deeae834f7dda74256eb49351ca425110831156a186 +pin source_compile fb41d71410ad8fb9c0da35a5ab0a6b782b9814bd7629737b710b7404648939cd sourceTermKind 3ec371c2c643a6d27efa4037d67ee1ece8bcd2fce30e914ed8f718c09f26dd8a +pin source_compile fb41d71410ad8fb9c0da35a5ab0a6b782b9814bd7629737b710b7404648939cd sourceTermPayload 110f1681320cfb98353d697325a848cb3db6e01a4ae4f2ab74e51652dfa29cde +pin source_compile fb41d71410ad8fb9c0da35a5ab0a6b782b9814bd7629737b710b7404648939cd sourceTermLocation bb1a1c00e6fa0802fba896aae5b63e6ef7149eb00d81dbe14f2deeb84bb009a7 +pin source_compile fb41d71410ad8fb9c0da35a5ab0a6b782b9814bd7629737b710b7404648939cd sourceTermLiteral 9a134949176756ce1478534cb7d0e70beb721e2718d148e13f84867edd5fcfaa +pin source_compile fb41d71410ad8fb9c0da35a5ab0a6b782b9814bd7629737b710b7404648939cd sourceTermVariable 7f913636954bcbf99b6a1023a5589664fa356dbe041fab9485950fdc1b4452a6 +pin source_compile fb41d71410ad8fb9c0da35a5ab0a6b782b9814bd7629737b710b7404648939cd sourceTermApply 029ee1f9c07b7b9519e95381bdf96c2c91c2d760c13a87573f22792badff7374 +pin source_compile fb41d71410ad8fb9c0da35a5ab0a6b782b9814bd7629737b710b7404648939cd sourceTermInvalid 58b028a6c1016670242f8c36498f6545c824ce7acb6b5137a9908175c9901418 +pin source_compile fb41d71410ad8fb9c0da35a5ab0a6b782b9814bd7629737b710b7404648939cd sourceCombS 9013b71418248b7c00716505d717226e575e84c8abd0c1e7b675c4c8b88459b1 +pin source_compile fb41d71410ad8fb9c0da35a5ab0a6b782b9814bd7629737b710b7404648939cd sourceCombK 2177bae1081d12a6f888b5efc89a27616aaf6e5df019f156a0f3d4c2d14bb270 +pin source_compile fb41d71410ad8fb9c0da35a5ab0a6b782b9814bd7629737b710b7404648939cd sourceCombI 15f13aeab5531e917cb30154730ad17db4f423c0b92784be7fa1817cb4be2287 +pin source_compile fb41d71410ad8fb9c0da35a5ab0a6b782b9814bd7629737b710b7404648939cd sourceCombB e998485db2b17441c923efbdbaa380629522d91316a5dd74081822c3db8201e4 +pin source_compile fb41d71410ad8fb9c0da35a5ab0a6b782b9814bd7629737b710b7404648939cd sourceCombC 16102ae548948d41c47e3759a92b50bd27576c7d9c2f81a6c1174d84d56db9ba +pin source_compile fb41d71410ad8fb9c0da35a5ab0a6b782b9814bd7629737b710b7404648939cd sourceCombT 92fa182ab5b273c9a2e100f3655eedd3921ab94c4fd5c71080642256770ec0a0 +pin source_compile fb41d71410ad8fb9c0da35a5ab0a6b782b9814bd7629737b710b7404648939cd sourceCombR 3b6490445c7dd944f6b0f4bb58e819e877a30404a7a4d3c683f01d88f7e6c986 +pin source_compile fb41d71410ad8fb9c0da35a5ab0a6b782b9814bd7629737b710b7404648939cd sourceBracket_ 806f30ac43a0242b56b7a5038d726a8de7a95224dd2a493f1680fad33af258d7 +pin source_compile fb41d71410ad8fb9c0da35a5ab0a6b782b9814bd7629737b710b7404648939cd sourceBracketReference fe0bd1158c024a535ac9c3abec1e711891dc4556b40f29ace6d0822c6a7e7091 +pin source_compile fb41d71410ad8fb9c0da35a5ab0a6b782b9814bd7629737b710b7404648939cd sourceContainsBinder_ 65cb2844dd059c2b0942e19c42f6430f72d2f7fc6aa9e39ca32fa78a5bddb5f5 +pin source_compile fb41d71410ad8fb9c0da35a5ab0a6b782b9814bd7629737b710b7404648939cd sourceContainsBinder 2bd8495f2b6d113ccf1567afe462372d9b48b41a860b37b97705ab6533973c44 +pin source_compile fb41d71410ad8fb9c0da35a5ab0a6b782b9814bd7629737b710b7404648939cd sourceLower_ 2da1eded06f6b24aaa629fc01512a5c8489c4105fbdba7297408f2a472a166ad +pin source_compile fb41d71410ad8fb9c0da35a5ab0a6b782b9814bd7629737b710b7404648939cd sourceLower fcb87c9082f4e1f07d2ef06f51d1ac3d9d74c4372f6dcc9bfc9808fe799b16fe +pin source_compile fb41d71410ad8fb9c0da35a5ab0a6b782b9814bd7629737b710b7404648939cd sourceBracketRightConstant 73843e38e891f76c1b113a1510e74d3dc142f960dcf25344aa59347abdadfbc2 +pin source_compile fb41d71410ad8fb9c0da35a5ab0a6b782b9814bd7629737b710b7404648939cd sourceBracketDependentApp 0e285cae8c05bb9ec8d5907902c77fe3ec61251c8cd4cf16236b3e44d5f360b2 +pin source_compile fb41d71410ad8fb9c0da35a5ab0a6b782b9814bd7629737b710b7404648939cd sourceBracketOptimized_ 7ad937ae09e99ad7d2548ad0b0ac0200411b5369a525398048af42fa898b2e74 +pin source_compile fb41d71410ad8fb9c0da35a5ab0a6b782b9814bd7629737b710b7404648939cd sourceBracket baa59dce7de8c9319c4c070e4669b0d9f2965ecfafbbc3757c1737a50c20e3c2 +pin source_compile fb41d71410ad8fb9c0da35a5ab0a6b782b9814bd7629737b710b7404648939cd sourceBracketEtaApp 623623f582a155cd876a76372739a78c8d0d6d162365410ef41e0193b9402fb0 +pin source_compile fb41d71410ad8fb9c0da35a5ab0a6b782b9814bd7629737b710b7404648939cd sourceBracketEta_ 3e5805bd6fc4e0e575ec167a531013144bc55be22f8b2be0b3aa43ea81f9ee55 +pin source_compile fb41d71410ad8fb9c0da35a5ab0a6b782b9814bd7629737b710b7404648939cd sourceBracketEta 3a5e2e190357ecf16d7865b41defbb60d0a5f701b69f78b3c661281ddbf59de2 +pin source_compile fb41d71410ad8fb9c0da35a5ab0a6b782b9814bd7629737b710b7404648939cd sourceEliminateList f83a6d3ce89a8edb86bff18d1436ade8ce8198303b663f5a7970c3855816194c +pin source_compile fb41d71410ad8fb9c0da35a5ab0a6b782b9814bd7629737b710b7404648939cd sourceEliminate_ d07f4b04d554398393a8102028e3a9101540514d2a3689d0718a15fce9790b4b +pin source_compile fb41d71410ad8fb9c0da35a5ab0a6b782b9814bd7629737b710b7404648939cd sourceEliminate 6d8a42251f11615dd44965b532a58fcfdd1c67e560b5d6da63a2e09696db6c74 +pin source_compile fb41d71410ad8fb9c0da35a5ab0a6b782b9814bd7629737b710b7404648939cd sourceEliminateEta_ 64f03337158016bc2048b57a341c5053977ae57e50db346fff6f80eb5d70163b +pin source_compile fb41d71410ad8fb9c0da35a5ab0a6b782b9814bd7629737b710b7404648939cd sourceEliminateEta 2d2a74a692d704aef1b22a7f7b7bf0319817ba20f0be9ea5d57bf7bfe9dae370 +pin source_compile fb41d71410ad8fb9c0da35a5ab0a6b782b9814bd7629737b710b7404648939cd sourceKFlags_ 78090274e65936710e3a8d293d5d714a8b829db392855fb7813fb461db9f4873 +pin source_compile fb41d71410ad8fb9c0da35a5ab0a6b782b9814bd7629737b710b7404648939cd sourceKFlags 2f64f47d8acd45bb92a9a2c8b9f838f47be5cbd10ac429fecf14144de95c32c7 +pin source_compile fb41d71410ad8fb9c0da35a5ab0a6b782b9814bd7629737b710b7404648939cd sourceKTermLiteral? 30336dc0ea40104a8348a681a4e1ffcca50541a82c5a06757c84f776b216d4c1 +pin source_compile fb41d71410ad8fb9c0da35a5ab0a6b782b9814bd7629737b710b7404648939cd sourceKTermIdentityLeft? ffb10c241dbff1e9b52c49baa59ade9ca6dfdc06ad36cefd0021d0b88f7161e1 +pin source_compile fb41d71410ad8fb9c0da35a5ab0a6b782b9814bd7629737b710b7404648939cd sourceKTermIdentity? 9093a47ed76a2c43e595d0ec50a878f4c8aff6d52f2cfda0f186e98340542bf4 +pin source_compile fb41d71410ad8fb9c0da35a5ab0a6b782b9814bd7629737b710b7404648939cd sourceKIsIdentity ff0e147fa12002c5d4105146c70bf7949aaa4c6e3054d14336a57de60548396d +pin source_compile fb41d71410ad8fb9c0da35a5ab0a6b782b9814bd7629737b710b7404648939cd sourceKHash_ baeb12f689bb95b271bffcadf1f9d2cbe8f61f75a63d1b1e8b87a33a905a69c4 +pin source_compile fb41d71410ad8fb9c0da35a5ab0a6b782b9814bd7629737b710b7404648939cd sourceKHash aa6c74f4a90c042991866d4c8ba42d4b685d3d288e4b83fe83414c3948a8a5d4 +pin source_compile fb41d71410ad8fb9c0da35a5ab0a6b782b9814bd7629737b710b7404648939cd sourceKApply e3ac9138be7a6500db0490c8f15c7fd610362bfb4e648405ca5abfd8d78bc0b0 +pin source_compile fb41d71410ad8fb9c0da35a5ab0a6b782b9814bd7629737b710b7404648939cd sourceKBoundUses_ cefb21f7bb5c55b35411ba86f65254383ccda7db0d2497c792d9b8e526e6d55c +pin source_compile fb41d71410ad8fb9c0da35a5ab0a6b782b9814bd7629737b710b7404648939cd sourceKBoundUses 21998ebe4374ac5a949d1242d592eee90fa3990ad3fb3f492836af45bd7881ff +pin source_compile fb41d71410ad8fb9c0da35a5ab0a6b782b9814bd7629737b710b7404648939cd sourceKWeaken_ c563dada1fc0c9590063f33409fb77a4b0ae1b776cc4143d87bf521d16e2b276 +pin source_compile fb41d71410ad8fb9c0da35a5ab0a6b782b9814bd7629737b710b7404648939cd sourceKWeaken 188c342a9b1a212b951706fc756531e615ae44729573279678a546734aca8ad9 +pin source_compile fb41d71410ad8fb9c0da35a5ab0a6b782b9814bd7629737b710b7404648939cd sourceKAbstract f12e7587d6392ef6ba0e8980359c0a50b44375b16849d44fcd0a131bb3600294 +pin source_compile fb41d71410ad8fb9c0da35a5ab0a6b782b9814bd7629737b710b7404648939cd sourceKList_ eefdd6937d8e03e6603988bca4d34d9b9cf0fffab000a8400d1a6a4a6a03b564 +pin source_compile fb41d71410ad8fb9c0da35a5ab0a6b782b9814bd7629737b710b7404648939cd sourceKList 882282e1bbffcb3a37ebf69a1b8e02b143eb7f76c58e4ab37386c596f05fe2c4 +pin source_compile fb41d71410ad8fb9c0da35a5ab0a6b782b9814bd7629737b710b7404648939cd sourceKConvertApp 4e1db0f1fe842bf0bdc0c2dbb44ccf68869c97163f9abc996d0c74e683334bd4 +pin source_compile fb41d71410ad8fb9c0da35a5ab0a6b782b9814bd7629737b710b7404648939cd sourceKConvertLambdaPack 874143dccabf2f15c3f0cbf24157ebe010d035681027c467b36e693762efcd71 +pin source_compile fb41d71410ad8fb9c0da35a5ab0a6b782b9814bd7629737b710b7404648939cd sourceKConvertLambda 74acfd9c0c40c68d6272ede37c54997198909fa608c7889eccd32a2c88d86110 +pin source_compile fb41d71410ad8fb9c0da35a5ab0a6b782b9814bd7629737b710b7404648939cd sourceKConvertList 158ed1e64be35f3a283dfc3784a40a301f340b90b1acfd15f9c3ef66600cfc75 +pin source_compile fb41d71410ad8fb9c0da35a5ab0a6b782b9814bd7629737b710b7404648939cd sourceKConvert_ 18a1c2dbe1c3ab3aaef19512b97728be8fa22663787a19eec940ad48efdb2df6 +pin source_compile fb41d71410ad8fb9c0da35a5ab0a6b782b9814bd7629737b710b7404648939cd sourceKConvert 3183b6cfe46a2eef3b1f0593ed3848c3e16888ae030c8b8de06f7306bcef27c5 +pin source_compile fb41d71410ad8fb9c0da35a5ab0a6b782b9814bd7629737b710b7404648939cd sourceRunTerm 3e9977a0d3cb7c150dfc0e4b31623b2424071cc4e433e59e11d696e10c27f528 +pin source_compile fb41d71410ad8fb9c0da35a5ab0a6b782b9814bd7629737b710b7404648939cd sourceCompileCoreReference 69e9c08853e14f8606d0930a0fa3aa325706794d7c5e6a6cc182e41810369de5 +pin source_compile fb41d71410ad8fb9c0da35a5ab0a6b782b9814bd7629737b710b7404648939cd sourceCompileCoreKiselyov 9c4b336a7e9d42ee73e624df723949540d01f316b18fc197802a97217d2ee389 +pin source_compile fb41d71410ad8fb9c0da35a5ab0a6b782b9814bd7629737b710b7404648939cd sourceCompileCore 0b36c5210bd24df83f9bdc63a6895b1524d85b239b61cedbea6a4e64354ff681 +pin source_compile fb41d71410ad8fb9c0da35a5ab0a6b782b9814bd7629737b710b7404648939cd compileGateSource 7a34fd04463fa8bef9e1a22d30b2fc60b3e91f13fcb4e88b65f55e238a13ef56 pin source_core 83e1dc8052f806b19ebc737998bbdfff23211b23a6bbe2ae6adbede8ad1652a2 sourceCoreNode d8e9d65f71d83f16f6faf7fcda50d14f6b922918ff94d379278d4c6a4c3fafc3 pin source_core 83e1dc8052f806b19ebc737998bbdfff23211b23a6bbe2ae6adbede8ad1652a2 sourceCoreKind 3ec371c2c643a6d27efa4037d67ee1ece8bcd2fce30e914ed8f718c09f26dd8a pin source_core 83e1dc8052f806b19ebc737998bbdfff23211b23a6bbe2ae6adbede8ad1652a2 sourceCorePayload 110f1681320cfb98353d697325a848cb3db6e01a4ae4f2ab74e51652dfa29cde diff --git a/test/native_library_migration.py b/test/native_library_migration.py @@ -189,6 +189,8 @@ def main(): tools, store, workspace = root / 'tools', root / 'application', root / 'workspace' workspace.mkdir(exist_ok=args.resume); store.mkdir(exist_ok=args.resume) + # Staged sources/facades must not inherit the caller's checkout map. + (workspace / 'tricu.workspace').write_text('tricu.workspace.v1\n') bundle = generation / ('build-stable.arboricx' if args.backend == 'stable' else 'build.arboricx') output = run(['arboricx', 'import', '--file', bundle, '--store', tools, '--indexed']) compiler = re.search(r'Created module alias .* -> ([0-9a-f]{64})', output)[1] diff --git a/test/source_layout.py b/test/source_layout.py @@ -0,0 +1,184 @@ +#!/usr/bin/env python3 +"""Rebuild owner-relative layout and its consumers; check independent trees. + +Opt-in, through Nix, using the authenticated packaged stable compiler. Unchanged +transitive fixture sources are verified before reuse. Never publishes fixtures. +""" +import argparse +import hashlib +import json +from pathlib import Path +import subprocess +import time + +from bundle_dag import merge_bundles, read +from fixture_sources import snapshot_bytes, verify +from pattern_lowering import audit +from shipped_compiler import verify as verify_compiler +from source_order import Runner, field +from http_headers import LEAF, TRUE, expect +from local_control import decode_text +from source_layout_cases import semantic_cases, parser_cases +from tooling_batch_models import chars + +ROOT = Path(__file__).resolve().parent.parent + + +def sha(data): + return hashlib.sha256(data).hexdigest() + + +def main(): + p = argparse.ArgumentParser(description=__doc__) + p.add_argument('tricu', type=Path) + p.add_argument('--directory', type=Path, required=True) + p.add_argument('--legacy-program', type=Path, help='optional retained pre-fix parseGateProgram bundle for historical rejection control') + p.add_argument('--resume', action='store_true', help='diagnostic reuse only, not generation acceptance') + args = p.parse_args() + root = args.directory.resolve() + root.mkdir(parents=True, exist_ok=args.resume) + workspace = root / 'workspace' + workspace.mkdir(exist_ok=args.resume) + (workspace / 'tricu.workspace').write_text('tricu.workspace.v1\n') + runner = Runner(args.tricu, root) + metadata = verify_compiler() + fixture_rows = {row[2]: row for row in verify(ROOT / 'test/fixtures')} + entries = {} + for line in (ROOT / 'bootstrap/compiler-source-map.v1').read_text().splitlines()[1:]: + _, alias, _, path, deps = line.split('\t') + entries[alias] = (path, [] if deps == '-' else deps.split(',')) + needed = [] + + def visit(alias): + if alias not in needed: + for dep in entries[alias][1]: + visit(dep) + needed.append(alias) + visit('source_unit') + affected = {'source_parser', 'source_program'} + for alias in needed: + if any(dep in affected for dep in entries[alias][1]): + affected.add(alias) + active = affected | {dep for alias in affected for dep in entries[alias][1]} + report = dict(complete=False, resumed=args.resume, compiler_sha256=metadata['sha256'], + runtime_sha256=sha(runner.exe.read_bytes()), sources={}, reused={}, cases=[], + harness_sha256=sha(Path(__file__).read_bytes()), + cases_sha256=sha((ROOT / 'test/source_layout_cases.py').read_bytes())) + try: + for alias in needed: + data = (ROOT / entries[alias][0]).read_bytes() + report['sources'][alias] = sha(data) + if alias not in affected: + assert snapshot_bytes(ROOT / 'test/fixtures', fixture_rows[alias][4]) == data, ('stale reuse', alias) + tool = runner.imported(ROOT / metadata['bundle'], 'producer') + manifest = (runner.store / 'objects' / tool[:3] / tool).read_text() + producer = next(line.split('\t')[3] for line in manifest.splitlines()[1:] + if line.split('\t')[1] == 'sourceBuildGraph') + for alias in needed: + if alias not in active: + continue + path = workspace / (alias + '.tri') + if alias in affected: + path.write_bytes((ROOT / entries[alias][0]).read_bytes()) + else: + cohort, _, _, _, source_pin = fixture_rows[alias] + fixture = ROOT / 'test/fixtures' / (cohort + '.arboricx') + bundle = root / (alias + '-retained.arboricx') + merge_bundles(bundle, [(fixture, [(name, name[len(alias)+1:]) for name in read(fixture)[3] + if name.startswith(alias + '.')])], prune_unreachable=True) + pin = runner.imported(bundle, alias + '-retained') + path.write_text('!export * from ' + pin + '\n') + report['reused'][alias] = dict(manifest=pin, source_pin=source_pin) + for alias in ['source_unit', 'source_program', 'source_parser']: + runner.run('compile-' + alias, ['compile', '--file', workspace / (alias + '.tri'), + '--store', runner.store, '--toolchain', tool, '--tool-store', runner.store, + '--output', root / (alias + '.arboricx'), '--compile-timeout', '600'], seconds=630) + report['modules'] = audit(workspace, runner.store, producer, report['reused']) + pins = {alias: runner.imported(root / (alias + '.arboricx'), alias) + for alias in ['source_unit', 'source_program', 'source_parser']} + for alias, pin in pins.items(): + assert pin == report['modules'][alias]['manifest'] + env = root / 'environment.tree' + env.write_bytes(LEAF) + for label, source, value in semantic_cases(): + path = root / (label + '.source.tree') + path.write_bytes(chars(source)) + answer = runner.invoke(label, pins['source_unit'], 'compileStableModuleDefinitions', + ['--arg-tree-file', env, '--arg-tree-file', path]) + expect(field(answer, 0), TRUE, label + ' compilation') + bindings, found = field(answer, 1, 0), None + while bindings != LEAF: + binding = field(bindings, 0) + if decode_text(field(binding, 0)) == 'main': + found = field(binding, 1) + bindings = field(bindings, 1) + expect(found, value, label + ' independent value') + expect(field(answer, 1, 1), LEAF, label + ' remainder') + report['cases'].append(dict(label=label, sha256=sha(answer))) + for label, source, operation, expected in parser_cases(): + path = root / (label + '.source.tree') + path.write_bytes(chars(source)) + alias = 'source_program' if operation == 'parseGateProgram' else 'source_parser' + answer = runner.invoke(label, pins[alias], operation, ['--arg-tree-file', path]) + expect(answer, expected, label + ' complete located reply') + report['cases'].append(dict(label=label, sha256=sha(answer))) + # Parse every real compiler/library/demo consumer with both parsers. + # Replace only native header lines with equal-length line comments: + # body positions remain exact, and no imports need execution here. + reference = root / 'reference-program.arboricx' + cohort = fixture_rows['source_program'][0] + fixture = ROOT / 'test/fixtures' / (cohort + '.arboricx') + merge_bundles(reference, [(fixture, [('source_program.parseGateProgram', 'parseGateProgram')])], + prune_unreachable=True) + reference_pin = runner.imported(reference, 'reference-program') + report['consumers'] = [] + for source_path in sorted({p for directory in ['lib', 'demos', 'tricu-apps'] + for p in (ROOT / directory).rglob('*.tri')}): + text = source_path.read_text() + body = ''.join(('--' + ' ' * (len(line.rstrip('\n')) - 2) + ('\n' if line.endswith('\n') else '')) + if line.startswith('!') else line for line in text.splitlines(keepends=True)) + path = root / 'consumer.source.tree' + path.write_bytes(chars(body)) + label = 'consumer-' + str(source_path.relative_to(ROOT)).replace('/', '-') + before = runner.invoke(label + '-reference', reference_pin, 'parseGateProgram', ['--arg-tree-file', path]) + after = runner.invoke(label, pins['source_program'], 'parseGateProgram', ['--arg-tree-file', path]) + expect(field(before, 0), TRUE, label + ' reference parse') + expect(after, before, label + ' existing source AST and spans') + report['consumers'].append(dict(path=str(source_path.relative_to(ROOT)), source_sha256=sha(text.encode()), + reply_sha256=sha(after))) + label, source, operation, expected = next(row for row in parser_cases() if row[0] == 'ast-layout-2') + path = root / 'wrong-layout-control.source.tree' + path.write_bytes(chars(source)) + wrong = runner.invoke('wrong-layout-control', pins['source_parser'], 'parseGateSource', ['--arg-tree-file', path]) + assert wrong != expected, 'wrong parser passed the program-layout oracle' + report['wrong_parser_rejected'] = True + if args.legacy_program: + legacy = root / 'legacy-program.arboricx' + legacy.write_bytes(args.legacy_program.read_bytes()) + legacy_pin = runner.imported(legacy, 'legacy-program') + before = runner.invoke('old-layout-control', legacy_pin, operation, ['--arg-tree-file', path]) + assert before != expected, 'retired first-body-token layout passed the new oracle' + report['legacy_program_sha256'] = sha(legacy.read_bytes()) + report['old_layout_rejected'] = True + # Existing local matching/recursion and diagnostic controls run against + # these genuinely rebuilt consumers, not a frozen parser fixture. + control = root / ('local-controls-' + str(time.time_ns())) + subprocess.run(['python3', str(ROOT / 'test/local_control.py'), str(runner.exe), + '--unit', str(root / 'source_unit.arboricx'), + '--program', str(root / 'source_program.arboricx'), + '--directory', str(control)], check=True, timeout=300) + report['local_controls'] = str(control) + for alias in needed: + assert sha((ROOT / entries[alias][0]).read_bytes()) == report['sources'][alias], 'source changed during probe' + report['complete'] = True + except Exception as error: + report['failure'] = str(error) + raise + finally: + report['seconds'] = time.monotonic() - runner.started + (root / 'report.json').write_text(json.dumps(report, indent=2) + '\n') + print(f'PASS: {len(report["cases"])} layout cases, local controls and source/receipt audits') + + +if __name__ == '__main__': + main() diff --git a/test/source_layout_cases.py b/test/source_layout_cases.py @@ -0,0 +1,119 @@ +"""Owner-relative layout oracles: authored values and complete located replies. + +No tricu parser generates expectations. Contract adapters deliberately pass a +value through; these tests exercise annotated-head layout, not contract policy. +""" +from http_headers import LEAF, number, pair, tree_list +from source_grammar_models import Located, ast_apply, diagnostic, chars, reply, authored + + +IDENTITY = 'id x = x\n' +CONTRACTS = ('withContract contract value = contract value\n' + 'matchResult failure success value = success value t\n' + 'err message rest = t\nidentity x = x\n') + + +def semantic_cases(): + rows = [] + def add(label, source, expected=number(23)): + rows.append((label, source, expected)) + for label, body in [ + ('inline', 'id 23'), + ('inline-continuation', 'id\n 23'), + ('next-line-aligned', '\n id\n 23'), + ('next-line-deeper', '\n id\n 23'), + ('next-line-variable-indent', '\n id\n 23'), + ('comments', '\n id -- operand next\n\n -- comment\n 23'), + ('block-comment', '\n id |- ignored\n comment -|\n 23'), + ('grouped', '(id\n23)'), + ]: + add(label, IDENTITY + 'main = ' + body) + add('return-' + label, CONTRACTS + IDENTITY + 'main =@identity ' + body) + add('argument-' + label, CONTRACTS + IDENTITY + 'f x@identity = ' + body + '\nmain = f 99') + add('grouped-contract', CONTRACTS + IDENTITY + 'main =@(id\n identity)\n id\n 23') + add('application-not-nesting', 'first a b = a\nmain =\n first\n 23\n 24') + add('following-definition', 'main =\n id\n 23\nid x = x') + add('equations', 'pick t =\n id\n 23\npick _ = 24\nid x = x\nmain = pick t') + add('local-block', IDENTITY + 'main = let\n value =\n id\n 23\n other = 24\nin value') + add('local-inline', IDENTITY + 'main = let value =\n id\n 23\nin value') + add('local-body', IDENTITY + 'main = let value = 23 in\n id\n value') + add('where-block', IDENTITY + 'main = value where\n value =\n id\n 23\n other = 24') + add('where-inline', IDENTITY + 'main = value where value =\n id\n 23') + add('where-top-dedent', 'main = case t of\n t = value\n _ = 24\nwhere value = 23') + add('where-arm-aligned', 'main = case t of\n t = value\n where value = 23\n _ = 24') + add('pipe-top-dedent', 'main = case t of\n t = 24\n _ = 25\n|> (x : 23)') + add('pipe-arm-aligned', 'main = case t of\n t = 24\n |> (x : 23)\n _ = 25') + add('pipe-next-line', IDENTITY + 'main =\n 23\n |>\n id') + add('pipe-application', 'first a b = a\nmain =\n first\n 23\n <| 24') + add('case-body', IDENTITY + 'main = case t of\n t =\n id\n 23\n _ = 24') + add('case-nested', IDENTITY + 'main = case t of\n t = case t of\n t =\n id\n 23\n _ = 24\n _ = 25') + add('do-binding', IDENTITY + 'pass value next = next value\nmain = do pass\n x <-\n id\n 23\n x') + add('do-expression', IDENTITY + 'pass value next = next value\nmain = do pass\n id\n 99\n id\n 23') + add('do-nested', IDENTITY + 'pass value next = next value\nmain = do pass\n x <- do pass\n y <-\n id\n 23\n y\n x') + add('list-atoms', 'main = [\n 23\n 24\n]', tree_list([number(23), number(24)])) + add('list-group', IDENTITY + 'main = [(id\n 23)\n 24]', tree_list([number(23), number(24)])) + add('grouped-inline-local', IDENTITY + 'main = (let value =\nid\n23 in value)') + add('grouped-inline-where', IDENTITY + 'main = (value where value =\nid\n23)') + add('lambda-body', 'main = (x :\n x\n) 23') + add('local-shadow-boundary', 'value = 24\nmain = let\n value =\n id\n 23\n id x = x\nin value\nid x = x') + return rows + + +def parser_cases(): + rows = [] + # Full program ASTs distinguish application association, token spans and + # untouched sibling definitions; evaluations alone could hide those bugs. + for index, source in enumerate([ + 'main = t t', 'main = t\n t', 'main =\n t\n t', + 'main =\n t\n t', 'main =\n t\n t', + 'main =\n t -- comment\n\n t', + 'main =\n t\n t\nother = 24', + 'main =\n t\n t\n t', + ]): + x = Located(source) + second = x.node(1, LEAF, source.rindex('t'), source.rindex('t')+1) if '--' in source else x.atom(1, 't', 2) + body = ast_apply(x.atom(1, 't'), second) + if source.endswith('\n t\n t\n t'): + body = ast_apply(body, x.atom(1, 't', 3)) + definitions = [pair(x.atom(2, 'main'), body)] + if 'other' in source: + definitions.append(pair(x.atom(2, 'other'), x.atom(6, '24'))) + rows.append(('ast-layout-' + str(index), source, 'parseGateProgram', + reply(True, pair(tree_list(definitions), LEAF), consumed=True))) + # Existing single-expression and delimiter protocols remain intentional. + x = Located('t\nx') + suffix = tree_list([x.token(6, LEAF, 1, 2), x.atom(2, 'x')]) + rows.append(('ast-top-separation', x.text, 'parseGateSource', + reply(False, diagnostic(2, LEAF, number(6), x.pos(1)), suffix, True))) + x = Located('(t\n t)') + rows.append(('ast-group', x.text, 'parseGateSource', reply(True, + x.node(5, ast_apply(x.atom(1, 't'), x.atom(1, 't', 2)), 0, len(x.text)), consumed=True))) + x = Located('[t\n t]') + rows.append(('ast-list', x.text, 'parseGateSource', reply(True, + x.node(8, tree_list([x.atom(1, 't'), x.atom(1, 't', 2)]), 0, len(x.text)), consumed=True))) + # Missing bodies cannot steal a following sibling token. Check complete + # diagnostics AND exact unconsumed located tokens / commitment flags. + for label, source, expected, kind in [ + ('missing-body', 'main =\n', 'definition body', None), + ('unindented-body', 'main =\nt', 'definition body', 1), + ('missing-arm-body', 'main = case t of\n _ =\n t', 'case arm body', 1), + ('nested-do-indent', 'main = do bind\n do bind\n t', 'indented do block', 1), + ('missing-do-action', 'main = do bind\n x <-\n t', 'do binding action', 1), + ('missing-local-value', 'main = let\n x =\n t', 'local binding value', 1), + ('missing-pipe-operand', 'main = t |>\nt', 'pipe operand', 1), + ]: + x = Located(source) + # The last authored token is the unconsumed sibling. + at = None if kind is None else source.rindex('t') + suffix = LEAF if at is None else tree_list([x.token(kind, chars('t'), at, at+1)]) + rows.append((label, source, 'parseGateProgram', reply(False, + diagnostic(40, chars(expected), LEAF if kind is None else number(kind), + LEAF if at is None else x.pos(at)), suffix, True))) + # Keep the pre-existing independent parser protocol controls, including + # consumed failures and malformed delimiters, against the rebuilt parser. + for label, operation, argument, expected in authored(): + if operation in ('expr', 'program'): + from local_control import decode_text + rows.append(('grammar-' + label, decode_text(argument), + 'parseGateProgram' if operation == 'program' else 'parseGateSource', expected)) + return rows diff --git a/test/unit.py b/test/unit.py @@ -1380,6 +1380,21 @@ class GrammarOracleTests(unittest.TestCase): for tree in row: self.assertEqual(end(tree), len(tree)) + def test_layout_oracles_are_complete_and_independent(self): + from source_layout_cases import semantic_cases, parser_cases + from source_order import end + values, replies = semantic_cases(), parser_cases() + self.assertEqual(len(values + replies), len({row[0] for row in values + replies})) + for label, _, value in values: + self.assertEqual(end(value), len(value), label) + for label, _, _, expected in replies: + self.assertEqual(end(expected), len(expected), label) + aligned = next(row[3] for row in replies if row[0] == 'ast-layout-2') + deeper = next(row[3] for row in replies if row[0] == 'ast-layout-4') + self.assertNotEqual(aligned, deeper) # equal structure, different spans + self.assertTrue(any(row[0] == 'unindented-body' for row in replies)) + self.assertTrue(any(row[0] == 'nested-do-indent' for row in replies)) + def test_lookahead_boundaries_do_not_consume_or_guess_assignments(self): from source_grammar_models import lookahead self.assertTrue(lookahead([2, 2, 5], [1, 3, 5])[0][0])