Debrief b1046

  1. What cost the most. Row a had a second cause the brief did not name. The search for the lambda’s first use (check_core_stmt_handed_to) does not look inside f-string holes. I only found this after the first build, when row b ran and row a still failed. The clue was there before: row a’s lowering showed an untyped |x|, meaning the lambda was never typed by its use. Reading nikaia lower a.nika before the first edit would have saved one build cycle. After that, the longest single cost was the tests/compiler --both-settings run. Its 3 failures then cost several turns to sort out.

  2. What I had to look up. I had to find how other walks reach f-string holes (host.literal_holes, check_visit_has_holes, the pattern in a_claim_looks_at) and that check_visit_stmt leaves holes out. The brief traced the emit side well but did not trace why the use was or was not found. I also had to work out whether those 3 failures were mine. Nothing listed them as already red. Note that I couldn’t confirm they fail without my change, because the old binary was gone.

  3. Checks. Before any edit I ran rows a–f on the old binary. Row f, a lambda body that pauses, was wasted: a single file outside a project cannot use time. Then two build cycles, the brief’s rows, the new test, the guard set, clippy, cargo fmt, the pre-push check, a no-op rebuild to confirm the lower-std fixpoint, and tests/compiler --both-settings. where.nika turned out wasted: it lists no tests for these functions. I did not run the new test file itself on the unfixed compiler, only its rows.

  4. The one change that would save most. Add to builder.md: before the first edit, nikaia lower every failing row and compare the lowerings. Rows that lower differently have separate causes. The brief should also say whether tests/compiler --both-settings is currently green, or which of its tests are known to fail. Better still, keep a copy of the old binary, so that “is this failure mine?” can be checked by running it.

This site is open source. Improve this page.