Skip to content

fix(gen-verilog): const-name array sizes; packed literal locals; keyword-safe local names - #1969

Merged
gHashTag merged 1 commit into
masterfrom
fix/verilog-packed-array-local
Aug 8, 2026
Merged

fix(gen-verilog): const-name array sizes; packed literal locals; keyword-safe local names#1969
gHashTag merged 1 commit into
masterfrom
fix/verilog-packed-array-local

Conversation

@gHashTag

@gHashTag gHashTag commented Aug 8, 2026

Copy link
Copy Markdown
Owner

Refs #1948

Three linked defects kept array-driven test-block specs red under icarus:

  • Const-name array sizes unresolved: [u32; HISTORY_SIZE] fell back to a 32-bit scalar input while [u32; 16] packed to 512 bits — packed local desynced from the param ("Array needs an array index"). All type strings resolve const sizes to numerics now.
  • Primitive [T; N] literal locals emitted as unpacked memory (can't be passed whole to a packed param) → packed vector.
  • Fn-local names didn't escape reserved words (reg [511:0] config;).

tri-net corpus: icarus 77 → 85; no gate regression; bridge.v regenerated. Unit suite at the single pre-existing red. FROZEN_HASH resealed; NOW.md entries added.

🤖 Generated with Claude Code

…ord-safe local names

Refs #1948

Three linked defects kept the array-driven test-block specs red under
icarus:

- Const-name array sizes were not resolved: `[u32; HISTORY_SIZE]`
  (const size) fell back to a 32-bit scalar input while `[u32; 16]`
  (literal) packed to 512 bits, so a packed local desynced from the
  32-bit param and iverilog saw "Array needs an array index". All type
  strings now resolve const sizes to numerics before packing.
- A primitive [T; N] test-block local initialized from an array LITERAL
  emitted as an unpacked memory, which cannot be passed whole to a
  packed fn parameter. It packs to a vector now (the concat text path
  and part-select indexing already support it).
- Function-local reg declarations and assignments did not escape
  reserved words: a local named `config` emitted `reg [511:0] config;`.

tri-net corpus: icarus 77 -> 85 (load_predictor, anomaly_detector,
auto_config, cache_management, health_dashboard, local_processing,
network_orchestrator, integration_framework). No gate regression;
bridge.v regenerated. Unit suite at the single pre-existing red.
FROZEN_HASH resealed.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@gHashTag
gHashTag enabled auto-merge (squash) August 8, 2026 19:55
@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 19:56:10 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)=74e705b14604 != 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 4ce57f8 into master Aug 8, 2026
23 checks passed
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