- What cost the most: the
let mut rust = "…" refusal (NK1125, the local read as String?). It took four probes (two nikaia run programs and two lower-std edits) to show that it happens only in tools/*.nika and that : String is the house spelling. That was about 6 turns, for a defect I could report but not fix. Second came a wasted it rerun: my grep 'test result' also matched the result_source:: test names, so the summary was lost and the 2-minute run had to be repeated.
- What I had to look up:
- How a host trait method that
throws lowers (Result<String, Box<dyn Error>>). I had to grep project_settings, and this decides how the refusal keeps its anyhow type.
- That
Ledger::empty and std_library are not Nikaia; project_members gets the empty ledger from a host method.
- The lowered type
crate::prove::Published, and that Reads has no lifetime parameter (two cargo-check slips).
- The signature of
emit_needs_abort_table (ref Vec[ref String]).
- That a trait method’s
String parameter reads as owned, so it needs ref String. The brief’s ref String was right, and I “corrected” it wrongly after reading builder-facts.
- That
BTreeSet has no .iter(), which builder-facts nearly says.
- Checks run:
lower-std with the old binary (caught every refusal in seconds), cargo check, one build cycle (fixpoint on the first try), the it filters plus the guard set, tests/compiler, clippy, pre-push-check and rs2nika --score. Wasted: the first it run (bad grep) and two of the four literal probes (the user-program ones, which could not reproduce a tools-only issue).
- One change that would have saved the most: a block in builder.md or builder-facts called “host traits”:
throws on a host method lowers to Result<T, Box<dyn Error>>, so keep the anyhow error in a RefCell and hand it back. A body-less trait method’s text parameter is ref String. Write let mut x: String = "…" for a literal you change in place. Use the filter grep -E '^test result:|FAILED|panicked', anchored, because result_source matches the unanchored one. Also useful: the brief could warn that the host design leaves little of the draft (score expected under 60 %), so the stop does not look like the builder’s failure.
This site is open source.
Improve this page.