Skip to content

Seed emitter: tail-call match lowering shares the #8570 Rc arm grouping - #12742

Merged
gunbai-bot[bot] merged 2 commits into
mainfrom
session/valiant-eagle-151
Sep 30, 2026
Merged

gunbai-bot[bot] merged 2 commits into
mainfrom
session/valiant-eagle-151

Conversation

@gunbai-bot

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

Copy link
Copy Markdown
Contributor

Fixes RFM tail_call_match_lowering_skips_rc_arm_grouping (filed on #12667).

v1.compiler.emit_rust emit_rust_tco_match rendered nested variant patterns under an Rc field as match guards, so an exhaustively enumerated tail-recursive match was E0004. The grouping fold is now one function, rc_grouped_match_arm_strs, parameterized by the arm-body emitter; the ordinary and tail-call lowerings both call it — one arm-grouping authority (DESIGN §3, §6b: the emitter's own lowering contract is the earliest unjustified boundary).

v1 admission (gunbc.v1_maintenance_standing v1_seed_standing): serves v2 self-host — the emitter produces the v2 compiler, and the NFR enumeration of v2 sources (target_serialize grammar_tokens_fold_list_targets_into, target_model concrete_syntax_token_node_targets_into) is blocked on it. No new semantics.

Evidence

  • Fixture tco_rc_grouped_match_emitted_rust: TCO match, enumerated nested variant under Rc, no wildcard — red (E0004) on the prior seed, green after.
  • Stage0 regenerated via claim_executor --regen-round-cost until rebuild_packages=0; only installed bytes committed.
  • emit-build: CI on this PR.
  • The two blocked sites are enumerated in a follow-up (zesty-owl-698) once this lands; RFM rung update follows the wall executing.

🤖 Generated with Claude Code

gunbc-ci-auto-heal and others added 2 commits September 30, 2026 02:55
emit_rust_tco_match rendered every nested variant under an Rc field as a
match guard, so an enumerated nested arm set in a tail-recursive fold was
E0004 (gunbc.recurring_failure_mode
tail_call_match_lowering_skips_rc_arm_grouping). The grouping fold is now
one function, rc_grouped_match_arm_strs, parameterized by the arm-body
emitter; the ordinary and tail-call lowerings both call it.

Fixture tco_rc_grouped_match_emitted_rust: red (E0004) on the prior seed,
green (compiles and runs) after. Stage0 regenerated via
claim_executor --regen-round-cost until rebuild_packages=0.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…b receipt (rung stays 1)

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@gunbai-bot

gunbai-bot Bot commented Sep 30, 2026

Copy link
Copy Markdown
Contributor Author

Review 73050: the RFM row now lands in this PR (dag/gunbc/recurring_failure_mode/tail_call_match_lowering_skips_rc_arm_grouping.dag, carried over verbatim from #12667, which is still open). I added one CLIMB receipt and the rc_grouped_match_arm_strs evidence ref. The rung stays at 1: the discriminating control is an integration target, and required CI does not run it (rust_unit_tests_off_the_merge_path). It climbs when that control, or the enumerated grammar_tokens_fold_list_targets_into site, executes on the merge path. #12667 should drop its copy of the row, or take this one when it rebases. The review text was truncated after the hand-Rust item; I'll address that item once the full artifact is readable.
— sent from valiant-eagle-151

@gunbai-bot

gunbai-bot Bot commented Sep 30, 2026

Copy link
Copy Markdown
Contributor Author

Review 73066, advisory hand-Rust receipt item: I'm not adding a seed-growth roster row for tco_rc_grouped_match_emitted_rust.rs. The seed_growth_admission rows (e.g. floor_population_projection_seed_growth) cover growth in production seed modules, meaning an item delta with an owning lane and a dissolution trigger. This file is a stage0 integration test, like its neighbours under src/v1/stage0/tests/ (e.g. bounded_shell_stream_capture_replay.rs), and those carry their receipt in the file header. Its header names the RFM row, and that row, not a separate roster, is where the control's standing and its climb trigger live. If the generated census refuses on this, CI will name the gate and I'll add the row.
— sent from valiant-eagle-151

@gunbai-bot
gunbai-bot Bot added this pull request to the merge queue Sep 30, 2026
Merged via the queue into main with commit 55e78f4 Sep 30, 2026
5 checks passed
@gunbai-bot
gunbai-bot Bot deleted the session/valiant-eagle-151 branch September 30, 2026 09:18
@briansrls
briansrls restored the session/valiant-eagle-151 branch September 30, 2026 10:02
gunbai-bot Bot pushed a commit that referenced this pull request Sep 30, 2026
…#12742 changed the emitter)

Produced by claim_executor --regen-round-cost --regen-affected-scope pinned at 716c3c8 on BuildBuddy.
Pass 2 wrote this one path (patch sha256 prefix 38e4ce8b672565d5) and was then killed (rc=137) in the
20 GiB leaf. The byte-identical third pass did not run before the 1h cap, so this commit's own
generated check is the fixed-point verdict.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
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.

0 participants