tricu

An interpreted language for exploring Tree Calculus
Log | Files | Refs | README | LICENSE

commit 264672c05512457ffcc9107f44d675207aa293ed
parent 0626a9429ec6b555d0d2a2c90ae0ce961b02a5e7
Author: James Eversole <james@eversole.co>
Date:   Sun, 25 Oct 2026 14:24:59 -0500

Refresh site and complete stable binding compiler retention

Diffstat:
MSTATUS.md | 24++++++++++++++++++++----
Mbootstrap/binding-acceptance.json | 48++++++++++++++++++++++++++++++++++++++++++++----
Aext/demo-site/bundles/107082dcff7e8653d101b2475e5a70738fb00a23b6118ea97d89117d7e38cc39.arboricx | 0
Aext/demo-site/bundles/1187e9fb4391f64e84a86150e6aecbcf19b73e0df5f2e4266c85b1fba0756454.arboricx | 0
Aext/demo-site/bundles/261f38e6d86777f58666cfa721bcb3ea68f0ff3dffbd8b5d0e6c759e551d14e2.arboricx | 0
Aext/demo-site/bundles/2c0091f90bd46c1ec0c3cb3a93a82ca942f268766aab541c90b793be233e5080.arboricx | 0
Aext/demo-site/bundles/32d3a06a8e3e3e41f9652e6bd00b0708a7ddb4c6c48143121a23a25957e08171.arboricx | 0
Aext/demo-site/bundles/32ef3ca39a7982bc118da3cb17cecadb2514669b1544a4081dd22c5446919d95.arboricx | 0
Aext/demo-site/bundles/3d1a7bc92cddc5b47c722363a2069b3a6ef48f586fb6d26e810f69e6edfaabaa.arboricx | 0
Aext/demo-site/bundles/4458cd3946a4280a41b7d723795b90987225ae65cb44ee6241186d7c03029f3c.arboricx | 0
Aext/demo-site/bundles/45c7b97761cba9e2a2c84bf75ed1da9b6fd612be9a367bd7387db2b0dc4e6e8f.arboricx | 0
Aext/demo-site/bundles/5ffe0c3293f7fa75c99db184e50963fbdb8d08b75ece9545012f8e5ef014cc1a.arboricx | 0
Aext/demo-site/bundles/65a21f43996fbc503ed2bde3bb1931291a49be373d828cf18b6506f740e87f9c.arboricx | 0
Aext/demo-site/bundles/692e1c2339596f3499be3497149160e7735121844d6a40c6a3ecedd4b8b20663.arboricx | 0
Aext/demo-site/bundles/6dd7ebf2bc570e60ff489da21bc5e439892da1f40f1402c5b440fbd1815ac92f.arboricx | 0
Aext/demo-site/bundles/819ad1c86fbf2d6f86533439217146eb9ffd37ca7f95bb278063a28f0ab5b534.arboricx | 0
Aext/demo-site/bundles/bd98eac335b6d792fdcc58644e38b2dc063e9522c2475f78d9d51d0852af9058.arboricx | 0
Aext/demo-site/bundles/be8b453912dd7528262d4d129de0288734ddda67c10d6bf5f05ba03a3bb4a0d6.arboricx | 0
Aext/demo-site/bundles/bf72cd9abf5b237b92f2f3ecf75a95e50dec6f0d214e19bfe7c6b63debbb1ea4.arboricx | 0
Aext/demo-site/bundles/ca65797235348b952523b11d276c054a448601df5815788540d17aadc79d4785.arboricx | 0
Aext/demo-site/bundles/e331133fc728b1cb6c0deb0438aca410d90cd5cc6d747ce12907228afaea46e4.arboricx | 0
Aext/demo-site/bundles/e5ccd45c3149a9e5f46de7cff8076e59c3b7d94a3a223428a2884f56dde9ce73.arboricx | 0
Aext/demo-site/bundles/ebd32c489da78229fdabb295805c8b7d8d9a98599900ddcff3baee23b5668746.arboricx | 0
Aext/demo-site/bundles/f8d0c9a8a9d15ba99853f50002b3181fad0104ddff2a01d91aa6a081c376f97a.arboricx | 0
Aext/demo-site/bundles/fa5e038bf32cbffd7a4afe3fe2d96115f87ea183913a01f80d44230efb8db4e7.arboricx | 0
Mext/demo-site/compiler-reference.v1 | 7+++++--
Mext/demo-site/compiler.json | 4++--
Mext/demo-site/demos.json | 8++++----
Mext/demo-site/environments.json | 2+-
Mext/demo-site/lexer-demo.json | 2+-
Mext/demo-site/packages.json | 590+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Mext/demo-site/parser-demo.json | 2+-
Mext/demo-site/test/bundle.test.mjs | 4++--
Mext/demo-site/test/compiler-conformance.json | 4++--
Mext/demo-site/test/compiler.test.mjs | 4+++-
Mext/demo-site/test/conformance.json | 2+-
Mext/demo-site/test/contracts-conformance.json | 4++--
Mext/demo-site/test/module-goldens.json | 2+-
38 files changed, 679 insertions(+), 28 deletions(-)

