tricu

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

README.md (1440B)


Input-envelope experiment

Run from the repository root:

root=$(mktemp -d)
result/bin/tricu eval test/consumer_input_channel_experiment.tri \
  --store "$root" --io --unsafe-io --format tree
rm -rf "$root"

The probe loads the ordinary fold, mapMaybe, and stripPrefix SCP sources and the paired sources here. The input-envelope versions keep the existing worker ABI and @ _, but carry the changing accumulator, mapper descriptor, or prefix alongside the consumed input. It compares concrete success, skip, exact/short/mismatched prefix, and empty cases against the independent reference interpreter and the lexical compiler. The fixtures are imported and compiled from source; no fixed point is exported as a top-level value.

For named effects it also runs state-channel and packed-input versions of a two-receiver Echo protocol on both the success and operation-error paths. E.run still retains and supplies an environment: the packed version needs packedRefStep/packedLexStep adapters to form (resumption input, retained environment) before invoking its worker.

Both source styles compile and agree with the reference on these inputs. Packing adds envelope matching and repacking at every recurrence while retaining the effect state channel. Build cost, native CAS load and repeated-call performance need separate measurements. These exploratory fixtures live in test/experiments/ and run explicitly.