Skip to content

fix(gen-verilog): SystemVerilog keywords escaped; safe names in decls and part-selects - #1957

Merged
gHashTag merged 1 commit into
masterfrom
fix/verilog-sv-keywords
Aug 8, 2026
Merged

fix(gen-verilog): SystemVerilog keywords escaped; safe names in decls and part-selects#1957
gHashTag merged 1 commit into
masterfrom
fix/verilog-sv-keywords

Conversation

@gHashTag

@gHashTag gHashTag commented Aug 8, 2026

Copy link
Copy Markdown
Owner

Refs #1948

Spec identifiers named bit/byte/priority/sequence/table reached Icarus as keywords from three directions: the reserved list only covered Verilog-2001, the #1894/#1948 TB declaration passes wrote raw names (reg [63:0] bit;), and packed part-selects wrote the raw base.

SV keyword block added; every declaration and part-select site goes through verilog_safe_identifier.

tri-net corpus: icarus 69 → 77 (bandwidth_allocator, byte_utils, crc16, fault_detection, pattern_predictor, power_monitoring, production_deployment, resource_scheduler join); no gate regression. Only unit red is pre-existing bitnet_layer. FROZEN_HASH resealed; NOW.md entries added.

🤖 Generated with Claude Code

… and part-selects

Refs #1948

Spec identifiers named bit, byte, priority, sequence or table reached
Icarus as keywords from three directions: the reserved-word list only
covered Verilog-2001 (bit/byte/priority/sequence are SV keywords Icarus
also rejects), the #1894/#1948 testbench declaration passes wrote RAW
names (`reg [63:0] bit;` -- 'Syntax error in variable list'), and the
packed part-select emissions wrote the raw base name.

The SV keyword block joins the reserved list, and every declaration and
part-select site goes through verilog_safe_identifier.

tri-net corpus: icarus 69 -> 77 passing; bandwidth_allocator,
byte_utils, crc16, fault_detection, pattern_predictor, power_monitoring,
production_deployment and resource_scheduler join. No gate regression.
FROZEN_HASH resealed; only unit red is the pre-existing bitnet_layer.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@gHashTag
gHashTag enabled auto-merge (squash) August 8, 2026 17:59
@github-actions

github-actions Bot commented Aug 8, 2026

Copy link
Copy Markdown
Contributor

📓 NotebookLM Notebook linked to this PR

This notebook contains session context, decisions, and artifacts for this work.

@github-actions

github-actions Bot commented Aug 8, 2026

Copy link
Copy Markdown
Contributor

PR Dashboard

Generated at: 2026-08-08 18:00:11 UTC

Summary

Status Count
Total Open PRs 15
PRs with Failing Checks 2
PRs with All Checks Green 13
READY 5
FAILING 2
PENDING 0

Seal Status

  • ⚠️ STALE -- sha256(compiler.rs)=ecc5e931362e != manifest seal=87e5cbd3ad94.
    The committed NMSE numbers were certified against an older compiler.rs.
    Run scripts/reseal-check.sh locally for the two-step reseal command (advisory; not a merge gate).

@gHashTag
gHashTag merged commit 1ee8037 into master Aug 8, 2026
22 of 23 checks passed
gHashTag added a commit that referenced this pull request Aug 8, 2026
…updated (#1958)

* fix(gen-verilog): W458 keeps the legacy [N]T binding; unit contracts updated

Refs #1948

Follow-up landing the two pieces auto-merge raced past in #1952/#1957:

- The W458 array-param exclusion narrows to rust-style [T; N] primitives
  only: the legacy [N]T spelling keeps its module-array ROM binding
  contract (array_param_read_emitted asserts it)
- nested_return_lowers_as_early_exit's discriminator includes the
  early-return guard assignment introduced by #1950

Unit suite back to a single pre-existing red (bitnet_layer iverilog).
FROZEN_HASH resealed.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* docs: NOW entries for the W458 follow-up

Refs #1948

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Fable 5 <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.

1 participant