Skip to content

gunbc run: repeatable --function, and a bare --claim-run runs every test fn of the entry in one process - #11594

Merged
briansrls merged 2 commits into
mainfrom
tooling/run-many-claims
Sep 18, 2026
Merged

briansrls merged 2 commits into
mainfrom
tooling/run-many-claims

Conversation

@gunbai-bot

@gunbai-bot gunbai-bot Bot commented Sep 18, 2026

Copy link
Copy Markdown
Contributor

Summary

Local witness diligence cost one full corpus load (~4 min, ~9 GB) per claim, because gunbc run --claim-run took exactly one --function. This makes the run batch over one load:

  • gunbc.cli_dispatch_surface: --function is CliRepeated; the generated dispatch (gunbc_cli_dispatch_generated.rs) and the surface mirror are regenerated — --required-regen reports first_generation_equal=true with the new seed, so the hand-aligned bytes are the emitter's.
  • main.rs run_verb: resolves the entry once, then loops the named functions over one InterpContext. Under --claim-run every function runs even after a red (a file reports all its reds); exit is nonzero if any failed. A non-claim multi-function run stops at the first failure (later functions may depend on earlier effects). PASS lines keep stdout; other messages keep stderr.
  • --claim-run with no --function enumerates the entry module's test fns from the resolved graph's declaration markers (DeclarationMarker::TestMarked, v1 parser carries the test marker on the declaration instead of dropping it #11478) — no re-parse, no second load.
  • gunbc.cli_invoke gunbc_run_all_claims_invocation_words is the modeled argv; gunbc.contributor_onboarding_path gains a run-one-witness step, projected into docs/onboarding.md via the docs regen.

Measured

gunbc run … --entry dag/test/claim/spark/pair_serving_authority_witness_test.dag --claim-run — 9 claims, 251 s wall, i.e. the cost of one claim before (~37 min → ~4 min for that file). Two named functions: both PASS. A bad name among good ones: both PASS lines printed, the refusal reported, exit 1.

Test plan

  • Built locally (cargo build --release -p v1-compiler --bin gunbc --bin claim_executor), fmt clean.
  • Ran the three shapes above against real witnesses; regen fixed point confirmed.
  • CI: build lane's generated-artifact phase adjudicates the regenerated dispatch/mirror; docs projection adjudicated by docs-projections.

🤖 Generated with Claude Code

Brian Searls and others added 2 commits September 18, 2026 08:05
… every test fn of the entry in one process

One load of the entry's closure is where a run's wall clock goes; a witness file's
claims used to cost that load each. The modeled surface (gunbc.cli_dispatch_surface)
makes --function repeatable; the host loops the named functions over one evaluation
context, runs every claim even after a red so a file reports all of its reds, and
exits nonzero if any failed. With no --function a --claim-run enumerates the entry
module's test fns from the resolved graph's declaration markers (no re-parse, no
second load). Measured: a nine-claim witness in 251 s, the cost of one claim before.

gunbc.cli_invoke gunbc_run_all_claims_invocation_words is the modeled argv, and
the onboarding path gains a run-one-witness step projected into docs/onboarding.md.
The generated dispatch and the surface mirror are regenerated (fixed point).

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
…ll-claims route is its empty case

review 67603: the all-claims argv re-spelled the run/source-roots/--entry/--claim-run
prefix beside the existing builder. gunbc_run_invocation_words_with_functions now
takes the function population; the single-function and all-claims routes call it.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@briansrls
briansrls added this pull request to the merge queue Sep 18, 2026
Merged via the queue into main with commit 2405a62 Sep 18, 2026
4 checks passed
@briansrls
briansrls deleted the tooling/run-many-claims branch September 18, 2026 15:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant