tricu

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

commit c27ad13561e7e6bc75559c0aec75a0fe8f59aeae
parent 06557f970e32aec1fe3ef32bcb25a055a0a77bb1
Author: James Eversole <james@eversole.co>
Date:   Fri, 16 Oct 2026 14:30:12 -0500

Keep server inspection guide focused on usage and exact-tree semantics

Diffstat:
Mdocs/tri-tools.md | 59++++++++++++++++++++++++-----------------------------------
1 file changed, 24 insertions(+), 35 deletions(-)

diff --git a/docs/tri-tools.md b/docs/tri-tools.md @@ -127,8 +127,8 @@ and inspecting it does not read `settings.txt`; running its IO tree would. ### Inspect the actual Arboricx server [`demos/arboricx-inspection/main.tri`](../demos/arboricx-inspection/main.tri) -reexports the application's exact `main` tree and adds a small inspection -vocabulary. It does not modify the deployment module: +reexports the application's exact `main` tree and adds named inspection views +in a separate companion module: ```sh result/bin/tricu arboricx compile --file demos/arboricx-inspection/main.tri \ @@ -155,45 +155,34 @@ main: tricuIO v1 finishStartup: continuation (not applied) ``` -These are export aliases, shown here instead of occurrence paths for readability. -Four ordinary configured exports match without decomposing `main`: `storeRoot`, -`createRootDirectory`, `ensureRootDirectory`, and `initializeStore`. General -helpers such as `ensureStore`, `onOk_`, or `abortIO` do not identify their -specialized uses in this outline. Even rebuilding an equivalent wrapper -expression need not yield the same tree. - -The other labels deliberately export **structural projections of the actual -materialized action**. The names are assigned by the demo author, not recovered -source provenance. Projection extracts a continuation as data; it does not apply -it. This is useful inspection vocabulary tied to the current action layout, not -a general source debugger. The acceptance harness checks the expected roles and -unchanged application identity. - -The separate `serveView` exposes a configured `serveRegistry` action, its -`createSocket` action, and opaque `afterSocketResult` continuation. It does not -reveal bind/listen/accept, which depend on the returned socket. Inspecting this -view does not mean the inspector followed `main`'s continuation. `initializeView` -similarly offers a shorter view of store initialization. Running these view -exports with `--io`, unlike inspecting them, would perform effects. - -With the packaged stable compiler in the acceptance run, the main-only bundle -was 271,426 bytes / 22,272 nodes; the named demo was 273,288 bytes / 22,341 nodes: -1,862 additional bytes (about 0.69%). Aliased occurrences rose from 1/11 to 11/11; -ordinary configured exports alone reached 5/11. These are measurements of this -application/compiler, not format guarantees or a prediction of future control -flow. All four displayed continuations remain opaque. - -Reproduce the comparison, including exact `main` identity, ordinary-export -controls, separate views, and saved JSON/outlines, in a new directory: +The outline uses export aliases in place of occurrence paths for readability. +Four configured values match directly: `storeRoot`, `createRootDirectory`, +`ensureRootDirectory`, and `initializeStore`. The remaining labels are +**author-named structural projections** of the materialized action. Projection +extracts existing subtrees as data; all four continuations remain opaque and +unapplied. Aliases establish exact tree identity; their names convey the author's +interpretation. Matching requires the specialized tree itself, rather than its +general library helper or an observationally equivalent expression. + +The independently materialized `serveView` exposes `serveRegistry`, its +`createSocket` action, and the opaque `afterSocketResult` continuation. +Bind/listen/accept remain behind that continuation and depend on the returned +socket. `initializeView` offers a shorter view of store initialization. Inspection +reads these trees; running the view exports with `--io` performs their effects. + +Run the comparison in a new directory: ```sh python3 test/arboricx_server_inspection.py result/bin/tricu \ --directory /tmp/server-inspection ``` -The harness compiles and imports artifacts for comparison but never executes -application IO. Compile timings in its report include sequential cache reuse and -are not cold-build performance comparisons. +The harness checks exact `main` identity, compares ordinary exports with +structural projections, and saves JSON reports and outlines for the separate +views. It reports bundle bytes, stored nodes, alias coverage, and compilation +timings for the selected compiler. Timings include sequential cache reuse. +Validation consists of compilation, artifact import, and read-only inspection; +application IO remains unexecuted. ### Identities, output, and limits