Repository navigation
[GOLD-RING] fix(compiler): restore declarations dropped by batch merge #1783 — master does not compile - #1788
Merged
Merged
Conversation
master did not compile: PR #1783 (batch-merge-wave-loops-w420-w459) kept the wave-loop call sites while dropping the declarations they depend on. The stale FROZEN_HASH seal masked it -- build.rs panics before rustc runs, so 27 real compile errors never surfaced. Restored from their originating commits rather than reconstructed: - 6 VerilogCodegen fields + initializers in all 3 constructors - type_is_float, gen_verilog_let_destructuring, tuple_element_widths, is_simple_tuple_type - the two 'let type_array = parse_array_type(..)' bindings, adapted to master's newer multi-dimensional Option<(Vec<usize>, String)> API by folding the dims into a flat element count - base/idx bindings + the W383 local-array flattening block - suite.rs/main.rs: json_out plumbing (WL440), HashSet import, fast -> opts.fast Two silent behaviour losses also fixed: 'let (a, b) = expr' was routed to a StmtAssign+ExprArrayLiteral shape only the Verilog backend reads, so Rust emitted 'vec![s, d] = dm(a, b);'; and parse_type_annotation joined tuple elements with ',' instead of the canonical ', '. master compiles again; 1528/1535 unit tests pass. Seven remain red -- Verilog lowering features lost by the same merge, left for their authors rather than guessed at. FROZEN_HASH resealed (M5). Closes #1787 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Only docs/NOW.md conflicted (both sides prepend entries); all entries kept.
Contributor
|
📓 NotebookLM Notebook linked to this PR
This notebook contains session context, decisions, and artifacts for this work. |
Contributor
PR DashboardGenerated at: 2026-08-06 12:15:33 UTC
Summary
Seal Status
|
gHashTag
added a commit
that referenced
this pull request
Aug 6, 2026
… + master diagnosis specs/ternary/gft_dot8.t27: a spec-first GF-T16 8-term dot product (realistic inference / attention-head tile length), balanced reduction tree. Verified: typecheck 0 err; in-spec test (8.0 = 22016); iverilog cross-check vs the same tree from silicon-proven gft_dot2+gft_add = ALL_PASS on 2000 random inputs (bit-exact). GF-T ladder: dot2->dot4->dot8. NOW.md documents a master codegen diagnosis: current master is red (7 internal tests + yosys broken) from #1783 batch-merge drops that #1788 only partially repaired. The tests-section emits `// synthesis translate_off` but closes with `endif (unbalanced -> breaks yosys); one-line fix = emit `ifndef SIMULATION (verified). 6 other red tests are distinct dropped features. Not pushed (multi-bug repair + reseal sweep in an active-repair area = owner decision). The spec-first hardware delta applies + builds clean on master and lands once those go green. Refs #1764 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #1787
masterdoes not compile.cargo build --releaseinbootstrap/fails with 27 errors. Every contributor is blocked. This PR restores compilation.What happened
PR #1783 (
batch-merge-wave-loops-w420-w459) resolved its conflicts by keeping the wave-loop call sites while dropping the declarations they depend on.The failure was masked:
build.rspanics on the staleFROZEN_HASHseal (also not updated by #1783) before rustc runs, so the build stops at a seal error and the real compile errors never surface. Resealing exposes them.What this restores
Every item was recovered from its originating commit — none of it was reconstructed by hand.
VerilogCodegenfields + initializers in all 3 constructorstype_is_float,gen_verilog_let_destructuring,tuple_element_widths,is_simple_tuple_typelet type_array = Self::parse_array_type(..)at both consumer sitesbase/idxbindings + W383 local-array flattening blockjson_outplumbing (SuiteOptionsfield +--jsonCLI arg)HashSetimport,fast→opts.fastOne adaptation rather than a straight revert: WL455's
parse_array_typereturnedOption<(usize, String)>, master's returnsOption<(Vec<usize>, String)>(multi-dimensional — the newer, better API). The consumers are adapted to master's signature by folding the dims into a flat element count, rather than reverting the API.Two silent behaviour losses also fixed
parse_let_destructuringroutedlet (a, b) = exprto aStmtAssign+ExprArrayLiteral{extra_kind="tuple"}shape that only the Verilog backend reads. Rust/C/Zig read the olderStmtLocal+extra_fieldshape, so Rust emittedvec![s, d] = dm(a, b);— uncompilable. Routed back throughparse_local_decl, whose shape all four backends already lower.parse_type_annotationjoined tuple elements with,instead of the canonical,, so-> (u32, u32)became-> (u32,u32).Result
cargo build --releaseFROZEN_HASHresealed (M5), per FROZEN.md §5.Still red — needs the wave-loop authors
Seven tests remain failing. They are feature-level losses from the same merge, all in Verilog hardware lowering:
I deliberately did not reconstruct these. Guessing at RTL lowering semantics produces output that looks plausible and synthesizes wrong — strictly worse than a visibly failing test. Leads are in #1787: for
ram_stylethe pragma never reaches the module-levelvardeclaration though every other piece survives; forarray_paramthe binding is written and read but the parameter is never rewritten to the bound module array.These seven fail on
mastertoday too — they simply could not be observed, because nothing compiled.🤖 Generated with Claude Code