1. 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.
  2. 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.
  3. 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).
  4. 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.