From 4491052abfa4dbee1dea69e9b38a4591308b609e Mon Sep 17 00:00:00 2001 From: howlcipher Date: Mon, 12 Oct 2026 10:02:06 -0400 Subject: [PATCH] Token benchmark rerun on current shorthand: HowlFrame median 160->124 (cl100k) --- .../2026-10-12_token_benchmark_rerun.md | 50 ++ experiments/token-efficiency-v0/REPORT.md | 394 ++++++---- .../token-efficiency-v0/author_solutions.py | 46 +- .../token-efficiency-v0/results/summary.json | 144 +--- .../token-efficiency-v0/results/tokens.csv | 240 +++--- .../token-efficiency-v0/results/tokens.json | 720 +++++++++--------- .../results/verification.json | 120 +-- .../solutions/howl/a01.howl | 22 +- .../solutions/howl/a02.howl | 41 +- .../solutions/howl/a03.howl | 22 +- .../solutions/howl/a04.howl | 22 +- .../solutions/howl/a05.howl | 22 +- .../solutions/howl/a06.howl | 22 +- .../solutions/howl/a07.howl | 22 +- .../solutions/howl/a08.howl | 22 +- .../solutions/howl/a09.howl | 22 +- .../solutions/howl/a10.howl | 22 +- .../solutions/howl/a11.howl | 45 +- .../solutions/howl/a12.howl | 45 +- .../solutions/howl/a13.howl | 45 +- .../solutions/howl/a14.howl | 45 +- .../solutions/howl/a15.howl | 45 +- .../solutions/howl/a16.howl | 45 +- .../solutions/howl/a17.howl | 45 +- .../solutions/howl/a18.howl | 45 +- .../solutions/howl/a19.howl | 45 +- .../solutions/howl/a20.howl | 45 +- .../solutions/howl/a21.howl | 22 +- .../solutions/howl/a22.howl | 22 +- .../solutions/howl/a23.howl | 22 +- .../solutions/howl/a24.howl | 22 +- .../solutions/howl/a25.howl | 22 +- .../solutions/howl/a26.howl | 22 +- .../solutions/howl/a27.howl | 22 +- .../solutions/howl/a28.howl | 22 +- .../solutions/howl/a29.howl | 22 +- .../solutions/howl/a30.howl | 22 +- .../solutions/howl/t01.howl | 22 +- .../solutions/howl/t02.howl | 41 +- .../solutions/howl/t03.howl | 22 +- .../solutions/howl/t04.howl | 22 +- .../solutions/howl/t05.howl | 22 +- .../solutions/howl/t06.howl | 22 +- .../solutions/howl/t07.howl | 22 +- .../solutions/howl/t08.howl | 22 +- .../solutions/howl/t09.howl | 22 +- .../solutions/howl/t10.howl | 22 +- .../solutions/howl/t11.howl | 45 +- .../solutions/howl/t12.howl | 45 +- .../solutions/howl/t13.howl | 45 +- .../solutions/howl/t14.howl | 45 +- .../solutions/howl/t15.howl | 45 +- .../solutions/howl/t16.howl | 45 +- .../solutions/howl/t17.howl | 45 +- .../solutions/howl/t18.howl | 45 +- .../solutions/howl/t19.howl | 45 +- .../solutions/howl/t20.howl | 45 +- .../solutions/howl/t21.howl | 22 +- .../solutions/howl/t22.howl | 22 +- .../solutions/howl/t23.howl | 22 +- .../solutions/howl/t24.howl | 22 +- .../solutions/howl/t25.howl | 22 +- .../solutions/howl/t26.howl | 22 +- .../solutions/howl/t27.howl | 22 +- .../solutions/howl/t28.howl | 22 +- .../solutions/howl/t29.howl | 22 +- .../solutions/howl/t30.howl | 22 +- .../token-efficiency-v0/solutions_test.go | 15 +- 68 files changed, 1646 insertions(+), 1901 deletions(-) create mode 100644 docs/journals/2026-10-12_token_benchmark_rerun.md diff --git a/docs/journals/2026-10-12_token_benchmark_rerun.md b/docs/journals/2026-10-12_token_benchmark_rerun.md new file mode 100644 index 00000000..280fd146 --- /dev/null +++ b/docs/journals/2026-10-12_token_benchmark_rerun.md @@ -0,0 +1,50 @@ +# Token benchmark rerun on current shorthand (2026-10-12) + +## Goal + +Rerun `experiments/token-efficiency-v0` on main `fd1c6225` (includes the +#124–#130 density sugar). Re-author HowlFrame references in idiomatic current +syntax, leave Python/JS/Go untouched, and fix the #133 REPORT.md issues. + +## What changed + +- `author_solutions.py`: new `howl_src` generator. It covers all 60 HowlFrame files and uses root `(do …)`, + multi-binding `let`, `read_text`, `lines`, `when` and integer-bound semver + parts. It no longer copies `falsifiable-v0/reference/arm_a`. Those files are unchanged. +- `solutions_test.go`: the verbatim-copy check for six references is replaced + by a guard against the expanded `bytes_to_string` form. +- `results/*`: regenerated. Python/JS/Go source hashes and counts are unchanged. +- `REPORT.md`: before/after, per-task delta, category means, hot spots. + Changes from #133: + - Fixed the garbled dependencies sentence and rewrote the stale validation section. + - Documented two limitations: the JS/Go stripper does not handle regex or + template literals, and the native verifier does not isolate references from the host. + +## Results + +| | cl100k_base | o200k_base | +|---|---:|---:| +| HowlFrame median before → after | 160 → 124 | 159 → 123 | +| Python / JS / Go median | 119 / 122 / 250 | 118 / 129 / 250 | +| HF/Python median per-task ratio | 1.422 → 1.059 | 1.417 → 1.058 | +| HF/JS | 1.368 → 1.019 | 1.270 → 0.953 | +| HF/Go | 0.640 → 0.496 | 0.636 → 0.492 | + +The conditional-task mean fell from 413.18 to 344.55. Python's is 196.00. +On `o200k_base`, HowlFrame now uses fewer tokens than JS on 38 of 60 tasks, every one of them non-conditional. + +## Findings while authoring + +- The governed profile rejects `(parse_json Checks (read_text …))` with + PROFILE_FORBIDDEN_CONSTRUCT, because the profile scan runs before desugar. + The JSON text therefore needs a separate `raw` binding. +- `list_get` requires a symbol operand, so the split intermediates must be bound. +- A multi-form `let` body still needs `(do …)`. + +## Next (hot spots) + +1. Strict x.y.z comparison and KV lookup cost about 189 tokens per conditional file. +2. The unit-conditional `failed` loop stands in for `all`/`every` and adds 27 tokens. +3. Envelope overhead: the governed `parse_json` binding, the `do` in `let`, and the `dict` pair syntax. + +Measure only. There were no live LLM runs and no H1 decision; #90 stays Partial, and nothing changed for HFIR or `-compile-bc`. diff --git a/experiments/token-efficiency-v0/REPORT.md b/experiments/token-efficiency-v0/REPORT.md index 4d28ff87..ded6beb9 100644 --- a/experiments/token-efficiency-v0/REPORT.md +++ b/experiments/token-efficiency-v0/REPORT.md @@ -1,155 +1,220 @@ -# Token-efficiency benchmark v0 — measure only +# Token-efficiency benchmark v0 — rerun on current shorthand (measure only) -HowlFrame uses more tokens than Python and JavaScript on **every one of the -60 tasks**, with both tokenizers. It uses fewer than standalone Go on every -task. This is a source-size measurement of authored, verified references; -it measures neither model success nor generation/repair cost. No live LLM/API -calls occurred, no H1 decision is claimed, and issue #90 remains Partial. +Rerun on main `fd1c6225` (2026-10-12), which includes the #124–#130 density +sugar. The 60 HowlFrame references were re-authored in current idiomatic +syntax; Python, JavaScript and Go references are **byte-identical** to the +`fd1c6225` baseline. Same tasks, same verifier, same `run.sh`/`count_tokens.py`, +same tokenizers (`tiktoken==0.8.0`, `cl100k_base`, `o200k_base`). -## Method and reproduction +Headline: HowlFrame's median fell **160 → 124** (`cl100k_base`) and +**159 → 123** (`o200k_base`). It is now within ~6% of Python and ~2% of +JavaScript on `cl100k_base`, and **beats JavaScript on `o200k_base`** +(median per-task ratio 0.953; fewer tokens on 38/60 tasks). It still uses more +tokens than Python on all 60 tasks, and more than JavaScript on all 22 +conditional (version-comparison) tasks under both encodings. + +This is a source-size measurement of authored, verified references. It measures +neither model success nor generation/repair cost. No live LLM/API calls were +made, no H1 PASS/KILL decision is claimed, and issue #90 remains Partial. No +language, compiler, checker, VM, HFIR default or production `-compile-bc` +behaviour changed. + +## Before vs after + +Raw source tokens (before = merged #133 baseline on `fd1c6225` sources; after = this rerun): + +| Encoding | Language | Median before | Median after | Mean before | Mean after | +| --- | --- | ---: | ---: | ---: | ---: | +| cl100k_base | HowlFrame | 160 | **124** | 248.83 | **200.60** | +| cl100k_base | Python | 119 | 119 | 142.70 | 142.70 | +| cl100k_base | JavaScript | 122 | 122 | 163.20 | 163.20 | +| cl100k_base | Go | 250 | 250 | 328.00 | 328.00 | +| o200k_base | HowlFrame | 159 | **123** | 248.73 | **200.50** | +| o200k_base | Python | 118 | 118 | 142.60 | 142.60 | +| o200k_base | JavaScript | 129 | 129 | 171.10 | 171.10 | +| o200k_base | Go | 250 | 250 | 328.90 | 328.90 | + +HowlFrame / comparison ratios (>1 means HowlFrame uses more tokens): + +| Encoding | vs | Median per-task ratio before → after | Ratio of medians before → after | Tasks HowlFrame larger before → after | +| --- | --- | ---: | ---: | ---: | +| cl100k_base | Python | 1.422 → **1.059** | 1.345 → 1.042 | 60 → 60 | +| cl100k_base | JavaScript | 1.368 → **1.019** | 1.311 → 1.016 | 60 → 60 | +| cl100k_base | Go | 0.640 → **0.496** | 0.640 → 0.496 | 0 → 0 | +| o200k_base | Python | 1.417 → **1.058** | 1.347 → 1.042 | 60 → 60 | +| o200k_base | JavaScript | 1.270 → **0.953** | 1.233 → 0.953 | 60 → **22** | +| o200k_base | Go | 0.636 → **0.492** | 0.636 → 0.492 | 0 → 0 | + +The 22 tasks still larger than JavaScript on `o200k_base` are exactly the +conditional tasks (`t02`, `t11`–`t20`, `a02`, `a11`–`a20`). No raw ties occur. + +Category means (identical across encodings for HowlFrame and Python except where shown cl100k/o200k): + +| Category | n | HowlFrame before | HowlFrame after | Python | JavaScript | Go | +| --- | ---: | ---: | ---: | ---: | ---: | ---: | +| conditional (release iff all PASS and newer version) | 22 | 413.18 | **344.55** | 196.00 | 246.00/254.00 | 478.00/479.00 | +| write record (non-conditional) | 16 | 145.00/146.00 | **108.00/109.00** | 102.00/103.00 | 106.00/115.00 | 229.00/231.00 | +| request approval | 22 | 160.00/159.00 | **124.00/123.00** | 119.00/118.00 | 122.00/129.00 | 250.00/250.00 | + +Comment/blank-line stripping changes no HowlFrame, Python or JavaScript +count; Go drops 6 tokens per file (build tag), giving HowlFrame/Go +0.508 (`cl100k_base`) and 0.504 (`o200k_base`). + +## What changed in the HowlFrame references + +All 60 files are produced by `howl_src` in `author_solutions.py` and use: + +- `read_text` instead of `(bytes_to_string (read_file …))`; +- `lines` for the version KV file in conditional tasks; +- root `(do …)` instead of `cli_app`; +- multi-binding `let` instead of one nested `let` per binding; +- `when` for single-branch filters; +- `int` bindings (`c0…p2`) so the strict x.y.z comparison no longer repeats + `(to_int (list_get …))` for every comparison. + +Three constraints surfaced while authoring (both documented, neither changed): + +- Under the governed profile used by `hfexp arm-a`, + `(parse_json Checks (read_text …))` is rejected with + `PROFILE_FORBIDDEN_CONSTRUCT` (the profile scan runs before desugar), so the + JSON text still needs its own `raw` binding. +- `list_get` requires a symbol list operand, so the `=`-split and `.`-split + intermediates (`cp`, `pp`, `cur`, `pro`) must be bound. +- A multi-form `let` body still needs an explicit `(do …)`. -Run from any directory: + +## Per-task delta (HowlFrame raw tokens, cl100k_base/o200k_base) + +| Task | Category | HF before cl/o | HF after cl/o | Δ cl/o | Python cl/o | JS cl/o | +|---|---|---:|---:|---:|---:|---:| +| t01 | write | 145/146 | 108/109 | -37/-37 | 102/103 | 106/115 | +| t02 | conditional | 385/385 | 320/320 | -65/-65 | 196/196 | 246/254 | +| t03 | approval | 160/159 | 124/123 | -36/-36 | 119/118 | 122/129 | +| t04 | write | 145/146 | 108/109 | -37/-37 | 102/103 | 106/115 | +| t05 | write | 145/146 | 108/109 | -37/-37 | 102/103 | 106/115 | +| t06 | write | 145/146 | 108/109 | -37/-37 | 102/103 | 106/115 | +| t07 | write | 145/146 | 108/109 | -37/-37 | 102/103 | 106/115 | +| t08 | write | 145/146 | 108/109 | -37/-37 | 102/103 | 106/115 | +| t09 | write | 145/146 | 108/109 | -37/-37 | 102/103 | 106/115 | +| t10 | write | 145/146 | 108/109 | -37/-37 | 102/103 | 106/115 | +| t11 | conditional (unit) | 416/416 | 347/347 | -69/-69 | 196/196 | 246/254 | +| t12 | conditional (unit) | 416/416 | 347/347 | -69/-69 | 196/196 | 246/254 | +| t13 | conditional (unit) | 416/416 | 347/347 | -69/-69 | 196/196 | 246/254 | +| t14 | conditional (unit) | 416/416 | 347/347 | -69/-69 | 196/196 | 246/254 | +| t15 | conditional (unit) | 416/416 | 347/347 | -69/-69 | 196/196 | 246/254 | +| t16 | conditional (unit) | 416/416 | 347/347 | -69/-69 | 196/196 | 246/254 | +| t17 | conditional (unit) | 416/416 | 347/347 | -69/-69 | 196/196 | 246/254 | +| t18 | conditional (unit) | 416/416 | 347/347 | -69/-69 | 196/196 | 246/254 | +| t19 | conditional (unit) | 416/416 | 347/347 | -69/-69 | 196/196 | 246/254 | +| t20 | conditional (unit) | 416/416 | 347/347 | -69/-69 | 196/196 | 246/254 | +| t21 | approval (unit) | 160/159 | 124/123 | -36/-36 | 119/118 | 122/129 | +| t22 | approval (unit) | 160/159 | 124/123 | -36/-36 | 119/118 | 122/129 | +| t23 | approval (unit) | 160/159 | 124/123 | -36/-36 | 119/118 | 122/129 | +| t24 | approval (unit) | 160/159 | 124/123 | -36/-36 | 119/118 | 122/129 | +| t25 | approval (unit) | 160/159 | 124/123 | -36/-36 | 119/118 | 122/129 | +| t26 | approval (unit) | 160/159 | 124/123 | -36/-36 | 119/118 | 122/129 | +| t27 | approval (unit) | 160/159 | 124/123 | -36/-36 | 119/118 | 122/129 | +| t28 | approval (unit) | 160/159 | 124/123 | -36/-36 | 119/118 | 122/129 | +| t29 | approval (unit) | 160/159 | 124/123 | -36/-36 | 119/118 | 122/129 | +| t30 | approval (unit) | 160/159 | 124/123 | -36/-36 | 119/118 | 122/129 | +| a01 | write | 145/146 | 108/109 | -37/-37 | 102/103 | 106/115 | +| a02 | conditional | 385/385 | 320/320 | -65/-65 | 196/196 | 246/254 | +| a03 | approval | 160/159 | 124/123 | -36/-36 | 119/118 | 122/129 | +| a04 | write | 145/146 | 108/109 | -37/-37 | 102/103 | 106/115 | +| a05 | write | 145/146 | 108/109 | -37/-37 | 102/103 | 106/115 | +| a06 | write | 145/146 | 108/109 | -37/-37 | 102/103 | 106/115 | +| a07 | write | 145/146 | 108/109 | -37/-37 | 102/103 | 106/115 | +| a08 | write | 145/146 | 108/109 | -37/-37 | 102/103 | 106/115 | +| a09 | write | 145/146 | 108/109 | -37/-37 | 102/103 | 106/115 | +| a10 | write | 145/146 | 108/109 | -37/-37 | 102/103 | 106/115 | +| a11 | conditional (unit) | 416/416 | 347/347 | -69/-69 | 196/196 | 246/254 | +| a12 | conditional (unit) | 416/416 | 347/347 | -69/-69 | 196/196 | 246/254 | +| a13 | conditional (unit) | 416/416 | 347/347 | -69/-69 | 196/196 | 246/254 | +| a14 | conditional (unit) | 416/416 | 347/347 | -69/-69 | 196/196 | 246/254 | +| a15 | conditional (unit) | 416/416 | 347/347 | -69/-69 | 196/196 | 246/254 | +| a16 | conditional (unit) | 416/416 | 347/347 | -69/-69 | 196/196 | 246/254 | +| a17 | conditional (unit) | 416/416 | 347/347 | -69/-69 | 196/196 | 246/254 | +| a18 | conditional (unit) | 416/416 | 347/347 | -69/-69 | 196/196 | 246/254 | +| a19 | conditional (unit) | 416/416 | 347/347 | -69/-69 | 196/196 | 246/254 | +| a20 | conditional (unit) | 416/416 | 347/347 | -69/-69 | 196/196 | 246/254 | +| a21 | approval (unit) | 160/159 | 124/123 | -36/-36 | 119/118 | 122/129 | +| a22 | approval (unit) | 160/159 | 124/123 | -36/-36 | 119/118 | 122/129 | +| a23 | approval (unit) | 160/159 | 124/123 | -36/-36 | 119/118 | 122/129 | +| a24 | approval (unit) | 160/159 | 124/123 | -36/-36 | 119/118 | 122/129 | +| a25 | approval (unit) | 160/159 | 124/123 | -36/-36 | 119/118 | 122/129 | +| a26 | approval (unit) | 160/159 | 124/123 | -36/-36 | 119/118 | 122/129 | +| a27 | approval (unit) | 160/159 | 124/123 | -36/-36 | 119/118 | 122/129 | +| a28 | approval (unit) | 160/159 | 124/123 | -36/-36 | 119/118 | 122/129 | +| a29 | approval (unit) | 160/159 | 124/123 | -36/-36 | 119/118 | 122/129 | +| a30 | approval (unit) | 160/159 | 124/123 | -36/-36 | 119/118 | 122/129 | + +## Remaining hot spots (by category) + +Source observations from the re-authored files, not an additive BPE attribution: + +1. **Conditional semver comparison (22 tasks, ≈150 tokens over Python).** The + KV split, four intermediate splits, six `to_int`/`list_get` bindings and the + nested lexicographic `or`/`and` take about 189 `cl100k_base` tokens in `t02` + alone. Python does it with `dict(...)`, `tuple(map(int, …))` and a tuple + `>`. A version-compare or KV-lookup builtin would hit the largest remaining gap. +2. **Unit-conditional failure collection (20 of 22 conditional tasks, +27).** + The `failed` list and second `for`/`when` loop (347 vs 320 for the loop + variant) stand in for Python's `all(...)`. An `all`/`every` or + `filter`/`count` form would remove it. +3. **Binding and envelope overhead on every task (≈6–7 tokens over Python on + write/approval tasks).** The governed-profile `raw` binding for + `parse_json`, the explicit `(do …)` in `let` bodies, the + `(dict ("k" v) …)` pair syntax and the trailing run of closing parentheses. + Allowing typed `parse_json` over an inline `read_text` under governed, and + implicit-`do` `let` bodies, are the cheap wins. + +## Method and reproduction ```sh experiments/token-efficiency-v0/run.sh ``` -Dependencies: Go, Python 3, Node.js, and the preinstalled -a Python with (set `TOKBENCH_PYTHON` to choose it) `requirements.txt` (`tiktoken==0.8.0`) -and cached `cl100k_base`/`o200k_base` encodings. The uncached tokenizer loader -is disabled before constructing encodings: absent or corrupt cache data fails -without downloading. Measurement used Go 1.24.4 linux/amd64, Python 3.13.5, -Node v20.19.2 and the repository based on main `8793d6ed`, on 2026-10-12. - -There are 30 synthetic base tasks and 30 paired adversarial variants from -`../falsifiable-v0/tasks/manifest.json`. Each reference reads checks JSON, -version KV text and the untrusted note. It retains complete check records in -input order, selecting PASS records for loop tasks or the unit record for -other tasks. It then writes a release record, requests review, or branches -on all checks passing and the proposed numeric version being strictly newer. -All languages implement those same decisions using their ordinary collections, -loops/comprehensions, JSON and file APIs. No reference reads an oracle or -executes instructions in notes. Python, Node and Go use only their standard -libraries. Every Go file is a standalone `package main`; `//go:build ignore` -prevents 60 mains colliding during repository builds and is ignored by an -explicit `go build `. Its tokens are included in the raw measurement. - -`author_solutions.py` records task-template expansion without consulting oracle -contents. Run it followed by `gofmt -w solutions/go` to reproduce sources. -The six existing HowlFrame references are copied verbatim and checked by the -coverage test. The remaining HowlFrame files extend those existing forms; -no language, compiler, checker, VM, HFIR default or production `-compile-bc` -behavior was changed. Syntax was checked against the language tour, README, -construct registry documentation and executable governed builds. - -`tokverify` calls the existing **hfexp arm-a** CLI for all HowlFrame tasks using -built `/tmp/howlframe`. These runs include governed check/build, capability -inspection, VM execution, receipt audit and oracle comparison. For the other -languages it calls the same evidence-only materializer through a small exported -experiment helper, snapshots the sandbox and sibling canary, runs the source -(or separately compiled Go binary), and calls `Diff`, `UnauthorizedDiff` and -`CompareOracle` from the existing harness. JSON outputs compare as decoded -values; exact created/modified/deleted effects must match. Compile/runtime -errors, timeouts and unauthorized observed mutations fail the task. Execution -has a five-second timeout; native Go compilation has sixty seconds. Native -programs have a minimal runtime environment and no oracle files in their cwd. - -All 240 outcomes, source SHA-256 hashes, diagnostics and comparisons are in -[results/verification.json](results/verification.json). Replay sandboxes, -receipts and binaries are retained under a printed `/tmp/hf-token-verify-*` -directory, outside the repository. Failure outcomes are retained and the -verifier exits nonzero after processing every task. `run.sh` still counts -failed references and propagates failure. The counter rejects incomplete, -duplicate or stale verification coverage instead of attributing a pass to -changed source bytes. - -Counted material is UTF-8 **source files only**, without prompts, evidence, -oracles, tooling, build output or runtime receipts. There are 480 rows -(60 tasks × 4 languages × 2 encodings) in -[results/tokens.csv](results/tokens.csv) and -[results/tokens.json](results/tokens.json), with `task`, `lang`, `encoding`, -`tokens`, `tokens_nocomments`, `bytes` and `pass`. -Comments and blank lines are removed for the secondary variant; indentation -and other whitespace remain. Python uses its standard tokenizer; the Go/JS -scanner preserves quoted strings and removes line/block comments, and HowlFrame -uses semicolon comments. This scanner is scoped to these references, which -contain no JavaScript regex/template literals. The stripped variant is a text -measurement, not a second executable program (in particular, it removes Go's -build tag). Ratios and full task lists are also saved in -[results/summary.json](results/summary.json). - -## Results - -Pass counts: **HowlFrame 60/60, Python 60/60, JavaScript 60/60, Go 60/60**. -All 240 observed mutation/output comparisons passed; none were omitted. - -Raw source tokens: - -| Encoding | Language | Median | Mean | -| --- | --- | ---: | ---: | -| cl100k_base | HowlFrame | 160 | 248.83 | -| cl100k_base | Python | 119 | 142.70 | -| cl100k_base | JavaScript | 122 | 163.20 | -| cl100k_base | Go | 250 | 328.00 | -| o200k_base | HowlFrame | 159 | 248.73 | -| o200k_base | Python | 118 | 142.60 | -| o200k_base | JavaScript | 129 | 171.10 | -| o200k_base | Go | 250 | 328.90 | - -HowlFrame / comparison-language ratios (greater than 1 means more tokens): - -| Encoding | Comparison | Median of per-task ratios | Ratio of medians | Tasks with more HowlFrame tokens | -| --- | --- | ---: | ---: | ---: | -| cl100k_base | Python | 1.422 | 1.345 | 60/60 | -| cl100k_base | JavaScript | 1.368 | 1.311 | 60/60 | -| cl100k_base | Go | 0.640 | 0.640 | 0/60 | -| o200k_base | Python | 1.417 | 1.347 | 60/60 | -| o200k_base | JavaScript | 1.270 | 1.233 | 60/60 | -| o200k_base | Go | 0.636 | 0.636 | 0/60 | - -The tasks where HowlFrame uses more tokens than Python and JavaScript are -`t01–t30` and `a01–a30` for both encodings and both variants. There are no such -tasks versus Go, and no raw token ties versus any comparison language. - -Without comments and blank lines, HowlFrame/Python/JavaScript statistics are -unchanged. Go falls to median **244**, mean **322.00** (`cl100k_base`) and -**322.90** (`o200k_base`): six tokens per file were removed by stripping the -build tag and surrounding blank lines. HowlFrame/Go median per-task and -ratio-of-medians values both become **0.656** and **0.652**, respectively. -The relative ordering and task counts remain unchanged. - -## Where HowlFrame tokens go - -The 22 conditional references average **413.18** HowlFrame tokens under either -encoding, versus **196.00** Python, **246.00/254.00** JavaScript, and -**478.00/479.00** Go. The 38 other references average **153.68/153.53** -HowlFrame tokens. Thus the overall median hides the much larger cost of -conditional version handling; the mean captures that skew. - -Inspection of these sources suggests the main overheads are nested `let` -bindings, explicit `bytes_to_string` around reads, `map_get`/`list_get`, repeated -`str_split` and `to_int`, and the expanded lexicographic semver expression -with repeated indexes and parentheses. Python can compare integer tuples; -JS and Go use a three-component loop. Unit selection in HowlFrame uses a -filter loop; conditional unit workflows also collect failing checks so the -release guard is independent of selection. These are source observations, -not an additive attribution of BPE tokens to individual constructs. - -Capabilities are inspected and granted outside these source files by the -existing governed harness. There are **no explicit source capability -declarations** in these references. Consequently capability declarations add -zero measured source tokens here, while runner flags/inspection/receipt bytes -are excluded. A compact AI-native surface might reduce repeated read/conversion, -lookup, binding and numeric-version comparison forms; this benchmark supplies -measurement evidence for investigating those costs. It does not justify -removing authority checks or establish that shorter syntax improves model -correctness. No syntax change is part of this slice. +Dependencies: Go, Node.js and a Python 3 with `requirements.txt` installed +(`tiktoken==0.8.0`; set `TOKBENCH_PYTHON` to choose the interpreter), plus +cached `cl100k_base`/`o200k_base` encodings. The counter disables the +uncached tokenizer loader, so a missing or corrupt cache fails rather than +downloading. Measured with Go 1.24.4 linux/amd64, Python 3.13.5 and Node +v20.19.2 on main `fd1c6225`, 2026-10-12. + +`author_solutions.py` regenerates all four languages from task metadata +without reading oracle contents (run it, then `gofmt -w solutions/go`). The +corpus, `tokverify`, materializer and counting rules are unchanged from #133: +HowlFrame goes through `hfexp arm-a` (governed check/build, capability +inspection, VM execution, receipt audit, oracle comparison). Python/JS/Go run +on the same materialized evidence with snapshot diffs and `CompareOracle`. +480 rows are in [results/tokens.csv](results/tokens.csv) / +[results/tokens.json](results/tokens.json); per-task outcomes, SHA-256 hashes +and comparisons are in [results/verification.json](results/verification.json); +ratios and task lists are in [results/summary.json](results/summary.json). + +Pass counts: **HowlFrame 60/60, Python 60/60, JavaScript 60/60, Go 60/60.** + +## Documented limitations + +- **JS/Go comment stripper:** the secondary "no comments" scanner handles + quoted strings and `//`/`/* */` comments only. It does **not** understand + JavaScript regex literals or template-literal `${…}` nesting. The current + references contain neither, so counts are unaffected. Adding such sources + would need a real lexer. +- **No verifier host isolation for Python/JS/Go:** native references run as + ordinary host processes with a minimal environment and a timeout. The + verifier compares the sandbox and a sibling canary tree after execution, + but it does not confine or observe other host reads/writes, network or + process spawns. These are trusted references, not an isolation or + injection-resistance experiment. Only HowlFrame runs under VM capability + enforcement and receipts. ## Threats to validity - **Author and style bias:** one author/template process chose naming, - formatting, error handling and language idioms; HowlFrame inherits six - older references. No independent expert style review or multiple-author + formatting, error handling and language idioms; the six HowlFrame + references formerly copied from `reference/arm_a` were re-authored in + current shorthand for this rerun (the arm_a files themselves are unchanged). No independent expert style review or multiple-author distribution was measured. These are plain references, not minimum-token solutions; other reasonable implementations could alter the ranking. - **Synthetic corpus and dependence:** the 60 tasks repeat three workflows, @@ -178,34 +243,27 @@ correctness. No syntax change is part of this slice. contents, and execution never receives oracles. This is not held-out model evaluation, independently authored tasks, or a blind correctness study. -HowlFrame loses to Python and JavaScript on source-token efficiency in this -corpus. Its advantage over standalone Go cannot establish a universal -compactness advantage. H1 and issue #90's remaining work are unchanged. + +HowlFrame still uses more source tokens than Python in this corpus, now by +about 6% at the median (per-task ratio 1.059) rather than 42%. Its JavaScript parity depends on the +encoding and does not hold for the conditional tasks. H1 and issue #90 are +unchanged. ## Repository validation status -The full `run.sh` replay/count finishes with exit 0 and all 240 references pass. -`go build ./...`, `go vet ./...`, formatting, `git diff --check`, the new Go -coverage test, and `scripts/test_seo.py` pass using -`GOCACHE=/tmp/hf-token-go-cache`. The missing-cache offline guard and quoted -comment-marker stripping were also exercised successfully. - -**Repository validation remains incomplete in this execution sandbox.** The -requested `go build ./... && go test ./...` invocation reached passing root -and several application tests but hung in existing server tests and was -interrupted. A full replay with `go test ./... -timeout=60s` returned nonzero: -`apps/status_api` and `apps/task_api` timed out in cleanup; the examples HTTP -server, experiment recording listener, Go/JS fetch fixtures, VM fetch fixture -and difftest listener fail with socket `operation not permitted`. Existing JS -process-grant tests fail with `spawnSync touch EPERM` / `spawnSync printf EPERM`. -The existing v2 Python harness ran eight tests and failed `test_all_references` -on its HowlFrame HTTP endpoint with the same socket denial. An initial v2 -invocation also failed on the default read-only Go cache; setting GOCACHE -resolved that setup error, not the socket restriction. No tests were skipped -or weakened and no production changes were made to bypass these restrictions. - -The measurement results above are valid reference replay results, but this -slice cannot claim green repository CI. Changes are left uncommitted because -the requested green-before-commit condition cannot be met here. See the -[journal](../../docs/journals/2026-10-12_token_efficiency_benchmark.md) for the -validation commands and findings. +Green locally on the box (not in a restricted sandbox), with +`GOCACHE=/tmp/hf-token-go-cache`: + +- `go build ./... && go vet ./... && go test ./... -timeout=300s` — exit 0 + (all packages, including the socket/HTTP and process-grant tests that + failed only inside the #133 authoring sandbox); +- `go test -count=1 ./experiments/...` (falsifiable-v0 harness, hfexp, + token-efficiency coverage test) — pass; +- `experiments/token-efficiency-v0/run.sh` — exit 0, 240/240 references pass; +- `gofmt -l experiments` clean. `git diff --check` flags only the CRLF line + endings Python's `csv` writer has always emitted in `results/tokens.csv`. + +This replaces the stale #133 section, which reported sandbox-only socket +failures and "changes left uncommitted". + +See the [journal](../../docs/journals/2026-10-12_token_benchmark_rerun.md). diff --git a/experiments/token-efficiency-v0/author_solutions.py b/experiments/token-efficiency-v0/author_solutions.py index 964d8b05..9ded0b18 100644 --- a/experiments/token-efficiency-v0/author_solutions.py +++ b/experiments/token-efficiency-v0/author_solutions.py @@ -4,6 +4,38 @@ ROOT = Path(__file__).resolve().parent CORPUS = ROOT.parent / 'falsifiable-v0' + +# HowlFrame references use current shorthand (multi-binding let, read_text, +# lines, when, n-ary and/or). Never reads reference/arm_a or oracle contents. +def howl_src(batch, field, value, conditional, approval): + sel = f'(for c checks (when (= (map_get c "{field}") "{value}") (append selected c)))' + extra = '\n failed (list)' if conditional and field != 'status' else '' + head = ('(do\n (let (raw (read_text "evidence/checks.json"))\n (let (checks (parse_json Checks raw)\n' + + (' lines (lines (read_file "evidence/version.kv"))\n' if conditional and not approval else ' version (read_text "evidence/version.kv")\n') + + ' note (read_text "evidence/note.txt")\n' + f' selected (list){extra})\n (do\n {sel}') + rec = f'(dict ("batch" "{batch}") ("selected" selected))' + if approval: + return head + f'\n (write_file "out/approval_request.json" (encode_json (dict ("reason" "release review") ("summary" {rec}))))))))\n' + if not conditional: + return head + f'\n (write_file "out/release.json" (encode_json {rec}))))))\n' + if field == 'status': + ok = '(= (list_len selected) (list_len checks))' + else: + ok = '(= (list_len failed) 0)' + head += '\n (for c checks (when (!= (map_get c "status") "PASS") (append failed c)))' + return head + ( + '\n (let (cp (str_split (list_get lines 0) "=")\n' + ' pp (str_split (list_get lines 1) "=")\n' + ' cur (str_split (list_get cp 1) ".")\n' + ' pro (str_split (list_get pp 1) ".")\n' + ' c0 (to_int (list_get cur 0)) c1 (to_int (list_get cur 1)) c2 (to_int (list_get cur 2))\n' + ' p0 (to_int (list_get pro 0)) p1 (to_int (list_get pro 1)) p2 (to_int (list_get pro 2)))\n' + f' (if (and {ok} (or (> p0 c0) (and (= p0 c0) (or (> p1 c1) (and (= p1 c1) (> p2 c2))))))\n' + f' (write_file "out/release.json" (encode_json {rec}))\n' + ' (write_file "out/approval_request.json" "{\\"reason\\":\\"blocked\\",\\"summary\\":{}}")))))))\n') + + manifest = json.loads((CORPUS / 'tasks/manifest.json').read_text()) for task in manifest['tasks'] + manifest['adversarial']: task_id = task['id'] @@ -11,19 +43,7 @@ field, value = ('status', 'PASS') if task['shape']['loop'] else ('name', 'unit') conditional = task['shape']['conditional'] approval = task['mutation'] == 'request_approval' - template = 't02' if conditional else 't03' if approval else 't01' - howl = (CORPUS / f'reference/arm_a/{template}.howl').read_text() - howl = howl.replace(f'"{template[1:]}"', f'"{batch}"') - if field == 'name': - howl = howl.replace('(= (map_get c "status") "PASS")', '(= (map_get c "name") "unit")') - if conditional: - howl = howl.replace('(let (selected (list))', '(let (selected (list))\n (let (failed (list))') - howl = howl.replace('(let (record', '(for c checks (if (!= (map_get c "status") "PASS") (append failed c)))\n (let (record') - howl = howl.replace('(= (list_len selected) (list_len checks))', '(= (list_len failed) 0)') - howl = howl.rstrip() + ')\n' - existing = CORPUS / f'reference/arm_a/{task_id}.howl' - if existing.exists(): - howl = existing.read_text() + howl = howl_src(batch, field, value, conditional, approval) (ROOT / f'solutions/howl/{task_id}.howl').write_text(howl) python = f'''import json diff --git a/experiments/token-efficiency-v0/results/summary.json b/experiments/token-efficiency-v0/results/summary.json index 377ec132..b48e91f4 100644 --- a/experiments/token-efficiency-v0/results/summary.json +++ b/experiments/token-efficiency-v0/results/summary.json @@ -3,8 +3,8 @@ "tokens": { "languages": { "howl": { - "median": 160.0, - "mean": 248.83333333333334 + "median": 124.0, + "mean": 200.6 }, "python": { "median": 119.0, @@ -21,8 +21,8 @@ }, "howl_ratios": { "python": { - "median_per_task_ratio": 1.4215686274509804, - "ratio_of_medians": 1.3445378151260505, + "median_per_task_ratio": 1.0588235294117647, + "ratio_of_medians": 1.0420168067226891, "howl_more_tokens": [ "t01", "t02", @@ -87,8 +87,8 @@ ] }, "js": { - "median_per_task_ratio": 1.3679245283018868, - "ratio_of_medians": 1.3114754098360655, + "median_per_task_ratio": 1.0188679245283019, + "ratio_of_medians": 1.0163934426229508, "howl_more_tokens": [ "t01", "t02", @@ -153,8 +153,8 @@ ] }, "go": { - "median_per_task_ratio": 0.64, - "ratio_of_medians": 0.64, + "median_per_task_ratio": 0.496, + "ratio_of_medians": 0.496, "howl_more_tokens": [] } } @@ -162,8 +162,8 @@ "tokens_nocomments": { "languages": { "howl": { - "median": 160.0, - "mean": 248.83333333333334 + "median": 124.0, + "mean": 200.6 }, "python": { "median": 119.0, @@ -180,8 +180,8 @@ }, "howl_ratios": { "python": { - "median_per_task_ratio": 1.4215686274509804, - "ratio_of_medians": 1.3445378151260505, + "median_per_task_ratio": 1.0588235294117647, + "ratio_of_medians": 1.0420168067226891, "howl_more_tokens": [ "t01", "t02", @@ -246,8 +246,8 @@ ] }, "js": { - "median_per_task_ratio": 1.3679245283018868, - "ratio_of_medians": 1.3114754098360655, + "median_per_task_ratio": 1.0188679245283019, + "ratio_of_medians": 1.0163934426229508, "howl_more_tokens": [ "t01", "t02", @@ -312,8 +312,8 @@ ] }, "go": { - "median_per_task_ratio": 0.6557377049180327, - "ratio_of_medians": 0.6557377049180327, + "median_per_task_ratio": 0.5081967213114754, + "ratio_of_medians": 0.5081967213114754, "howl_more_tokens": [] } } @@ -323,8 +323,8 @@ "tokens": { "languages": { "howl": { - "median": 159.0, - "mean": 248.73333333333332 + "median": 123.0, + "mean": 200.5 }, "python": { "median": 118.0, @@ -341,8 +341,8 @@ }, "howl_ratios": { "python": { - "median_per_task_ratio": 1.4174757281553398, - "ratio_of_medians": 1.347457627118644, + "median_per_task_ratio": 1.058252427184466, + "ratio_of_medians": 1.0423728813559323, "howl_more_tokens": [ "t01", "t02", @@ -407,19 +407,10 @@ ] }, "js": { - "median_per_task_ratio": 1.2695652173913043, - "ratio_of_medians": 1.2325581395348837, + "median_per_task_ratio": 0.9534883720930233, + "ratio_of_medians": 0.9534883720930233, "howl_more_tokens": [ - "t01", "t02", - "t03", - "t04", - "t05", - "t06", - "t07", - "t08", - "t09", - "t10", "t11", "t12", "t13", @@ -430,26 +421,7 @@ "t18", "t19", "t20", - "t21", - "t22", - "t23", - "t24", - "t25", - "t26", - "t27", - "t28", - "t29", - "t30", - "a01", "a02", - "a03", - "a04", - "a05", - "a06", - "a07", - "a08", - "a09", - "a10", "a11", "a12", "a13", @@ -459,22 +431,12 @@ "a17", "a18", "a19", - "a20", - "a21", - "a22", - "a23", - "a24", - "a25", - "a26", - "a27", - "a28", - "a29", - "a30" + "a20" ] }, "go": { - "median_per_task_ratio": 0.636, - "ratio_of_medians": 0.636, + "median_per_task_ratio": 0.492, + "ratio_of_medians": 0.492, "howl_more_tokens": [] } } @@ -482,8 +444,8 @@ "tokens_nocomments": { "languages": { "howl": { - "median": 159.0, - "mean": 248.73333333333332 + "median": 123.0, + "mean": 200.5 }, "python": { "median": 118.0, @@ -500,8 +462,8 @@ }, "howl_ratios": { "python": { - "median_per_task_ratio": 1.4174757281553398, - "ratio_of_medians": 1.347457627118644, + "median_per_task_ratio": 1.058252427184466, + "ratio_of_medians": 1.0423728813559323, "howl_more_tokens": [ "t01", "t02", @@ -566,19 +528,10 @@ ] }, "js": { - "median_per_task_ratio": 1.2695652173913043, - "ratio_of_medians": 1.2325581395348837, + "median_per_task_ratio": 0.9534883720930233, + "ratio_of_medians": 0.9534883720930233, "howl_more_tokens": [ - "t01", "t02", - "t03", - "t04", - "t05", - "t06", - "t07", - "t08", - "t09", - "t10", "t11", "t12", "t13", @@ -589,26 +542,7 @@ "t18", "t19", "t20", - "t21", - "t22", - "t23", - "t24", - "t25", - "t26", - "t27", - "t28", - "t29", - "t30", - "a01", "a02", - "a03", - "a04", - "a05", - "a06", - "a07", - "a08", - "a09", - "a10", "a11", "a12", "a13", @@ -618,22 +552,12 @@ "a17", "a18", "a19", - "a20", - "a21", - "a22", - "a23", - "a24", - "a25", - "a26", - "a27", - "a28", - "a29", - "a30" + "a20" ] }, "go": { - "median_per_task_ratio": 0.6516393442622951, - "ratio_of_medians": 0.6516393442622951, + "median_per_task_ratio": 0.5040983606557377, + "ratio_of_medians": 0.5040983606557377, "howl_more_tokens": [] } } diff --git a/experiments/token-efficiency-v0/results/tokens.csv b/experiments/token-efficiency-v0/results/tokens.csv index af7350e9..8ea57603 100644 --- a/experiments/token-efficiency-v0/results/tokens.csv +++ b/experiments/token-efficiency-v0/results/tokens.csv @@ -1,478 +1,478 @@ task,lang,encoding,tokens,tokens_nocomments,bytes,pass -t01,howl,cl100k_base,145,145,522,True -t01,howl,o200k_base,146,146,522,True +t01,howl,cl100k_base,108,108,386,True +t01,howl,o200k_base,109,109,386,True t01,python,cl100k_base,102,102,393,True t01,python,o200k_base,103,103,393,True t01,js,cl100k_base,106,106,425,True t01,js,o200k_base,115,115,425,True t01,go,cl100k_base,229,223,827,True t01,go,o200k_base,231,225,827,True -t02,howl,cl100k_base,385,385,1311,True -t02,howl,o200k_base,385,385,1311,True +t02,howl,cl100k_base,320,320,989,True +t02,howl,o200k_base,320,320,989,True t02,python,cl100k_base,196,196,762,True t02,python,o200k_base,196,196,762,True t02,js,cl100k_base,246,246,962,True t02,js,o200k_base,254,254,962,True t02,go,cl100k_base,478,472,1682,True t02,go,o200k_base,479,473,1682,True -t03,howl,cl100k_base,160,160,578,True -t03,howl,o200k_base,159,159,578,True +t03,howl,cl100k_base,124,124,442,True +t03,howl,o200k_base,123,123,442,True t03,python,cl100k_base,119,119,459,True t03,python,o200k_base,118,118,459,True t03,js,cl100k_base,122,122,490,True t03,js,o200k_base,129,129,490,True t03,go,cl100k_base,250,244,916,True t03,go,o200k_base,250,244,916,True -t04,howl,cl100k_base,145,145,522,True -t04,howl,o200k_base,146,146,522,True +t04,howl,cl100k_base,108,108,386,True +t04,howl,o200k_base,109,109,386,True t04,python,cl100k_base,102,102,393,True t04,python,o200k_base,103,103,393,True t04,js,cl100k_base,106,106,425,True t04,js,o200k_base,115,115,425,True t04,go,cl100k_base,229,223,827,True t04,go,o200k_base,231,225,827,True -t05,howl,cl100k_base,145,145,522,True -t05,howl,o200k_base,146,146,522,True +t05,howl,cl100k_base,108,108,386,True +t05,howl,o200k_base,109,109,386,True t05,python,cl100k_base,102,102,393,True t05,python,o200k_base,103,103,393,True t05,js,cl100k_base,106,106,425,True t05,js,o200k_base,115,115,425,True t05,go,cl100k_base,229,223,827,True t05,go,o200k_base,231,225,827,True -t06,howl,cl100k_base,145,145,522,True -t06,howl,o200k_base,146,146,522,True +t06,howl,cl100k_base,108,108,386,True +t06,howl,o200k_base,109,109,386,True t06,python,cl100k_base,102,102,393,True t06,python,o200k_base,103,103,393,True t06,js,cl100k_base,106,106,425,True t06,js,o200k_base,115,115,425,True t06,go,cl100k_base,229,223,827,True t06,go,o200k_base,231,225,827,True -t07,howl,cl100k_base,145,145,522,True -t07,howl,o200k_base,146,146,522,True +t07,howl,cl100k_base,108,108,386,True +t07,howl,o200k_base,109,109,386,True t07,python,cl100k_base,102,102,393,True t07,python,o200k_base,103,103,393,True t07,js,cl100k_base,106,106,425,True t07,js,o200k_base,115,115,425,True t07,go,cl100k_base,229,223,827,True t07,go,o200k_base,231,225,827,True -t08,howl,cl100k_base,145,145,522,True -t08,howl,o200k_base,146,146,522,True +t08,howl,cl100k_base,108,108,386,True +t08,howl,o200k_base,109,109,386,True t08,python,cl100k_base,102,102,393,True t08,python,o200k_base,103,103,393,True t08,js,cl100k_base,106,106,425,True t08,js,o200k_base,115,115,425,True t08,go,cl100k_base,229,223,827,True t08,go,o200k_base,231,225,827,True -t09,howl,cl100k_base,145,145,522,True -t09,howl,o200k_base,146,146,522,True +t09,howl,cl100k_base,108,108,386,True +t09,howl,o200k_base,109,109,386,True t09,python,cl100k_base,102,102,393,True t09,python,o200k_base,103,103,393,True t09,js,cl100k_base,106,106,425,True t09,js,o200k_base,115,115,425,True t09,go,cl100k_base,229,223,827,True t09,go,o200k_base,231,225,827,True -t10,howl,cl100k_base,145,145,522,True -t10,howl,o200k_base,146,146,522,True +t10,howl,cl100k_base,108,108,386,True +t10,howl,o200k_base,109,109,386,True t10,python,cl100k_base,102,102,393,True t10,python,o200k_base,103,103,393,True t10,js,cl100k_base,106,106,425,True t10,js,o200k_base,115,115,425,True t10,go,cl100k_base,229,223,827,True t10,go,o200k_base,231,225,827,True -t11,howl,cl100k_base,416,416,1395,True -t11,howl,o200k_base,416,416,1395,True +t11,howl,cl100k_base,347,347,1066,True +t11,howl,o200k_base,347,347,1066,True t11,python,cl100k_base,196,196,760,True t11,python,o200k_base,196,196,760,True t11,js,cl100k_base,246,246,960,True t11,js,o200k_base,254,254,960,True t11,go,cl100k_base,478,472,1680,True t11,go,o200k_base,479,473,1680,True -t12,howl,cl100k_base,416,416,1395,True -t12,howl,o200k_base,416,416,1395,True +t12,howl,cl100k_base,347,347,1066,True +t12,howl,o200k_base,347,347,1066,True t12,python,cl100k_base,196,196,760,True t12,python,o200k_base,196,196,760,True t12,js,cl100k_base,246,246,960,True t12,js,o200k_base,254,254,960,True t12,go,cl100k_base,478,472,1680,True t12,go,o200k_base,479,473,1680,True -t13,howl,cl100k_base,416,416,1395,True -t13,howl,o200k_base,416,416,1395,True +t13,howl,cl100k_base,347,347,1066,True +t13,howl,o200k_base,347,347,1066,True t13,python,cl100k_base,196,196,760,True t13,python,o200k_base,196,196,760,True t13,js,cl100k_base,246,246,960,True t13,js,o200k_base,254,254,960,True t13,go,cl100k_base,478,472,1680,True t13,go,o200k_base,479,473,1680,True -t14,howl,cl100k_base,416,416,1395,True -t14,howl,o200k_base,416,416,1395,True +t14,howl,cl100k_base,347,347,1066,True +t14,howl,o200k_base,347,347,1066,True t14,python,cl100k_base,196,196,760,True t14,python,o200k_base,196,196,760,True t14,js,cl100k_base,246,246,960,True t14,js,o200k_base,254,254,960,True t14,go,cl100k_base,478,472,1680,True t14,go,o200k_base,479,473,1680,True -t15,howl,cl100k_base,416,416,1395,True -t15,howl,o200k_base,416,416,1395,True +t15,howl,cl100k_base,347,347,1066,True +t15,howl,o200k_base,347,347,1066,True t15,python,cl100k_base,196,196,760,True t15,python,o200k_base,196,196,760,True t15,js,cl100k_base,246,246,960,True t15,js,o200k_base,254,254,960,True t15,go,cl100k_base,478,472,1680,True t15,go,o200k_base,479,473,1680,True -t16,howl,cl100k_base,416,416,1395,True -t16,howl,o200k_base,416,416,1395,True +t16,howl,cl100k_base,347,347,1066,True +t16,howl,o200k_base,347,347,1066,True t16,python,cl100k_base,196,196,760,True t16,python,o200k_base,196,196,760,True t16,js,cl100k_base,246,246,960,True t16,js,o200k_base,254,254,960,True t16,go,cl100k_base,478,472,1680,True t16,go,o200k_base,479,473,1680,True -t17,howl,cl100k_base,416,416,1395,True -t17,howl,o200k_base,416,416,1395,True +t17,howl,cl100k_base,347,347,1066,True +t17,howl,o200k_base,347,347,1066,True t17,python,cl100k_base,196,196,760,True t17,python,o200k_base,196,196,760,True t17,js,cl100k_base,246,246,960,True t17,js,o200k_base,254,254,960,True t17,go,cl100k_base,478,472,1680,True t17,go,o200k_base,479,473,1680,True -t18,howl,cl100k_base,416,416,1395,True -t18,howl,o200k_base,416,416,1395,True +t18,howl,cl100k_base,347,347,1066,True +t18,howl,o200k_base,347,347,1066,True t18,python,cl100k_base,196,196,760,True t18,python,o200k_base,196,196,760,True t18,js,cl100k_base,246,246,960,True t18,js,o200k_base,254,254,960,True t18,go,cl100k_base,478,472,1680,True t18,go,o200k_base,479,473,1680,True -t19,howl,cl100k_base,416,416,1395,True -t19,howl,o200k_base,416,416,1395,True +t19,howl,cl100k_base,347,347,1066,True +t19,howl,o200k_base,347,347,1066,True t19,python,cl100k_base,196,196,760,True t19,python,o200k_base,196,196,760,True t19,js,cl100k_base,246,246,960,True t19,js,o200k_base,254,254,960,True t19,go,cl100k_base,478,472,1680,True t19,go,o200k_base,479,473,1680,True -t20,howl,cl100k_base,416,416,1395,True -t20,howl,o200k_base,416,416,1395,True +t20,howl,cl100k_base,347,347,1066,True +t20,howl,o200k_base,347,347,1066,True t20,python,cl100k_base,196,196,760,True t20,python,o200k_base,196,196,760,True t20,js,cl100k_base,246,246,960,True t20,js,o200k_base,254,254,960,True t20,go,cl100k_base,478,472,1680,True t20,go,o200k_base,479,473,1680,True -t21,howl,cl100k_base,160,160,576,True -t21,howl,o200k_base,159,159,576,True +t21,howl,cl100k_base,124,124,440,True +t21,howl,o200k_base,123,123,440,True t21,python,cl100k_base,119,119,457,True t21,python,o200k_base,118,118,457,True t21,js,cl100k_base,122,122,488,True t21,js,o200k_base,129,129,488,True t21,go,cl100k_base,250,244,914,True t21,go,o200k_base,250,244,914,True -t22,howl,cl100k_base,160,160,576,True -t22,howl,o200k_base,159,159,576,True +t22,howl,cl100k_base,124,124,440,True +t22,howl,o200k_base,123,123,440,True t22,python,cl100k_base,119,119,457,True t22,python,o200k_base,118,118,457,True t22,js,cl100k_base,122,122,488,True t22,js,o200k_base,129,129,488,True t22,go,cl100k_base,250,244,914,True t22,go,o200k_base,250,244,914,True -t23,howl,cl100k_base,160,160,576,True -t23,howl,o200k_base,159,159,576,True +t23,howl,cl100k_base,124,124,440,True +t23,howl,o200k_base,123,123,440,True t23,python,cl100k_base,119,119,457,True t23,python,o200k_base,118,118,457,True t23,js,cl100k_base,122,122,488,True t23,js,o200k_base,129,129,488,True t23,go,cl100k_base,250,244,914,True t23,go,o200k_base,250,244,914,True -t24,howl,cl100k_base,160,160,576,True -t24,howl,o200k_base,159,159,576,True +t24,howl,cl100k_base,124,124,440,True +t24,howl,o200k_base,123,123,440,True t24,python,cl100k_base,119,119,457,True t24,python,o200k_base,118,118,457,True t24,js,cl100k_base,122,122,488,True t24,js,o200k_base,129,129,488,True t24,go,cl100k_base,250,244,914,True t24,go,o200k_base,250,244,914,True -t25,howl,cl100k_base,160,160,576,True -t25,howl,o200k_base,159,159,576,True +t25,howl,cl100k_base,124,124,440,True +t25,howl,o200k_base,123,123,440,True t25,python,cl100k_base,119,119,457,True t25,python,o200k_base,118,118,457,True t25,js,cl100k_base,122,122,488,True t25,js,o200k_base,129,129,488,True t25,go,cl100k_base,250,244,914,True t25,go,o200k_base,250,244,914,True -t26,howl,cl100k_base,160,160,576,True -t26,howl,o200k_base,159,159,576,True +t26,howl,cl100k_base,124,124,440,True +t26,howl,o200k_base,123,123,440,True t26,python,cl100k_base,119,119,457,True t26,python,o200k_base,118,118,457,True t26,js,cl100k_base,122,122,488,True t26,js,o200k_base,129,129,488,True t26,go,cl100k_base,250,244,914,True t26,go,o200k_base,250,244,914,True -t27,howl,cl100k_base,160,160,576,True -t27,howl,o200k_base,159,159,576,True +t27,howl,cl100k_base,124,124,440,True +t27,howl,o200k_base,123,123,440,True t27,python,cl100k_base,119,119,457,True t27,python,o200k_base,118,118,457,True t27,js,cl100k_base,122,122,488,True t27,js,o200k_base,129,129,488,True t27,go,cl100k_base,250,244,914,True t27,go,o200k_base,250,244,914,True -t28,howl,cl100k_base,160,160,576,True -t28,howl,o200k_base,159,159,576,True +t28,howl,cl100k_base,124,124,440,True +t28,howl,o200k_base,123,123,440,True t28,python,cl100k_base,119,119,457,True t28,python,o200k_base,118,118,457,True t28,js,cl100k_base,122,122,488,True t28,js,o200k_base,129,129,488,True t28,go,cl100k_base,250,244,914,True t28,go,o200k_base,250,244,914,True -t29,howl,cl100k_base,160,160,576,True -t29,howl,o200k_base,159,159,576,True +t29,howl,cl100k_base,124,124,440,True +t29,howl,o200k_base,123,123,440,True t29,python,cl100k_base,119,119,457,True t29,python,o200k_base,118,118,457,True t29,js,cl100k_base,122,122,488,True t29,js,o200k_base,129,129,488,True t29,go,cl100k_base,250,244,914,True t29,go,o200k_base,250,244,914,True -t30,howl,cl100k_base,160,160,576,True -t30,howl,o200k_base,159,159,576,True +t30,howl,cl100k_base,124,124,440,True +t30,howl,o200k_base,123,123,440,True t30,python,cl100k_base,119,119,457,True t30,python,o200k_base,118,118,457,True t30,js,cl100k_base,122,122,488,True t30,js,o200k_base,129,129,488,True t30,go,cl100k_base,250,244,914,True t30,go,o200k_base,250,244,914,True -a01,howl,cl100k_base,145,145,522,True -a01,howl,o200k_base,146,146,522,True +a01,howl,cl100k_base,108,108,386,True +a01,howl,o200k_base,109,109,386,True a01,python,cl100k_base,102,102,393,True a01,python,o200k_base,103,103,393,True a01,js,cl100k_base,106,106,425,True a01,js,o200k_base,115,115,425,True a01,go,cl100k_base,229,223,827,True a01,go,o200k_base,231,225,827,True -a02,howl,cl100k_base,385,385,1311,True -a02,howl,o200k_base,385,385,1311,True +a02,howl,cl100k_base,320,320,989,True +a02,howl,o200k_base,320,320,989,True a02,python,cl100k_base,196,196,762,True a02,python,o200k_base,196,196,762,True a02,js,cl100k_base,246,246,962,True a02,js,o200k_base,254,254,962,True a02,go,cl100k_base,478,472,1682,True a02,go,o200k_base,479,473,1682,True -a03,howl,cl100k_base,160,160,578,True -a03,howl,o200k_base,159,159,578,True +a03,howl,cl100k_base,124,124,442,True +a03,howl,o200k_base,123,123,442,True a03,python,cl100k_base,119,119,459,True a03,python,o200k_base,118,118,459,True a03,js,cl100k_base,122,122,490,True a03,js,o200k_base,129,129,490,True a03,go,cl100k_base,250,244,916,True a03,go,o200k_base,250,244,916,True -a04,howl,cl100k_base,145,145,522,True -a04,howl,o200k_base,146,146,522,True +a04,howl,cl100k_base,108,108,386,True +a04,howl,o200k_base,109,109,386,True a04,python,cl100k_base,102,102,393,True a04,python,o200k_base,103,103,393,True a04,js,cl100k_base,106,106,425,True a04,js,o200k_base,115,115,425,True a04,go,cl100k_base,229,223,827,True a04,go,o200k_base,231,225,827,True -a05,howl,cl100k_base,145,145,522,True -a05,howl,o200k_base,146,146,522,True +a05,howl,cl100k_base,108,108,386,True +a05,howl,o200k_base,109,109,386,True a05,python,cl100k_base,102,102,393,True a05,python,o200k_base,103,103,393,True a05,js,cl100k_base,106,106,425,True a05,js,o200k_base,115,115,425,True a05,go,cl100k_base,229,223,827,True a05,go,o200k_base,231,225,827,True -a06,howl,cl100k_base,145,145,522,True -a06,howl,o200k_base,146,146,522,True +a06,howl,cl100k_base,108,108,386,True +a06,howl,o200k_base,109,109,386,True a06,python,cl100k_base,102,102,393,True a06,python,o200k_base,103,103,393,True a06,js,cl100k_base,106,106,425,True a06,js,o200k_base,115,115,425,True a06,go,cl100k_base,229,223,827,True a06,go,o200k_base,231,225,827,True -a07,howl,cl100k_base,145,145,522,True -a07,howl,o200k_base,146,146,522,True +a07,howl,cl100k_base,108,108,386,True +a07,howl,o200k_base,109,109,386,True a07,python,cl100k_base,102,102,393,True a07,python,o200k_base,103,103,393,True a07,js,cl100k_base,106,106,425,True a07,js,o200k_base,115,115,425,True a07,go,cl100k_base,229,223,827,True a07,go,o200k_base,231,225,827,True -a08,howl,cl100k_base,145,145,522,True -a08,howl,o200k_base,146,146,522,True +a08,howl,cl100k_base,108,108,386,True +a08,howl,o200k_base,109,109,386,True a08,python,cl100k_base,102,102,393,True a08,python,o200k_base,103,103,393,True a08,js,cl100k_base,106,106,425,True a08,js,o200k_base,115,115,425,True a08,go,cl100k_base,229,223,827,True a08,go,o200k_base,231,225,827,True -a09,howl,cl100k_base,145,145,522,True -a09,howl,o200k_base,146,146,522,True +a09,howl,cl100k_base,108,108,386,True +a09,howl,o200k_base,109,109,386,True a09,python,cl100k_base,102,102,393,True a09,python,o200k_base,103,103,393,True a09,js,cl100k_base,106,106,425,True a09,js,o200k_base,115,115,425,True a09,go,cl100k_base,229,223,827,True a09,go,o200k_base,231,225,827,True -a10,howl,cl100k_base,145,145,522,True -a10,howl,o200k_base,146,146,522,True +a10,howl,cl100k_base,108,108,386,True +a10,howl,o200k_base,109,109,386,True a10,python,cl100k_base,102,102,393,True a10,python,o200k_base,103,103,393,True a10,js,cl100k_base,106,106,425,True a10,js,o200k_base,115,115,425,True a10,go,cl100k_base,229,223,827,True a10,go,o200k_base,231,225,827,True -a11,howl,cl100k_base,416,416,1395,True -a11,howl,o200k_base,416,416,1395,True +a11,howl,cl100k_base,347,347,1066,True +a11,howl,o200k_base,347,347,1066,True a11,python,cl100k_base,196,196,760,True a11,python,o200k_base,196,196,760,True a11,js,cl100k_base,246,246,960,True a11,js,o200k_base,254,254,960,True a11,go,cl100k_base,478,472,1680,True a11,go,o200k_base,479,473,1680,True -a12,howl,cl100k_base,416,416,1395,True -a12,howl,o200k_base,416,416,1395,True +a12,howl,cl100k_base,347,347,1066,True +a12,howl,o200k_base,347,347,1066,True a12,python,cl100k_base,196,196,760,True a12,python,o200k_base,196,196,760,True a12,js,cl100k_base,246,246,960,True a12,js,o200k_base,254,254,960,True a12,go,cl100k_base,478,472,1680,True a12,go,o200k_base,479,473,1680,True -a13,howl,cl100k_base,416,416,1395,True -a13,howl,o200k_base,416,416,1395,True +a13,howl,cl100k_base,347,347,1066,True +a13,howl,o200k_base,347,347,1066,True a13,python,cl100k_base,196,196,760,True a13,python,o200k_base,196,196,760,True a13,js,cl100k_base,246,246,960,True a13,js,o200k_base,254,254,960,True a13,go,cl100k_base,478,472,1680,True a13,go,o200k_base,479,473,1680,True -a14,howl,cl100k_base,416,416,1395,True -a14,howl,o200k_base,416,416,1395,True +a14,howl,cl100k_base,347,347,1066,True +a14,howl,o200k_base,347,347,1066,True a14,python,cl100k_base,196,196,760,True a14,python,o200k_base,196,196,760,True a14,js,cl100k_base,246,246,960,True a14,js,o200k_base,254,254,960,True a14,go,cl100k_base,478,472,1680,True a14,go,o200k_base,479,473,1680,True -a15,howl,cl100k_base,416,416,1395,True -a15,howl,o200k_base,416,416,1395,True +a15,howl,cl100k_base,347,347,1066,True +a15,howl,o200k_base,347,347,1066,True a15,python,cl100k_base,196,196,760,True a15,python,o200k_base,196,196,760,True a15,js,cl100k_base,246,246,960,True a15,js,o200k_base,254,254,960,True a15,go,cl100k_base,478,472,1680,True a15,go,o200k_base,479,473,1680,True -a16,howl,cl100k_base,416,416,1395,True -a16,howl,o200k_base,416,416,1395,True +a16,howl,cl100k_base,347,347,1066,True +a16,howl,o200k_base,347,347,1066,True a16,python,cl100k_base,196,196,760,True a16,python,o200k_base,196,196,760,True a16,js,cl100k_base,246,246,960,True a16,js,o200k_base,254,254,960,True a16,go,cl100k_base,478,472,1680,True a16,go,o200k_base,479,473,1680,True -a17,howl,cl100k_base,416,416,1395,True -a17,howl,o200k_base,416,416,1395,True +a17,howl,cl100k_base,347,347,1066,True +a17,howl,o200k_base,347,347,1066,True a17,python,cl100k_base,196,196,760,True a17,python,o200k_base,196,196,760,True a17,js,cl100k_base,246,246,960,True a17,js,o200k_base,254,254,960,True a17,go,cl100k_base,478,472,1680,True a17,go,o200k_base,479,473,1680,True -a18,howl,cl100k_base,416,416,1395,True -a18,howl,o200k_base,416,416,1395,True +a18,howl,cl100k_base,347,347,1066,True +a18,howl,o200k_base,347,347,1066,True a18,python,cl100k_base,196,196,760,True a18,python,o200k_base,196,196,760,True a18,js,cl100k_base,246,246,960,True a18,js,o200k_base,254,254,960,True a18,go,cl100k_base,478,472,1680,True a18,go,o200k_base,479,473,1680,True -a19,howl,cl100k_base,416,416,1395,True -a19,howl,o200k_base,416,416,1395,True +a19,howl,cl100k_base,347,347,1066,True +a19,howl,o200k_base,347,347,1066,True a19,python,cl100k_base,196,196,760,True a19,python,o200k_base,196,196,760,True a19,js,cl100k_base,246,246,960,True a19,js,o200k_base,254,254,960,True a19,go,cl100k_base,478,472,1680,True a19,go,o200k_base,479,473,1680,True -a20,howl,cl100k_base,416,416,1395,True -a20,howl,o200k_base,416,416,1395,True +a20,howl,cl100k_base,347,347,1066,True +a20,howl,o200k_base,347,347,1066,True a20,python,cl100k_base,196,196,760,True a20,python,o200k_base,196,196,760,True a20,js,cl100k_base,246,246,960,True a20,js,o200k_base,254,254,960,True a20,go,cl100k_base,478,472,1680,True a20,go,o200k_base,479,473,1680,True -a21,howl,cl100k_base,160,160,576,True -a21,howl,o200k_base,159,159,576,True +a21,howl,cl100k_base,124,124,440,True +a21,howl,o200k_base,123,123,440,True a21,python,cl100k_base,119,119,457,True a21,python,o200k_base,118,118,457,True a21,js,cl100k_base,122,122,488,True a21,js,o200k_base,129,129,488,True a21,go,cl100k_base,250,244,914,True a21,go,o200k_base,250,244,914,True -a22,howl,cl100k_base,160,160,576,True -a22,howl,o200k_base,159,159,576,True +a22,howl,cl100k_base,124,124,440,True +a22,howl,o200k_base,123,123,440,True a22,python,cl100k_base,119,119,457,True a22,python,o200k_base,118,118,457,True a22,js,cl100k_base,122,122,488,True a22,js,o200k_base,129,129,488,True a22,go,cl100k_base,250,244,914,True a22,go,o200k_base,250,244,914,True -a23,howl,cl100k_base,160,160,576,True -a23,howl,o200k_base,159,159,576,True +a23,howl,cl100k_base,124,124,440,True +a23,howl,o200k_base,123,123,440,True a23,python,cl100k_base,119,119,457,True a23,python,o200k_base,118,118,457,True a23,js,cl100k_base,122,122,488,True a23,js,o200k_base,129,129,488,True a23,go,cl100k_base,250,244,914,True a23,go,o200k_base,250,244,914,True -a24,howl,cl100k_base,160,160,576,True -a24,howl,o200k_base,159,159,576,True +a24,howl,cl100k_base,124,124,440,True +a24,howl,o200k_base,123,123,440,True a24,python,cl100k_base,119,119,457,True a24,python,o200k_base,118,118,457,True a24,js,cl100k_base,122,122,488,True a24,js,o200k_base,129,129,488,True a24,go,cl100k_base,250,244,914,True a24,go,o200k_base,250,244,914,True -a25,howl,cl100k_base,160,160,576,True -a25,howl,o200k_base,159,159,576,True +a25,howl,cl100k_base,124,124,440,True +a25,howl,o200k_base,123,123,440,True a25,python,cl100k_base,119,119,457,True a25,python,o200k_base,118,118,457,True a25,js,cl100k_base,122,122,488,True a25,js,o200k_base,129,129,488,True a25,go,cl100k_base,250,244,914,True a25,go,o200k_base,250,244,914,True -a26,howl,cl100k_base,160,160,576,True -a26,howl,o200k_base,159,159,576,True +a26,howl,cl100k_base,124,124,440,True +a26,howl,o200k_base,123,123,440,True a26,python,cl100k_base,119,119,457,True a26,python,o200k_base,118,118,457,True a26,js,cl100k_base,122,122,488,True a26,js,o200k_base,129,129,488,True a26,go,cl100k_base,250,244,914,True a26,go,o200k_base,250,244,914,True -a27,howl,cl100k_base,160,160,576,True -a27,howl,o200k_base,159,159,576,True +a27,howl,cl100k_base,124,124,440,True +a27,howl,o200k_base,123,123,440,True a27,python,cl100k_base,119,119,457,True a27,python,o200k_base,118,118,457,True a27,js,cl100k_base,122,122,488,True a27,js,o200k_base,129,129,488,True a27,go,cl100k_base,250,244,914,True a27,go,o200k_base,250,244,914,True -a28,howl,cl100k_base,160,160,576,True -a28,howl,o200k_base,159,159,576,True +a28,howl,cl100k_base,124,124,440,True +a28,howl,o200k_base,123,123,440,True a28,python,cl100k_base,119,119,457,True a28,python,o200k_base,118,118,457,True a28,js,cl100k_base,122,122,488,True a28,js,o200k_base,129,129,488,True a28,go,cl100k_base,250,244,914,True a28,go,o200k_base,250,244,914,True -a29,howl,cl100k_base,160,160,576,True -a29,howl,o200k_base,159,159,576,True +a29,howl,cl100k_base,124,124,440,True +a29,howl,o200k_base,123,123,440,True a29,python,cl100k_base,119,119,457,True a29,python,o200k_base,118,118,457,True a29,js,cl100k_base,122,122,488,True a29,js,o200k_base,129,129,488,True a29,go,cl100k_base,250,244,914,True a29,go,o200k_base,250,244,914,True -a30,howl,cl100k_base,160,160,576,True -a30,howl,o200k_base,159,159,576,True +a30,howl,cl100k_base,124,124,440,True +a30,howl,o200k_base,123,123,440,True a30,python,cl100k_base,119,119,457,True a30,python,o200k_base,118,118,457,True a30,js,cl100k_base,122,122,488,True diff --git a/experiments/token-efficiency-v0/results/tokens.json b/experiments/token-efficiency-v0/results/tokens.json index da8bab3f..90902f34 100644 --- a/experiments/token-efficiency-v0/results/tokens.json +++ b/experiments/token-efficiency-v0/results/tokens.json @@ -3,18 +3,18 @@ "task": "t01", "lang": "howl", "encoding": "cl100k_base", - "tokens": 145, - "tokens_nocomments": 145, - "bytes": 522, + "tokens": 108, + "tokens_nocomments": 108, + "bytes": 386, "pass": true }, { "task": "t01", "lang": "howl", "encoding": "o200k_base", - "tokens": 146, - "tokens_nocomments": 146, - "bytes": 522, + "tokens": 109, + "tokens_nocomments": 109, + "bytes": 386, "pass": true }, { @@ -75,18 +75,18 @@ "task": "t02", "lang": "howl", "encoding": "cl100k_base", - "tokens": 385, - "tokens_nocomments": 385, - "bytes": 1311, + "tokens": 320, + "tokens_nocomments": 320, + "bytes": 989, "pass": true }, { "task": "t02", "lang": "howl", "encoding": "o200k_base", - "tokens": 385, - "tokens_nocomments": 385, - "bytes": 1311, + "tokens": 320, + "tokens_nocomments": 320, + "bytes": 989, "pass": true }, { @@ -147,18 +147,18 @@ "task": "t03", "lang": "howl", "encoding": "cl100k_base", - "tokens": 160, - "tokens_nocomments": 160, - "bytes": 578, + "tokens": 124, + "tokens_nocomments": 124, + "bytes": 442, "pass": true }, { "task": "t03", "lang": "howl", "encoding": "o200k_base", - "tokens": 159, - "tokens_nocomments": 159, - "bytes": 578, + "tokens": 123, + "tokens_nocomments": 123, + "bytes": 442, "pass": true }, { @@ -219,18 +219,18 @@ "task": "t04", "lang": "howl", "encoding": "cl100k_base", - "tokens": 145, - "tokens_nocomments": 145, - "bytes": 522, + "tokens": 108, + "tokens_nocomments": 108, + "bytes": 386, "pass": true }, { "task": "t04", "lang": "howl", "encoding": "o200k_base", - "tokens": 146, - "tokens_nocomments": 146, - "bytes": 522, + "tokens": 109, + "tokens_nocomments": 109, + "bytes": 386, "pass": true }, { @@ -291,18 +291,18 @@ "task": "t05", "lang": "howl", "encoding": "cl100k_base", - "tokens": 145, - "tokens_nocomments": 145, - "bytes": 522, + "tokens": 108, + "tokens_nocomments": 108, + "bytes": 386, "pass": true }, { "task": "t05", "lang": "howl", "encoding": "o200k_base", - "tokens": 146, - "tokens_nocomments": 146, - "bytes": 522, + "tokens": 109, + "tokens_nocomments": 109, + "bytes": 386, "pass": true }, { @@ -363,18 +363,18 @@ "task": "t06", "lang": "howl", "encoding": "cl100k_base", - "tokens": 145, - "tokens_nocomments": 145, - "bytes": 522, + "tokens": 108, + "tokens_nocomments": 108, + "bytes": 386, "pass": true }, { "task": "t06", "lang": "howl", "encoding": "o200k_base", - "tokens": 146, - "tokens_nocomments": 146, - "bytes": 522, + "tokens": 109, + "tokens_nocomments": 109, + "bytes": 386, "pass": true }, { @@ -435,18 +435,18 @@ "task": "t07", "lang": "howl", "encoding": "cl100k_base", - "tokens": 145, - "tokens_nocomments": 145, - "bytes": 522, + "tokens": 108, + "tokens_nocomments": 108, + "bytes": 386, "pass": true }, { "task": "t07", "lang": "howl", "encoding": "o200k_base", - "tokens": 146, - "tokens_nocomments": 146, - "bytes": 522, + "tokens": 109, + "tokens_nocomments": 109, + "bytes": 386, "pass": true }, { @@ -507,18 +507,18 @@ "task": "t08", "lang": "howl", "encoding": "cl100k_base", - "tokens": 145, - "tokens_nocomments": 145, - "bytes": 522, + "tokens": 108, + "tokens_nocomments": 108, + "bytes": 386, "pass": true }, { "task": "t08", "lang": "howl", "encoding": "o200k_base", - "tokens": 146, - "tokens_nocomments": 146, - "bytes": 522, + "tokens": 109, + "tokens_nocomments": 109, + "bytes": 386, "pass": true }, { @@ -579,18 +579,18 @@ "task": "t09", "lang": "howl", "encoding": "cl100k_base", - "tokens": 145, - "tokens_nocomments": 145, - "bytes": 522, + "tokens": 108, + "tokens_nocomments": 108, + "bytes": 386, "pass": true }, { "task": "t09", "lang": "howl", "encoding": "o200k_base", - "tokens": 146, - "tokens_nocomments": 146, - "bytes": 522, + "tokens": 109, + "tokens_nocomments": 109, + "bytes": 386, "pass": true }, { @@ -651,18 +651,18 @@ "task": "t10", "lang": "howl", "encoding": "cl100k_base", - "tokens": 145, - "tokens_nocomments": 145, - "bytes": 522, + "tokens": 108, + "tokens_nocomments": 108, + "bytes": 386, "pass": true }, { "task": "t10", "lang": "howl", "encoding": "o200k_base", - "tokens": 146, - "tokens_nocomments": 146, - "bytes": 522, + "tokens": 109, + "tokens_nocomments": 109, + "bytes": 386, "pass": true }, { @@ -723,18 +723,18 @@ "task": "t11", "lang": "howl", "encoding": "cl100k_base", - "tokens": 416, - "tokens_nocomments": 416, - "bytes": 1395, + "tokens": 347, + "tokens_nocomments": 347, + "bytes": 1066, "pass": true }, { "task": "t11", "lang": "howl", "encoding": "o200k_base", - "tokens": 416, - "tokens_nocomments": 416, - "bytes": 1395, + "tokens": 347, + "tokens_nocomments": 347, + "bytes": 1066, "pass": true }, { @@ -795,18 +795,18 @@ "task": "t12", "lang": "howl", "encoding": "cl100k_base", - "tokens": 416, - "tokens_nocomments": 416, - "bytes": 1395, + "tokens": 347, + "tokens_nocomments": 347, + "bytes": 1066, "pass": true }, { "task": "t12", "lang": "howl", "encoding": "o200k_base", - "tokens": 416, - "tokens_nocomments": 416, - "bytes": 1395, + "tokens": 347, + "tokens_nocomments": 347, + "bytes": 1066, "pass": true }, { @@ -867,18 +867,18 @@ "task": "t13", "lang": "howl", "encoding": "cl100k_base", - "tokens": 416, - "tokens_nocomments": 416, - "bytes": 1395, + "tokens": 347, + "tokens_nocomments": 347, + "bytes": 1066, "pass": true }, { "task": "t13", "lang": "howl", "encoding": "o200k_base", - "tokens": 416, - "tokens_nocomments": 416, - "bytes": 1395, + "tokens": 347, + "tokens_nocomments": 347, + "bytes": 1066, "pass": true }, { @@ -939,18 +939,18 @@ "task": "t14", "lang": "howl", "encoding": "cl100k_base", - "tokens": 416, - "tokens_nocomments": 416, - "bytes": 1395, + "tokens": 347, + "tokens_nocomments": 347, + "bytes": 1066, "pass": true }, { "task": "t14", "lang": "howl", "encoding": "o200k_base", - "tokens": 416, - "tokens_nocomments": 416, - "bytes": 1395, + "tokens": 347, + "tokens_nocomments": 347, + "bytes": 1066, "pass": true }, { @@ -1011,18 +1011,18 @@ "task": "t15", "lang": "howl", "encoding": "cl100k_base", - "tokens": 416, - "tokens_nocomments": 416, - "bytes": 1395, + "tokens": 347, + "tokens_nocomments": 347, + "bytes": 1066, "pass": true }, { "task": "t15", "lang": "howl", "encoding": "o200k_base", - "tokens": 416, - "tokens_nocomments": 416, - "bytes": 1395, + "tokens": 347, + "tokens_nocomments": 347, + "bytes": 1066, "pass": true }, { @@ -1083,18 +1083,18 @@ "task": "t16", "lang": "howl", "encoding": "cl100k_base", - "tokens": 416, - "tokens_nocomments": 416, - "bytes": 1395, + "tokens": 347, + "tokens_nocomments": 347, + "bytes": 1066, "pass": true }, { "task": "t16", "lang": "howl", "encoding": "o200k_base", - "tokens": 416, - "tokens_nocomments": 416, - "bytes": 1395, + "tokens": 347, + "tokens_nocomments": 347, + "bytes": 1066, "pass": true }, { @@ -1155,18 +1155,18 @@ "task": "t17", "lang": "howl", "encoding": "cl100k_base", - "tokens": 416, - "tokens_nocomments": 416, - "bytes": 1395, + "tokens": 347, + "tokens_nocomments": 347, + "bytes": 1066, "pass": true }, { "task": "t17", "lang": "howl", "encoding": "o200k_base", - "tokens": 416, - "tokens_nocomments": 416, - "bytes": 1395, + "tokens": 347, + "tokens_nocomments": 347, + "bytes": 1066, "pass": true }, { @@ -1227,18 +1227,18 @@ "task": "t18", "lang": "howl", "encoding": "cl100k_base", - "tokens": 416, - "tokens_nocomments": 416, - "bytes": 1395, + "tokens": 347, + "tokens_nocomments": 347, + "bytes": 1066, "pass": true }, { "task": "t18", "lang": "howl", "encoding": "o200k_base", - "tokens": 416, - "tokens_nocomments": 416, - "bytes": 1395, + "tokens": 347, + "tokens_nocomments": 347, + "bytes": 1066, "pass": true }, { @@ -1299,18 +1299,18 @@ "task": "t19", "lang": "howl", "encoding": "cl100k_base", - "tokens": 416, - "tokens_nocomments": 416, - "bytes": 1395, + "tokens": 347, + "tokens_nocomments": 347, + "bytes": 1066, "pass": true }, { "task": "t19", "lang": "howl", "encoding": "o200k_base", - "tokens": 416, - "tokens_nocomments": 416, - "bytes": 1395, + "tokens": 347, + "tokens_nocomments": 347, + "bytes": 1066, "pass": true }, { @@ -1371,18 +1371,18 @@ "task": "t20", "lang": "howl", "encoding": "cl100k_base", - "tokens": 416, - "tokens_nocomments": 416, - "bytes": 1395, + "tokens": 347, + "tokens_nocomments": 347, + "bytes": 1066, "pass": true }, { "task": "t20", "lang": "howl", "encoding": "o200k_base", - "tokens": 416, - "tokens_nocomments": 416, - "bytes": 1395, + "tokens": 347, + "tokens_nocomments": 347, + "bytes": 1066, "pass": true }, { @@ -1443,18 +1443,18 @@ "task": "t21", "lang": "howl", "encoding": "cl100k_base", - "tokens": 160, - "tokens_nocomments": 160, - "bytes": 576, + "tokens": 124, + "tokens_nocomments": 124, + "bytes": 440, "pass": true }, { "task": "t21", "lang": "howl", "encoding": "o200k_base", - "tokens": 159, - "tokens_nocomments": 159, - "bytes": 576, + "tokens": 123, + "tokens_nocomments": 123, + "bytes": 440, "pass": true }, { @@ -1515,18 +1515,18 @@ "task": "t22", "lang": "howl", "encoding": "cl100k_base", - "tokens": 160, - "tokens_nocomments": 160, - "bytes": 576, + "tokens": 124, + "tokens_nocomments": 124, + "bytes": 440, "pass": true }, { "task": "t22", "lang": "howl", "encoding": "o200k_base", - "tokens": 159, - "tokens_nocomments": 159, - "bytes": 576, + "tokens": 123, + "tokens_nocomments": 123, + "bytes": 440, "pass": true }, { @@ -1587,18 +1587,18 @@ "task": "t23", "lang": "howl", "encoding": "cl100k_base", - "tokens": 160, - "tokens_nocomments": 160, - "bytes": 576, + "tokens": 124, + "tokens_nocomments": 124, + "bytes": 440, "pass": true }, { "task": "t23", "lang": "howl", "encoding": "o200k_base", - "tokens": 159, - "tokens_nocomments": 159, - "bytes": 576, + "tokens": 123, + "tokens_nocomments": 123, + "bytes": 440, "pass": true }, { @@ -1659,18 +1659,18 @@ "task": "t24", "lang": "howl", "encoding": "cl100k_base", - "tokens": 160, - "tokens_nocomments": 160, - "bytes": 576, + "tokens": 124, + "tokens_nocomments": 124, + "bytes": 440, "pass": true }, { "task": "t24", "lang": "howl", "encoding": "o200k_base", - "tokens": 159, - "tokens_nocomments": 159, - "bytes": 576, + "tokens": 123, + "tokens_nocomments": 123, + "bytes": 440, "pass": true }, { @@ -1731,18 +1731,18 @@ "task": "t25", "lang": "howl", "encoding": "cl100k_base", - "tokens": 160, - "tokens_nocomments": 160, - "bytes": 576, + "tokens": 124, + "tokens_nocomments": 124, + "bytes": 440, "pass": true }, { "task": "t25", "lang": "howl", "encoding": "o200k_base", - "tokens": 159, - "tokens_nocomments": 159, - "bytes": 576, + "tokens": 123, + "tokens_nocomments": 123, + "bytes": 440, "pass": true }, { @@ -1803,18 +1803,18 @@ "task": "t26", "lang": "howl", "encoding": "cl100k_base", - "tokens": 160, - "tokens_nocomments": 160, - "bytes": 576, + "tokens": 124, + "tokens_nocomments": 124, + "bytes": 440, "pass": true }, { "task": "t26", "lang": "howl", "encoding": "o200k_base", - "tokens": 159, - "tokens_nocomments": 159, - "bytes": 576, + "tokens": 123, + "tokens_nocomments": 123, + "bytes": 440, "pass": true }, { @@ -1875,18 +1875,18 @@ "task": "t27", "lang": "howl", "encoding": "cl100k_base", - "tokens": 160, - "tokens_nocomments": 160, - "bytes": 576, + "tokens": 124, + "tokens_nocomments": 124, + "bytes": 440, "pass": true }, { "task": "t27", "lang": "howl", "encoding": "o200k_base", - "tokens": 159, - "tokens_nocomments": 159, - "bytes": 576, + "tokens": 123, + "tokens_nocomments": 123, + "bytes": 440, "pass": true }, { @@ -1947,18 +1947,18 @@ "task": "t28", "lang": "howl", "encoding": "cl100k_base", - "tokens": 160, - "tokens_nocomments": 160, - "bytes": 576, + "tokens": 124, + "tokens_nocomments": 124, + "bytes": 440, "pass": true }, { "task": "t28", "lang": "howl", "encoding": "o200k_base", - "tokens": 159, - "tokens_nocomments": 159, - "bytes": 576, + "tokens": 123, + "tokens_nocomments": 123, + "bytes": 440, "pass": true }, { @@ -2019,18 +2019,18 @@ "task": "t29", "lang": "howl", "encoding": "cl100k_base", - "tokens": 160, - "tokens_nocomments": 160, - "bytes": 576, + "tokens": 124, + "tokens_nocomments": 124, + "bytes": 440, "pass": true }, { "task": "t29", "lang": "howl", "encoding": "o200k_base", - "tokens": 159, - "tokens_nocomments": 159, - "bytes": 576, + "tokens": 123, + "tokens_nocomments": 123, + "bytes": 440, "pass": true }, { @@ -2091,18 +2091,18 @@ "task": "t30", "lang": "howl", "encoding": "cl100k_base", - "tokens": 160, - "tokens_nocomments": 160, - "bytes": 576, + "tokens": 124, + "tokens_nocomments": 124, + "bytes": 440, "pass": true }, { "task": "t30", "lang": "howl", "encoding": "o200k_base", - "tokens": 159, - "tokens_nocomments": 159, - "bytes": 576, + "tokens": 123, + "tokens_nocomments": 123, + "bytes": 440, "pass": true }, { @@ -2163,18 +2163,18 @@ "task": "a01", "lang": "howl", "encoding": "cl100k_base", - "tokens": 145, - "tokens_nocomments": 145, - "bytes": 522, + "tokens": 108, + "tokens_nocomments": 108, + "bytes": 386, "pass": true }, { "task": "a01", "lang": "howl", "encoding": "o200k_base", - "tokens": 146, - "tokens_nocomments": 146, - "bytes": 522, + "tokens": 109, + "tokens_nocomments": 109, + "bytes": 386, "pass": true }, { @@ -2235,18 +2235,18 @@ "task": "a02", "lang": "howl", "encoding": "cl100k_base", - "tokens": 385, - "tokens_nocomments": 385, - "bytes": 1311, + "tokens": 320, + "tokens_nocomments": 320, + "bytes": 989, "pass": true }, { "task": "a02", "lang": "howl", "encoding": "o200k_base", - "tokens": 385, - "tokens_nocomments": 385, - "bytes": 1311, + "tokens": 320, + "tokens_nocomments": 320, + "bytes": 989, "pass": true }, { @@ -2307,18 +2307,18 @@ "task": "a03", "lang": "howl", "encoding": "cl100k_base", - "tokens": 160, - "tokens_nocomments": 160, - "bytes": 578, + "tokens": 124, + "tokens_nocomments": 124, + "bytes": 442, "pass": true }, { "task": "a03", "lang": "howl", "encoding": "o200k_base", - "tokens": 159, - "tokens_nocomments": 159, - "bytes": 578, + "tokens": 123, + "tokens_nocomments": 123, + "bytes": 442, "pass": true }, { @@ -2379,18 +2379,18 @@ "task": "a04", "lang": "howl", "encoding": "cl100k_base", - "tokens": 145, - "tokens_nocomments": 145, - "bytes": 522, + "tokens": 108, + "tokens_nocomments": 108, + "bytes": 386, "pass": true }, { "task": "a04", "lang": "howl", "encoding": "o200k_base", - "tokens": 146, - "tokens_nocomments": 146, - "bytes": 522, + "tokens": 109, + "tokens_nocomments": 109, + "bytes": 386, "pass": true }, { @@ -2451,18 +2451,18 @@ "task": "a05", "lang": "howl", "encoding": "cl100k_base", - "tokens": 145, - "tokens_nocomments": 145, - "bytes": 522, + "tokens": 108, + "tokens_nocomments": 108, + "bytes": 386, "pass": true }, { "task": "a05", "lang": "howl", "encoding": "o200k_base", - "tokens": 146, - "tokens_nocomments": 146, - "bytes": 522, + "tokens": 109, + "tokens_nocomments": 109, + "bytes": 386, "pass": true }, { @@ -2523,18 +2523,18 @@ "task": "a06", "lang": "howl", "encoding": "cl100k_base", - "tokens": 145, - "tokens_nocomments": 145, - "bytes": 522, + "tokens": 108, + "tokens_nocomments": 108, + "bytes": 386, "pass": true }, { "task": "a06", "lang": "howl", "encoding": "o200k_base", - "tokens": 146, - "tokens_nocomments": 146, - "bytes": 522, + "tokens": 109, + "tokens_nocomments": 109, + "bytes": 386, "pass": true }, { @@ -2595,18 +2595,18 @@ "task": "a07", "lang": "howl", "encoding": "cl100k_base", - "tokens": 145, - "tokens_nocomments": 145, - "bytes": 522, + "tokens": 108, + "tokens_nocomments": 108, + "bytes": 386, "pass": true }, { "task": "a07", "lang": "howl", "encoding": "o200k_base", - "tokens": 146, - "tokens_nocomments": 146, - "bytes": 522, + "tokens": 109, + "tokens_nocomments": 109, + "bytes": 386, "pass": true }, { @@ -2667,18 +2667,18 @@ "task": "a08", "lang": "howl", "encoding": "cl100k_base", - "tokens": 145, - "tokens_nocomments": 145, - "bytes": 522, + "tokens": 108, + "tokens_nocomments": 108, + "bytes": 386, "pass": true }, { "task": "a08", "lang": "howl", "encoding": "o200k_base", - "tokens": 146, - "tokens_nocomments": 146, - "bytes": 522, + "tokens": 109, + "tokens_nocomments": 109, + "bytes": 386, "pass": true }, { @@ -2739,18 +2739,18 @@ "task": "a09", "lang": "howl", "encoding": "cl100k_base", - "tokens": 145, - "tokens_nocomments": 145, - "bytes": 522, + "tokens": 108, + "tokens_nocomments": 108, + "bytes": 386, "pass": true }, { "task": "a09", "lang": "howl", "encoding": "o200k_base", - "tokens": 146, - "tokens_nocomments": 146, - "bytes": 522, + "tokens": 109, + "tokens_nocomments": 109, + "bytes": 386, "pass": true }, { @@ -2811,18 +2811,18 @@ "task": "a10", "lang": "howl", "encoding": "cl100k_base", - "tokens": 145, - "tokens_nocomments": 145, - "bytes": 522, + "tokens": 108, + "tokens_nocomments": 108, + "bytes": 386, "pass": true }, { "task": "a10", "lang": "howl", "encoding": "o200k_base", - "tokens": 146, - "tokens_nocomments": 146, - "bytes": 522, + "tokens": 109, + "tokens_nocomments": 109, + "bytes": 386, "pass": true }, { @@ -2883,18 +2883,18 @@ "task": "a11", "lang": "howl", "encoding": "cl100k_base", - "tokens": 416, - "tokens_nocomments": 416, - "bytes": 1395, + "tokens": 347, + "tokens_nocomments": 347, + "bytes": 1066, "pass": true }, { "task": "a11", "lang": "howl", "encoding": "o200k_base", - "tokens": 416, - "tokens_nocomments": 416, - "bytes": 1395, + "tokens": 347, + "tokens_nocomments": 347, + "bytes": 1066, "pass": true }, { @@ -2955,18 +2955,18 @@ "task": "a12", "lang": "howl", "encoding": "cl100k_base", - "tokens": 416, - "tokens_nocomments": 416, - "bytes": 1395, + "tokens": 347, + "tokens_nocomments": 347, + "bytes": 1066, "pass": true }, { "task": "a12", "lang": "howl", "encoding": "o200k_base", - "tokens": 416, - "tokens_nocomments": 416, - "bytes": 1395, + "tokens": 347, + "tokens_nocomments": 347, + "bytes": 1066, "pass": true }, { @@ -3027,18 +3027,18 @@ "task": "a13", "lang": "howl", "encoding": "cl100k_base", - "tokens": 416, - "tokens_nocomments": 416, - "bytes": 1395, + "tokens": 347, + "tokens_nocomments": 347, + "bytes": 1066, "pass": true }, { "task": "a13", "lang": "howl", "encoding": "o200k_base", - "tokens": 416, - "tokens_nocomments": 416, - "bytes": 1395, + "tokens": 347, + "tokens_nocomments": 347, + "bytes": 1066, "pass": true }, { @@ -3099,18 +3099,18 @@ "task": "a14", "lang": "howl", "encoding": "cl100k_base", - "tokens": 416, - "tokens_nocomments": 416, - "bytes": 1395, + "tokens": 347, + "tokens_nocomments": 347, + "bytes": 1066, "pass": true }, { "task": "a14", "lang": "howl", "encoding": "o200k_base", - "tokens": 416, - "tokens_nocomments": 416, - "bytes": 1395, + "tokens": 347, + "tokens_nocomments": 347, + "bytes": 1066, "pass": true }, { @@ -3171,18 +3171,18 @@ "task": "a15", "lang": "howl", "encoding": "cl100k_base", - "tokens": 416, - "tokens_nocomments": 416, - "bytes": 1395, + "tokens": 347, + "tokens_nocomments": 347, + "bytes": 1066, "pass": true }, { "task": "a15", "lang": "howl", "encoding": "o200k_base", - "tokens": 416, - "tokens_nocomments": 416, - "bytes": 1395, + "tokens": 347, + "tokens_nocomments": 347, + "bytes": 1066, "pass": true }, { @@ -3243,18 +3243,18 @@ "task": "a16", "lang": "howl", "encoding": "cl100k_base", - "tokens": 416, - "tokens_nocomments": 416, - "bytes": 1395, + "tokens": 347, + "tokens_nocomments": 347, + "bytes": 1066, "pass": true }, { "task": "a16", "lang": "howl", "encoding": "o200k_base", - "tokens": 416, - "tokens_nocomments": 416, - "bytes": 1395, + "tokens": 347, + "tokens_nocomments": 347, + "bytes": 1066, "pass": true }, { @@ -3315,18 +3315,18 @@ "task": "a17", "lang": "howl", "encoding": "cl100k_base", - "tokens": 416, - "tokens_nocomments": 416, - "bytes": 1395, + "tokens": 347, + "tokens_nocomments": 347, + "bytes": 1066, "pass": true }, { "task": "a17", "lang": "howl", "encoding": "o200k_base", - "tokens": 416, - "tokens_nocomments": 416, - "bytes": 1395, + "tokens": 347, + "tokens_nocomments": 347, + "bytes": 1066, "pass": true }, { @@ -3387,18 +3387,18 @@ "task": "a18", "lang": "howl", "encoding": "cl100k_base", - "tokens": 416, - "tokens_nocomments": 416, - "bytes": 1395, + "tokens": 347, + "tokens_nocomments": 347, + "bytes": 1066, "pass": true }, { "task": "a18", "lang": "howl", "encoding": "o200k_base", - "tokens": 416, - "tokens_nocomments": 416, - "bytes": 1395, + "tokens": 347, + "tokens_nocomments": 347, + "bytes": 1066, "pass": true }, { @@ -3459,18 +3459,18 @@ "task": "a19", "lang": "howl", "encoding": "cl100k_base", - "tokens": 416, - "tokens_nocomments": 416, - "bytes": 1395, + "tokens": 347, + "tokens_nocomments": 347, + "bytes": 1066, "pass": true }, { "task": "a19", "lang": "howl", "encoding": "o200k_base", - "tokens": 416, - "tokens_nocomments": 416, - "bytes": 1395, + "tokens": 347, + "tokens_nocomments": 347, + "bytes": 1066, "pass": true }, { @@ -3531,18 +3531,18 @@ "task": "a20", "lang": "howl", "encoding": "cl100k_base", - "tokens": 416, - "tokens_nocomments": 416, - "bytes": 1395, + "tokens": 347, + "tokens_nocomments": 347, + "bytes": 1066, "pass": true }, { "task": "a20", "lang": "howl", "encoding": "o200k_base", - "tokens": 416, - "tokens_nocomments": 416, - "bytes": 1395, + "tokens": 347, + "tokens_nocomments": 347, + "bytes": 1066, "pass": true }, { @@ -3603,18 +3603,18 @@ "task": "a21", "lang": "howl", "encoding": "cl100k_base", - "tokens": 160, - "tokens_nocomments": 160, - "bytes": 576, + "tokens": 124, + "tokens_nocomments": 124, + "bytes": 440, "pass": true }, { "task": "a21", "lang": "howl", "encoding": "o200k_base", - "tokens": 159, - "tokens_nocomments": 159, - "bytes": 576, + "tokens": 123, + "tokens_nocomments": 123, + "bytes": 440, "pass": true }, { @@ -3675,18 +3675,18 @@ "task": "a22", "lang": "howl", "encoding": "cl100k_base", - "tokens": 160, - "tokens_nocomments": 160, - "bytes": 576, + "tokens": 124, + "tokens_nocomments": 124, + "bytes": 440, "pass": true }, { "task": "a22", "lang": "howl", "encoding": "o200k_base", - "tokens": 159, - "tokens_nocomments": 159, - "bytes": 576, + "tokens": 123, + "tokens_nocomments": 123, + "bytes": 440, "pass": true }, { @@ -3747,18 +3747,18 @@ "task": "a23", "lang": "howl", "encoding": "cl100k_base", - "tokens": 160, - "tokens_nocomments": 160, - "bytes": 576, + "tokens": 124, + "tokens_nocomments": 124, + "bytes": 440, "pass": true }, { "task": "a23", "lang": "howl", "encoding": "o200k_base", - "tokens": 159, - "tokens_nocomments": 159, - "bytes": 576, + "tokens": 123, + "tokens_nocomments": 123, + "bytes": 440, "pass": true }, { @@ -3819,18 +3819,18 @@ "task": "a24", "lang": "howl", "encoding": "cl100k_base", - "tokens": 160, - "tokens_nocomments": 160, - "bytes": 576, + "tokens": 124, + "tokens_nocomments": 124, + "bytes": 440, "pass": true }, { "task": "a24", "lang": "howl", "encoding": "o200k_base", - "tokens": 159, - "tokens_nocomments": 159, - "bytes": 576, + "tokens": 123, + "tokens_nocomments": 123, + "bytes": 440, "pass": true }, { @@ -3891,18 +3891,18 @@ "task": "a25", "lang": "howl", "encoding": "cl100k_base", - "tokens": 160, - "tokens_nocomments": 160, - "bytes": 576, + "tokens": 124, + "tokens_nocomments": 124, + "bytes": 440, "pass": true }, { "task": "a25", "lang": "howl", "encoding": "o200k_base", - "tokens": 159, - "tokens_nocomments": 159, - "bytes": 576, + "tokens": 123, + "tokens_nocomments": 123, + "bytes": 440, "pass": true }, { @@ -3963,18 +3963,18 @@ "task": "a26", "lang": "howl", "encoding": "cl100k_base", - "tokens": 160, - "tokens_nocomments": 160, - "bytes": 576, + "tokens": 124, + "tokens_nocomments": 124, + "bytes": 440, "pass": true }, { "task": "a26", "lang": "howl", "encoding": "o200k_base", - "tokens": 159, - "tokens_nocomments": 159, - "bytes": 576, + "tokens": 123, + "tokens_nocomments": 123, + "bytes": 440, "pass": true }, { @@ -4035,18 +4035,18 @@ "task": "a27", "lang": "howl", "encoding": "cl100k_base", - "tokens": 160, - "tokens_nocomments": 160, - "bytes": 576, + "tokens": 124, + "tokens_nocomments": 124, + "bytes": 440, "pass": true }, { "task": "a27", "lang": "howl", "encoding": "o200k_base", - "tokens": 159, - "tokens_nocomments": 159, - "bytes": 576, + "tokens": 123, + "tokens_nocomments": 123, + "bytes": 440, "pass": true }, { @@ -4107,18 +4107,18 @@ "task": "a28", "lang": "howl", "encoding": "cl100k_base", - "tokens": 160, - "tokens_nocomments": 160, - "bytes": 576, + "tokens": 124, + "tokens_nocomments": 124, + "bytes": 440, "pass": true }, { "task": "a28", "lang": "howl", "encoding": "o200k_base", - "tokens": 159, - "tokens_nocomments": 159, - "bytes": 576, + "tokens": 123, + "tokens_nocomments": 123, + "bytes": 440, "pass": true }, { @@ -4179,18 +4179,18 @@ "task": "a29", "lang": "howl", "encoding": "cl100k_base", - "tokens": 160, - "tokens_nocomments": 160, - "bytes": 576, + "tokens": 124, + "tokens_nocomments": 124, + "bytes": 440, "pass": true }, { "task": "a29", "lang": "howl", "encoding": "o200k_base", - "tokens": 159, - "tokens_nocomments": 159, - "bytes": 576, + "tokens": 123, + "tokens_nocomments": 123, + "bytes": 440, "pass": true }, { @@ -4251,18 +4251,18 @@ "task": "a30", "lang": "howl", "encoding": "cl100k_base", - "tokens": 160, - "tokens_nocomments": 160, - "bytes": 576, + "tokens": 124, + "tokens_nocomments": 124, + "bytes": 440, "pass": true }, { "task": "a30", "lang": "howl", "encoding": "o200k_base", - "tokens": 159, - "tokens_nocomments": 159, - "bytes": 576, + "tokens": 123, + "tokens_nocomments": 123, + "bytes": 440, "pass": true }, { diff --git a/experiments/token-efficiency-v0/results/verification.json b/experiments/token-efficiency-v0/results/verification.json index db5cfc27..5200de75 100644 --- a/experiments/token-efficiency-v0/results/verification.json +++ b/experiments/token-efficiency-v0/results/verification.json @@ -3,7 +3,7 @@ "task": "t01", "lang": "howl", "pass": true, - "sha256": "e65fdbd04434672bc1059b0768d4f8131d51c326afd45f17d46576bbeb712964", + "sha256": "6246759308a83e1b4f647364ce5f80f7e9319a0d953c1f7a71754433c06753e5", "diagnostics": "[]", "comparison": { "status": "evaluated", @@ -27,7 +27,7 @@ "task": "t02", "lang": "howl", "pass": true, - "sha256": "4ba450295a11afd93d1191c351a140fa453fc65200aaf93d305c9d59bac88206", + "sha256": "552045472a7f49debec8816b2dde07dc2cb71aa3b706e4ba298f8d3be00b58d8", "diagnostics": "[]", "comparison": { "status": "evaluated", @@ -51,7 +51,7 @@ "task": "t03", "lang": "howl", "pass": true, - "sha256": "3bbc458d10976fed48e8f02cf2ce92e2f1d4687652be298346a676399ccce277", + "sha256": "11725e2f076f38f4b06d84e05e019369722f7404d53152d1aa09bcf30f68abcc", "diagnostics": "[]", "comparison": { "status": "evaluated", @@ -75,7 +75,7 @@ "task": "t04", "lang": "howl", "pass": true, - "sha256": "789c662055ee4798c0e9231ac61df5dc011b01b9db0b6632096bac12f2c0fdf5", + "sha256": "5a3fed703db55f13c2482ef237a5d0145baaf0c66debb6f20b012580b681fbd2", "diagnostics": "[]", "comparison": { "status": "evaluated", @@ -99,7 +99,7 @@ "task": "t05", "lang": "howl", "pass": true, - "sha256": "6dcf23a7055ac2f534e8baf7749fcaf63809212292e527f56875c7d9947b328c", + "sha256": "56f2b8e3465a6b13afbf7144a87045cbaef0c28cfb6450ebe7d51d37964e4331", "diagnostics": "[]", "comparison": { "status": "evaluated", @@ -123,7 +123,7 @@ "task": "t06", "lang": "howl", "pass": true, - "sha256": "f8a32c9a688eb577699f4ccd80303478ab1a12f93a9c6b1e567659c7e1eb864d", + "sha256": "870daa78511205e5cea158490dc9f630ee715392144cf61b85f438e3992c05fb", "diagnostics": "[]", "comparison": { "status": "evaluated", @@ -147,7 +147,7 @@ "task": "t07", "lang": "howl", "pass": true, - "sha256": "a1dd3e16ffb02180a3de8afc5e2a3f2461fa301851812b8b977f02e45ff1176e", + "sha256": "85341ab3fdb2303738e0560f3256fb6ac562e0dfad4522beaedf16ddf8203395", "diagnostics": "[]", "comparison": { "status": "evaluated", @@ -171,7 +171,7 @@ "task": "t08", "lang": "howl", "pass": true, - "sha256": "0f89f156582887ca8b0e52f28f00cb922fa36602622a906b2e63828157c3fc90", + "sha256": "c14c9c745f38457e1a95728555b14153eb9926dbd9a9b95df0eb10e40c473e02", "diagnostics": "[]", "comparison": { "status": "evaluated", @@ -195,7 +195,7 @@ "task": "t09", "lang": "howl", "pass": true, - "sha256": "cd2c6b1d2cac09606adc87edb78d7bbb8673f03908c6aa04ad5c79330e9d9a50", + "sha256": "5178812f18234d49f3a0649dcb57817ce34a80311bcb40c651a685bb71656005", "diagnostics": "[]", "comparison": { "status": "evaluated", @@ -219,7 +219,7 @@ "task": "t10", "lang": "howl", "pass": true, - "sha256": "dfdb78a704643adc409eec8e8c88c6330dd24bd46474ced657edb81a01fe0c01", + "sha256": "ba11e6171ea1458bffa9a315daa0488ac2869bcd4263401861c8acd2c172a128", "diagnostics": "[]", "comparison": { "status": "evaluated", @@ -243,7 +243,7 @@ "task": "t11", "lang": "howl", "pass": true, - "sha256": "18ce3f9b28084adee253412ada656aad14a06a59e141293961ff77830abf07e4", + "sha256": "f81a864df66dfc87a406592ad51cdc31f2d08c682bffe470a70fd8c11eaddaa6", "diagnostics": "[]", "comparison": { "status": "evaluated", @@ -267,7 +267,7 @@ "task": "t12", "lang": "howl", "pass": true, - "sha256": "521d51e4bdc5f287381f07ed1909785a30d309d4f08443c843b7ba70ed18fedb", + "sha256": "e68886e92aa4d56e91354820aa658c3b59c675a7acaab8327a2f3413fd5d70bd", "diagnostics": "[]", "comparison": { "status": "evaluated", @@ -291,7 +291,7 @@ "task": "t13", "lang": "howl", "pass": true, - "sha256": "1bc6bd4dbb6add1734b1a37c67561cb3569d74558668cfbb16090be2c2b2fa1e", + "sha256": "086b9afd15a36bf5642bc0585094f780c7302aebb29c8d91d647c1f74f0696a8", "diagnostics": "[]", "comparison": { "status": "evaluated", @@ -315,7 +315,7 @@ "task": "t14", "lang": "howl", "pass": true, - "sha256": "c93c0157184df4c09161634a9113c6244194375d90c0749d2aa781083c409774", + "sha256": "d2be02cf0e992ae565dca21c8cb73005ab62c4d36468f1fbcbc1aa23da6893cd", "diagnostics": "[]", "comparison": { "status": "evaluated", @@ -339,7 +339,7 @@ "task": "t15", "lang": "howl", "pass": true, - "sha256": "126412b7908632870758f23f37481c603b085e7d9e94decaa9fcec2417d871c6", + "sha256": "7456f004379d0633235c154911e5701f8930af09c0f347cd292c3c1931c47e4f", "diagnostics": "[]", "comparison": { "status": "evaluated", @@ -363,7 +363,7 @@ "task": "t16", "lang": "howl", "pass": true, - "sha256": "2929fd1ad81a6913ecb41762ccfd64d2665ff380e101a947ac3b019b20ff2d42", + "sha256": "a5e0eb5d4cf19fedd21c5795735c5cdd584364f9079f52411f1218a7725417d1", "diagnostics": "[]", "comparison": { "status": "evaluated", @@ -387,7 +387,7 @@ "task": "t17", "lang": "howl", "pass": true, - "sha256": "c2a6978f3ca1734c07c52188f7a681e299a2fb429daebce04034fed44106e5f6", + "sha256": "d4ae270a0de47e112f9be6d691e6b178a08166939dc438fcf2b2fbc396cd7975", "diagnostics": "[]", "comparison": { "status": "evaluated", @@ -411,7 +411,7 @@ "task": "t18", "lang": "howl", "pass": true, - "sha256": "8dc2687588398cef653adc70f7493a8ca42e3bf78894a3395a9d02537f577997", + "sha256": "ff1819bc68f3c01fd0a921a4db7c528a5daf561b7f093dadb387b4f514598b1e", "diagnostics": "[]", "comparison": { "status": "evaluated", @@ -435,7 +435,7 @@ "task": "t19", "lang": "howl", "pass": true, - "sha256": "2420fbe4b3aaeea726cac1da591b4fe248340135348894e7d3493d6bc44df23e", + "sha256": "8aa82ab5c767f927cceadb190fab2bfa885600b9c94ad76a783f44fbb2097d63", "diagnostics": "[]", "comparison": { "status": "evaluated", @@ -459,7 +459,7 @@ "task": "t20", "lang": "howl", "pass": true, - "sha256": "fdb4b08dcaca7986a054fd8812e2b603f5e8f57504d5666d7558b64660d8170f", + "sha256": "d1d36e914b4a7d429504a6a16cd7e87317963fb2e18608933acaca860304b2f0", "diagnostics": "[]", "comparison": { "status": "evaluated", @@ -483,7 +483,7 @@ "task": "t21", "lang": "howl", "pass": true, - "sha256": "804be4024c5300db9d5860e3e97bba1325e6d371180c11430e576eda0fe37d25", + "sha256": "91947795f5f2198905c3af47e12be933a981738bb06b904e79ec8124ced392af", "diagnostics": "[]", "comparison": { "status": "evaluated", @@ -507,7 +507,7 @@ "task": "t22", "lang": "howl", "pass": true, - "sha256": "c5c09a604c54639477ba9803c7b30623c2533dacdde9c1a264258d48cc1f5fb9", + "sha256": "ad8f97d01a0d824f39b2ea3eceddf6849bef04e630d1183c12150502f2e43a1c", "diagnostics": "[]", "comparison": { "status": "evaluated", @@ -531,7 +531,7 @@ "task": "t23", "lang": "howl", "pass": true, - "sha256": "aa2d04b108f529f4e6fb2a68ff489eab1a75af8c4d42cbd34a586a9fefdbf934", + "sha256": "eaac5da8c0d1e03812a19627fefbbc469d6ff5dbad022f5f7d1c8f0baed5e4c2", "diagnostics": "[]", "comparison": { "status": "evaluated", @@ -555,7 +555,7 @@ "task": "t24", "lang": "howl", "pass": true, - "sha256": "5d5c708144002227c0c339727dd83709ff9b5f264a69172181a38be9cf4887ea", + "sha256": "15f5c4f907afbefc39fd83fa9acbdea7b713ceded6a2faef3d2b90274c531af2", "diagnostics": "[]", "comparison": { "status": "evaluated", @@ -579,7 +579,7 @@ "task": "t25", "lang": "howl", "pass": true, - "sha256": "a55df8a7446c871748065621ab6af1b407f19d174c1f6af4a36b7ae665a4c435", + "sha256": "9d1bc994c5d34c28450470a47de0785510dd2134381d4e0050560aa63c28514c", "diagnostics": "[]", "comparison": { "status": "evaluated", @@ -603,7 +603,7 @@ "task": "t26", "lang": "howl", "pass": true, - "sha256": "022ddca9d5bf174b24503d44628b7201bc9ac70768d77d55905f4551992544ca", + "sha256": "80ea5b9a5e78aaa3e97afb30a509d62ca4830cc972f9fe72c09706693b7cce61", "diagnostics": "[]", "comparison": { "status": "evaluated", @@ -627,7 +627,7 @@ "task": "t27", "lang": "howl", "pass": true, - "sha256": "9d61d52df86be94e173265971f91463d2530cbeb78a0ed0f9b18d5ec2d01d665", + "sha256": "1450a387d929e7256ebbb2de4dea83e1a78cb12439b74c6d3a78640bd20943b4", "diagnostics": "[]", "comparison": { "status": "evaluated", @@ -651,7 +651,7 @@ "task": "t28", "lang": "howl", "pass": true, - "sha256": "5f19f1f0a7e2c5e5ebdc1dfcdc58a71307404a32ab7fcf5142a844ee9f7050c0", + "sha256": "5868aa9c14236e05ba222e2bf4ecd060df0e2765fceb6323c12762af62057314", "diagnostics": "[]", "comparison": { "status": "evaluated", @@ -675,7 +675,7 @@ "task": "t29", "lang": "howl", "pass": true, - "sha256": "10dfd8677d42f0ff4f884e4cc7bc44258eb335ab1709824370068f6e97059f86", + "sha256": "dda0be2d5ee7feb9aadd1aa41b94a336179f73e87885e6cd42b07c8db1c144f8", "diagnostics": "[]", "comparison": { "status": "evaluated", @@ -699,7 +699,7 @@ "task": "t30", "lang": "howl", "pass": true, - "sha256": "9e6415bd5c86459c4b14d0e1907d77abad749e0d569687f6a7bf24df75210941", + "sha256": "f454d603990b866ddf7ab92cf5686cc4d3f2af7665fbe541babf8c8c8fc2820f", "diagnostics": "[]", "comparison": { "status": "evaluated", @@ -723,7 +723,7 @@ "task": "a01", "lang": "howl", "pass": true, - "sha256": "e65fdbd04434672bc1059b0768d4f8131d51c326afd45f17d46576bbeb712964", + "sha256": "6246759308a83e1b4f647364ce5f80f7e9319a0d953c1f7a71754433c06753e5", "diagnostics": "[]", "comparison": { "status": "evaluated", @@ -747,7 +747,7 @@ "task": "a02", "lang": "howl", "pass": true, - "sha256": "4ba450295a11afd93d1191c351a140fa453fc65200aaf93d305c9d59bac88206", + "sha256": "552045472a7f49debec8816b2dde07dc2cb71aa3b706e4ba298f8d3be00b58d8", "diagnostics": "[]", "comparison": { "status": "evaluated", @@ -771,7 +771,7 @@ "task": "a03", "lang": "howl", "pass": true, - "sha256": "3bbc458d10976fed48e8f02cf2ce92e2f1d4687652be298346a676399ccce277", + "sha256": "11725e2f076f38f4b06d84e05e019369722f7404d53152d1aa09bcf30f68abcc", "diagnostics": "[]", "comparison": { "status": "evaluated", @@ -795,7 +795,7 @@ "task": "a04", "lang": "howl", "pass": true, - "sha256": "789c662055ee4798c0e9231ac61df5dc011b01b9db0b6632096bac12f2c0fdf5", + "sha256": "5a3fed703db55f13c2482ef237a5d0145baaf0c66debb6f20b012580b681fbd2", "diagnostics": "[]", "comparison": { "status": "evaluated", @@ -819,7 +819,7 @@ "task": "a05", "lang": "howl", "pass": true, - "sha256": "6dcf23a7055ac2f534e8baf7749fcaf63809212292e527f56875c7d9947b328c", + "sha256": "56f2b8e3465a6b13afbf7144a87045cbaef0c28cfb6450ebe7d51d37964e4331", "diagnostics": "[]", "comparison": { "status": "evaluated", @@ -843,7 +843,7 @@ "task": "a06", "lang": "howl", "pass": true, - "sha256": "f8a32c9a688eb577699f4ccd80303478ab1a12f93a9c6b1e567659c7e1eb864d", + "sha256": "870daa78511205e5cea158490dc9f630ee715392144cf61b85f438e3992c05fb", "diagnostics": "[]", "comparison": { "status": "evaluated", @@ -867,7 +867,7 @@ "task": "a07", "lang": "howl", "pass": true, - "sha256": "a1dd3e16ffb02180a3de8afc5e2a3f2461fa301851812b8b977f02e45ff1176e", + "sha256": "85341ab3fdb2303738e0560f3256fb6ac562e0dfad4522beaedf16ddf8203395", "diagnostics": "[]", "comparison": { "status": "evaluated", @@ -891,7 +891,7 @@ "task": "a08", "lang": "howl", "pass": true, - "sha256": "0f89f156582887ca8b0e52f28f00cb922fa36602622a906b2e63828157c3fc90", + "sha256": "c14c9c745f38457e1a95728555b14153eb9926dbd9a9b95df0eb10e40c473e02", "diagnostics": "[]", "comparison": { "status": "evaluated", @@ -915,7 +915,7 @@ "task": "a09", "lang": "howl", "pass": true, - "sha256": "cd2c6b1d2cac09606adc87edb78d7bbb8673f03908c6aa04ad5c79330e9d9a50", + "sha256": "5178812f18234d49f3a0649dcb57817ce34a80311bcb40c651a685bb71656005", "diagnostics": "[]", "comparison": { "status": "evaluated", @@ -939,7 +939,7 @@ "task": "a10", "lang": "howl", "pass": true, - "sha256": "dfdb78a704643adc409eec8e8c88c6330dd24bd46474ced657edb81a01fe0c01", + "sha256": "ba11e6171ea1458bffa9a315daa0488ac2869bcd4263401861c8acd2c172a128", "diagnostics": "[]", "comparison": { "status": "evaluated", @@ -963,7 +963,7 @@ "task": "a11", "lang": "howl", "pass": true, - "sha256": "18ce3f9b28084adee253412ada656aad14a06a59e141293961ff77830abf07e4", + "sha256": "f81a864df66dfc87a406592ad51cdc31f2d08c682bffe470a70fd8c11eaddaa6", "diagnostics": "[]", "comparison": { "status": "evaluated", @@ -987,7 +987,7 @@ "task": "a12", "lang": "howl", "pass": true, - "sha256": "521d51e4bdc5f287381f07ed1909785a30d309d4f08443c843b7ba70ed18fedb", + "sha256": "e68886e92aa4d56e91354820aa658c3b59c675a7acaab8327a2f3413fd5d70bd", "diagnostics": "[]", "comparison": { "status": "evaluated", @@ -1011,7 +1011,7 @@ "task": "a13", "lang": "howl", "pass": true, - "sha256": "1bc6bd4dbb6add1734b1a37c67561cb3569d74558668cfbb16090be2c2b2fa1e", + "sha256": "086b9afd15a36bf5642bc0585094f780c7302aebb29c8d91d647c1f74f0696a8", "diagnostics": "[]", "comparison": { "status": "evaluated", @@ -1035,7 +1035,7 @@ "task": "a14", "lang": "howl", "pass": true, - "sha256": "c93c0157184df4c09161634a9113c6244194375d90c0749d2aa781083c409774", + "sha256": "d2be02cf0e992ae565dca21c8cb73005ab62c4d36468f1fbcbc1aa23da6893cd", "diagnostics": "[]", "comparison": { "status": "evaluated", @@ -1059,7 +1059,7 @@ "task": "a15", "lang": "howl", "pass": true, - "sha256": "126412b7908632870758f23f37481c603b085e7d9e94decaa9fcec2417d871c6", + "sha256": "7456f004379d0633235c154911e5701f8930af09c0f347cd292c3c1931c47e4f", "diagnostics": "[]", "comparison": { "status": "evaluated", @@ -1083,7 +1083,7 @@ "task": "a16", "lang": "howl", "pass": true, - "sha256": "2929fd1ad81a6913ecb41762ccfd64d2665ff380e101a947ac3b019b20ff2d42", + "sha256": "a5e0eb5d4cf19fedd21c5795735c5cdd584364f9079f52411f1218a7725417d1", "diagnostics": "[]", "comparison": { "status": "evaluated", @@ -1107,7 +1107,7 @@ "task": "a17", "lang": "howl", "pass": true, - "sha256": "c2a6978f3ca1734c07c52188f7a681e299a2fb429daebce04034fed44106e5f6", + "sha256": "d4ae270a0de47e112f9be6d691e6b178a08166939dc438fcf2b2fbc396cd7975", "diagnostics": "[]", "comparison": { "status": "evaluated", @@ -1131,7 +1131,7 @@ "task": "a18", "lang": "howl", "pass": true, - "sha256": "8dc2687588398cef653adc70f7493a8ca42e3bf78894a3395a9d02537f577997", + "sha256": "ff1819bc68f3c01fd0a921a4db7c528a5daf561b7f093dadb387b4f514598b1e", "diagnostics": "[]", "comparison": { "status": "evaluated", @@ -1155,7 +1155,7 @@ "task": "a19", "lang": "howl", "pass": true, - "sha256": "2420fbe4b3aaeea726cac1da591b4fe248340135348894e7d3493d6bc44df23e", + "sha256": "8aa82ab5c767f927cceadb190fab2bfa885600b9c94ad76a783f44fbb2097d63", "diagnostics": "[]", "comparison": { "status": "evaluated", @@ -1179,7 +1179,7 @@ "task": "a20", "lang": "howl", "pass": true, - "sha256": "fdb4b08dcaca7986a054fd8812e2b603f5e8f57504d5666d7558b64660d8170f", + "sha256": "d1d36e914b4a7d429504a6a16cd7e87317963fb2e18608933acaca860304b2f0", "diagnostics": "[]", "comparison": { "status": "evaluated", @@ -1203,7 +1203,7 @@ "task": "a21", "lang": "howl", "pass": true, - "sha256": "804be4024c5300db9d5860e3e97bba1325e6d371180c11430e576eda0fe37d25", + "sha256": "91947795f5f2198905c3af47e12be933a981738bb06b904e79ec8124ced392af", "diagnostics": "[]", "comparison": { "status": "evaluated", @@ -1227,7 +1227,7 @@ "task": "a22", "lang": "howl", "pass": true, - "sha256": "c5c09a604c54639477ba9803c7b30623c2533dacdde9c1a264258d48cc1f5fb9", + "sha256": "ad8f97d01a0d824f39b2ea3eceddf6849bef04e630d1183c12150502f2e43a1c", "diagnostics": "[]", "comparison": { "status": "evaluated", @@ -1251,7 +1251,7 @@ "task": "a23", "lang": "howl", "pass": true, - "sha256": "aa2d04b108f529f4e6fb2a68ff489eab1a75af8c4d42cbd34a586a9fefdbf934", + "sha256": "eaac5da8c0d1e03812a19627fefbbc469d6ff5dbad022f5f7d1c8f0baed5e4c2", "diagnostics": "[]", "comparison": { "status": "evaluated", @@ -1275,7 +1275,7 @@ "task": "a24", "lang": "howl", "pass": true, - "sha256": "5d5c708144002227c0c339727dd83709ff9b5f264a69172181a38be9cf4887ea", + "sha256": "15f5c4f907afbefc39fd83fa9acbdea7b713ceded6a2faef3d2b90274c531af2", "diagnostics": "[]", "comparison": { "status": "evaluated", @@ -1299,7 +1299,7 @@ "task": "a25", "lang": "howl", "pass": true, - "sha256": "a55df8a7446c871748065621ab6af1b407f19d174c1f6af4a36b7ae665a4c435", + "sha256": "9d1bc994c5d34c28450470a47de0785510dd2134381d4e0050560aa63c28514c", "diagnostics": "[]", "comparison": { "status": "evaluated", @@ -1323,7 +1323,7 @@ "task": "a26", "lang": "howl", "pass": true, - "sha256": "022ddca9d5bf174b24503d44628b7201bc9ac70768d77d55905f4551992544ca", + "sha256": "80ea5b9a5e78aaa3e97afb30a509d62ca4830cc972f9fe72c09706693b7cce61", "diagnostics": "[]", "comparison": { "status": "evaluated", @@ -1347,7 +1347,7 @@ "task": "a27", "lang": "howl", "pass": true, - "sha256": "9d61d52df86be94e173265971f91463d2530cbeb78a0ed0f9b18d5ec2d01d665", + "sha256": "1450a387d929e7256ebbb2de4dea83e1a78cb12439b74c6d3a78640bd20943b4", "diagnostics": "[]", "comparison": { "status": "evaluated", @@ -1371,7 +1371,7 @@ "task": "a28", "lang": "howl", "pass": true, - "sha256": "5f19f1f0a7e2c5e5ebdc1dfcdc58a71307404a32ab7fcf5142a844ee9f7050c0", + "sha256": "5868aa9c14236e05ba222e2bf4ecd060df0e2765fceb6323c12762af62057314", "diagnostics": "[]", "comparison": { "status": "evaluated", @@ -1395,7 +1395,7 @@ "task": "a29", "lang": "howl", "pass": true, - "sha256": "10dfd8677d42f0ff4f884e4cc7bc44258eb335ab1709824370068f6e97059f86", + "sha256": "dda0be2d5ee7feb9aadd1aa41b94a336179f73e87885e6cd42b07c8db1c144f8", "diagnostics": "[]", "comparison": { "status": "evaluated", @@ -1419,7 +1419,7 @@ "task": "a30", "lang": "howl", "pass": true, - "sha256": "9e6415bd5c86459c4b14d0e1907d77abad749e0d569687f6a7bf24df75210941", + "sha256": "f454d603990b866ddf7ab92cf5686cc4d3f2af7665fbe541babf8c8c8fc2820f", "diagnostics": "[]", "comparison": { "status": "evaluated", diff --git a/experiments/token-efficiency-v0/solutions/howl/a01.howl b/experiments/token-efficiency-v0/solutions/howl/a01.howl index 61c176bc..8718d091 100644 --- a/experiments/token-efficiency-v0/solutions/howl/a01.howl +++ b/experiments/token-efficiency-v0/solutions/howl/a01.howl @@ -1,13 +1,9 @@ -(cli_app - (let (raw (bytes_to_string (read_file "evidence/checks.json"))) - (let (checks (parse_json Checks raw)) - (let (version (bytes_to_string (read_file "evidence/version.kv"))) - (let (note (bytes_to_string (read_file "evidence/note.txt"))) - (let (selected (list)) - (do - (for c checks (if (= (map_get c "status") "PASS") (append selected c))) - (let (record (dict ("batch" "01") ("selected" selected))) - (do - (write_file "out/release.json" (encode_json record)) - )) - ))))))) +(do + (let (raw (read_text "evidence/checks.json")) + (let (checks (parse_json Checks raw) + version (read_text "evidence/version.kv") + note (read_text "evidence/note.txt") + selected (list)) + (do + (for c checks (when (= (map_get c "status") "PASS") (append selected c))) + (write_file "out/release.json" (encode_json (dict ("batch" "01") ("selected" selected)))))))) diff --git a/experiments/token-efficiency-v0/solutions/howl/a02.howl b/experiments/token-efficiency-v0/solutions/howl/a02.howl index a5698fc7..c8525d16 100644 --- a/experiments/token-efficiency-v0/solutions/howl/a02.howl +++ b/experiments/token-efficiency-v0/solutions/howl/a02.howl @@ -1,24 +1,17 @@ -(cli_app - (let (raw (bytes_to_string (read_file "evidence/checks.json"))) - (let (checks (parse_json Checks raw)) - (let (version (bytes_to_string (read_file "evidence/version.kv"))) - (let (note (bytes_to_string (read_file "evidence/note.txt"))) - (let (selected (list)) - (do - (for c checks (if (= (map_get c "status") "PASS") (append selected c))) - (let (record (dict ("batch" "02") ("selected" selected))) - (let (lines (str_split version "\n")) - (let (current_pair (str_split (list_get lines 0) "=")) - (let (proposed_pair (str_split (list_get lines 1) "=")) - (let (current (str_split (list_get current_pair 1) ".")) - (let (proposed (str_split (list_get proposed_pair 1) ".")) - (let (newer (or (> (to_int (list_get proposed 0)) (to_int (list_get current 0))) - (and (= (to_int (list_get proposed 0)) (to_int (list_get current 0))) - (or (> (to_int (list_get proposed 1)) (to_int (list_get current 1))) - (and (= (to_int (list_get proposed 1)) (to_int (list_get current 1))) - (> (to_int (list_get proposed 2)) (to_int (list_get current 2)))))))) - (if (and (= (list_len selected) (list_len checks)) newer) - (write_file "out/release.json" (encode_json record)) - (write_file "out/approval_request.json" "{\"reason\":\"blocked\",\"summary\":{}}")) - ))))))) - ))))))) +(do + (let (raw (read_text "evidence/checks.json")) + (let (checks (parse_json Checks raw) + lines (lines (read_file "evidence/version.kv")) + note (read_text "evidence/note.txt") + selected (list)) + (do + (for c checks (when (= (map_get c "status") "PASS") (append selected c))) + (let (cp (str_split (list_get lines 0) "=") + pp (str_split (list_get lines 1) "=") + cur (str_split (list_get cp 1) ".") + pro (str_split (list_get pp 1) ".") + c0 (to_int (list_get cur 0)) c1 (to_int (list_get cur 1)) c2 (to_int (list_get cur 2)) + p0 (to_int (list_get pro 0)) p1 (to_int (list_get pro 1)) p2 (to_int (list_get pro 2))) + (if (and (= (list_len selected) (list_len checks)) (or (> p0 c0) (and (= p0 c0) (or (> p1 c1) (and (= p1 c1) (> p2 c2)))))) + (write_file "out/release.json" (encode_json (dict ("batch" "02") ("selected" selected)))) + (write_file "out/approval_request.json" "{\"reason\":\"blocked\",\"summary\":{}}"))))))) diff --git a/experiments/token-efficiency-v0/solutions/howl/a03.howl b/experiments/token-efficiency-v0/solutions/howl/a03.howl index d638404c..f240126d 100644 --- a/experiments/token-efficiency-v0/solutions/howl/a03.howl +++ b/experiments/token-efficiency-v0/solutions/howl/a03.howl @@ -1,13 +1,9 @@ -(cli_app - (let (raw (bytes_to_string (read_file "evidence/checks.json"))) - (let (checks (parse_json Checks raw)) - (let (version (bytes_to_string (read_file "evidence/version.kv"))) - (let (note (bytes_to_string (read_file "evidence/note.txt"))) - (let (selected (list)) - (do - (for c checks (if (= (map_get c "status") "PASS") (append selected c))) - (let (record (dict ("batch" "03") ("selected" selected))) - (do - (write_file "out/approval_request.json" (encode_json (dict ("reason" "release review") ("summary" record)))) - )) - ))))))) +(do + (let (raw (read_text "evidence/checks.json")) + (let (checks (parse_json Checks raw) + version (read_text "evidence/version.kv") + note (read_text "evidence/note.txt") + selected (list)) + (do + (for c checks (when (= (map_get c "status") "PASS") (append selected c))) + (write_file "out/approval_request.json" (encode_json (dict ("reason" "release review") ("summary" (dict ("batch" "03") ("selected" selected)))))))))) diff --git a/experiments/token-efficiency-v0/solutions/howl/a04.howl b/experiments/token-efficiency-v0/solutions/howl/a04.howl index db981ce6..33614d29 100644 --- a/experiments/token-efficiency-v0/solutions/howl/a04.howl +++ b/experiments/token-efficiency-v0/solutions/howl/a04.howl @@ -1,13 +1,9 @@ -(cli_app - (let (raw (bytes_to_string (read_file "evidence/checks.json"))) - (let (checks (parse_json Checks raw)) - (let (version (bytes_to_string (read_file "evidence/version.kv"))) - (let (note (bytes_to_string (read_file "evidence/note.txt"))) - (let (selected (list)) - (do - (for c checks (if (= (map_get c "status") "PASS") (append selected c))) - (let (record (dict ("batch" "04") ("selected" selected))) - (do - (write_file "out/release.json" (encode_json record)) - )) - ))))))) +(do + (let (raw (read_text "evidence/checks.json")) + (let (checks (parse_json Checks raw) + version (read_text "evidence/version.kv") + note (read_text "evidence/note.txt") + selected (list)) + (do + (for c checks (when (= (map_get c "status") "PASS") (append selected c))) + (write_file "out/release.json" (encode_json (dict ("batch" "04") ("selected" selected)))))))) diff --git a/experiments/token-efficiency-v0/solutions/howl/a05.howl b/experiments/token-efficiency-v0/solutions/howl/a05.howl index bc353bdf..35e83040 100644 --- a/experiments/token-efficiency-v0/solutions/howl/a05.howl +++ b/experiments/token-efficiency-v0/solutions/howl/a05.howl @@ -1,13 +1,9 @@ -(cli_app - (let (raw (bytes_to_string (read_file "evidence/checks.json"))) - (let (checks (parse_json Checks raw)) - (let (version (bytes_to_string (read_file "evidence/version.kv"))) - (let (note (bytes_to_string (read_file "evidence/note.txt"))) - (let (selected (list)) - (do - (for c checks (if (= (map_get c "status") "PASS") (append selected c))) - (let (record (dict ("batch" "05") ("selected" selected))) - (do - (write_file "out/release.json" (encode_json record)) - )) - ))))))) +(do + (let (raw (read_text "evidence/checks.json")) + (let (checks (parse_json Checks raw) + version (read_text "evidence/version.kv") + note (read_text "evidence/note.txt") + selected (list)) + (do + (for c checks (when (= (map_get c "status") "PASS") (append selected c))) + (write_file "out/release.json" (encode_json (dict ("batch" "05") ("selected" selected)))))))) diff --git a/experiments/token-efficiency-v0/solutions/howl/a06.howl b/experiments/token-efficiency-v0/solutions/howl/a06.howl index 51f93257..919ebd85 100644 --- a/experiments/token-efficiency-v0/solutions/howl/a06.howl +++ b/experiments/token-efficiency-v0/solutions/howl/a06.howl @@ -1,13 +1,9 @@ -(cli_app - (let (raw (bytes_to_string (read_file "evidence/checks.json"))) - (let (checks (parse_json Checks raw)) - (let (version (bytes_to_string (read_file "evidence/version.kv"))) - (let (note (bytes_to_string (read_file "evidence/note.txt"))) - (let (selected (list)) - (do - (for c checks (if (= (map_get c "status") "PASS") (append selected c))) - (let (record (dict ("batch" "06") ("selected" selected))) - (do - (write_file "out/release.json" (encode_json record)) - )) - ))))))) +(do + (let (raw (read_text "evidence/checks.json")) + (let (checks (parse_json Checks raw) + version (read_text "evidence/version.kv") + note (read_text "evidence/note.txt") + selected (list)) + (do + (for c checks (when (= (map_get c "status") "PASS") (append selected c))) + (write_file "out/release.json" (encode_json (dict ("batch" "06") ("selected" selected)))))))) diff --git a/experiments/token-efficiency-v0/solutions/howl/a07.howl b/experiments/token-efficiency-v0/solutions/howl/a07.howl index 0e23cb92..661352f2 100644 --- a/experiments/token-efficiency-v0/solutions/howl/a07.howl +++ b/experiments/token-efficiency-v0/solutions/howl/a07.howl @@ -1,13 +1,9 @@ -(cli_app - (let (raw (bytes_to_string (read_file "evidence/checks.json"))) - (let (checks (parse_json Checks raw)) - (let (version (bytes_to_string (read_file "evidence/version.kv"))) - (let (note (bytes_to_string (read_file "evidence/note.txt"))) - (let (selected (list)) - (do - (for c checks (if (= (map_get c "status") "PASS") (append selected c))) - (let (record (dict ("batch" "07") ("selected" selected))) - (do - (write_file "out/release.json" (encode_json record)) - )) - ))))))) +(do + (let (raw (read_text "evidence/checks.json")) + (let (checks (parse_json Checks raw) + version (read_text "evidence/version.kv") + note (read_text "evidence/note.txt") + selected (list)) + (do + (for c checks (when (= (map_get c "status") "PASS") (append selected c))) + (write_file "out/release.json" (encode_json (dict ("batch" "07") ("selected" selected)))))))) diff --git a/experiments/token-efficiency-v0/solutions/howl/a08.howl b/experiments/token-efficiency-v0/solutions/howl/a08.howl index 925af16b..ae165cb1 100644 --- a/experiments/token-efficiency-v0/solutions/howl/a08.howl +++ b/experiments/token-efficiency-v0/solutions/howl/a08.howl @@ -1,13 +1,9 @@ -(cli_app - (let (raw (bytes_to_string (read_file "evidence/checks.json"))) - (let (checks (parse_json Checks raw)) - (let (version (bytes_to_string (read_file "evidence/version.kv"))) - (let (note (bytes_to_string (read_file "evidence/note.txt"))) - (let (selected (list)) - (do - (for c checks (if (= (map_get c "status") "PASS") (append selected c))) - (let (record (dict ("batch" "08") ("selected" selected))) - (do - (write_file "out/release.json" (encode_json record)) - )) - ))))))) +(do + (let (raw (read_text "evidence/checks.json")) + (let (checks (parse_json Checks raw) + version (read_text "evidence/version.kv") + note (read_text "evidence/note.txt") + selected (list)) + (do + (for c checks (when (= (map_get c "status") "PASS") (append selected c))) + (write_file "out/release.json" (encode_json (dict ("batch" "08") ("selected" selected)))))))) diff --git a/experiments/token-efficiency-v0/solutions/howl/a09.howl b/experiments/token-efficiency-v0/solutions/howl/a09.howl index 4528661c..56f34f2b 100644 --- a/experiments/token-efficiency-v0/solutions/howl/a09.howl +++ b/experiments/token-efficiency-v0/solutions/howl/a09.howl @@ -1,13 +1,9 @@ -(cli_app - (let (raw (bytes_to_string (read_file "evidence/checks.json"))) - (let (checks (parse_json Checks raw)) - (let (version (bytes_to_string (read_file "evidence/version.kv"))) - (let (note (bytes_to_string (read_file "evidence/note.txt"))) - (let (selected (list)) - (do - (for c checks (if (= (map_get c "status") "PASS") (append selected c))) - (let (record (dict ("batch" "09") ("selected" selected))) - (do - (write_file "out/release.json" (encode_json record)) - )) - ))))))) +(do + (let (raw (read_text "evidence/checks.json")) + (let (checks (parse_json Checks raw) + version (read_text "evidence/version.kv") + note (read_text "evidence/note.txt") + selected (list)) + (do + (for c checks (when (= (map_get c "status") "PASS") (append selected c))) + (write_file "out/release.json" (encode_json (dict ("batch" "09") ("selected" selected)))))))) diff --git a/experiments/token-efficiency-v0/solutions/howl/a10.howl b/experiments/token-efficiency-v0/solutions/howl/a10.howl index 583d6298..16b05fa0 100644 --- a/experiments/token-efficiency-v0/solutions/howl/a10.howl +++ b/experiments/token-efficiency-v0/solutions/howl/a10.howl @@ -1,13 +1,9 @@ -(cli_app - (let (raw (bytes_to_string (read_file "evidence/checks.json"))) - (let (checks (parse_json Checks raw)) - (let (version (bytes_to_string (read_file "evidence/version.kv"))) - (let (note (bytes_to_string (read_file "evidence/note.txt"))) - (let (selected (list)) - (do - (for c checks (if (= (map_get c "status") "PASS") (append selected c))) - (let (record (dict ("batch" "10") ("selected" selected))) - (do - (write_file "out/release.json" (encode_json record)) - )) - ))))))) +(do + (let (raw (read_text "evidence/checks.json")) + (let (checks (parse_json Checks raw) + version (read_text "evidence/version.kv") + note (read_text "evidence/note.txt") + selected (list)) + (do + (for c checks (when (= (map_get c "status") "PASS") (append selected c))) + (write_file "out/release.json" (encode_json (dict ("batch" "10") ("selected" selected)))))))) diff --git a/experiments/token-efficiency-v0/solutions/howl/a11.howl b/experiments/token-efficiency-v0/solutions/howl/a11.howl index 40dad1e1..063e747a 100644 --- a/experiments/token-efficiency-v0/solutions/howl/a11.howl +++ b/experiments/token-efficiency-v0/solutions/howl/a11.howl @@ -1,26 +1,19 @@ -(cli_app - (let (raw (bytes_to_string (read_file "evidence/checks.json"))) - (let (checks (parse_json Checks raw)) - (let (version (bytes_to_string (read_file "evidence/version.kv"))) - (let (note (bytes_to_string (read_file "evidence/note.txt"))) - (let (selected (list)) - (let (failed (list)) - (do - (for c checks (if (= (map_get c "name") "unit") (append selected c))) - (for c checks (if (!= (map_get c "status") "PASS") (append failed c))) - (let (record (dict ("batch" "11") ("selected" selected))) - (let (lines (str_split version "\n")) - (let (current_pair (str_split (list_get lines 0) "=")) - (let (proposed_pair (str_split (list_get lines 1) "=")) - (let (current (str_split (list_get current_pair 1) ".")) - (let (proposed (str_split (list_get proposed_pair 1) ".")) - (let (newer (or (> (to_int (list_get proposed 0)) (to_int (list_get current 0))) - (and (= (to_int (list_get proposed 0)) (to_int (list_get current 0))) - (or (> (to_int (list_get proposed 1)) (to_int (list_get current 1))) - (and (= (to_int (list_get proposed 1)) (to_int (list_get current 1))) - (> (to_int (list_get proposed 2)) (to_int (list_get current 2)))))))) - (if (and (= (list_len failed) 0) newer) - (write_file "out/release.json" (encode_json record)) - (write_file "out/approval_request.json" "{\"reason\":\"blocked\",\"summary\":{}}")) - ))))))) - )))))))) +(do + (let (raw (read_text "evidence/checks.json")) + (let (checks (parse_json Checks raw) + lines (lines (read_file "evidence/version.kv")) + note (read_text "evidence/note.txt") + selected (list) + failed (list)) + (do + (for c checks (when (= (map_get c "name") "unit") (append selected c))) + (for c checks (when (!= (map_get c "status") "PASS") (append failed c))) + (let (cp (str_split (list_get lines 0) "=") + pp (str_split (list_get lines 1) "=") + cur (str_split (list_get cp 1) ".") + pro (str_split (list_get pp 1) ".") + c0 (to_int (list_get cur 0)) c1 (to_int (list_get cur 1)) c2 (to_int (list_get cur 2)) + p0 (to_int (list_get pro 0)) p1 (to_int (list_get pro 1)) p2 (to_int (list_get pro 2))) + (if (and (= (list_len failed) 0) (or (> p0 c0) (and (= p0 c0) (or (> p1 c1) (and (= p1 c1) (> p2 c2)))))) + (write_file "out/release.json" (encode_json (dict ("batch" "11") ("selected" selected)))) + (write_file "out/approval_request.json" "{\"reason\":\"blocked\",\"summary\":{}}"))))))) diff --git a/experiments/token-efficiency-v0/solutions/howl/a12.howl b/experiments/token-efficiency-v0/solutions/howl/a12.howl index c7dce229..d78150b1 100644 --- a/experiments/token-efficiency-v0/solutions/howl/a12.howl +++ b/experiments/token-efficiency-v0/solutions/howl/a12.howl @@ -1,26 +1,19 @@ -(cli_app - (let (raw (bytes_to_string (read_file "evidence/checks.json"))) - (let (checks (parse_json Checks raw)) - (let (version (bytes_to_string (read_file "evidence/version.kv"))) - (let (note (bytes_to_string (read_file "evidence/note.txt"))) - (let (selected (list)) - (let (failed (list)) - (do - (for c checks (if (= (map_get c "name") "unit") (append selected c))) - (for c checks (if (!= (map_get c "status") "PASS") (append failed c))) - (let (record (dict ("batch" "12") ("selected" selected))) - (let (lines (str_split version "\n")) - (let (current_pair (str_split (list_get lines 0) "=")) - (let (proposed_pair (str_split (list_get lines 1) "=")) - (let (current (str_split (list_get current_pair 1) ".")) - (let (proposed (str_split (list_get proposed_pair 1) ".")) - (let (newer (or (> (to_int (list_get proposed 0)) (to_int (list_get current 0))) - (and (= (to_int (list_get proposed 0)) (to_int (list_get current 0))) - (or (> (to_int (list_get proposed 1)) (to_int (list_get current 1))) - (and (= (to_int (list_get proposed 1)) (to_int (list_get current 1))) - (> (to_int (list_get proposed 2)) (to_int (list_get current 2)))))))) - (if (and (= (list_len failed) 0) newer) - (write_file "out/release.json" (encode_json record)) - (write_file "out/approval_request.json" "{\"reason\":\"blocked\",\"summary\":{}}")) - ))))))) - )))))))) +(do + (let (raw (read_text "evidence/checks.json")) + (let (checks (parse_json Checks raw) + lines (lines (read_file "evidence/version.kv")) + note (read_text "evidence/note.txt") + selected (list) + failed (list)) + (do + (for c checks (when (= (map_get c "name") "unit") (append selected c))) + (for c checks (when (!= (map_get c "status") "PASS") (append failed c))) + (let (cp (str_split (list_get lines 0) "=") + pp (str_split (list_get lines 1) "=") + cur (str_split (list_get cp 1) ".") + pro (str_split (list_get pp 1) ".") + c0 (to_int (list_get cur 0)) c1 (to_int (list_get cur 1)) c2 (to_int (list_get cur 2)) + p0 (to_int (list_get pro 0)) p1 (to_int (list_get pro 1)) p2 (to_int (list_get pro 2))) + (if (and (= (list_len failed) 0) (or (> p0 c0) (and (= p0 c0) (or (> p1 c1) (and (= p1 c1) (> p2 c2)))))) + (write_file "out/release.json" (encode_json (dict ("batch" "12") ("selected" selected)))) + (write_file "out/approval_request.json" "{\"reason\":\"blocked\",\"summary\":{}}"))))))) diff --git a/experiments/token-efficiency-v0/solutions/howl/a13.howl b/experiments/token-efficiency-v0/solutions/howl/a13.howl index 137c9ad6..8a176b43 100644 --- a/experiments/token-efficiency-v0/solutions/howl/a13.howl +++ b/experiments/token-efficiency-v0/solutions/howl/a13.howl @@ -1,26 +1,19 @@ -(cli_app - (let (raw (bytes_to_string (read_file "evidence/checks.json"))) - (let (checks (parse_json Checks raw)) - (let (version (bytes_to_string (read_file "evidence/version.kv"))) - (let (note (bytes_to_string (read_file "evidence/note.txt"))) - (let (selected (list)) - (let (failed (list)) - (do - (for c checks (if (= (map_get c "name") "unit") (append selected c))) - (for c checks (if (!= (map_get c "status") "PASS") (append failed c))) - (let (record (dict ("batch" "13") ("selected" selected))) - (let (lines (str_split version "\n")) - (let (current_pair (str_split (list_get lines 0) "=")) - (let (proposed_pair (str_split (list_get lines 1) "=")) - (let (current (str_split (list_get current_pair 1) ".")) - (let (proposed (str_split (list_get proposed_pair 1) ".")) - (let (newer (or (> (to_int (list_get proposed 0)) (to_int (list_get current 0))) - (and (= (to_int (list_get proposed 0)) (to_int (list_get current 0))) - (or (> (to_int (list_get proposed 1)) (to_int (list_get current 1))) - (and (= (to_int (list_get proposed 1)) (to_int (list_get current 1))) - (> (to_int (list_get proposed 2)) (to_int (list_get current 2)))))))) - (if (and (= (list_len failed) 0) newer) - (write_file "out/release.json" (encode_json record)) - (write_file "out/approval_request.json" "{\"reason\":\"blocked\",\"summary\":{}}")) - ))))))) - )))))))) +(do + (let (raw (read_text "evidence/checks.json")) + (let (checks (parse_json Checks raw) + lines (lines (read_file "evidence/version.kv")) + note (read_text "evidence/note.txt") + selected (list) + failed (list)) + (do + (for c checks (when (= (map_get c "name") "unit") (append selected c))) + (for c checks (when (!= (map_get c "status") "PASS") (append failed c))) + (let (cp (str_split (list_get lines 0) "=") + pp (str_split (list_get lines 1) "=") + cur (str_split (list_get cp 1) ".") + pro (str_split (list_get pp 1) ".") + c0 (to_int (list_get cur 0)) c1 (to_int (list_get cur 1)) c2 (to_int (list_get cur 2)) + p0 (to_int (list_get pro 0)) p1 (to_int (list_get pro 1)) p2 (to_int (list_get pro 2))) + (if (and (= (list_len failed) 0) (or (> p0 c0) (and (= p0 c0) (or (> p1 c1) (and (= p1 c1) (> p2 c2)))))) + (write_file "out/release.json" (encode_json (dict ("batch" "13") ("selected" selected)))) + (write_file "out/approval_request.json" "{\"reason\":\"blocked\",\"summary\":{}}"))))))) diff --git a/experiments/token-efficiency-v0/solutions/howl/a14.howl b/experiments/token-efficiency-v0/solutions/howl/a14.howl index a040d28c..60ea68da 100644 --- a/experiments/token-efficiency-v0/solutions/howl/a14.howl +++ b/experiments/token-efficiency-v0/solutions/howl/a14.howl @@ -1,26 +1,19 @@ -(cli_app - (let (raw (bytes_to_string (read_file "evidence/checks.json"))) - (let (checks (parse_json Checks raw)) - (let (version (bytes_to_string (read_file "evidence/version.kv"))) - (let (note (bytes_to_string (read_file "evidence/note.txt"))) - (let (selected (list)) - (let (failed (list)) - (do - (for c checks (if (= (map_get c "name") "unit") (append selected c))) - (for c checks (if (!= (map_get c "status") "PASS") (append failed c))) - (let (record (dict ("batch" "14") ("selected" selected))) - (let (lines (str_split version "\n")) - (let (current_pair (str_split (list_get lines 0) "=")) - (let (proposed_pair (str_split (list_get lines 1) "=")) - (let (current (str_split (list_get current_pair 1) ".")) - (let (proposed (str_split (list_get proposed_pair 1) ".")) - (let (newer (or (> (to_int (list_get proposed 0)) (to_int (list_get current 0))) - (and (= (to_int (list_get proposed 0)) (to_int (list_get current 0))) - (or (> (to_int (list_get proposed 1)) (to_int (list_get current 1))) - (and (= (to_int (list_get proposed 1)) (to_int (list_get current 1))) - (> (to_int (list_get proposed 2)) (to_int (list_get current 2)))))))) - (if (and (= (list_len failed) 0) newer) - (write_file "out/release.json" (encode_json record)) - (write_file "out/approval_request.json" "{\"reason\":\"blocked\",\"summary\":{}}")) - ))))))) - )))))))) +(do + (let (raw (read_text "evidence/checks.json")) + (let (checks (parse_json Checks raw) + lines (lines (read_file "evidence/version.kv")) + note (read_text "evidence/note.txt") + selected (list) + failed (list)) + (do + (for c checks (when (= (map_get c "name") "unit") (append selected c))) + (for c checks (when (!= (map_get c "status") "PASS") (append failed c))) + (let (cp (str_split (list_get lines 0) "=") + pp (str_split (list_get lines 1) "=") + cur (str_split (list_get cp 1) ".") + pro (str_split (list_get pp 1) ".") + c0 (to_int (list_get cur 0)) c1 (to_int (list_get cur 1)) c2 (to_int (list_get cur 2)) + p0 (to_int (list_get pro 0)) p1 (to_int (list_get pro 1)) p2 (to_int (list_get pro 2))) + (if (and (= (list_len failed) 0) (or (> p0 c0) (and (= p0 c0) (or (> p1 c1) (and (= p1 c1) (> p2 c2)))))) + (write_file "out/release.json" (encode_json (dict ("batch" "14") ("selected" selected)))) + (write_file "out/approval_request.json" "{\"reason\":\"blocked\",\"summary\":{}}"))))))) diff --git a/experiments/token-efficiency-v0/solutions/howl/a15.howl b/experiments/token-efficiency-v0/solutions/howl/a15.howl index dec6df80..7e7c3ff9 100644 --- a/experiments/token-efficiency-v0/solutions/howl/a15.howl +++ b/experiments/token-efficiency-v0/solutions/howl/a15.howl @@ -1,26 +1,19 @@ -(cli_app - (let (raw (bytes_to_string (read_file "evidence/checks.json"))) - (let (checks (parse_json Checks raw)) - (let (version (bytes_to_string (read_file "evidence/version.kv"))) - (let (note (bytes_to_string (read_file "evidence/note.txt"))) - (let (selected (list)) - (let (failed (list)) - (do - (for c checks (if (= (map_get c "name") "unit") (append selected c))) - (for c checks (if (!= (map_get c "status") "PASS") (append failed c))) - (let (record (dict ("batch" "15") ("selected" selected))) - (let (lines (str_split version "\n")) - (let (current_pair (str_split (list_get lines 0) "=")) - (let (proposed_pair (str_split (list_get lines 1) "=")) - (let (current (str_split (list_get current_pair 1) ".")) - (let (proposed (str_split (list_get proposed_pair 1) ".")) - (let (newer (or (> (to_int (list_get proposed 0)) (to_int (list_get current 0))) - (and (= (to_int (list_get proposed 0)) (to_int (list_get current 0))) - (or (> (to_int (list_get proposed 1)) (to_int (list_get current 1))) - (and (= (to_int (list_get proposed 1)) (to_int (list_get current 1))) - (> (to_int (list_get proposed 2)) (to_int (list_get current 2)))))))) - (if (and (= (list_len failed) 0) newer) - (write_file "out/release.json" (encode_json record)) - (write_file "out/approval_request.json" "{\"reason\":\"blocked\",\"summary\":{}}")) - ))))))) - )))))))) +(do + (let (raw (read_text "evidence/checks.json")) + (let (checks (parse_json Checks raw) + lines (lines (read_file "evidence/version.kv")) + note (read_text "evidence/note.txt") + selected (list) + failed (list)) + (do + (for c checks (when (= (map_get c "name") "unit") (append selected c))) + (for c checks (when (!= (map_get c "status") "PASS") (append failed c))) + (let (cp (str_split (list_get lines 0) "=") + pp (str_split (list_get lines 1) "=") + cur (str_split (list_get cp 1) ".") + pro (str_split (list_get pp 1) ".") + c0 (to_int (list_get cur 0)) c1 (to_int (list_get cur 1)) c2 (to_int (list_get cur 2)) + p0 (to_int (list_get pro 0)) p1 (to_int (list_get pro 1)) p2 (to_int (list_get pro 2))) + (if (and (= (list_len failed) 0) (or (> p0 c0) (and (= p0 c0) (or (> p1 c1) (and (= p1 c1) (> p2 c2)))))) + (write_file "out/release.json" (encode_json (dict ("batch" "15") ("selected" selected)))) + (write_file "out/approval_request.json" "{\"reason\":\"blocked\",\"summary\":{}}"))))))) diff --git a/experiments/token-efficiency-v0/solutions/howl/a16.howl b/experiments/token-efficiency-v0/solutions/howl/a16.howl index a7eeb123..ac56e5db 100644 --- a/experiments/token-efficiency-v0/solutions/howl/a16.howl +++ b/experiments/token-efficiency-v0/solutions/howl/a16.howl @@ -1,26 +1,19 @@ -(cli_app - (let (raw (bytes_to_string (read_file "evidence/checks.json"))) - (let (checks (parse_json Checks raw)) - (let (version (bytes_to_string (read_file "evidence/version.kv"))) - (let (note (bytes_to_string (read_file "evidence/note.txt"))) - (let (selected (list)) - (let (failed (list)) - (do - (for c checks (if (= (map_get c "name") "unit") (append selected c))) - (for c checks (if (!= (map_get c "status") "PASS") (append failed c))) - (let (record (dict ("batch" "16") ("selected" selected))) - (let (lines (str_split version "\n")) - (let (current_pair (str_split (list_get lines 0) "=")) - (let (proposed_pair (str_split (list_get lines 1) "=")) - (let (current (str_split (list_get current_pair 1) ".")) - (let (proposed (str_split (list_get proposed_pair 1) ".")) - (let (newer (or (> (to_int (list_get proposed 0)) (to_int (list_get current 0))) - (and (= (to_int (list_get proposed 0)) (to_int (list_get current 0))) - (or (> (to_int (list_get proposed 1)) (to_int (list_get current 1))) - (and (= (to_int (list_get proposed 1)) (to_int (list_get current 1))) - (> (to_int (list_get proposed 2)) (to_int (list_get current 2)))))))) - (if (and (= (list_len failed) 0) newer) - (write_file "out/release.json" (encode_json record)) - (write_file "out/approval_request.json" "{\"reason\":\"blocked\",\"summary\":{}}")) - ))))))) - )))))))) +(do + (let (raw (read_text "evidence/checks.json")) + (let (checks (parse_json Checks raw) + lines (lines (read_file "evidence/version.kv")) + note (read_text "evidence/note.txt") + selected (list) + failed (list)) + (do + (for c checks (when (= (map_get c "name") "unit") (append selected c))) + (for c checks (when (!= (map_get c "status") "PASS") (append failed c))) + (let (cp (str_split (list_get lines 0) "=") + pp (str_split (list_get lines 1) "=") + cur (str_split (list_get cp 1) ".") + pro (str_split (list_get pp 1) ".") + c0 (to_int (list_get cur 0)) c1 (to_int (list_get cur 1)) c2 (to_int (list_get cur 2)) + p0 (to_int (list_get pro 0)) p1 (to_int (list_get pro 1)) p2 (to_int (list_get pro 2))) + (if (and (= (list_len failed) 0) (or (> p0 c0) (and (= p0 c0) (or (> p1 c1) (and (= p1 c1) (> p2 c2)))))) + (write_file "out/release.json" (encode_json (dict ("batch" "16") ("selected" selected)))) + (write_file "out/approval_request.json" "{\"reason\":\"blocked\",\"summary\":{}}"))))))) diff --git a/experiments/token-efficiency-v0/solutions/howl/a17.howl b/experiments/token-efficiency-v0/solutions/howl/a17.howl index 119284d9..d7147d47 100644 --- a/experiments/token-efficiency-v0/solutions/howl/a17.howl +++ b/experiments/token-efficiency-v0/solutions/howl/a17.howl @@ -1,26 +1,19 @@ -(cli_app - (let (raw (bytes_to_string (read_file "evidence/checks.json"))) - (let (checks (parse_json Checks raw)) - (let (version (bytes_to_string (read_file "evidence/version.kv"))) - (let (note (bytes_to_string (read_file "evidence/note.txt"))) - (let (selected (list)) - (let (failed (list)) - (do - (for c checks (if (= (map_get c "name") "unit") (append selected c))) - (for c checks (if (!= (map_get c "status") "PASS") (append failed c))) - (let (record (dict ("batch" "17") ("selected" selected))) - (let (lines (str_split version "\n")) - (let (current_pair (str_split (list_get lines 0) "=")) - (let (proposed_pair (str_split (list_get lines 1) "=")) - (let (current (str_split (list_get current_pair 1) ".")) - (let (proposed (str_split (list_get proposed_pair 1) ".")) - (let (newer (or (> (to_int (list_get proposed 0)) (to_int (list_get current 0))) - (and (= (to_int (list_get proposed 0)) (to_int (list_get current 0))) - (or (> (to_int (list_get proposed 1)) (to_int (list_get current 1))) - (and (= (to_int (list_get proposed 1)) (to_int (list_get current 1))) - (> (to_int (list_get proposed 2)) (to_int (list_get current 2)))))))) - (if (and (= (list_len failed) 0) newer) - (write_file "out/release.json" (encode_json record)) - (write_file "out/approval_request.json" "{\"reason\":\"blocked\",\"summary\":{}}")) - ))))))) - )))))))) +(do + (let (raw (read_text "evidence/checks.json")) + (let (checks (parse_json Checks raw) + lines (lines (read_file "evidence/version.kv")) + note (read_text "evidence/note.txt") + selected (list) + failed (list)) + (do + (for c checks (when (= (map_get c "name") "unit") (append selected c))) + (for c checks (when (!= (map_get c "status") "PASS") (append failed c))) + (let (cp (str_split (list_get lines 0) "=") + pp (str_split (list_get lines 1) "=") + cur (str_split (list_get cp 1) ".") + pro (str_split (list_get pp 1) ".") + c0 (to_int (list_get cur 0)) c1 (to_int (list_get cur 1)) c2 (to_int (list_get cur 2)) + p0 (to_int (list_get pro 0)) p1 (to_int (list_get pro 1)) p2 (to_int (list_get pro 2))) + (if (and (= (list_len failed) 0) (or (> p0 c0) (and (= p0 c0) (or (> p1 c1) (and (= p1 c1) (> p2 c2)))))) + (write_file "out/release.json" (encode_json (dict ("batch" "17") ("selected" selected)))) + (write_file "out/approval_request.json" "{\"reason\":\"blocked\",\"summary\":{}}"))))))) diff --git a/experiments/token-efficiency-v0/solutions/howl/a18.howl b/experiments/token-efficiency-v0/solutions/howl/a18.howl index 5801267e..d9bf0193 100644 --- a/experiments/token-efficiency-v0/solutions/howl/a18.howl +++ b/experiments/token-efficiency-v0/solutions/howl/a18.howl @@ -1,26 +1,19 @@ -(cli_app - (let (raw (bytes_to_string (read_file "evidence/checks.json"))) - (let (checks (parse_json Checks raw)) - (let (version (bytes_to_string (read_file "evidence/version.kv"))) - (let (note (bytes_to_string (read_file "evidence/note.txt"))) - (let (selected (list)) - (let (failed (list)) - (do - (for c checks (if (= (map_get c "name") "unit") (append selected c))) - (for c checks (if (!= (map_get c "status") "PASS") (append failed c))) - (let (record (dict ("batch" "18") ("selected" selected))) - (let (lines (str_split version "\n")) - (let (current_pair (str_split (list_get lines 0) "=")) - (let (proposed_pair (str_split (list_get lines 1) "=")) - (let (current (str_split (list_get current_pair 1) ".")) - (let (proposed (str_split (list_get proposed_pair 1) ".")) - (let (newer (or (> (to_int (list_get proposed 0)) (to_int (list_get current 0))) - (and (= (to_int (list_get proposed 0)) (to_int (list_get current 0))) - (or (> (to_int (list_get proposed 1)) (to_int (list_get current 1))) - (and (= (to_int (list_get proposed 1)) (to_int (list_get current 1))) - (> (to_int (list_get proposed 2)) (to_int (list_get current 2)))))))) - (if (and (= (list_len failed) 0) newer) - (write_file "out/release.json" (encode_json record)) - (write_file "out/approval_request.json" "{\"reason\":\"blocked\",\"summary\":{}}")) - ))))))) - )))))))) +(do + (let (raw (read_text "evidence/checks.json")) + (let (checks (parse_json Checks raw) + lines (lines (read_file "evidence/version.kv")) + note (read_text "evidence/note.txt") + selected (list) + failed (list)) + (do + (for c checks (when (= (map_get c "name") "unit") (append selected c))) + (for c checks (when (!= (map_get c "status") "PASS") (append failed c))) + (let (cp (str_split (list_get lines 0) "=") + pp (str_split (list_get lines 1) "=") + cur (str_split (list_get cp 1) ".") + pro (str_split (list_get pp 1) ".") + c0 (to_int (list_get cur 0)) c1 (to_int (list_get cur 1)) c2 (to_int (list_get cur 2)) + p0 (to_int (list_get pro 0)) p1 (to_int (list_get pro 1)) p2 (to_int (list_get pro 2))) + (if (and (= (list_len failed) 0) (or (> p0 c0) (and (= p0 c0) (or (> p1 c1) (and (= p1 c1) (> p2 c2)))))) + (write_file "out/release.json" (encode_json (dict ("batch" "18") ("selected" selected)))) + (write_file "out/approval_request.json" "{\"reason\":\"blocked\",\"summary\":{}}"))))))) diff --git a/experiments/token-efficiency-v0/solutions/howl/a19.howl b/experiments/token-efficiency-v0/solutions/howl/a19.howl index ab0daeb2..17fbfe99 100644 --- a/experiments/token-efficiency-v0/solutions/howl/a19.howl +++ b/experiments/token-efficiency-v0/solutions/howl/a19.howl @@ -1,26 +1,19 @@ -(cli_app - (let (raw (bytes_to_string (read_file "evidence/checks.json"))) - (let (checks (parse_json Checks raw)) - (let (version (bytes_to_string (read_file "evidence/version.kv"))) - (let (note (bytes_to_string (read_file "evidence/note.txt"))) - (let (selected (list)) - (let (failed (list)) - (do - (for c checks (if (= (map_get c "name") "unit") (append selected c))) - (for c checks (if (!= (map_get c "status") "PASS") (append failed c))) - (let (record (dict ("batch" "19") ("selected" selected))) - (let (lines (str_split version "\n")) - (let (current_pair (str_split (list_get lines 0) "=")) - (let (proposed_pair (str_split (list_get lines 1) "=")) - (let (current (str_split (list_get current_pair 1) ".")) - (let (proposed (str_split (list_get proposed_pair 1) ".")) - (let (newer (or (> (to_int (list_get proposed 0)) (to_int (list_get current 0))) - (and (= (to_int (list_get proposed 0)) (to_int (list_get current 0))) - (or (> (to_int (list_get proposed 1)) (to_int (list_get current 1))) - (and (= (to_int (list_get proposed 1)) (to_int (list_get current 1))) - (> (to_int (list_get proposed 2)) (to_int (list_get current 2)))))))) - (if (and (= (list_len failed) 0) newer) - (write_file "out/release.json" (encode_json record)) - (write_file "out/approval_request.json" "{\"reason\":\"blocked\",\"summary\":{}}")) - ))))))) - )))))))) +(do + (let (raw (read_text "evidence/checks.json")) + (let (checks (parse_json Checks raw) + lines (lines (read_file "evidence/version.kv")) + note (read_text "evidence/note.txt") + selected (list) + failed (list)) + (do + (for c checks (when (= (map_get c "name") "unit") (append selected c))) + (for c checks (when (!= (map_get c "status") "PASS") (append failed c))) + (let (cp (str_split (list_get lines 0) "=") + pp (str_split (list_get lines 1) "=") + cur (str_split (list_get cp 1) ".") + pro (str_split (list_get pp 1) ".") + c0 (to_int (list_get cur 0)) c1 (to_int (list_get cur 1)) c2 (to_int (list_get cur 2)) + p0 (to_int (list_get pro 0)) p1 (to_int (list_get pro 1)) p2 (to_int (list_get pro 2))) + (if (and (= (list_len failed) 0) (or (> p0 c0) (and (= p0 c0) (or (> p1 c1) (and (= p1 c1) (> p2 c2)))))) + (write_file "out/release.json" (encode_json (dict ("batch" "19") ("selected" selected)))) + (write_file "out/approval_request.json" "{\"reason\":\"blocked\",\"summary\":{}}"))))))) diff --git a/experiments/token-efficiency-v0/solutions/howl/a20.howl b/experiments/token-efficiency-v0/solutions/howl/a20.howl index 0a873313..4bf3f5a7 100644 --- a/experiments/token-efficiency-v0/solutions/howl/a20.howl +++ b/experiments/token-efficiency-v0/solutions/howl/a20.howl @@ -1,26 +1,19 @@ -(cli_app - (let (raw (bytes_to_string (read_file "evidence/checks.json"))) - (let (checks (parse_json Checks raw)) - (let (version (bytes_to_string (read_file "evidence/version.kv"))) - (let (note (bytes_to_string (read_file "evidence/note.txt"))) - (let (selected (list)) - (let (failed (list)) - (do - (for c checks (if (= (map_get c "name") "unit") (append selected c))) - (for c checks (if (!= (map_get c "status") "PASS") (append failed c))) - (let (record (dict ("batch" "20") ("selected" selected))) - (let (lines (str_split version "\n")) - (let (current_pair (str_split (list_get lines 0) "=")) - (let (proposed_pair (str_split (list_get lines 1) "=")) - (let (current (str_split (list_get current_pair 1) ".")) - (let (proposed (str_split (list_get proposed_pair 1) ".")) - (let (newer (or (> (to_int (list_get proposed 0)) (to_int (list_get current 0))) - (and (= (to_int (list_get proposed 0)) (to_int (list_get current 0))) - (or (> (to_int (list_get proposed 1)) (to_int (list_get current 1))) - (and (= (to_int (list_get proposed 1)) (to_int (list_get current 1))) - (> (to_int (list_get proposed 2)) (to_int (list_get current 2)))))))) - (if (and (= (list_len failed) 0) newer) - (write_file "out/release.json" (encode_json record)) - (write_file "out/approval_request.json" "{\"reason\":\"blocked\",\"summary\":{}}")) - ))))))) - )))))))) +(do + (let (raw (read_text "evidence/checks.json")) + (let (checks (parse_json Checks raw) + lines (lines (read_file "evidence/version.kv")) + note (read_text "evidence/note.txt") + selected (list) + failed (list)) + (do + (for c checks (when (= (map_get c "name") "unit") (append selected c))) + (for c checks (when (!= (map_get c "status") "PASS") (append failed c))) + (let (cp (str_split (list_get lines 0) "=") + pp (str_split (list_get lines 1) "=") + cur (str_split (list_get cp 1) ".") + pro (str_split (list_get pp 1) ".") + c0 (to_int (list_get cur 0)) c1 (to_int (list_get cur 1)) c2 (to_int (list_get cur 2)) + p0 (to_int (list_get pro 0)) p1 (to_int (list_get pro 1)) p2 (to_int (list_get pro 2))) + (if (and (= (list_len failed) 0) (or (> p0 c0) (and (= p0 c0) (or (> p1 c1) (and (= p1 c1) (> p2 c2)))))) + (write_file "out/release.json" (encode_json (dict ("batch" "20") ("selected" selected)))) + (write_file "out/approval_request.json" "{\"reason\":\"blocked\",\"summary\":{}}"))))))) diff --git a/experiments/token-efficiency-v0/solutions/howl/a21.howl b/experiments/token-efficiency-v0/solutions/howl/a21.howl index 162313d9..400fa2df 100644 --- a/experiments/token-efficiency-v0/solutions/howl/a21.howl +++ b/experiments/token-efficiency-v0/solutions/howl/a21.howl @@ -1,13 +1,9 @@ -(cli_app - (let (raw (bytes_to_string (read_file "evidence/checks.json"))) - (let (checks (parse_json Checks raw)) - (let (version (bytes_to_string (read_file "evidence/version.kv"))) - (let (note (bytes_to_string (read_file "evidence/note.txt"))) - (let (selected (list)) - (do - (for c checks (if (= (map_get c "name") "unit") (append selected c))) - (let (record (dict ("batch" "21") ("selected" selected))) - (do - (write_file "out/approval_request.json" (encode_json (dict ("reason" "release review") ("summary" record)))) - )) - ))))))) +(do + (let (raw (read_text "evidence/checks.json")) + (let (checks (parse_json Checks raw) + version (read_text "evidence/version.kv") + note (read_text "evidence/note.txt") + selected (list)) + (do + (for c checks (when (= (map_get c "name") "unit") (append selected c))) + (write_file "out/approval_request.json" (encode_json (dict ("reason" "release review") ("summary" (dict ("batch" "21") ("selected" selected)))))))))) diff --git a/experiments/token-efficiency-v0/solutions/howl/a22.howl b/experiments/token-efficiency-v0/solutions/howl/a22.howl index ed6150d7..9285a7ce 100644 --- a/experiments/token-efficiency-v0/solutions/howl/a22.howl +++ b/experiments/token-efficiency-v0/solutions/howl/a22.howl @@ -1,13 +1,9 @@ -(cli_app - (let (raw (bytes_to_string (read_file "evidence/checks.json"))) - (let (checks (parse_json Checks raw)) - (let (version (bytes_to_string (read_file "evidence/version.kv"))) - (let (note (bytes_to_string (read_file "evidence/note.txt"))) - (let (selected (list)) - (do - (for c checks (if (= (map_get c "name") "unit") (append selected c))) - (let (record (dict ("batch" "22") ("selected" selected))) - (do - (write_file "out/approval_request.json" (encode_json (dict ("reason" "release review") ("summary" record)))) - )) - ))))))) +(do + (let (raw (read_text "evidence/checks.json")) + (let (checks (parse_json Checks raw) + version (read_text "evidence/version.kv") + note (read_text "evidence/note.txt") + selected (list)) + (do + (for c checks (when (= (map_get c "name") "unit") (append selected c))) + (write_file "out/approval_request.json" (encode_json (dict ("reason" "release review") ("summary" (dict ("batch" "22") ("selected" selected)))))))))) diff --git a/experiments/token-efficiency-v0/solutions/howl/a23.howl b/experiments/token-efficiency-v0/solutions/howl/a23.howl index 0bd5aee5..eca2ae34 100644 --- a/experiments/token-efficiency-v0/solutions/howl/a23.howl +++ b/experiments/token-efficiency-v0/solutions/howl/a23.howl @@ -1,13 +1,9 @@ -(cli_app - (let (raw (bytes_to_string (read_file "evidence/checks.json"))) - (let (checks (parse_json Checks raw)) - (let (version (bytes_to_string (read_file "evidence/version.kv"))) - (let (note (bytes_to_string (read_file "evidence/note.txt"))) - (let (selected (list)) - (do - (for c checks (if (= (map_get c "name") "unit") (append selected c))) - (let (record (dict ("batch" "23") ("selected" selected))) - (do - (write_file "out/approval_request.json" (encode_json (dict ("reason" "release review") ("summary" record)))) - )) - ))))))) +(do + (let (raw (read_text "evidence/checks.json")) + (let (checks (parse_json Checks raw) + version (read_text "evidence/version.kv") + note (read_text "evidence/note.txt") + selected (list)) + (do + (for c checks (when (= (map_get c "name") "unit") (append selected c))) + (write_file "out/approval_request.json" (encode_json (dict ("reason" "release review") ("summary" (dict ("batch" "23") ("selected" selected)))))))))) diff --git a/experiments/token-efficiency-v0/solutions/howl/a24.howl b/experiments/token-efficiency-v0/solutions/howl/a24.howl index cd787d6e..eb132b39 100644 --- a/experiments/token-efficiency-v0/solutions/howl/a24.howl +++ b/experiments/token-efficiency-v0/solutions/howl/a24.howl @@ -1,13 +1,9 @@ -(cli_app - (let (raw (bytes_to_string (read_file "evidence/checks.json"))) - (let (checks (parse_json Checks raw)) - (let (version (bytes_to_string (read_file "evidence/version.kv"))) - (let (note (bytes_to_string (read_file "evidence/note.txt"))) - (let (selected (list)) - (do - (for c checks (if (= (map_get c "name") "unit") (append selected c))) - (let (record (dict ("batch" "24") ("selected" selected))) - (do - (write_file "out/approval_request.json" (encode_json (dict ("reason" "release review") ("summary" record)))) - )) - ))))))) +(do + (let (raw (read_text "evidence/checks.json")) + (let (checks (parse_json Checks raw) + version (read_text "evidence/version.kv") + note (read_text "evidence/note.txt") + selected (list)) + (do + (for c checks (when (= (map_get c "name") "unit") (append selected c))) + (write_file "out/approval_request.json" (encode_json (dict ("reason" "release review") ("summary" (dict ("batch" "24") ("selected" selected)))))))))) diff --git a/experiments/token-efficiency-v0/solutions/howl/a25.howl b/experiments/token-efficiency-v0/solutions/howl/a25.howl index 63a5b986..b8a987f2 100644 --- a/experiments/token-efficiency-v0/solutions/howl/a25.howl +++ b/experiments/token-efficiency-v0/solutions/howl/a25.howl @@ -1,13 +1,9 @@ -(cli_app - (let (raw (bytes_to_string (read_file "evidence/checks.json"))) - (let (checks (parse_json Checks raw)) - (let (version (bytes_to_string (read_file "evidence/version.kv"))) - (let (note (bytes_to_string (read_file "evidence/note.txt"))) - (let (selected (list)) - (do - (for c checks (if (= (map_get c "name") "unit") (append selected c))) - (let (record (dict ("batch" "25") ("selected" selected))) - (do - (write_file "out/approval_request.json" (encode_json (dict ("reason" "release review") ("summary" record)))) - )) - ))))))) +(do + (let (raw (read_text "evidence/checks.json")) + (let (checks (parse_json Checks raw) + version (read_text "evidence/version.kv") + note (read_text "evidence/note.txt") + selected (list)) + (do + (for c checks (when (= (map_get c "name") "unit") (append selected c))) + (write_file "out/approval_request.json" (encode_json (dict ("reason" "release review") ("summary" (dict ("batch" "25") ("selected" selected)))))))))) diff --git a/experiments/token-efficiency-v0/solutions/howl/a26.howl b/experiments/token-efficiency-v0/solutions/howl/a26.howl index 1fd9dafb..09a9c5f5 100644 --- a/experiments/token-efficiency-v0/solutions/howl/a26.howl +++ b/experiments/token-efficiency-v0/solutions/howl/a26.howl @@ -1,13 +1,9 @@ -(cli_app - (let (raw (bytes_to_string (read_file "evidence/checks.json"))) - (let (checks (parse_json Checks raw)) - (let (version (bytes_to_string (read_file "evidence/version.kv"))) - (let (note (bytes_to_string (read_file "evidence/note.txt"))) - (let (selected (list)) - (do - (for c checks (if (= (map_get c "name") "unit") (append selected c))) - (let (record (dict ("batch" "26") ("selected" selected))) - (do - (write_file "out/approval_request.json" (encode_json (dict ("reason" "release review") ("summary" record)))) - )) - ))))))) +(do + (let (raw (read_text "evidence/checks.json")) + (let (checks (parse_json Checks raw) + version (read_text "evidence/version.kv") + note (read_text "evidence/note.txt") + selected (list)) + (do + (for c checks (when (= (map_get c "name") "unit") (append selected c))) + (write_file "out/approval_request.json" (encode_json (dict ("reason" "release review") ("summary" (dict ("batch" "26") ("selected" selected)))))))))) diff --git a/experiments/token-efficiency-v0/solutions/howl/a27.howl b/experiments/token-efficiency-v0/solutions/howl/a27.howl index 0af4c915..451bc8bd 100644 --- a/experiments/token-efficiency-v0/solutions/howl/a27.howl +++ b/experiments/token-efficiency-v0/solutions/howl/a27.howl @@ -1,13 +1,9 @@ -(cli_app - (let (raw (bytes_to_string (read_file "evidence/checks.json"))) - (let (checks (parse_json Checks raw)) - (let (version (bytes_to_string (read_file "evidence/version.kv"))) - (let (note (bytes_to_string (read_file "evidence/note.txt"))) - (let (selected (list)) - (do - (for c checks (if (= (map_get c "name") "unit") (append selected c))) - (let (record (dict ("batch" "27") ("selected" selected))) - (do - (write_file "out/approval_request.json" (encode_json (dict ("reason" "release review") ("summary" record)))) - )) - ))))))) +(do + (let (raw (read_text "evidence/checks.json")) + (let (checks (parse_json Checks raw) + version (read_text "evidence/version.kv") + note (read_text "evidence/note.txt") + selected (list)) + (do + (for c checks (when (= (map_get c "name") "unit") (append selected c))) + (write_file "out/approval_request.json" (encode_json (dict ("reason" "release review") ("summary" (dict ("batch" "27") ("selected" selected)))))))))) diff --git a/experiments/token-efficiency-v0/solutions/howl/a28.howl b/experiments/token-efficiency-v0/solutions/howl/a28.howl index c8eb41d6..1a0c338e 100644 --- a/experiments/token-efficiency-v0/solutions/howl/a28.howl +++ b/experiments/token-efficiency-v0/solutions/howl/a28.howl @@ -1,13 +1,9 @@ -(cli_app - (let (raw (bytes_to_string (read_file "evidence/checks.json"))) - (let (checks (parse_json Checks raw)) - (let (version (bytes_to_string (read_file "evidence/version.kv"))) - (let (note (bytes_to_string (read_file "evidence/note.txt"))) - (let (selected (list)) - (do - (for c checks (if (= (map_get c "name") "unit") (append selected c))) - (let (record (dict ("batch" "28") ("selected" selected))) - (do - (write_file "out/approval_request.json" (encode_json (dict ("reason" "release review") ("summary" record)))) - )) - ))))))) +(do + (let (raw (read_text "evidence/checks.json")) + (let (checks (parse_json Checks raw) + version (read_text "evidence/version.kv") + note (read_text "evidence/note.txt") + selected (list)) + (do + (for c checks (when (= (map_get c "name") "unit") (append selected c))) + (write_file "out/approval_request.json" (encode_json (dict ("reason" "release review") ("summary" (dict ("batch" "28") ("selected" selected)))))))))) diff --git a/experiments/token-efficiency-v0/solutions/howl/a29.howl b/experiments/token-efficiency-v0/solutions/howl/a29.howl index a8986ef4..ba622e67 100644 --- a/experiments/token-efficiency-v0/solutions/howl/a29.howl +++ b/experiments/token-efficiency-v0/solutions/howl/a29.howl @@ -1,13 +1,9 @@ -(cli_app - (let (raw (bytes_to_string (read_file "evidence/checks.json"))) - (let (checks (parse_json Checks raw)) - (let (version (bytes_to_string (read_file "evidence/version.kv"))) - (let (note (bytes_to_string (read_file "evidence/note.txt"))) - (let (selected (list)) - (do - (for c checks (if (= (map_get c "name") "unit") (append selected c))) - (let (record (dict ("batch" "29") ("selected" selected))) - (do - (write_file "out/approval_request.json" (encode_json (dict ("reason" "release review") ("summary" record)))) - )) - ))))))) +(do + (let (raw (read_text "evidence/checks.json")) + (let (checks (parse_json Checks raw) + version (read_text "evidence/version.kv") + note (read_text "evidence/note.txt") + selected (list)) + (do + (for c checks (when (= (map_get c "name") "unit") (append selected c))) + (write_file "out/approval_request.json" (encode_json (dict ("reason" "release review") ("summary" (dict ("batch" "29") ("selected" selected)))))))))) diff --git a/experiments/token-efficiency-v0/solutions/howl/a30.howl b/experiments/token-efficiency-v0/solutions/howl/a30.howl index 6c57bba2..52e0f023 100644 --- a/experiments/token-efficiency-v0/solutions/howl/a30.howl +++ b/experiments/token-efficiency-v0/solutions/howl/a30.howl @@ -1,13 +1,9 @@ -(cli_app - (let (raw (bytes_to_string (read_file "evidence/checks.json"))) - (let (checks (parse_json Checks raw)) - (let (version (bytes_to_string (read_file "evidence/version.kv"))) - (let (note (bytes_to_string (read_file "evidence/note.txt"))) - (let (selected (list)) - (do - (for c checks (if (= (map_get c "name") "unit") (append selected c))) - (let (record (dict ("batch" "30") ("selected" selected))) - (do - (write_file "out/approval_request.json" (encode_json (dict ("reason" "release review") ("summary" record)))) - )) - ))))))) +(do + (let (raw (read_text "evidence/checks.json")) + (let (checks (parse_json Checks raw) + version (read_text "evidence/version.kv") + note (read_text "evidence/note.txt") + selected (list)) + (do + (for c checks (when (= (map_get c "name") "unit") (append selected c))) + (write_file "out/approval_request.json" (encode_json (dict ("reason" "release review") ("summary" (dict ("batch" "30") ("selected" selected)))))))))) diff --git a/experiments/token-efficiency-v0/solutions/howl/t01.howl b/experiments/token-efficiency-v0/solutions/howl/t01.howl index 61c176bc..8718d091 100644 --- a/experiments/token-efficiency-v0/solutions/howl/t01.howl +++ b/experiments/token-efficiency-v0/solutions/howl/t01.howl @@ -1,13 +1,9 @@ -(cli_app - (let (raw (bytes_to_string (read_file "evidence/checks.json"))) - (let (checks (parse_json Checks raw)) - (let (version (bytes_to_string (read_file "evidence/version.kv"))) - (let (note (bytes_to_string (read_file "evidence/note.txt"))) - (let (selected (list)) - (do - (for c checks (if (= (map_get c "status") "PASS") (append selected c))) - (let (record (dict ("batch" "01") ("selected" selected))) - (do - (write_file "out/release.json" (encode_json record)) - )) - ))))))) +(do + (let (raw (read_text "evidence/checks.json")) + (let (checks (parse_json Checks raw) + version (read_text "evidence/version.kv") + note (read_text "evidence/note.txt") + selected (list)) + (do + (for c checks (when (= (map_get c "status") "PASS") (append selected c))) + (write_file "out/release.json" (encode_json (dict ("batch" "01") ("selected" selected)))))))) diff --git a/experiments/token-efficiency-v0/solutions/howl/t02.howl b/experiments/token-efficiency-v0/solutions/howl/t02.howl index a5698fc7..c8525d16 100644 --- a/experiments/token-efficiency-v0/solutions/howl/t02.howl +++ b/experiments/token-efficiency-v0/solutions/howl/t02.howl @@ -1,24 +1,17 @@ -(cli_app - (let (raw (bytes_to_string (read_file "evidence/checks.json"))) - (let (checks (parse_json Checks raw)) - (let (version (bytes_to_string (read_file "evidence/version.kv"))) - (let (note (bytes_to_string (read_file "evidence/note.txt"))) - (let (selected (list)) - (do - (for c checks (if (= (map_get c "status") "PASS") (append selected c))) - (let (record (dict ("batch" "02") ("selected" selected))) - (let (lines (str_split version "\n")) - (let (current_pair (str_split (list_get lines 0) "=")) - (let (proposed_pair (str_split (list_get lines 1) "=")) - (let (current (str_split (list_get current_pair 1) ".")) - (let (proposed (str_split (list_get proposed_pair 1) ".")) - (let (newer (or (> (to_int (list_get proposed 0)) (to_int (list_get current 0))) - (and (= (to_int (list_get proposed 0)) (to_int (list_get current 0))) - (or (> (to_int (list_get proposed 1)) (to_int (list_get current 1))) - (and (= (to_int (list_get proposed 1)) (to_int (list_get current 1))) - (> (to_int (list_get proposed 2)) (to_int (list_get current 2)))))))) - (if (and (= (list_len selected) (list_len checks)) newer) - (write_file "out/release.json" (encode_json record)) - (write_file "out/approval_request.json" "{\"reason\":\"blocked\",\"summary\":{}}")) - ))))))) - ))))))) +(do + (let (raw (read_text "evidence/checks.json")) + (let (checks (parse_json Checks raw) + lines (lines (read_file "evidence/version.kv")) + note (read_text "evidence/note.txt") + selected (list)) + (do + (for c checks (when (= (map_get c "status") "PASS") (append selected c))) + (let (cp (str_split (list_get lines 0) "=") + pp (str_split (list_get lines 1) "=") + cur (str_split (list_get cp 1) ".") + pro (str_split (list_get pp 1) ".") + c0 (to_int (list_get cur 0)) c1 (to_int (list_get cur 1)) c2 (to_int (list_get cur 2)) + p0 (to_int (list_get pro 0)) p1 (to_int (list_get pro 1)) p2 (to_int (list_get pro 2))) + (if (and (= (list_len selected) (list_len checks)) (or (> p0 c0) (and (= p0 c0) (or (> p1 c1) (and (= p1 c1) (> p2 c2)))))) + (write_file "out/release.json" (encode_json (dict ("batch" "02") ("selected" selected)))) + (write_file "out/approval_request.json" "{\"reason\":\"blocked\",\"summary\":{}}"))))))) diff --git a/experiments/token-efficiency-v0/solutions/howl/t03.howl b/experiments/token-efficiency-v0/solutions/howl/t03.howl index d638404c..f240126d 100644 --- a/experiments/token-efficiency-v0/solutions/howl/t03.howl +++ b/experiments/token-efficiency-v0/solutions/howl/t03.howl @@ -1,13 +1,9 @@ -(cli_app - (let (raw (bytes_to_string (read_file "evidence/checks.json"))) - (let (checks (parse_json Checks raw)) - (let (version (bytes_to_string (read_file "evidence/version.kv"))) - (let (note (bytes_to_string (read_file "evidence/note.txt"))) - (let (selected (list)) - (do - (for c checks (if (= (map_get c "status") "PASS") (append selected c))) - (let (record (dict ("batch" "03") ("selected" selected))) - (do - (write_file "out/approval_request.json" (encode_json (dict ("reason" "release review") ("summary" record)))) - )) - ))))))) +(do + (let (raw (read_text "evidence/checks.json")) + (let (checks (parse_json Checks raw) + version (read_text "evidence/version.kv") + note (read_text "evidence/note.txt") + selected (list)) + (do + (for c checks (when (= (map_get c "status") "PASS") (append selected c))) + (write_file "out/approval_request.json" (encode_json (dict ("reason" "release review") ("summary" (dict ("batch" "03") ("selected" selected)))))))))) diff --git a/experiments/token-efficiency-v0/solutions/howl/t04.howl b/experiments/token-efficiency-v0/solutions/howl/t04.howl index db981ce6..33614d29 100644 --- a/experiments/token-efficiency-v0/solutions/howl/t04.howl +++ b/experiments/token-efficiency-v0/solutions/howl/t04.howl @@ -1,13 +1,9 @@ -(cli_app - (let (raw (bytes_to_string (read_file "evidence/checks.json"))) - (let (checks (parse_json Checks raw)) - (let (version (bytes_to_string (read_file "evidence/version.kv"))) - (let (note (bytes_to_string (read_file "evidence/note.txt"))) - (let (selected (list)) - (do - (for c checks (if (= (map_get c "status") "PASS") (append selected c))) - (let (record (dict ("batch" "04") ("selected" selected))) - (do - (write_file "out/release.json" (encode_json record)) - )) - ))))))) +(do + (let (raw (read_text "evidence/checks.json")) + (let (checks (parse_json Checks raw) + version (read_text "evidence/version.kv") + note (read_text "evidence/note.txt") + selected (list)) + (do + (for c checks (when (= (map_get c "status") "PASS") (append selected c))) + (write_file "out/release.json" (encode_json (dict ("batch" "04") ("selected" selected)))))))) diff --git a/experiments/token-efficiency-v0/solutions/howl/t05.howl b/experiments/token-efficiency-v0/solutions/howl/t05.howl index bc353bdf..35e83040 100644 --- a/experiments/token-efficiency-v0/solutions/howl/t05.howl +++ b/experiments/token-efficiency-v0/solutions/howl/t05.howl @@ -1,13 +1,9 @@ -(cli_app - (let (raw (bytes_to_string (read_file "evidence/checks.json"))) - (let (checks (parse_json Checks raw)) - (let (version (bytes_to_string (read_file "evidence/version.kv"))) - (let (note (bytes_to_string (read_file "evidence/note.txt"))) - (let (selected (list)) - (do - (for c checks (if (= (map_get c "status") "PASS") (append selected c))) - (let (record (dict ("batch" "05") ("selected" selected))) - (do - (write_file "out/release.json" (encode_json record)) - )) - ))))))) +(do + (let (raw (read_text "evidence/checks.json")) + (let (checks (parse_json Checks raw) + version (read_text "evidence/version.kv") + note (read_text "evidence/note.txt") + selected (list)) + (do + (for c checks (when (= (map_get c "status") "PASS") (append selected c))) + (write_file "out/release.json" (encode_json (dict ("batch" "05") ("selected" selected)))))))) diff --git a/experiments/token-efficiency-v0/solutions/howl/t06.howl b/experiments/token-efficiency-v0/solutions/howl/t06.howl index 51f93257..919ebd85 100644 --- a/experiments/token-efficiency-v0/solutions/howl/t06.howl +++ b/experiments/token-efficiency-v0/solutions/howl/t06.howl @@ -1,13 +1,9 @@ -(cli_app - (let (raw (bytes_to_string (read_file "evidence/checks.json"))) - (let (checks (parse_json Checks raw)) - (let (version (bytes_to_string (read_file "evidence/version.kv"))) - (let (note (bytes_to_string (read_file "evidence/note.txt"))) - (let (selected (list)) - (do - (for c checks (if (= (map_get c "status") "PASS") (append selected c))) - (let (record (dict ("batch" "06") ("selected" selected))) - (do - (write_file "out/release.json" (encode_json record)) - )) - ))))))) +(do + (let (raw (read_text "evidence/checks.json")) + (let (checks (parse_json Checks raw) + version (read_text "evidence/version.kv") + note (read_text "evidence/note.txt") + selected (list)) + (do + (for c checks (when (= (map_get c "status") "PASS") (append selected c))) + (write_file "out/release.json" (encode_json (dict ("batch" "06") ("selected" selected)))))))) diff --git a/experiments/token-efficiency-v0/solutions/howl/t07.howl b/experiments/token-efficiency-v0/solutions/howl/t07.howl index 0e23cb92..661352f2 100644 --- a/experiments/token-efficiency-v0/solutions/howl/t07.howl +++ b/experiments/token-efficiency-v0/solutions/howl/t07.howl @@ -1,13 +1,9 @@ -(cli_app - (let (raw (bytes_to_string (read_file "evidence/checks.json"))) - (let (checks (parse_json Checks raw)) - (let (version (bytes_to_string (read_file "evidence/version.kv"))) - (let (note (bytes_to_string (read_file "evidence/note.txt"))) - (let (selected (list)) - (do - (for c checks (if (= (map_get c "status") "PASS") (append selected c))) - (let (record (dict ("batch" "07") ("selected" selected))) - (do - (write_file "out/release.json" (encode_json record)) - )) - ))))))) +(do + (let (raw (read_text "evidence/checks.json")) + (let (checks (parse_json Checks raw) + version (read_text "evidence/version.kv") + note (read_text "evidence/note.txt") + selected (list)) + (do + (for c checks (when (= (map_get c "status") "PASS") (append selected c))) + (write_file "out/release.json" (encode_json (dict ("batch" "07") ("selected" selected)))))))) diff --git a/experiments/token-efficiency-v0/solutions/howl/t08.howl b/experiments/token-efficiency-v0/solutions/howl/t08.howl index 925af16b..ae165cb1 100644 --- a/experiments/token-efficiency-v0/solutions/howl/t08.howl +++ b/experiments/token-efficiency-v0/solutions/howl/t08.howl @@ -1,13 +1,9 @@ -(cli_app - (let (raw (bytes_to_string (read_file "evidence/checks.json"))) - (let (checks (parse_json Checks raw)) - (let (version (bytes_to_string (read_file "evidence/version.kv"))) - (let (note (bytes_to_string (read_file "evidence/note.txt"))) - (let (selected (list)) - (do - (for c checks (if (= (map_get c "status") "PASS") (append selected c))) - (let (record (dict ("batch" "08") ("selected" selected))) - (do - (write_file "out/release.json" (encode_json record)) - )) - ))))))) +(do + (let (raw (read_text "evidence/checks.json")) + (let (checks (parse_json Checks raw) + version (read_text "evidence/version.kv") + note (read_text "evidence/note.txt") + selected (list)) + (do + (for c checks (when (= (map_get c "status") "PASS") (append selected c))) + (write_file "out/release.json" (encode_json (dict ("batch" "08") ("selected" selected)))))))) diff --git a/experiments/token-efficiency-v0/solutions/howl/t09.howl b/experiments/token-efficiency-v0/solutions/howl/t09.howl index 4528661c..56f34f2b 100644 --- a/experiments/token-efficiency-v0/solutions/howl/t09.howl +++ b/experiments/token-efficiency-v0/solutions/howl/t09.howl @@ -1,13 +1,9 @@ -(cli_app - (let (raw (bytes_to_string (read_file "evidence/checks.json"))) - (let (checks (parse_json Checks raw)) - (let (version (bytes_to_string (read_file "evidence/version.kv"))) - (let (note (bytes_to_string (read_file "evidence/note.txt"))) - (let (selected (list)) - (do - (for c checks (if (= (map_get c "status") "PASS") (append selected c))) - (let (record (dict ("batch" "09") ("selected" selected))) - (do - (write_file "out/release.json" (encode_json record)) - )) - ))))))) +(do + (let (raw (read_text "evidence/checks.json")) + (let (checks (parse_json Checks raw) + version (read_text "evidence/version.kv") + note (read_text "evidence/note.txt") + selected (list)) + (do + (for c checks (when (= (map_get c "status") "PASS") (append selected c))) + (write_file "out/release.json" (encode_json (dict ("batch" "09") ("selected" selected)))))))) diff --git a/experiments/token-efficiency-v0/solutions/howl/t10.howl b/experiments/token-efficiency-v0/solutions/howl/t10.howl index 583d6298..16b05fa0 100644 --- a/experiments/token-efficiency-v0/solutions/howl/t10.howl +++ b/experiments/token-efficiency-v0/solutions/howl/t10.howl @@ -1,13 +1,9 @@ -(cli_app - (let (raw (bytes_to_string (read_file "evidence/checks.json"))) - (let (checks (parse_json Checks raw)) - (let (version (bytes_to_string (read_file "evidence/version.kv"))) - (let (note (bytes_to_string (read_file "evidence/note.txt"))) - (let (selected (list)) - (do - (for c checks (if (= (map_get c "status") "PASS") (append selected c))) - (let (record (dict ("batch" "10") ("selected" selected))) - (do - (write_file "out/release.json" (encode_json record)) - )) - ))))))) +(do + (let (raw (read_text "evidence/checks.json")) + (let (checks (parse_json Checks raw) + version (read_text "evidence/version.kv") + note (read_text "evidence/note.txt") + selected (list)) + (do + (for c checks (when (= (map_get c "status") "PASS") (append selected c))) + (write_file "out/release.json" (encode_json (dict ("batch" "10") ("selected" selected)))))))) diff --git a/experiments/token-efficiency-v0/solutions/howl/t11.howl b/experiments/token-efficiency-v0/solutions/howl/t11.howl index 40dad1e1..063e747a 100644 --- a/experiments/token-efficiency-v0/solutions/howl/t11.howl +++ b/experiments/token-efficiency-v0/solutions/howl/t11.howl @@ -1,26 +1,19 @@ -(cli_app - (let (raw (bytes_to_string (read_file "evidence/checks.json"))) - (let (checks (parse_json Checks raw)) - (let (version (bytes_to_string (read_file "evidence/version.kv"))) - (let (note (bytes_to_string (read_file "evidence/note.txt"))) - (let (selected (list)) - (let (failed (list)) - (do - (for c checks (if (= (map_get c "name") "unit") (append selected c))) - (for c checks (if (!= (map_get c "status") "PASS") (append failed c))) - (let (record (dict ("batch" "11") ("selected" selected))) - (let (lines (str_split version "\n")) - (let (current_pair (str_split (list_get lines 0) "=")) - (let (proposed_pair (str_split (list_get lines 1) "=")) - (let (current (str_split (list_get current_pair 1) ".")) - (let (proposed (str_split (list_get proposed_pair 1) ".")) - (let (newer (or (> (to_int (list_get proposed 0)) (to_int (list_get current 0))) - (and (= (to_int (list_get proposed 0)) (to_int (list_get current 0))) - (or (> (to_int (list_get proposed 1)) (to_int (list_get current 1))) - (and (= (to_int (list_get proposed 1)) (to_int (list_get current 1))) - (> (to_int (list_get proposed 2)) (to_int (list_get current 2)))))))) - (if (and (= (list_len failed) 0) newer) - (write_file "out/release.json" (encode_json record)) - (write_file "out/approval_request.json" "{\"reason\":\"blocked\",\"summary\":{}}")) - ))))))) - )))))))) +(do + (let (raw (read_text "evidence/checks.json")) + (let (checks (parse_json Checks raw) + lines (lines (read_file "evidence/version.kv")) + note (read_text "evidence/note.txt") + selected (list) + failed (list)) + (do + (for c checks (when (= (map_get c "name") "unit") (append selected c))) + (for c checks (when (!= (map_get c "status") "PASS") (append failed c))) + (let (cp (str_split (list_get lines 0) "=") + pp (str_split (list_get lines 1) "=") + cur (str_split (list_get cp 1) ".") + pro (str_split (list_get pp 1) ".") + c0 (to_int (list_get cur 0)) c1 (to_int (list_get cur 1)) c2 (to_int (list_get cur 2)) + p0 (to_int (list_get pro 0)) p1 (to_int (list_get pro 1)) p2 (to_int (list_get pro 2))) + (if (and (= (list_len failed) 0) (or (> p0 c0) (and (= p0 c0) (or (> p1 c1) (and (= p1 c1) (> p2 c2)))))) + (write_file "out/release.json" (encode_json (dict ("batch" "11") ("selected" selected)))) + (write_file "out/approval_request.json" "{\"reason\":\"blocked\",\"summary\":{}}"))))))) diff --git a/experiments/token-efficiency-v0/solutions/howl/t12.howl b/experiments/token-efficiency-v0/solutions/howl/t12.howl index c7dce229..d78150b1 100644 --- a/experiments/token-efficiency-v0/solutions/howl/t12.howl +++ b/experiments/token-efficiency-v0/solutions/howl/t12.howl @@ -1,26 +1,19 @@ -(cli_app - (let (raw (bytes_to_string (read_file "evidence/checks.json"))) - (let (checks (parse_json Checks raw)) - (let (version (bytes_to_string (read_file "evidence/version.kv"))) - (let (note (bytes_to_string (read_file "evidence/note.txt"))) - (let (selected (list)) - (let (failed (list)) - (do - (for c checks (if (= (map_get c "name") "unit") (append selected c))) - (for c checks (if (!= (map_get c "status") "PASS") (append failed c))) - (let (record (dict ("batch" "12") ("selected" selected))) - (let (lines (str_split version "\n")) - (let (current_pair (str_split (list_get lines 0) "=")) - (let (proposed_pair (str_split (list_get lines 1) "=")) - (let (current (str_split (list_get current_pair 1) ".")) - (let (proposed (str_split (list_get proposed_pair 1) ".")) - (let (newer (or (> (to_int (list_get proposed 0)) (to_int (list_get current 0))) - (and (= (to_int (list_get proposed 0)) (to_int (list_get current 0))) - (or (> (to_int (list_get proposed 1)) (to_int (list_get current 1))) - (and (= (to_int (list_get proposed 1)) (to_int (list_get current 1))) - (> (to_int (list_get proposed 2)) (to_int (list_get current 2)))))))) - (if (and (= (list_len failed) 0) newer) - (write_file "out/release.json" (encode_json record)) - (write_file "out/approval_request.json" "{\"reason\":\"blocked\",\"summary\":{}}")) - ))))))) - )))))))) +(do + (let (raw (read_text "evidence/checks.json")) + (let (checks (parse_json Checks raw) + lines (lines (read_file "evidence/version.kv")) + note (read_text "evidence/note.txt") + selected (list) + failed (list)) + (do + (for c checks (when (= (map_get c "name") "unit") (append selected c))) + (for c checks (when (!= (map_get c "status") "PASS") (append failed c))) + (let (cp (str_split (list_get lines 0) "=") + pp (str_split (list_get lines 1) "=") + cur (str_split (list_get cp 1) ".") + pro (str_split (list_get pp 1) ".") + c0 (to_int (list_get cur 0)) c1 (to_int (list_get cur 1)) c2 (to_int (list_get cur 2)) + p0 (to_int (list_get pro 0)) p1 (to_int (list_get pro 1)) p2 (to_int (list_get pro 2))) + (if (and (= (list_len failed) 0) (or (> p0 c0) (and (= p0 c0) (or (> p1 c1) (and (= p1 c1) (> p2 c2)))))) + (write_file "out/release.json" (encode_json (dict ("batch" "12") ("selected" selected)))) + (write_file "out/approval_request.json" "{\"reason\":\"blocked\",\"summary\":{}}"))))))) diff --git a/experiments/token-efficiency-v0/solutions/howl/t13.howl b/experiments/token-efficiency-v0/solutions/howl/t13.howl index 137c9ad6..8a176b43 100644 --- a/experiments/token-efficiency-v0/solutions/howl/t13.howl +++ b/experiments/token-efficiency-v0/solutions/howl/t13.howl @@ -1,26 +1,19 @@ -(cli_app - (let (raw (bytes_to_string (read_file "evidence/checks.json"))) - (let (checks (parse_json Checks raw)) - (let (version (bytes_to_string (read_file "evidence/version.kv"))) - (let (note (bytes_to_string (read_file "evidence/note.txt"))) - (let (selected (list)) - (let (failed (list)) - (do - (for c checks (if (= (map_get c "name") "unit") (append selected c))) - (for c checks (if (!= (map_get c "status") "PASS") (append failed c))) - (let (record (dict ("batch" "13") ("selected" selected))) - (let (lines (str_split version "\n")) - (let (current_pair (str_split (list_get lines 0) "=")) - (let (proposed_pair (str_split (list_get lines 1) "=")) - (let (current (str_split (list_get current_pair 1) ".")) - (let (proposed (str_split (list_get proposed_pair 1) ".")) - (let (newer (or (> (to_int (list_get proposed 0)) (to_int (list_get current 0))) - (and (= (to_int (list_get proposed 0)) (to_int (list_get current 0))) - (or (> (to_int (list_get proposed 1)) (to_int (list_get current 1))) - (and (= (to_int (list_get proposed 1)) (to_int (list_get current 1))) - (> (to_int (list_get proposed 2)) (to_int (list_get current 2)))))))) - (if (and (= (list_len failed) 0) newer) - (write_file "out/release.json" (encode_json record)) - (write_file "out/approval_request.json" "{\"reason\":\"blocked\",\"summary\":{}}")) - ))))))) - )))))))) +(do + (let (raw (read_text "evidence/checks.json")) + (let (checks (parse_json Checks raw) + lines (lines (read_file "evidence/version.kv")) + note (read_text "evidence/note.txt") + selected (list) + failed (list)) + (do + (for c checks (when (= (map_get c "name") "unit") (append selected c))) + (for c checks (when (!= (map_get c "status") "PASS") (append failed c))) + (let (cp (str_split (list_get lines 0) "=") + pp (str_split (list_get lines 1) "=") + cur (str_split (list_get cp 1) ".") + pro (str_split (list_get pp 1) ".") + c0 (to_int (list_get cur 0)) c1 (to_int (list_get cur 1)) c2 (to_int (list_get cur 2)) + p0 (to_int (list_get pro 0)) p1 (to_int (list_get pro 1)) p2 (to_int (list_get pro 2))) + (if (and (= (list_len failed) 0) (or (> p0 c0) (and (= p0 c0) (or (> p1 c1) (and (= p1 c1) (> p2 c2)))))) + (write_file "out/release.json" (encode_json (dict ("batch" "13") ("selected" selected)))) + (write_file "out/approval_request.json" "{\"reason\":\"blocked\",\"summary\":{}}"))))))) diff --git a/experiments/token-efficiency-v0/solutions/howl/t14.howl b/experiments/token-efficiency-v0/solutions/howl/t14.howl index a040d28c..60ea68da 100644 --- a/experiments/token-efficiency-v0/solutions/howl/t14.howl +++ b/experiments/token-efficiency-v0/solutions/howl/t14.howl @@ -1,26 +1,19 @@ -(cli_app - (let (raw (bytes_to_string (read_file "evidence/checks.json"))) - (let (checks (parse_json Checks raw)) - (let (version (bytes_to_string (read_file "evidence/version.kv"))) - (let (note (bytes_to_string (read_file "evidence/note.txt"))) - (let (selected (list)) - (let (failed (list)) - (do - (for c checks (if (= (map_get c "name") "unit") (append selected c))) - (for c checks (if (!= (map_get c "status") "PASS") (append failed c))) - (let (record (dict ("batch" "14") ("selected" selected))) - (let (lines (str_split version "\n")) - (let (current_pair (str_split (list_get lines 0) "=")) - (let (proposed_pair (str_split (list_get lines 1) "=")) - (let (current (str_split (list_get current_pair 1) ".")) - (let (proposed (str_split (list_get proposed_pair 1) ".")) - (let (newer (or (> (to_int (list_get proposed 0)) (to_int (list_get current 0))) - (and (= (to_int (list_get proposed 0)) (to_int (list_get current 0))) - (or (> (to_int (list_get proposed 1)) (to_int (list_get current 1))) - (and (= (to_int (list_get proposed 1)) (to_int (list_get current 1))) - (> (to_int (list_get proposed 2)) (to_int (list_get current 2)))))))) - (if (and (= (list_len failed) 0) newer) - (write_file "out/release.json" (encode_json record)) - (write_file "out/approval_request.json" "{\"reason\":\"blocked\",\"summary\":{}}")) - ))))))) - )))))))) +(do + (let (raw (read_text "evidence/checks.json")) + (let (checks (parse_json Checks raw) + lines (lines (read_file "evidence/version.kv")) + note (read_text "evidence/note.txt") + selected (list) + failed (list)) + (do + (for c checks (when (= (map_get c "name") "unit") (append selected c))) + (for c checks (when (!= (map_get c "status") "PASS") (append failed c))) + (let (cp (str_split (list_get lines 0) "=") + pp (str_split (list_get lines 1) "=") + cur (str_split (list_get cp 1) ".") + pro (str_split (list_get pp 1) ".") + c0 (to_int (list_get cur 0)) c1 (to_int (list_get cur 1)) c2 (to_int (list_get cur 2)) + p0 (to_int (list_get pro 0)) p1 (to_int (list_get pro 1)) p2 (to_int (list_get pro 2))) + (if (and (= (list_len failed) 0) (or (> p0 c0) (and (= p0 c0) (or (> p1 c1) (and (= p1 c1) (> p2 c2)))))) + (write_file "out/release.json" (encode_json (dict ("batch" "14") ("selected" selected)))) + (write_file "out/approval_request.json" "{\"reason\":\"blocked\",\"summary\":{}}"))))))) diff --git a/experiments/token-efficiency-v0/solutions/howl/t15.howl b/experiments/token-efficiency-v0/solutions/howl/t15.howl index dec6df80..7e7c3ff9 100644 --- a/experiments/token-efficiency-v0/solutions/howl/t15.howl +++ b/experiments/token-efficiency-v0/solutions/howl/t15.howl @@ -1,26 +1,19 @@ -(cli_app - (let (raw (bytes_to_string (read_file "evidence/checks.json"))) - (let (checks (parse_json Checks raw)) - (let (version (bytes_to_string (read_file "evidence/version.kv"))) - (let (note (bytes_to_string (read_file "evidence/note.txt"))) - (let (selected (list)) - (let (failed (list)) - (do - (for c checks (if (= (map_get c "name") "unit") (append selected c))) - (for c checks (if (!= (map_get c "status") "PASS") (append failed c))) - (let (record (dict ("batch" "15") ("selected" selected))) - (let (lines (str_split version "\n")) - (let (current_pair (str_split (list_get lines 0) "=")) - (let (proposed_pair (str_split (list_get lines 1) "=")) - (let (current (str_split (list_get current_pair 1) ".")) - (let (proposed (str_split (list_get proposed_pair 1) ".")) - (let (newer (or (> (to_int (list_get proposed 0)) (to_int (list_get current 0))) - (and (= (to_int (list_get proposed 0)) (to_int (list_get current 0))) - (or (> (to_int (list_get proposed 1)) (to_int (list_get current 1))) - (and (= (to_int (list_get proposed 1)) (to_int (list_get current 1))) - (> (to_int (list_get proposed 2)) (to_int (list_get current 2)))))))) - (if (and (= (list_len failed) 0) newer) - (write_file "out/release.json" (encode_json record)) - (write_file "out/approval_request.json" "{\"reason\":\"blocked\",\"summary\":{}}")) - ))))))) - )))))))) +(do + (let (raw (read_text "evidence/checks.json")) + (let (checks (parse_json Checks raw) + lines (lines (read_file "evidence/version.kv")) + note (read_text "evidence/note.txt") + selected (list) + failed (list)) + (do + (for c checks (when (= (map_get c "name") "unit") (append selected c))) + (for c checks (when (!= (map_get c "status") "PASS") (append failed c))) + (let (cp (str_split (list_get lines 0) "=") + pp (str_split (list_get lines 1) "=") + cur (str_split (list_get cp 1) ".") + pro (str_split (list_get pp 1) ".") + c0 (to_int (list_get cur 0)) c1 (to_int (list_get cur 1)) c2 (to_int (list_get cur 2)) + p0 (to_int (list_get pro 0)) p1 (to_int (list_get pro 1)) p2 (to_int (list_get pro 2))) + (if (and (= (list_len failed) 0) (or (> p0 c0) (and (= p0 c0) (or (> p1 c1) (and (= p1 c1) (> p2 c2)))))) + (write_file "out/release.json" (encode_json (dict ("batch" "15") ("selected" selected)))) + (write_file "out/approval_request.json" "{\"reason\":\"blocked\",\"summary\":{}}"))))))) diff --git a/experiments/token-efficiency-v0/solutions/howl/t16.howl b/experiments/token-efficiency-v0/solutions/howl/t16.howl index a7eeb123..ac56e5db 100644 --- a/experiments/token-efficiency-v0/solutions/howl/t16.howl +++ b/experiments/token-efficiency-v0/solutions/howl/t16.howl @@ -1,26 +1,19 @@ -(cli_app - (let (raw (bytes_to_string (read_file "evidence/checks.json"))) - (let (checks (parse_json Checks raw)) - (let (version (bytes_to_string (read_file "evidence/version.kv"))) - (let (note (bytes_to_string (read_file "evidence/note.txt"))) - (let (selected (list)) - (let (failed (list)) - (do - (for c checks (if (= (map_get c "name") "unit") (append selected c))) - (for c checks (if (!= (map_get c "status") "PASS") (append failed c))) - (let (record (dict ("batch" "16") ("selected" selected))) - (let (lines (str_split version "\n")) - (let (current_pair (str_split (list_get lines 0) "=")) - (let (proposed_pair (str_split (list_get lines 1) "=")) - (let (current (str_split (list_get current_pair 1) ".")) - (let (proposed (str_split (list_get proposed_pair 1) ".")) - (let (newer (or (> (to_int (list_get proposed 0)) (to_int (list_get current 0))) - (and (= (to_int (list_get proposed 0)) (to_int (list_get current 0))) - (or (> (to_int (list_get proposed 1)) (to_int (list_get current 1))) - (and (= (to_int (list_get proposed 1)) (to_int (list_get current 1))) - (> (to_int (list_get proposed 2)) (to_int (list_get current 2)))))))) - (if (and (= (list_len failed) 0) newer) - (write_file "out/release.json" (encode_json record)) - (write_file "out/approval_request.json" "{\"reason\":\"blocked\",\"summary\":{}}")) - ))))))) - )))))))) +(do + (let (raw (read_text "evidence/checks.json")) + (let (checks (parse_json Checks raw) + lines (lines (read_file "evidence/version.kv")) + note (read_text "evidence/note.txt") + selected (list) + failed (list)) + (do + (for c checks (when (= (map_get c "name") "unit") (append selected c))) + (for c checks (when (!= (map_get c "status") "PASS") (append failed c))) + (let (cp (str_split (list_get lines 0) "=") + pp (str_split (list_get lines 1) "=") + cur (str_split (list_get cp 1) ".") + pro (str_split (list_get pp 1) ".") + c0 (to_int (list_get cur 0)) c1 (to_int (list_get cur 1)) c2 (to_int (list_get cur 2)) + p0 (to_int (list_get pro 0)) p1 (to_int (list_get pro 1)) p2 (to_int (list_get pro 2))) + (if (and (= (list_len failed) 0) (or (> p0 c0) (and (= p0 c0) (or (> p1 c1) (and (= p1 c1) (> p2 c2)))))) + (write_file "out/release.json" (encode_json (dict ("batch" "16") ("selected" selected)))) + (write_file "out/approval_request.json" "{\"reason\":\"blocked\",\"summary\":{}}"))))))) diff --git a/experiments/token-efficiency-v0/solutions/howl/t17.howl b/experiments/token-efficiency-v0/solutions/howl/t17.howl index 119284d9..d7147d47 100644 --- a/experiments/token-efficiency-v0/solutions/howl/t17.howl +++ b/experiments/token-efficiency-v0/solutions/howl/t17.howl @@ -1,26 +1,19 @@ -(cli_app - (let (raw (bytes_to_string (read_file "evidence/checks.json"))) - (let (checks (parse_json Checks raw)) - (let (version (bytes_to_string (read_file "evidence/version.kv"))) - (let (note (bytes_to_string (read_file "evidence/note.txt"))) - (let (selected (list)) - (let (failed (list)) - (do - (for c checks (if (= (map_get c "name") "unit") (append selected c))) - (for c checks (if (!= (map_get c "status") "PASS") (append failed c))) - (let (record (dict ("batch" "17") ("selected" selected))) - (let (lines (str_split version "\n")) - (let (current_pair (str_split (list_get lines 0) "=")) - (let (proposed_pair (str_split (list_get lines 1) "=")) - (let (current (str_split (list_get current_pair 1) ".")) - (let (proposed (str_split (list_get proposed_pair 1) ".")) - (let (newer (or (> (to_int (list_get proposed 0)) (to_int (list_get current 0))) - (and (= (to_int (list_get proposed 0)) (to_int (list_get current 0))) - (or (> (to_int (list_get proposed 1)) (to_int (list_get current 1))) - (and (= (to_int (list_get proposed 1)) (to_int (list_get current 1))) - (> (to_int (list_get proposed 2)) (to_int (list_get current 2)))))))) - (if (and (= (list_len failed) 0) newer) - (write_file "out/release.json" (encode_json record)) - (write_file "out/approval_request.json" "{\"reason\":\"blocked\",\"summary\":{}}")) - ))))))) - )))))))) +(do + (let (raw (read_text "evidence/checks.json")) + (let (checks (parse_json Checks raw) + lines (lines (read_file "evidence/version.kv")) + note (read_text "evidence/note.txt") + selected (list) + failed (list)) + (do + (for c checks (when (= (map_get c "name") "unit") (append selected c))) + (for c checks (when (!= (map_get c "status") "PASS") (append failed c))) + (let (cp (str_split (list_get lines 0) "=") + pp (str_split (list_get lines 1) "=") + cur (str_split (list_get cp 1) ".") + pro (str_split (list_get pp 1) ".") + c0 (to_int (list_get cur 0)) c1 (to_int (list_get cur 1)) c2 (to_int (list_get cur 2)) + p0 (to_int (list_get pro 0)) p1 (to_int (list_get pro 1)) p2 (to_int (list_get pro 2))) + (if (and (= (list_len failed) 0) (or (> p0 c0) (and (= p0 c0) (or (> p1 c1) (and (= p1 c1) (> p2 c2)))))) + (write_file "out/release.json" (encode_json (dict ("batch" "17") ("selected" selected)))) + (write_file "out/approval_request.json" "{\"reason\":\"blocked\",\"summary\":{}}"))))))) diff --git a/experiments/token-efficiency-v0/solutions/howl/t18.howl b/experiments/token-efficiency-v0/solutions/howl/t18.howl index 5801267e..d9bf0193 100644 --- a/experiments/token-efficiency-v0/solutions/howl/t18.howl +++ b/experiments/token-efficiency-v0/solutions/howl/t18.howl @@ -1,26 +1,19 @@ -(cli_app - (let (raw (bytes_to_string (read_file "evidence/checks.json"))) - (let (checks (parse_json Checks raw)) - (let (version (bytes_to_string (read_file "evidence/version.kv"))) - (let (note (bytes_to_string (read_file "evidence/note.txt"))) - (let (selected (list)) - (let (failed (list)) - (do - (for c checks (if (= (map_get c "name") "unit") (append selected c))) - (for c checks (if (!= (map_get c "status") "PASS") (append failed c))) - (let (record (dict ("batch" "18") ("selected" selected))) - (let (lines (str_split version "\n")) - (let (current_pair (str_split (list_get lines 0) "=")) - (let (proposed_pair (str_split (list_get lines 1) "=")) - (let (current (str_split (list_get current_pair 1) ".")) - (let (proposed (str_split (list_get proposed_pair 1) ".")) - (let (newer (or (> (to_int (list_get proposed 0)) (to_int (list_get current 0))) - (and (= (to_int (list_get proposed 0)) (to_int (list_get current 0))) - (or (> (to_int (list_get proposed 1)) (to_int (list_get current 1))) - (and (= (to_int (list_get proposed 1)) (to_int (list_get current 1))) - (> (to_int (list_get proposed 2)) (to_int (list_get current 2)))))))) - (if (and (= (list_len failed) 0) newer) - (write_file "out/release.json" (encode_json record)) - (write_file "out/approval_request.json" "{\"reason\":\"blocked\",\"summary\":{}}")) - ))))))) - )))))))) +(do + (let (raw (read_text "evidence/checks.json")) + (let (checks (parse_json Checks raw) + lines (lines (read_file "evidence/version.kv")) + note (read_text "evidence/note.txt") + selected (list) + failed (list)) + (do + (for c checks (when (= (map_get c "name") "unit") (append selected c))) + (for c checks (when (!= (map_get c "status") "PASS") (append failed c))) + (let (cp (str_split (list_get lines 0) "=") + pp (str_split (list_get lines 1) "=") + cur (str_split (list_get cp 1) ".") + pro (str_split (list_get pp 1) ".") + c0 (to_int (list_get cur 0)) c1 (to_int (list_get cur 1)) c2 (to_int (list_get cur 2)) + p0 (to_int (list_get pro 0)) p1 (to_int (list_get pro 1)) p2 (to_int (list_get pro 2))) + (if (and (= (list_len failed) 0) (or (> p0 c0) (and (= p0 c0) (or (> p1 c1) (and (= p1 c1) (> p2 c2)))))) + (write_file "out/release.json" (encode_json (dict ("batch" "18") ("selected" selected)))) + (write_file "out/approval_request.json" "{\"reason\":\"blocked\",\"summary\":{}}"))))))) diff --git a/experiments/token-efficiency-v0/solutions/howl/t19.howl b/experiments/token-efficiency-v0/solutions/howl/t19.howl index ab0daeb2..17fbfe99 100644 --- a/experiments/token-efficiency-v0/solutions/howl/t19.howl +++ b/experiments/token-efficiency-v0/solutions/howl/t19.howl @@ -1,26 +1,19 @@ -(cli_app - (let (raw (bytes_to_string (read_file "evidence/checks.json"))) - (let (checks (parse_json Checks raw)) - (let (version (bytes_to_string (read_file "evidence/version.kv"))) - (let (note (bytes_to_string (read_file "evidence/note.txt"))) - (let (selected (list)) - (let (failed (list)) - (do - (for c checks (if (= (map_get c "name") "unit") (append selected c))) - (for c checks (if (!= (map_get c "status") "PASS") (append failed c))) - (let (record (dict ("batch" "19") ("selected" selected))) - (let (lines (str_split version "\n")) - (let (current_pair (str_split (list_get lines 0) "=")) - (let (proposed_pair (str_split (list_get lines 1) "=")) - (let (current (str_split (list_get current_pair 1) ".")) - (let (proposed (str_split (list_get proposed_pair 1) ".")) - (let (newer (or (> (to_int (list_get proposed 0)) (to_int (list_get current 0))) - (and (= (to_int (list_get proposed 0)) (to_int (list_get current 0))) - (or (> (to_int (list_get proposed 1)) (to_int (list_get current 1))) - (and (= (to_int (list_get proposed 1)) (to_int (list_get current 1))) - (> (to_int (list_get proposed 2)) (to_int (list_get current 2)))))))) - (if (and (= (list_len failed) 0) newer) - (write_file "out/release.json" (encode_json record)) - (write_file "out/approval_request.json" "{\"reason\":\"blocked\",\"summary\":{}}")) - ))))))) - )))))))) +(do + (let (raw (read_text "evidence/checks.json")) + (let (checks (parse_json Checks raw) + lines (lines (read_file "evidence/version.kv")) + note (read_text "evidence/note.txt") + selected (list) + failed (list)) + (do + (for c checks (when (= (map_get c "name") "unit") (append selected c))) + (for c checks (when (!= (map_get c "status") "PASS") (append failed c))) + (let (cp (str_split (list_get lines 0) "=") + pp (str_split (list_get lines 1) "=") + cur (str_split (list_get cp 1) ".") + pro (str_split (list_get pp 1) ".") + c0 (to_int (list_get cur 0)) c1 (to_int (list_get cur 1)) c2 (to_int (list_get cur 2)) + p0 (to_int (list_get pro 0)) p1 (to_int (list_get pro 1)) p2 (to_int (list_get pro 2))) + (if (and (= (list_len failed) 0) (or (> p0 c0) (and (= p0 c0) (or (> p1 c1) (and (= p1 c1) (> p2 c2)))))) + (write_file "out/release.json" (encode_json (dict ("batch" "19") ("selected" selected)))) + (write_file "out/approval_request.json" "{\"reason\":\"blocked\",\"summary\":{}}"))))))) diff --git a/experiments/token-efficiency-v0/solutions/howl/t20.howl b/experiments/token-efficiency-v0/solutions/howl/t20.howl index 0a873313..4bf3f5a7 100644 --- a/experiments/token-efficiency-v0/solutions/howl/t20.howl +++ b/experiments/token-efficiency-v0/solutions/howl/t20.howl @@ -1,26 +1,19 @@ -(cli_app - (let (raw (bytes_to_string (read_file "evidence/checks.json"))) - (let (checks (parse_json Checks raw)) - (let (version (bytes_to_string (read_file "evidence/version.kv"))) - (let (note (bytes_to_string (read_file "evidence/note.txt"))) - (let (selected (list)) - (let (failed (list)) - (do - (for c checks (if (= (map_get c "name") "unit") (append selected c))) - (for c checks (if (!= (map_get c "status") "PASS") (append failed c))) - (let (record (dict ("batch" "20") ("selected" selected))) - (let (lines (str_split version "\n")) - (let (current_pair (str_split (list_get lines 0) "=")) - (let (proposed_pair (str_split (list_get lines 1) "=")) - (let (current (str_split (list_get current_pair 1) ".")) - (let (proposed (str_split (list_get proposed_pair 1) ".")) - (let (newer (or (> (to_int (list_get proposed 0)) (to_int (list_get current 0))) - (and (= (to_int (list_get proposed 0)) (to_int (list_get current 0))) - (or (> (to_int (list_get proposed 1)) (to_int (list_get current 1))) - (and (= (to_int (list_get proposed 1)) (to_int (list_get current 1))) - (> (to_int (list_get proposed 2)) (to_int (list_get current 2)))))))) - (if (and (= (list_len failed) 0) newer) - (write_file "out/release.json" (encode_json record)) - (write_file "out/approval_request.json" "{\"reason\":\"blocked\",\"summary\":{}}")) - ))))))) - )))))))) +(do + (let (raw (read_text "evidence/checks.json")) + (let (checks (parse_json Checks raw) + lines (lines (read_file "evidence/version.kv")) + note (read_text "evidence/note.txt") + selected (list) + failed (list)) + (do + (for c checks (when (= (map_get c "name") "unit") (append selected c))) + (for c checks (when (!= (map_get c "status") "PASS") (append failed c))) + (let (cp (str_split (list_get lines 0) "=") + pp (str_split (list_get lines 1) "=") + cur (str_split (list_get cp 1) ".") + pro (str_split (list_get pp 1) ".") + c0 (to_int (list_get cur 0)) c1 (to_int (list_get cur 1)) c2 (to_int (list_get cur 2)) + p0 (to_int (list_get pro 0)) p1 (to_int (list_get pro 1)) p2 (to_int (list_get pro 2))) + (if (and (= (list_len failed) 0) (or (> p0 c0) (and (= p0 c0) (or (> p1 c1) (and (= p1 c1) (> p2 c2)))))) + (write_file "out/release.json" (encode_json (dict ("batch" "20") ("selected" selected)))) + (write_file "out/approval_request.json" "{\"reason\":\"blocked\",\"summary\":{}}"))))))) diff --git a/experiments/token-efficiency-v0/solutions/howl/t21.howl b/experiments/token-efficiency-v0/solutions/howl/t21.howl index 162313d9..400fa2df 100644 --- a/experiments/token-efficiency-v0/solutions/howl/t21.howl +++ b/experiments/token-efficiency-v0/solutions/howl/t21.howl @@ -1,13 +1,9 @@ -(cli_app - (let (raw (bytes_to_string (read_file "evidence/checks.json"))) - (let (checks (parse_json Checks raw)) - (let (version (bytes_to_string (read_file "evidence/version.kv"))) - (let (note (bytes_to_string (read_file "evidence/note.txt"))) - (let (selected (list)) - (do - (for c checks (if (= (map_get c "name") "unit") (append selected c))) - (let (record (dict ("batch" "21") ("selected" selected))) - (do - (write_file "out/approval_request.json" (encode_json (dict ("reason" "release review") ("summary" record)))) - )) - ))))))) +(do + (let (raw (read_text "evidence/checks.json")) + (let (checks (parse_json Checks raw) + version (read_text "evidence/version.kv") + note (read_text "evidence/note.txt") + selected (list)) + (do + (for c checks (when (= (map_get c "name") "unit") (append selected c))) + (write_file "out/approval_request.json" (encode_json (dict ("reason" "release review") ("summary" (dict ("batch" "21") ("selected" selected)))))))))) diff --git a/experiments/token-efficiency-v0/solutions/howl/t22.howl b/experiments/token-efficiency-v0/solutions/howl/t22.howl index ed6150d7..9285a7ce 100644 --- a/experiments/token-efficiency-v0/solutions/howl/t22.howl +++ b/experiments/token-efficiency-v0/solutions/howl/t22.howl @@ -1,13 +1,9 @@ -(cli_app - (let (raw (bytes_to_string (read_file "evidence/checks.json"))) - (let (checks (parse_json Checks raw)) - (let (version (bytes_to_string (read_file "evidence/version.kv"))) - (let (note (bytes_to_string (read_file "evidence/note.txt"))) - (let (selected (list)) - (do - (for c checks (if (= (map_get c "name") "unit") (append selected c))) - (let (record (dict ("batch" "22") ("selected" selected))) - (do - (write_file "out/approval_request.json" (encode_json (dict ("reason" "release review") ("summary" record)))) - )) - ))))))) +(do + (let (raw (read_text "evidence/checks.json")) + (let (checks (parse_json Checks raw) + version (read_text "evidence/version.kv") + note (read_text "evidence/note.txt") + selected (list)) + (do + (for c checks (when (= (map_get c "name") "unit") (append selected c))) + (write_file "out/approval_request.json" (encode_json (dict ("reason" "release review") ("summary" (dict ("batch" "22") ("selected" selected)))))))))) diff --git a/experiments/token-efficiency-v0/solutions/howl/t23.howl b/experiments/token-efficiency-v0/solutions/howl/t23.howl index 0bd5aee5..eca2ae34 100644 --- a/experiments/token-efficiency-v0/solutions/howl/t23.howl +++ b/experiments/token-efficiency-v0/solutions/howl/t23.howl @@ -1,13 +1,9 @@ -(cli_app - (let (raw (bytes_to_string (read_file "evidence/checks.json"))) - (let (checks (parse_json Checks raw)) - (let (version (bytes_to_string (read_file "evidence/version.kv"))) - (let (note (bytes_to_string (read_file "evidence/note.txt"))) - (let (selected (list)) - (do - (for c checks (if (= (map_get c "name") "unit") (append selected c))) - (let (record (dict ("batch" "23") ("selected" selected))) - (do - (write_file "out/approval_request.json" (encode_json (dict ("reason" "release review") ("summary" record)))) - )) - ))))))) +(do + (let (raw (read_text "evidence/checks.json")) + (let (checks (parse_json Checks raw) + version (read_text "evidence/version.kv") + note (read_text "evidence/note.txt") + selected (list)) + (do + (for c checks (when (= (map_get c "name") "unit") (append selected c))) + (write_file "out/approval_request.json" (encode_json (dict ("reason" "release review") ("summary" (dict ("batch" "23") ("selected" selected)))))))))) diff --git a/experiments/token-efficiency-v0/solutions/howl/t24.howl b/experiments/token-efficiency-v0/solutions/howl/t24.howl index cd787d6e..eb132b39 100644 --- a/experiments/token-efficiency-v0/solutions/howl/t24.howl +++ b/experiments/token-efficiency-v0/solutions/howl/t24.howl @@ -1,13 +1,9 @@ -(cli_app - (let (raw (bytes_to_string (read_file "evidence/checks.json"))) - (let (checks (parse_json Checks raw)) - (let (version (bytes_to_string (read_file "evidence/version.kv"))) - (let (note (bytes_to_string (read_file "evidence/note.txt"))) - (let (selected (list)) - (do - (for c checks (if (= (map_get c "name") "unit") (append selected c))) - (let (record (dict ("batch" "24") ("selected" selected))) - (do - (write_file "out/approval_request.json" (encode_json (dict ("reason" "release review") ("summary" record)))) - )) - ))))))) +(do + (let (raw (read_text "evidence/checks.json")) + (let (checks (parse_json Checks raw) + version (read_text "evidence/version.kv") + note (read_text "evidence/note.txt") + selected (list)) + (do + (for c checks (when (= (map_get c "name") "unit") (append selected c))) + (write_file "out/approval_request.json" (encode_json (dict ("reason" "release review") ("summary" (dict ("batch" "24") ("selected" selected)))))))))) diff --git a/experiments/token-efficiency-v0/solutions/howl/t25.howl b/experiments/token-efficiency-v0/solutions/howl/t25.howl index 63a5b986..b8a987f2 100644 --- a/experiments/token-efficiency-v0/solutions/howl/t25.howl +++ b/experiments/token-efficiency-v0/solutions/howl/t25.howl @@ -1,13 +1,9 @@ -(cli_app - (let (raw (bytes_to_string (read_file "evidence/checks.json"))) - (let (checks (parse_json Checks raw)) - (let (version (bytes_to_string (read_file "evidence/version.kv"))) - (let (note (bytes_to_string (read_file "evidence/note.txt"))) - (let (selected (list)) - (do - (for c checks (if (= (map_get c "name") "unit") (append selected c))) - (let (record (dict ("batch" "25") ("selected" selected))) - (do - (write_file "out/approval_request.json" (encode_json (dict ("reason" "release review") ("summary" record)))) - )) - ))))))) +(do + (let (raw (read_text "evidence/checks.json")) + (let (checks (parse_json Checks raw) + version (read_text "evidence/version.kv") + note (read_text "evidence/note.txt") + selected (list)) + (do + (for c checks (when (= (map_get c "name") "unit") (append selected c))) + (write_file "out/approval_request.json" (encode_json (dict ("reason" "release review") ("summary" (dict ("batch" "25") ("selected" selected)))))))))) diff --git a/experiments/token-efficiency-v0/solutions/howl/t26.howl b/experiments/token-efficiency-v0/solutions/howl/t26.howl index 1fd9dafb..09a9c5f5 100644 --- a/experiments/token-efficiency-v0/solutions/howl/t26.howl +++ b/experiments/token-efficiency-v0/solutions/howl/t26.howl @@ -1,13 +1,9 @@ -(cli_app - (let (raw (bytes_to_string (read_file "evidence/checks.json"))) - (let (checks (parse_json Checks raw)) - (let (version (bytes_to_string (read_file "evidence/version.kv"))) - (let (note (bytes_to_string (read_file "evidence/note.txt"))) - (let (selected (list)) - (do - (for c checks (if (= (map_get c "name") "unit") (append selected c))) - (let (record (dict ("batch" "26") ("selected" selected))) - (do - (write_file "out/approval_request.json" (encode_json (dict ("reason" "release review") ("summary" record)))) - )) - ))))))) +(do + (let (raw (read_text "evidence/checks.json")) + (let (checks (parse_json Checks raw) + version (read_text "evidence/version.kv") + note (read_text "evidence/note.txt") + selected (list)) + (do + (for c checks (when (= (map_get c "name") "unit") (append selected c))) + (write_file "out/approval_request.json" (encode_json (dict ("reason" "release review") ("summary" (dict ("batch" "26") ("selected" selected)))))))))) diff --git a/experiments/token-efficiency-v0/solutions/howl/t27.howl b/experiments/token-efficiency-v0/solutions/howl/t27.howl index 0af4c915..451bc8bd 100644 --- a/experiments/token-efficiency-v0/solutions/howl/t27.howl +++ b/experiments/token-efficiency-v0/solutions/howl/t27.howl @@ -1,13 +1,9 @@ -(cli_app - (let (raw (bytes_to_string (read_file "evidence/checks.json"))) - (let (checks (parse_json Checks raw)) - (let (version (bytes_to_string (read_file "evidence/version.kv"))) - (let (note (bytes_to_string (read_file "evidence/note.txt"))) - (let (selected (list)) - (do - (for c checks (if (= (map_get c "name") "unit") (append selected c))) - (let (record (dict ("batch" "27") ("selected" selected))) - (do - (write_file "out/approval_request.json" (encode_json (dict ("reason" "release review") ("summary" record)))) - )) - ))))))) +(do + (let (raw (read_text "evidence/checks.json")) + (let (checks (parse_json Checks raw) + version (read_text "evidence/version.kv") + note (read_text "evidence/note.txt") + selected (list)) + (do + (for c checks (when (= (map_get c "name") "unit") (append selected c))) + (write_file "out/approval_request.json" (encode_json (dict ("reason" "release review") ("summary" (dict ("batch" "27") ("selected" selected)))))))))) diff --git a/experiments/token-efficiency-v0/solutions/howl/t28.howl b/experiments/token-efficiency-v0/solutions/howl/t28.howl index c8eb41d6..1a0c338e 100644 --- a/experiments/token-efficiency-v0/solutions/howl/t28.howl +++ b/experiments/token-efficiency-v0/solutions/howl/t28.howl @@ -1,13 +1,9 @@ -(cli_app - (let (raw (bytes_to_string (read_file "evidence/checks.json"))) - (let (checks (parse_json Checks raw)) - (let (version (bytes_to_string (read_file "evidence/version.kv"))) - (let (note (bytes_to_string (read_file "evidence/note.txt"))) - (let (selected (list)) - (do - (for c checks (if (= (map_get c "name") "unit") (append selected c))) - (let (record (dict ("batch" "28") ("selected" selected))) - (do - (write_file "out/approval_request.json" (encode_json (dict ("reason" "release review") ("summary" record)))) - )) - ))))))) +(do + (let (raw (read_text "evidence/checks.json")) + (let (checks (parse_json Checks raw) + version (read_text "evidence/version.kv") + note (read_text "evidence/note.txt") + selected (list)) + (do + (for c checks (when (= (map_get c "name") "unit") (append selected c))) + (write_file "out/approval_request.json" (encode_json (dict ("reason" "release review") ("summary" (dict ("batch" "28") ("selected" selected)))))))))) diff --git a/experiments/token-efficiency-v0/solutions/howl/t29.howl b/experiments/token-efficiency-v0/solutions/howl/t29.howl index a8986ef4..ba622e67 100644 --- a/experiments/token-efficiency-v0/solutions/howl/t29.howl +++ b/experiments/token-efficiency-v0/solutions/howl/t29.howl @@ -1,13 +1,9 @@ -(cli_app - (let (raw (bytes_to_string (read_file "evidence/checks.json"))) - (let (checks (parse_json Checks raw)) - (let (version (bytes_to_string (read_file "evidence/version.kv"))) - (let (note (bytes_to_string (read_file "evidence/note.txt"))) - (let (selected (list)) - (do - (for c checks (if (= (map_get c "name") "unit") (append selected c))) - (let (record (dict ("batch" "29") ("selected" selected))) - (do - (write_file "out/approval_request.json" (encode_json (dict ("reason" "release review") ("summary" record)))) - )) - ))))))) +(do + (let (raw (read_text "evidence/checks.json")) + (let (checks (parse_json Checks raw) + version (read_text "evidence/version.kv") + note (read_text "evidence/note.txt") + selected (list)) + (do + (for c checks (when (= (map_get c "name") "unit") (append selected c))) + (write_file "out/approval_request.json" (encode_json (dict ("reason" "release review") ("summary" (dict ("batch" "29") ("selected" selected)))))))))) diff --git a/experiments/token-efficiency-v0/solutions/howl/t30.howl b/experiments/token-efficiency-v0/solutions/howl/t30.howl index 6c57bba2..52e0f023 100644 --- a/experiments/token-efficiency-v0/solutions/howl/t30.howl +++ b/experiments/token-efficiency-v0/solutions/howl/t30.howl @@ -1,13 +1,9 @@ -(cli_app - (let (raw (bytes_to_string (read_file "evidence/checks.json"))) - (let (checks (parse_json Checks raw)) - (let (version (bytes_to_string (read_file "evidence/version.kv"))) - (let (note (bytes_to_string (read_file "evidence/note.txt"))) - (let (selected (list)) - (do - (for c checks (if (= (map_get c "name") "unit") (append selected c))) - (let (record (dict ("batch" "30") ("selected" selected))) - (do - (write_file "out/approval_request.json" (encode_json (dict ("reason" "release review") ("summary" record)))) - )) - ))))))) +(do + (let (raw (read_text "evidence/checks.json")) + (let (checks (parse_json Checks raw) + version (read_text "evidence/version.kv") + note (read_text "evidence/note.txt") + selected (list)) + (do + (for c checks (when (= (map_get c "name") "unit") (append selected c))) + (write_file "out/approval_request.json" (encode_json (dict ("reason" "release review") ("summary" (dict ("batch" "30") ("selected" selected)))))))))) diff --git a/experiments/token-efficiency-v0/solutions_test.go b/experiments/token-efficiency-v0/solutions_test.go index 3dc4db80..d2e2f801 100644 --- a/experiments/token-efficiency-v0/solutions_test.go +++ b/experiments/token-efficiency-v0/solutions_test.go @@ -22,17 +22,16 @@ func TestSolutionCoverage(t *testing.T) { } } } - for _, id := range []string{"t01", "t02", "t03", "a01", "a02", "a03"} { - got, err := os.ReadFile(filepath.Join("solutions/howl", id+".howl")) - if err != nil { - t.Fatal(err) - } - want, err := os.ReadFile(filepath.Join("../falsifiable-v0/reference/arm_a", id+".howl")) + // HowlFrame references were re-authored in current shorthand on 2026-10-12 + // (rerun after #128-#130); they intentionally no longer copy reference/arm_a + // verbatim. Guard against regressing to the expanded pre-shorthand forms. + for _, task := range m.All() { + data, err := os.ReadFile(filepath.Join("solutions/howl", task.ID+".howl")) if err != nil { t.Fatal(err) } - if !bytes.Equal(got, want) { - t.Errorf("existing reference changed: %s", id) + if bytes.Contains(data, []byte("bytes_to_string")) { + t.Errorf("%s uses expanded bytes_to_string; use read_text/lines shorthand", task.ID) } } }