diff --git a/STATUS.md b/STATUS.md @@ -18,7 +18,23 @@ The accepted compiler, rebuild kit, fixture snapshots and native host pin now select the verified stable binding compiler. Earlier targeted demand/sharing and arithmetic evidence is retained in the investigation reports. -Still pending for full publication: site compiler/assets refresh and final -rolling retention. Do not describe those as complete yet. Evidence and exact -artifact identities: `bootstrap/binding-acceptance.json` and the retained -`.bootstrap-run/binding-elimination-8fc27f7` cohort. +Site refresh and rolling retention are complete: +- Refreshed the site compiler, native interfaces, demos, independent goldens and + release index; 222 serial Node tests and compiler/contract comparisons pass. +- Chromium and Firefox backend/module checks pass; Chromium UI and portable + local-module roundtrip checks pass. The refreshed Nix checks pass. +- Retained matching current and previous site/dependency packs as Nix roots; + `result`, `result-site` and `result-site-deps` select the tested publication. +- Isolated pre/post retention checks pass for current and rollback generations, + source maps and support reproduction. Only 14 reviewed obsolete verification + object directories were pruned; the prior accepted cohort remains retained. + +The first retention plan correctly refused changed protected inputs: operator +logs had been written inside the protected cohort after fingerprinting. No +pruning occurred. The successful replacement keeps logs outside that cohort. + +Evidence and exact artifact identities: `bootstrap/binding-acceptance.json`, +`.bootstrap-run/binding-elimination-8fc27f7`, and +`.bootstrap-run/retention-binding-elimination-final`. Historical investigations +measure the previous accepted compiler against this revision; their figures are +not claims of another speedup on top of the now-promoted compiler. diff --git a/bootstrap/binding-acceptance.json b/bootstrap/binding-acceptance.json @@ -16,14 +16,54 @@ "authored_source_outcomes": 75, "full_ast_reply_checks": 2, "haskell_tests": 922, - "nix_flake_check": "passed x86_64-linux" + "nix_flake_check": "passed x86_64-linux", + "site_node_tests": 222, + "site_compiler_comparisons": 10, + "site_runtime_captures": 300, + "site_native_interfaces": 66, + "site_showcase_releases": 15, + "site_browsers": [ + "Chromium: UI, backend, modules, local-module roundtrip", + "Firefox: backend, modules" + ], + "site_nix_flake_check": "passed x86_64-linux" }, "evidence_root": "/home/sezycei/dev/tricu/.bootstrap-run/binding-elimination-8fc27f7", "evidence_sha256": { "accepted-pair.json": "e4783c2243680d0dbea07e98251429a1acb49804ec297fe080d3295c8c7fced9", "flake-check-fixed.log": "4bd0489a99e00525ab40c94a0eb66fcaf2f1d44b31b07caf560227a27d7143a3", - "equations.log": "0ebdaa198ea60528660ccfd30afd19aa3e9855bb4a67a49f67d91a00106c04f9" + "equations.log": "0ebdaa198ea60528660ccfd30afd19aa3e9855bb4a67a49f67d91a00106c04f9", + "site-node-passing.log": "1840740a0f13f6ce9f5dddd648b3c6e18d369b6bc4fcc6099fa94f8324b83405", + "site-compiler-conformance.log": "9b434bbcf0e8a1ff5514b5d8cb61632b34436f539d0089dc1587e623eeed91a5", + "site-contract-conformance.log": "a5371507c6158acf145bddf1f1d6b7fdf3ee5ed7bec758c26b84f076735075b0", + "site-browser.log": "30f44cc7fd9acf6ddc5066c02275d3896d24de48863732a602b9f088f7570722", + "site-backend-browser.log": "06cfd93b23ad23fcb8b17d934092d00b8f78f083e4cd42160c69aa9a4abf6305", + "site-firefox.log": "1fdb15a1ecbfb4a6d36295b343b776d0f2c3cc2477e377bed28802777d1bb2da", + "site-modules-chromium.log": "acb8f8709462831729130b9d7e431c2b2dc1362c520eaa59171aa74e79f48e0a", + "site-modules-firefox.log": "0fbc7a287650aae75158221ac952ea97f6cf147e48620091c0e2af9a271ba0a8", + "site-local-native.log": "d30ab5c3c1eded9da86e015aaaf6cec3382aca80dc70ec07d760a378dc10885d", + "flake-check-site.log": "36977d7fa1ff280eb05046417efb3721f5c002e2d2d934471a2bc1cec1bbd8cb" }, - "site_refresh": "pending", - "retention": "pending" + "site_refresh": "passed", + "retention": "passed", + "native_publication_commit": "0626a9429ec6b555d0d2a2c90ae0ce961b02a5e7", + "site_outputs": { + "current": { + "site": "/nix/store/j7gwhp9q103j66c8r5gd3dfwjl187w00-arboricx-site", + "dependencies": "/nix/store/9mjfjb7riy7n3vh2zzbfarxqkh4vijjv-arboricx-site-deps" + }, + "rollback": { + "site": "/nix/store/p7n04wpfy6bz5zhx7yzpv9znzarymdnl-arboricx-site", + "dependencies": "/nix/store/pn66k1kyhvj99lr9nhqcsy12cqpvinzp-arboricx-site-deps" + } + }, + "retention_evidence": { + "directory": "/home/sezycei/dev/tricu/.bootstrap-run/retention-binding-elimination-final", + "plan_sha256": "efb2f9e4086f08a81dd1ede19a8f1dbe239277233532fbeb715962842dde3899", + "current_generation": "binding-elimination-8fc27f7/second", + "rollback_cohort": "io-neutral-20261024", + "reviewed_obsolete_object_directories": 14, + "estimated_unlink_reclaim_bytes": 47095808, + "pre_and_post_checks": "isolated current/rollback smokes and source maps, support reproduction; passed" + } } diff --git a/ext/demo-site/bundles/107082dcff7e8653d101b2475e5a70738fb00a23b6118ea97d89117d7e38cc39.arboricx b/ext/demo-site/bundles/107082dcff7e8653d101b2475e5a70738fb00a23b6118ea97d89117d7e38cc39.arboricx Binary files differ. diff --git a/ext/demo-site/bundles/1187e9fb4391f64e84a86150e6aecbcf19b73e0df5f2e4266c85b1fba0756454.arboricx b/ext/demo-site/bundles/1187e9fb4391f64e84a86150e6aecbcf19b73e0df5f2e4266c85b1fba0756454.arboricx Binary files differ. diff --git a/ext/demo-site/bundles/261f38e6d86777f58666cfa721bcb3ea68f0ff3dffbd8b5d0e6c759e551d14e2.arboricx b/ext/demo-site/bundles/261f38e6d86777f58666cfa721bcb3ea68f0ff3dffbd8b5d0e6c759e551d14e2.arboricx Binary files differ. diff --git a/ext/demo-site/bundles/2c0091f90bd46c1ec0c3cb3a93a82ca942f268766aab541c90b793be233e5080.arboricx b/ext/demo-site/bundles/2c0091f90bd46c1ec0c3cb3a93a82ca942f268766aab541c90b793be233e5080.arboricx Binary files differ. diff --git a/ext/demo-site/bundles/32d3a06a8e3e3e41f9652e6bd00b0708a7ddb4c6c48143121a23a25957e08171.arboricx b/ext/demo-site/bundles/32d3a06a8e3e3e41f9652e6bd00b0708a7ddb4c6c48143121a23a25957e08171.arboricx Binary files differ. diff --git a/ext/demo-site/bundles/32ef3ca39a7982bc118da3cb17cecadb2514669b1544a4081dd22c5446919d95.arboricx b/ext/demo-site/bundles/32ef3ca39a7982bc118da3cb17cecadb2514669b1544a4081dd22c5446919d95.arboricx Binary files differ. diff --git a/ext/demo-site/bundles/3d1a7bc92cddc5b47c722363a2069b3a6ef48f586fb6d26e810f69e6edfaabaa.arboricx b/ext/demo-site/bundles/3d1a7bc92cddc5b47c722363a2069b3a6ef48f586fb6d26e810f69e6edfaabaa.arboricx Binary files differ. diff --git a/ext/demo-site/bundles/4458cd3946a4280a41b7d723795b90987225ae65cb44ee6241186d7c03029f3c.arboricx b/ext/demo-site/bundles/4458cd3946a4280a41b7d723795b90987225ae65cb44ee6241186d7c03029f3c.arboricx Binary files differ. diff --git a/ext/demo-site/bundles/45c7b97761cba9e2a2c84bf75ed1da9b6fd612be9a367bd7387db2b0dc4e6e8f.arboricx b/ext/demo-site/bundles/45c7b97761cba9e2a2c84bf75ed1da9b6fd612be9a367bd7387db2b0dc4e6e8f.arboricx Binary files differ. diff --git a/ext/demo-site/bundles/5ffe0c3293f7fa75c99db184e50963fbdb8d08b75ece9545012f8e5ef014cc1a.arboricx b/ext/demo-site/bundles/5ffe0c3293f7fa75c99db184e50963fbdb8d08b75ece9545012f8e5ef014cc1a.arboricx Binary files differ. diff --git a/ext/demo-site/bundles/65a21f43996fbc503ed2bde3bb1931291a49be373d828cf18b6506f740e87f9c.arboricx b/ext/demo-site/bundles/65a21f43996fbc503ed2bde3bb1931291a49be373d828cf18b6506f740e87f9c.arboricx Binary files differ. diff --git a/ext/demo-site/bundles/692e1c2339596f3499be3497149160e7735121844d6a40c6a3ecedd4b8b20663.arboricx b/ext/demo-site/bundles/692e1c2339596f3499be3497149160e7735121844d6a40c6a3ecedd4b8b20663.arboricx Binary files differ. diff --git a/ext/demo-site/bundles/6dd7ebf2bc570e60ff489da21bc5e439892da1f40f1402c5b440fbd1815ac92f.arboricx b/ext/demo-site/bundles/6dd7ebf2bc570e60ff489da21bc5e439892da1f40f1402c5b440fbd1815ac92f.arboricx Binary files differ. diff --git a/ext/demo-site/bundles/819ad1c86fbf2d6f86533439217146eb9ffd37ca7f95bb278063a28f0ab5b534.arboricx b/ext/demo-site/bundles/819ad1c86fbf2d6f86533439217146eb9ffd37ca7f95bb278063a28f0ab5b534.arboricx Binary files differ. diff --git a/ext/demo-site/bundles/bd98eac335b6d792fdcc58644e38b2dc063e9522c2475f78d9d51d0852af9058.arboricx b/ext/demo-site/bundles/bd98eac335b6d792fdcc58644e38b2dc063e9522c2475f78d9d51d0852af9058.arboricx Binary files differ. diff --git a/ext/demo-site/bundles/be8b453912dd7528262d4d129de0288734ddda67c10d6bf5f05ba03a3bb4a0d6.arboricx b/ext/demo-site/bundles/be8b453912dd7528262d4d129de0288734ddda67c10d6bf5f05ba03a3bb4a0d6.arboricx Binary files differ. diff --git a/ext/demo-site/bundles/bf72cd9abf5b237b92f2f3ecf75a95e50dec6f0d214e19bfe7c6b63debbb1ea4.arboricx b/ext/demo-site/bundles/bf72cd9abf5b237b92f2f3ecf75a95e50dec6f0d214e19bfe7c6b63debbb1ea4.arboricx Binary files differ. diff --git a/ext/demo-site/bundles/ca65797235348b952523b11d276c054a448601df5815788540d17aadc79d4785.arboricx b/ext/demo-site/bundles/ca65797235348b952523b11d276c054a448601df5815788540d17aadc79d4785.arboricx Binary files differ. diff --git a/ext/demo-site/bundles/e331133fc728b1cb6c0deb0438aca410d90cd5cc6d747ce12907228afaea46e4.arboricx b/ext/demo-site/bundles/e331133fc728b1cb6c0deb0438aca410d90cd5cc6d747ce12907228afaea46e4.arboricx Binary files differ. diff --git a/ext/demo-site/bundles/e5ccd45c3149a9e5f46de7cff8076e59c3b7d94a3a223428a2884f56dde9ce73.arboricx b/ext/demo-site/bundles/e5ccd45c3149a9e5f46de7cff8076e59c3b7d94a3a223428a2884f56dde9ce73.arboricx Binary files differ. diff --git a/ext/demo-site/bundles/ebd32c489da78229fdabb295805c8b7d8d9a98599900ddcff3baee23b5668746.arboricx b/ext/demo-site/bundles/ebd32c489da78229fdabb295805c8b7d8d9a98599900ddcff3baee23b5668746.arboricx Binary files differ. diff --git a/ext/demo-site/bundles/f8d0c9a8a9d15ba99853f50002b3181fad0104ddff2a01d91aa6a081c376f97a.arboricx b/ext/demo-site/bundles/f8d0c9a8a9d15ba99853f50002b3181fad0104ddff2a01d91aa6a081c376f97a.arboricx Binary files differ. diff --git a/ext/demo-site/bundles/fa5e038bf32cbffd7a4afe3fe2d96115f87ea183913a01f80d44230efb8db4e7.arboricx b/ext/demo-site/bundles/fa5e038bf32cbffd7a4afe3fe2d96115f87ea183913a01f80d44230efb8db4e7.arboricx Binary files differ. diff --git a/ext/demo-site/compiler-reference.v1 b/ext/demo-site/compiler-reference.v1 @@ -25,9 +25,12 @@ module graph graph lib/graph.tri e98fc7955feb673b86ac9176a211136493d6247b011cb80 module lexer lexer lib/lexer.tri 946bbf9797a5cf722c6e85f36ac36b1ec2dd3d1f3b2650187c182dff12162bf7 module source.pattern source_pattern lib/source/pattern.tri 23d08ecc36fb9dadf24e70d2d94b518de1d289c70b652c6ebf4f41275f611718 module source.equations source_equations lib/source/equations.tri 460303928fd6ec6ce437d55d7c50b009eb50840acbd93403bfed73a58c10b67c -module source.stable source_stable lib/source/stable.tri 47ebe7c143d9a639e3d4c9a8cc346411ac9607eeb9c6962050c9289c1a8cbbdf +module source.stable source_stable lib/source/stable.tri 6a758421025aa98114ee63a87e92ac9a6094a69aeb0a18373f2fe6211ff7349e module math.native native_math lib/math/native.tri ee0c8a09870e69fff8710da95ed672937da1943a37359fde82b941bc8c53a4b3 module io io lib/io.tri 6ea754bc1920cda4dccfa3268a2346ab4c82d94dbf2656cbb24a2a846440fe93 module io.storage io_storage lib/io/storage.tri f389a5949bce196d183e11389c9bd46f3e97cb990b6f9368300e6df79ee6e1a1 module io.text io_text lib/io/text.tri e552168676a7653722b5821e2bfce8e06d760f5f9ddc91af0857040cc5cd6a12 -bundle 2ca3ab7e9bc2b7671f5e0a383c805ea00ec461de5df2a7405a5b18f879b19cb6 +module source.binding_support source_binding_support lib/source/binding_support.tri 64fe3872ce0be085e6728f4f529c5efa0fe98d0f68bd2a0e6a247be742317405 +module source.binding_analysis source_binding_analysis lib/source/binding_analysis.tri 75162ac27d2d396ba67080c7f9b0cc6e0bd5753cb6850500b123a4da9c07dcf0 +module source.binding source_binding lib/source/binding.tri c12f3a09eaeb74d51f44f1e46345a019c77b4c56725be49a18936ce8c9265d66 +bundle e2955867381c73682c66aacc5590d834db3ba9e8ff7236ed7aeaf2698ea12983 diff --git a/ext/demo-site/compiler.json b/ext/demo-site/compiler.json @@ -1,8 +1,8 @@ { "schema": 1, - "hash": "faff942bf4539f70d3fd5b085d6435199307d71e07da18f4b144c0b0597eb897", + "hash": "3d1a7bc92cddc5b47c722363a2069b3a6ef48f586fb6d26e810f69e6edfaabaa", "export": "source_unit.compileStableModuleDefinitions", "backend": "stable", "reference": "test/fixtures/compiler-library.arboricx", - "referenceCommit": "62a8e2ec3b979ca5a77dea6bd7155a7436f8467e" + "referenceCommit": "0626a9429ec6b555d0d2a2c90ae0ce961b02a5e7" } diff --git a/ext/demo-site/demos.json b/ext/demo-site/demos.json @@ -1,11 +1,11 @@ { "schema": 1, "backend": "stable", - "nativeCompilerSha256": "6b7b389d64af12d85b85598db69d7ff71cf3dcb991c584e17e0caec8bcb44c7b", + "nativeCompilerSha256": "819ad1c86fbf2d6f86533439217146eb9ffd37ca7f95bb278063a28f0ab5b534", "compilerExport": "source_unit.compileStableModuleDefinitions", - "compilerBundleSha256": "faff942bf4539f70d3fd5b085d6435199307d71e07da18f4b144c0b0597eb897", - "compilerManifest": "3dec0a4afa2327872dbd63247e86e40fbf85030188b5be799e1b82cb9f57f5b2", - "hostSha256": "3360e32a04be2efef002559962b2e1cb8f4ccca9d88e02d930959ac4ece75d1b", + "compilerBundleSha256": "3d1a7bc92cddc5b47c722363a2069b3a6ef48f586fb6d26e810f69e6edfaabaa", + "compilerManifest": "ab9f9d78551a517d92957a5f8a0d80ce63a8ba0ff744c70ab612f991732b0ff3", + "hostSha256": "3b9f1df33d5d2143206fb3559d7a0e514f80b3dc729deb9df5df556d060e6d94", "demos": { "names-values": { "demandCases": [], diff --git a/ext/demo-site/environments.json b/ext/demo-site/environments.json @@ -1,6 +1,6 @@ { "schema": 1, - "compiler": "faff942bf4539f70d3fd5b085d6435199307d71e07da18f4b144c0b0597eb897", + "compiler": "3d1a7bc92cddc5b47c722363a2069b3a6ef48f586fb6d26e810f69e6edfaabaa", "profiles": { "empty": null, "practical": { diff --git a/ext/demo-site/lexer-demo.json b/ext/demo-site/lexer-demo.json @@ -3,7 +3,7 @@ "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": "6b7b389d64af12d85b85598db69d7ff71cf3dcb991c584e17e0caec8bcb44c7b", + "compilerSha256": "819ad1c86fbf2d6f86533439217146eb9ffd37ca7f95bb278063a28f0ab5b534", "sourceSha256": "2a441d6d881acd6e34cd0caa8179ee1afefbce68c2e5ff1e44fb1768f69eeb3c", "haskellCases": [ { diff --git a/ext/demo-site/packages.json b/ext/demo-site/packages.json @@ -5446,6 +5446,596 @@ "manifest": "3e73066099e6a6b3ba82c0e3e44ec05c842af80fad56697e908d03a1a8a4dffa", "title": "Making a choice", "demo": "choices" + }, + { + "name": "tricu-base", + "version": "0.11.0", + "hash": "f9f0ab0e44f6ae39479d74c6c66a2bdaba3f40bd26781c3ec95300c2ee3c07f3", + "manifest": "fa9d4df0f82cac2754fdd3e92009cb48064856ff4cc5b18f092309aef7ff5ed4", + "title": "Foundation: lists, Results and decimal formatting" + }, + { + "name": "tricu-file-io", + "version": "0.11.0", + "hash": "ae9c12c9bf2013b0c8711860a9b9dae310085dafc9c29388f6d6d3308b5f7b2b", + "manifest": "6f8add87fe39dd16c98025492360d957a4d97459631c08d0d0c10abfbec28de4", + "title": "File IO and hashing actions" + }, + { + "name": "arboricx-inspection", + "version": "0.11.0", + "hash": "f571888c5aa3f7a91e9d5d6c45c674851ea8e3598514ad8d535fd3e9056d0314", + "manifest": "fe9b420e1e776fa1dda7b77857e322c0509ed308bb18441b76a3b03023f93468", + "title": "Arboricx inspection: validate without execution" + }, + { + "name": "tricu-compiler", + "version": "0.11.0", + "hash": "3d1a7bc92cddc5b47c722363a2069b3a6ef48f586fb6d26e810f69e6edfaabaa", + "manifest": "ab9f9d78551a517d92957a5f8a0d80ce63a8ba0ff744c70ab612f991732b0ff3", + "title": "Compiler library (stable browser source-unit API; native helpers)" + }, + { + "name": "tricu-source-builder", + "version": "0.11.0", + "hash": "819ad1c86fbf2d6f86533439217146eb9ffd37ca7f95bb278063a28f0ab5b534", + "manifest": "7713680b67158980165c274dbf5a512cc60309161ef182789d9ec0764b25f6bd", + "title": "Stable native application compiler (modules, imports and publication)" + }, + { + "name": "arboricx-server", + "version": "0.11.0", + "hash": "7f18bb0a5c425b055912aecdd442776f3102f023c70e721395b3296ff0d42689", + "manifest": "a6876256adddf94e4631b6e14540df4db22b6ece63444ad963dc92174acee48d", + "title": "Arboricx registry server (native sockets and filesystem)" + }, + { + "name": "tricu-http", + "version": "0.11.0", + "hash": "aa8da80b7ea0e728ed276627737b8cc5350dda77d2360af6eac93b75667acaab", + "manifest": "b33334423eddc3c01098d0c0ad303da37044892cb0b6e6bad22af677ccf3aff6", + "title": "HTTP parsing, responses and native socket handlers" + }, + { + "name": "tricu-intensional-contracts", + "version": "0.11.0", + "hash": "ecab246978f122d1c13bc00028ca2cbc9332a8fc247a0b9726d74c712e5c1315", + "manifest": "7467e74f0c5b7dfad8d6a14d34171b2b0bcd7750423894e2ca920e0535fde7d1", + "title": "Intensional contracts: tree shapes and numeric structure" + }, + { + "name": "tricu-graphs", + "version": "0.11.0", + "hash": "5d3381723aafa9c5e4c4c3a6975de9481eb3160cbe52aca24076900528ef2603", + "manifest": "7b798a3afae6dce07b718bed855c7209ec3b898bb70b379dece935c4033cf9b6", + "title": "Dependency ordering and cycle witnesses (validated small graphs)" + }, + { + "name": "tricu-parser", + "version": "0.11.0", + "hash": "65a21f43996fbc503ed2bde3bb1931291a49be373d828cf18b6506f740e87f9c", + "manifest": "14282088469cc420dd014700da06998f6bb8dcf990fc885a464c0a1e1858e20d", + "title": "Parser combinators: diagnostics, consumption and commitment" + }, + { + "name": "tricu-math", + "version": "0.11.0", + "hash": "32d3a06a8e3e3e41f9652e6bd00b0708a7ddb4c6c48143121a23a25957e08171", + "manifest": "7f87549d587fa8c3be88af0ea988db3adcc3b35f1ffb48973553491b075614db", + "title": "Binary arithmetic and ASCII classifiers (canonical naturals only)" + }, + { + "name": "tricu-lexer", + "version": "0.11.0", + "hash": "5ec6ccb4827f0548444e480c0e6196ddaa7a570a44ebc6a91a922d7e59bf3012", + "manifest": "816df1a32853750a1254112aff8ae8c55ca86bf70e809d226969ab1d43a6688b", + "title": "Located character scans and token positions" + }, + { + "name": "tricu-binary", + "version": "0.11.0", + "hash": "1a52036b938708db5759dfa94c2058e27df5b638c625ef253b5e09e316c2a21d", + "manifest": "7a24af56a9ce9b947cadcafd3a9da127b1507275bfac62b9fa55e27490b176dc", + "title": "Checked byte readers, prefix parsing and UTF-8 validation" + }, + { + "name": "tricu-patterns", + "version": "0.11.0", + "hash": "3f65dce1eb074d496c42c961b0f9149ace2527ce8b3b968622b871ea5c5dc7ed", + "manifest": "703db8cd6c5679861257d1cc38c17be200241ade8db3812e8c387e9274aaa56e", + "title": "Ordered predicate/action dispatch and thunked conditionals" + }, + { + "name": "tricu-list-traversal", + "version": "0.11.0", + "hash": "60afc41f04fa65130326eeed4ca9e128bee5e90c7041f9641bbf9cfe87c142cd", + "manifest": "4c79b7ad124027147b8fddd98c2b66cfd776c36d915c95dfb1fbf9b31a51fb88", + "title": "Early-stopping list folds with retained input suffixes" + }, + { + "name": "tricu-formatter", + "version": "0.11.0", + "hash": "48ae69290f1858d9534fe1f60f7540ecaca466b6ec1f48a208c7b73981277fef", + "manifest": "05e75a9f4d3c40db786f64820b78774566b8d51d77d11e6e1e244dad9360568e", + "title": "Conservative tricu equation alignment (not an AST printer)" + }, + { + "name": "parser-demo", + "version": "0.11.0", + "hash": "355e41506f39e05da8c8a72a68aa810a486e062480322bac11af67e86980520e", + "manifest": "0c34bfdf800f8bd1b742e375a8f7c555c88d0c827268f684259433e834d94fed", + "title": "Parser combinators: complete input, prefixes and committed errors", + "demo": "parser" + }, + { + "name": "lexer-demo", + "version": "0.11.0", + "hash": "e756a481b3056a2e76f50316ccf77bfab8b15727b7bec899580c2eb919e668b2", + "manifest": "ed99e054e9c862668e165f458d3afcdc56279f766eea7a3886d440aea7252b63", + "title": "Located scans: matched prefix, remainder and character positions", + "demo": "lexer" + }, + { + "name": "tricu-lib-arboricx", + "version": "0.11.0", + "manifest": "3f70d95cf1bae0928ee89acd2a9e0cdd8287796efae32a9f08d33e3dd0149c55", + "hash": "20ddb39e1a87ad0708a374aebe7b6884e5729124bc7cc30d2e9f96f0c0d713ee", + "title": "lib/arboricx/arboricx.tri" + }, + { + "name": "tricu-lib-arboricx-common", + "version": "0.11.0", + "manifest": "0d779adef29b51ee875bf2f46ec03bef30ec48d200e7e05c9e20bd90b28ac4a4", + "hash": "6238f17acf707772ac12645f14297fd8b335af45b9189b9dc4c320a18893e50f", + "title": "lib/arboricx/common.tri" + }, + { + "name": "tricu-lib-arboricx-dispatch", + "version": "0.11.0", + "manifest": "eda078ba018de68718b2b7aa2d790578ac079cf98c963a78f7fcae5178fd2c19", + "hash": "ccf21f4b49546f330cf335cf768cfc2d146549831dd84e79d80bbbe4da03b914", + "title": "lib/arboricx/dispatch.tri" + }, + { + "name": "tricu-lib-arboricx-handlers", + "version": "0.11.0", + "manifest": "2c1c876d1baf0c2ddf0bd212ecd9acd3eb916d8f492d271177c6db0be84ff29d", + "hash": "ebd32c489da78229fdabb295805c8b7d8d9a98599900ddcff3baee23b5668746", + "title": "lib/arboricx/handlers.tri" + }, + { + "name": "tricu-lib-arboricx-manifest", + "version": "0.11.0", + "manifest": "2a8a2b591dfc4192b8ded6e2ea75e94f6ff41183636f6024b6d5eb590ec8d2aa", + "hash": "4382e93cddca0d828b6a39ce171ae0253a54fb9932be4bc54d747cf698fa58fe", + "title": "lib/arboricx/manifest.tri" + }, + { + "name": "tricu-lib-arboricx-nodes", + "version": "0.11.0", + "manifest": "d158e4ebe9fd6cfb752023bbe031614b190b9eab79e9680875a1fc55dc481a23", + "hash": "cc68d1a06bc193f54069be7553bcaa3ccd37d129c9a38fff9b8220b2d864daee", + "title": "lib/arboricx/nodes.tri" + }, + { + "name": "tricu-lib-arboricx-server", + "version": "0.11.0", + "manifest": "a6876256adddf94e4631b6e14540df4db22b6ece63444ad963dc92174acee48d", + "hash": "7f18bb0a5c425b055912aecdd442776f3102f023c70e721395b3296ff0d42689", + "title": "lib/arboricx/server.tri" + }, + { + "name": "tricu-lib-arboricx-streaming", + "version": "0.11.0", + "manifest": "409b5431c67c3e8e5e3ae64b85c2d66259576e73ebc02708af37de12139946f6", + "hash": "4458cd3946a4280a41b7d723795b90987225ae65cb44ee6241186d7c03029f3c", + "title": "lib/arboricx/streaming.tri" + }, + { + "name": "tricu-lib-base", + "version": "0.11.0", + "manifest": "bd2c14d6db6b69308a5252a8e839705a55d30e815f012900b094315263e08d81", + "hash": "1187e9fb4391f64e84a86150e6aecbcf19b73e0df5f2e4266c85b1fba0756454", + "title": "lib/base.tri" + }, + { + "name": "tricu-lib-binary", + "version": "0.11.0", + "manifest": "7a24af56a9ce9b947cadcafd3a9da127b1507275bfac62b9fa55e27490b176dc", + "hash": "1a52036b938708db5759dfa94c2058e27df5b638c625ef253b5e09e316c2a21d", + "title": "lib/binary.tri" + }, + { + "name": "tricu-lib-bytes", + "version": "0.11.0", + "manifest": "16cff955cb9ab44063ed21651002d209ef7d3592fa005cd3dc32e287d6ca5b68", + "hash": "8ee2c0b4fec670afc9db5552e6907ace29ae2c0bda07897e70d451f9bb56160c", + "title": "lib/bytes.tri" + }, + { + "name": "tricu-lib-conversions", + "version": "0.11.0", + "manifest": "78ce6db3557cd57f2c5799989d16a8f40104de5c4485646734a23093dc458a4e", + "hash": "4641a286fd7129b4ee90b47c54623104aaacf7e1fdc30d56ce12b17acf7a106b", + "title": "lib/conversions.tri" + }, + { + "name": "tricu-lib-graph", + "version": "0.11.0", + "manifest": "7b798a3afae6dce07b718bed855c7209ec3b898bb70b379dece935c4033cf9b6", + "hash": "5d3381723aafa9c5e4c4c3a6975de9481eb3160cbe52aca24076900528ef2603", + "title": "lib/graph.tri" + }, + { + "name": "tricu-lib-handler-artifacts", + "version": "0.11.0", + "manifest": "7465681c852959e227ecea6fa93d8648479af52d92e0898ff7937495d506ff55", + "hash": "99824824d27932bc9e44851fff367ae0fea6d05a7604bb634bf0daad8ef5ab7e", + "title": "lib/handlers/artifacts.tri" + }, + { + "name": "tricu-lib-handler-log", + "version": "0.11.0", + "manifest": "8e266f85d668a1f414dada9e4cca4d19a737bb1e19bf2a1ef985017175708c31", + "hash": "7dac7b3d84202ef4d253ce99c95850c1ae7a532a9e7907712f559da2d061c2d0", + "title": "lib/handlers/log.tri" + }, + { + "name": "tricu-lib-handlers", + "version": "0.11.0", + "manifest": "11d3aa8404e25e3bafad7835fdc008c2b6838cd5d01110edf4297e6fd47c1008", + "hash": "e27bf77a09cdc2d867aaccf65d0578da3308c877e51dea1bb87286ddc7196228", + "title": "lib/handlers.tri" + }, + { + "name": "tricu-lib-http", + "version": "0.11.0", + "manifest": "b33334423eddc3c01098d0c0ad303da37044892cb0b6e6bad22af677ccf3aff6", + "hash": "aa8da80b7ea0e728ed276627737b8cc5350dda77d2360af6eac93b75667acaab", + "title": "lib/http.tri" + }, + { + "name": "tricu-lib-intensional", + "version": "0.11.0", + "manifest": "7467e74f0c5b7dfad8d6a14d34171b2b0bcd7750423894e2ca920e0535fde7d1", + "hash": "ecab246978f122d1c13bc00028ca2cbc9332a8fc247a0b9726d74c712e5c1315", + "title": "lib/intensionalContracts.tri" + }, + { + "name": "tricu-lib-io-artifacts", + "version": "0.11.0", + "manifest": "6acd32c1279a1889feb3bda2f8713f973beb3493107895dbba5fe3b1ad1fe1f3", + "hash": "ae3c5524aa4a094972d2b84aff10e3a9e8d60c3b3fb94b43ff7bd850740eade9", + "title": "lib/io/artifacts.tri" + }, + { + "name": "tricu-lib-io-http", + "version": "0.11.0", + "manifest": "078dbc9ff97ac74a96475abfa117a0aaf0dd6526e0a794a5fff83b498afadf72", + "hash": "45c7b97761cba9e2a2c84bf75ed1da9b6fd612be9a367bd7387db2b0dc4e6e8f", + "title": "lib/io/http-transport.tri" + }, + { + "name": "tricu-lib-io-storage", + "version": "0.11.0", + "manifest": "3d91cca2954567f6741488ea2abc1166803a52db9d5dce82952fe9d69edde15a", + "hash": "b5ee969404912ef682d37b259985a3303b1b19840ac9a15a2f65c92799b4d2cf", + "title": "lib/io/storage.tri" + }, + { + "name": "tricu-lib-io-text", + "version": "0.11.0", + "manifest": "1f960c57efadb21eb66bba8a057181c6ca744b7d110064a37522daabf230d691", + "hash": "9621dfdca33605922b59be467053569d99995ed36b77f52f2a36e07d9059bf95", + "title": "lib/io/text.tri" + }, + { + "name": "tricu-lib-io", + "version": "0.11.0", + "manifest": "867297ac5383885892a84acc2630c94491fc6ea436aaaccd5bc49d866c631400", + "hash": "32ef3ca39a7982bc118da3cb17cecadb2514669b1544a4081dd22c5446919d95", + "title": "lib/io.tri" + }, + { + "name": "tricu-lib-lexer", + "version": "0.11.0", + "manifest": "816df1a32853750a1254112aff8ae8c55ca86bf70e809d226969ab1d43a6688b", + "hash": "5ec6ccb4827f0548444e480c0e6196ddaa7a570a44ebc6a91a922d7e59bf3012", + "title": "lib/lexer.tri" + }, + { + "name": "tricu-lib-native-math", + "version": "0.11.0", + "manifest": "7f87549d587fa8c3be88af0ea988db3adcc3b35f1ffb48973553491b075614db", + "hash": "32d3a06a8e3e3e41f9652e6bd00b0708a7ddb4c6c48143121a23a25957e08171", + "title": "lib/math/native.tri" + }, + { + "name": "tricu-lib-parser", + "version": "0.11.0", + "manifest": "14282088469cc420dd014700da06998f6bb8dcf990fc885a464c0a1e1858e20d", + "hash": "65a21f43996fbc503ed2bde3bb1931291a49be373d828cf18b6506f740e87f9c", + "title": "lib/parser.tri" + }, + { + "name": "tricu-lib-patterns", + "version": "0.11.0", + "manifest": "703db8cd6c5679861257d1cc38c17be200241ade8db3812e8c387e9274aaa56e", + "hash": "3f65dce1eb074d496c42c961b0f9149ace2527ce8b3b968622b871ea5c5dc7ed", + "title": "lib/patterns.tri" + }, + { + "name": "tricu-lib-prelude", + "version": "0.11.0", + "manifest": "6aa33a710955e5746f322775b9078f57ba4145f6b723ff4b76a292285e919823", + "hash": "be8b453912dd7528262d4d129de0288734ddda67c10d6bf5f05ba03a3bb4a0d6", + "title": "lib/prelude.tri" + }, + { + "name": "tricu-lib-socket", + "version": "0.11.0", + "manifest": "fbf35bdc703a44baf1f842cc7aff5ced17bec1b634b9e2a185982391feb5086f", + "hash": "ab4b3e164f3cebbf979ad75424b195cbadf3a8a7023a891b46270ef883363d30", + "title": "lib/socket.tri" + }, + { + "name": "tricu-lib-source-ast", + "version": "0.11.0", + "manifest": "c6579f89e47a16694f1c08fe9825b183d8bc272e23cd744eb954c106b689c32f", + "hash": "af66062931c5de826bd336625d53c1c354fe6cc736e56e247ae550c542f0fa8a", + "title": "lib/source/ast.tri" + }, + { + "name": "tricu-lib-source-binding", + "version": "0.11.0", + "manifest": "63a040e7bd4bc3da1b1466e156d0c9762767bd71c9a44a3c37c447262c267c4e", + "hash": "692e1c2339596f3499be3497149160e7735121844d6a40c6a3ecedd4b8b20663", + "title": "lib/source/binding.tri" + }, + { + "name": "tricu-lib-source-binding-analysis", + "version": "0.11.0", + "manifest": "4b5ca357b50623070346cae49c2083dba6c28d1c9e009eff9df9d089f7a57483", + "hash": "ca65797235348b952523b11d276c054a448601df5815788540d17aadc79d4785", + "title": "lib/source/binding_analysis.tri" + }, + { + "name": "tricu-lib-source-binding-support", + "version": "0.11.0", + "manifest": "9cc7c19f46270160e254cc704d4a7c6c31cecdd287ce528f347b139112157458", + "hash": "5ffe0c3293f7fa75c99db184e50963fbdb8d08b75ece9545012f8e5ef014cc1a", + "title": "lib/source/binding_support.tri" + }, + { + "name": "tricu-lib-source-build-stable", + "version": "0.11.0", + "manifest": "69ab50002d8409ccae99ac193a9b0b2458240deabd2e6fea7ef05cbd7e7068a0", + "hash": "261f38e6d86777f58666cfa721bcb3ea68f0ff3dffbd8b5d0e6c759e551d14e2", + "title": "lib/source/build-stable.tri" + }, + { + "name": "tricu-lib-source-build", + "version": "0.11.0", + "manifest": "db88b63a10e8b2659481a628b4ed7ea1723205b121cfac99a9801d7518084d86", + "hash": "e5ccd45c3149a9e5f46de7cff8076e59c3b7d94a3a223428a2884f56dde9ce73", + "title": "lib/source/build.tri" + }, + { + "name": "tricu-lib-source-bundle", + "version": "0.11.0", + "manifest": "429e9d90706ea8f1301c398dc5b7dcdf7897f8d51cc4b6e9c580b142c598c4b1", + "hash": "c834c36fa1b984ad4d6b34fbdd784b3c1b732b1433f549b00e8df1931cf9a3b5", + "title": "lib/source/bundle.tri" + }, + { + "name": "tricu-lib-source-compile", + "version": "0.11.0", + "manifest": "fb41d71410ad8fb9c0da35a5ab0a6b782b9814bd7629737b710b7404648939cd", + "hash": "fffeb2fd3c25c6eb7fc21660eee8be391ef2a3adae58e28359d9f6920e82df1f", + "title": "lib/source/compile.tri" + }, + { + "name": "tricu-lib-source-core", + "version": "0.11.0", + "manifest": "83e1dc8052f806b19ebc737998bbdfff23211b23a6bbe2ae6adbede8ad1652a2", + "hash": "d7105ef477224dfb10ad2773e54744cb3f87ddf304eb753d7cb9ba40ea9cc3df", + "title": "lib/source/core.tri" + }, + { + "name": "tricu-lib-source-equations", + "version": "0.11.0", + "manifest": "568c5d782a847e4f8d6b7061d51d34fc527a466b872ede27032104293df3bf8f", + "hash": "982ae0c7b3fcad6764df5187b00ea3c4bc8563c6244f8bd8f12c8706bd3ab9f5", + "title": "lib/source/equations.tri" + }, + { + "name": "tricu-lib-source-export-cache", + "version": "0.11.0", + "manifest": "d937bb405fb9b40b88046e37623aee1b080a0b93a5c568aff132baeef9f44f54", + "hash": "bd98eac335b6d792fdcc58644e38b2dc063e9522c2475f78d9d51d0852af9058", + "title": "lib/source/export-cache.tri" + }, + { + "name": "tricu-lib-source-index", + "version": "0.11.0", + "manifest": "c2946fe3ac0daf1a06d6f7deab9f7ad08d679c241b04ad9c0c6d3b6038cf091d", + "hash": "1f18232479e776982515edc3fe2c0f39fad79e2b428c2ff040d92edf5441ac6a", + "title": "lib/source/index.tri" + }, + { + "name": "tricu-lib-compiler-io", + "version": "0.11.0", + "manifest": "e4757cead2d1072f68e6f2d01f8fde489b0d3fabef7733edd5e1c4b060857acc", + "hash": "5278cc3f3eddc4f1760997bff84e707ec6b9571fdaa7c3b895de7a2b22b92f35", + "title": "lib/source/io.tri" + }, + { + "name": "tricu-lib-source-lexer", + "version": "0.11.0", + "manifest": "4cc4ed214d6e474b339c970d04cc09ced20c6472758b58897aabbd6f3a5bbb42", + "hash": "b75e428ce6d587893829792a87c3a374993d22c900eea793f2713e822440cb9f", + "title": "lib/source/lexer.tri" + }, + { + "name": "tricu-lib-source-lock", + "version": "0.11.0", + "manifest": "97d9a9f670d55eec307a98766da971c1e796cff9d8325e63aa761bbc646a2f48", + "hash": "666164df3ec739d1c3d3637ec72ed9a85e9012a7c9c5f38c3bc96ebb22e3334d", + "title": "lib/source/lock.tri" + }, + { + "name": "tricu-lib-source-map", + "version": "0.11.0", + "manifest": "2355ffab43e417e9d96202b9f905eb1680985091a06f0ea0f0c0bae57547e575", + "hash": "bf72cd9abf5b237b92f2f3ecf75a95e50dec6f0d214e19bfe7c6b63debbb1ea4", + "title": "lib/source/map.tri" + }, + { + "name": "tricu-lib-source-module", + "version": "0.11.0", + "manifest": "d1d0667b5c3b717f91a4e89f06bea2686d5d54c4575e5432600b69a584b5f48a", + "hash": "beda492ecd9338eb0c75af08506edad760b914ab0c73ef055e1e1d7946821d6d", + "title": "lib/source/module.tri" + }, + { + "name": "tricu-lib-source-object", + "version": "0.11.0", + "manifest": "cf1cfb646630b6fa904524d2af75769c0133387e8b43ef8acf8fce8e73e19c5f", + "hash": "f8d0c9a8a9d15ba99853f50002b3181fad0104ddff2a01d91aa6a081c376f97a", + "title": "lib/source/object.tri" + }, + { + "name": "tricu-lib-source-order", + "version": "0.11.0", + "manifest": "1d55b1616e892be989d2c987099c84bef61686fc67f6a3eb5b1a373626b0ca5e", + "hash": "53e15c0de7a8ed6cb1454e285a08d65b0a3cd1ffad877a6f598c94afa61d21d4", + "title": "lib/source/order.tri" + }, + { + "name": "tricu-lib-source-parser", + "version": "0.11.0", + "manifest": "425b921ef62e99dd93f6d3389c82fdbb583eaeb857975717441c5469f98f3a73", + "hash": "9f63810fee2e20762f1a198535448a2187a90065a35428ec82a11aad85575643", + "title": "lib/source/parser.tri" + }, + { + "name": "tricu-lib-source-pattern", + "version": "0.11.0", + "manifest": "d14232cb623da7a59883ae5e0c773fa71037a887a7dcf3352e48cc8dff421123", + "hash": "1930e13f58f774f90a838b49128b1bcfd5a0f90a67ec779571858e001489b70c", + "title": "lib/source/pattern.tri" + }, + { + "name": "tricu-lib-source-program", + "version": "0.11.0", + "manifest": "447aa7d321344146772a2693e83b2ab87a0058e281c42780e1bb5b24e0ea995d", + "hash": "24b52c4f58744204c49b807b2af730a4800068742507f4138ba2e1a78bad0678", + "title": "lib/source/program.tri" + }, + { + "name": "tricu-lib-source-resolve", + "version": "0.11.0", + "manifest": "ed934dd01014852aa2e3734444538d0c0807da41bc661cd3965eca6ed16ceffe", + "hash": "29588b9deced8a3726d1d01c65c8d8e27bf29f4c91d4ff782c1e702492425fa6", + "title": "lib/source/resolve.tri" + }, + { + "name": "tricu-lib-source-stable", + "version": "0.11.0", + "manifest": "47d34906362fae9bf7b296524e66f36662a4ebe8b73283d3e9103199458e17af", + "hash": "107082dcff7e8653d101b2475e5a70738fb00a23b6118ea97d89117d7e38cc39", + "title": "lib/source/stable.tri" + }, + { + "name": "tricu-lib-source-staged-conditional-experiment", + "version": "0.11.0", + "manifest": "43113de593d0e70f3f94e8dafff0600d6f60b5a011d80cdc6e84166fed29b682", + "hash": "fa5e038bf32cbffd7a4afe3fe2d96115f87ea183913a01f80d44230efb8db4e7", + "title": "lib/source/staged-conditional-experiment.tri" + }, + { + "name": "tricu-lib-source-staged-list-experiment", + "version": "0.11.0", + "manifest": "c1c062475b966bd6adae0148db1751959400f59ba73c6f84ca0e561599639e98", + "hash": "6dd7ebf2bc570e60ff489da21bc5e439892da1f40f1402c5b440fbd1815ac92f", + "title": "lib/source/staged-list-experiment.tri" + }, + { + "name": "tricu-lib-source-staging-experiment", + "version": "0.11.0", + "manifest": "db8e78afce2dadd987a2e7840b1107da75d3cc9c4ac3e5cd217cf0bc2ff00790", + "hash": "e331133fc728b1cb6c0deb0438aca410d90cd5cc6d747ce12907228afaea46e4", + "title": "lib/source/staging-experiment.tri" + }, + { + "name": "tricu-lib-source-unit", + "version": "0.11.0", + "manifest": "e819c8e35eda49ea3d71fdb8a2ff0bce18b975ad20d8c302d5a9052a14f19b30", + "hash": "2c0091f90bd46c1ec0c3cb3a93a82ca942f268766aab541c90b793be233e5080", + "title": "lib/source/unit.tri" + }, + { + "name": "tricu-lib-arboricx-inspect", + "version": "0.11.0", + "manifest": "fe9b420e1e776fa1dda7b77857e322c0509ed308bb18441b76a3b03023f93468", + "hash": "f571888c5aa3f7a91e9d5d6c45c674851ea8e3598514ad8d535fd3e9056d0314", + "title": "lib/arboricx/inspect.tri" + }, + { + "name": "tricu-lib-handler-testing", + "version": "0.11.0", + "manifest": "4a7b39b868bc30f46460b5cee2bb225a9db665775353aa5c71aafa567de7881e", + "hash": "e56378259592a4867829ca5447904b30ac5e21bd496eb68ad4d872c1af973d69", + "title": "lib/handlers/testing.tri" + }, + { + "name": "tricu-lib-handler-upload", + "version": "0.11.0", + "manifest": "6acd32c1279a1889feb3bda2f8713f973beb3493107895dbba5fe3b1ad1fe1f3", + "hash": "bbfdfb86841f2984340122be73b21a39b808e6ef02232e40e8c7016f0ff68851", + "title": "lib/handlers/upload.tri" + }, + { + "name": "tricu-lib-io-objects", + "version": "0.11.0", + "manifest": "1ed153be17b754f1a058e419d84a39e2169d5d6518bb47e8ee8785b02860e424", + "hash": "bb3135842e3cebfe6bd10e0766a6711e4d46a8cf157af1dcc9f97e25795ac0a1", + "title": "lib/io/objects.tri" + }, + { + "name": "tricu-lib-packages-base", + "version": "0.11.0", + "manifest": "fa9d4df0f82cac2754fdd3e92009cb48064856ff4cc5b18f092309aef7ff5ed4", + "hash": "f9f0ab0e44f6ae39479d74c6c66a2bdaba3f40bd26781c3ec95300c2ee3c07f3", + "title": "lib/packages/base.tri" + }, + { + "name": "tricu-lib-packages-io", + "version": "0.11.0", + "manifest": "6f8add87fe39dd16c98025492360d957a4d97459631c08d0d0c10abfbec28de4", + "hash": "ae9c12c9bf2013b0c8711860a9b9dae310085dafc9c29388f6d6d3308b5f7b2b", + "title": "lib/packages/io.tri" + }, + { + "name": "tricu-lib-recursion-list", + "version": "0.11.0", + "manifest": "4c79b7ad124027147b8fddd98c2b66cfd776c36d915c95dfb1fbf9b31a51fb88", + "hash": "60afc41f04fa65130326eeed4ca9e128bee5e90c7041f9641bbf9cfe87c142cd", + "title": "lib/recursion/list.tri" + }, + { + "name": "tricu-lib-source-bundle-stable", + "version": "0.11.0", + "manifest": "a06948780686a4432f97ce0a7ab5f8ed66a535a6d5563275e5f32375a679cb59", + "hash": "3de401378f33dd8f93e9ca11c1c2bd73a458dabcd8d631a33ba17306f83d7d3b", + "title": "lib/source/bundle-stable.tri" + }, + { + "name": "tricu-lib-tools-format-tri", + "version": "0.11.0", + "manifest": "05e75a9f4d3c40db786f64820b78774566b8d51d77d11e6e1e244dad9360568e", + "hash": "48ae69290f1858d9534fe1f60f7540ecaca466b6ec1f48a208c7b73981277fef", + "title": "lib/tools/format-tri.tri" } ] } diff --git a/ext/demo-site/parser-demo.json b/ext/demo-site/parser-demo.json @@ -3,7 +3,7 @@ "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": "6b7b389d64af12d85b85598db69d7ff71cf3dcb991c584e17e0caec8bcb44c7b", + "compilerSha256": "819ad1c86fbf2d6f86533439217146eb9ffd37ca7f95bb278063a28f0ab5b534", "sourceSha256": "9c005993cf43c07ec5c7e4f7f420b2f63c66e605d9522ab4b7e044de5e6cb8df", "haskellCases": [ { diff --git a/ext/demo-site/test/bundle.test.mjs b/ext/demo-site/test/bundle.test.mjs @@ -7,8 +7,8 @@ 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. -// Independently packed native fixture adds five existing source upload helpers. -const COMPILER_EXPORT_COUNT=1243; +// Stable binding support adds 19 exports across three compiler-owned modules. +const COMPILER_EXPORT_COUNT=1262; 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": "faff942bf4539f70d3fd5b085d6435199307d71e07da18f4b144c0b0597eb897", - "hostSha256": "0379ea68db3664a6672e7ae56338953935de3d15318d49a07fa634bded59af80", + "compilerBundleSha256": "3d1a7bc92cddc5b47c722363a2069b3a6ef48f586fb6d26e810f69e6edfaabaa", + "hostSha256": "3b9f1df33d5d2143206fb3559d7a0e514f80b3dc729deb9df5df556d060e6d94", "backend": "stable", "export": "source_unit.compileStableModuleDefinitions", "cases": [ diff --git a/ext/demo-site/test/compiler.test.mjs b/ext/demo-site/test/compiler.test.mjs @@ -25,7 +25,9 @@ test('compiler shipped pin matches authenticated reference and Haskell golden pr const fixtureDigest=createHash('sha256').update('tricu.compiler-library-fixture.v1\0').update(shipped).digest('hex'); assert.deepEqual(metadata.filter(row=>row.startsWith('bundle\t')),['bundle\t'+fixtureDigest]); const sources=metadata.filter(row=>row.startsWith('module\t')); - assert.equal(sources.length,31); + assert.equal(sources.length,34); + for(const alias of ['source_binding','source_binding_analysis','source_binding_support']) + assert.ok(sources.some(row=>row.split('\t')[2]===alias),alias); assert.ok(sources.every(row=>row.split('\t')[2]!=='patterns')); for(const row of sources){ const pin=row.split('\t')[4];assert.match(pin,/^[0-9a-f]{64}$/); diff --git a/ext/demo-site/test/conformance.json b/ext/demo-site/test/conformance.json @@ -1,5 +1,5 @@ { - "hostSha256": "0379ea68db3664a6672e7ae56338953935de3d15318d49a07fa634bded59af80", + "hostSha256": "3b9f1df33d5d2143206fb3559d7a0e514f80b3dc729deb9df5df556d060e6d94", "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": "faff942bf4539f70d3fd5b085d6435199307d71e07da18f4b144c0b0597eb897", - "hostSha256": "0379ea68db3664a6672e7ae56338953935de3d15318d49a07fa634bded59af80", + "compilerBundleSha256": "3d1a7bc92cddc5b47c722363a2069b3a6ef48f586fb6d26e810f69e6edfaabaa", + "hostSha256": "3b9f1df33d5d2143206fb3559d7a0e514f80b3dc729deb9df5df556d060e6d94", "contractsSourceSha256": "8f69b32c50461edd5db536becb6faedd5ba33945bf774534592034350702600a", "bindings": { "matchResult": "base.matchResult", diff --git a/ext/demo-site/test/module-goldens.json b/ext/demo-site/test/module-goldens.json @@ -1,6 +1,6 @@ { "schema": 1, - "nativeCompilerSha256": "6b7b389d64af12d85b85598db69d7ff71cf3dcb991c584e17e0caec8bcb44c7b", + "nativeCompilerSha256": "819ad1c86fbf2d6f86533439217146eb9ffd37ca7f95bb278063a28f0ab5b534", "trees": [ { "source": "!import bd2c14d6db6b69308a5252a8e839705a55d30e815f012900b094315263e08d81 as B\n!export keep\nkeep x = B.pair x x",