Repository navigation
fix(compiler): repair all 7 gen-verilog regressions from batch merge #1783 (unblocks the repo) (#1789) - #1790
Merged
Merged
Conversation
…1783 Master was red (7 internal tests + yosys broken repo-wide -> check gate red -> nothing could merge) from the #1783 batch merge that #1788 only partially repaired. All 7 fixed; cargo test now 1535 passed / 0 failed; yosys synthesizes again. 1. yosys unblock: test-assertions section opened with `// synthesis translate_off` but closed with `endif (unbalanced); now emits `ifndef SIMULATION to match. 2. pragma ram_style/rom_style now emitted as (* ram_style="..." *) on module array var decls (node.extra_pragma was unused). 3. array-param -> module-array binding: current_fn_name_original was never assigned (only cleared) so the binding lookup used an empty key; restored it, and array access now indexes the bound param as the unpacked module array rom[i]. 4. test-block bare side-effecting calls and assert_eq are emitted as real statements/comparisons (section is `ifndef SIMULATION-guarded, so synthesis is unaffected). 5. keyword-colliding local var (task) escaped in decl+assign in emit_local, matching reference sites. FROZEN_HASH resealed. Spec seals are stale vs the corrected output (mechanical reseal follow-up; spec seals are non-blocking). Unblocks the repo. Closes #1789 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
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 13:37:26 UTC
Summary
Seal Status
|
This was referenced Aug 6, 2026
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 #1789
Master is red and nothing can merge — the
checkgate fails (7 internal tests) andgen-verilogemits invalid Verilog that yosys rejects repo-wide. Root cause: the#1783batch merge (wave-loops w420–w459) reverted/mangled several gen-verilog pieces;#1788only partially repaired. This fixes all 7 —cargo testnow 1535 passed / 0 failed, yosys synthesizes again.Fixes
// synthesis translate_offbut closed with`endif(unbalanced) → "Found`endifoutside macro conditional". Now emits`ifndef SIMULATIONto match. Fixestests_w458::no_translate_off_comments.pragma ram_style/rom_style:node.extra_pragmawas unused on module-arrayvars; now emitted as(* ram_style="…" *). Fixestests_w457_ram_style::{block,distributed}.current_fn_name_originalwas never assigned (only cleared) so the binding map lookup used an empty key; restored the assignment ingen_verilog_fn, andtry_emit_primitive_array_accessnow indexes a bound param as the UNPACKED module arrayrom[i]. Fixestests_w458::array_param_read_emitted+tests_w459::array_param_bound_from_test_block.set(1,v)) andassert_eqnow emit as REAL statements/comparisons — the section is`ifndef SIMULATION-guarded so synthesis is unaffected. Fixestests_w459::test_block_emits_real_function_call.varcolliding with a Verilog keyword (task) is now escaped in its declaration + assignment inemit_local. Fixes…keyword_local_and_module_escaped.FROZEN_HASH resealed (M5). Spec seals are stale vs the corrected output (they encoded the broken output) — a repo-wide reseal sweep is a mechanical follow-up; spec seals are non-blocking (no required gate verifies them;
seal-staleness-warnonly warns).Unblocks PR #1786 (11 cycles of spec-first hardware work) and every other stuck PR.
🤖 Generated with Claude Code