Skip to content

fix(sv): fix structure defaults, record padding, bare pops and nested reads - #2500

Merged
mergify[bot] merged 1 commit into
masterfrom
stack/tignear/fix/sv-unpacked-struct-followups/fix-structure-defaults-record-padding-bare-pops--bd97e9c7
Oct 29, 2026
Merged

mergify[bot] merged 1 commit into
masterfrom
stack/tignear/fix/sv-unpacked-struct-followups/fix-structure-defaults-record-padding-bare-pops--bd97e9c7

Conversation

@tignear

@tignear tignear commented Oct 29, 2026 •

Copy link
Copy Markdown
Contributor

Review findings on the unpacked structure stack (#2415, #2422, #2424)
that arrived after it merged:

  • A default pattern item descends into a structure member unless the
    value is a structure of that member's type (IEEE 1800-2023 10.9.2), so
    c = '{default: a} initializes the nested members of a's type
    instead of rejecting it.
  • 4-state object fields store their complemented value and mask planes
    masked to the field width. Padding bits stay zero, so a default record
    of a field that is not byte-aligned (logic flag) is all zero bytes,
    and finish_record keeps it null: d = new[1]; d[0] = d[0]; no
    longer wakes @(d).
  • q.pop_front and q.pop_back without parentheses are whole elements
    of a queue of structures.
  • A $ index of a queue read through a receiver with a side effect, such
    as m[f()][$], is rejected: the size behind $ reads the receiver
    again, which could name another queue.

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 29, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-29T04:29:23.973841Z 6e06662 New commits
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 2332d0a4df

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread crates/celox-frontend-sv/src/lowering/ff/containers.rs Outdated
@mergify

mergify Bot commented Oct 29, 2026 •

Copy link
Copy Markdown
Contributor

Queued — the merge queue status continues in this comment ↓.

… reads

Review findings on the unpacked structure stack (#2415, #2422, #2424)
that arrived after it merged:

- A `default` pattern item descends into a structure member unless the
  value is a structure of that member's type (IEEE 1800-2023 10.9.2), so
  `c = '{default: a}` initializes the nested members of `a`'s type
  instead of rejecting it.
- 4-state object fields store their complemented value and mask planes
  masked to the field width. Padding bits stay zero, so a default record
  of a field that is not byte-aligned (`logic flag`) is all zero bytes,
  and `finish_record` keeps it `null`: `d = new[1]; d[0] = d[0];` no
  longer wakes `@(d)`.
- `q.pop_front` and `q.pop_back` without parentheses are whole elements
  of a queue of structures.
- A `$` index of a queue read through a receiver with a side effect, such
  as `m[f()][$]`, is rejected: the size behind `$` reads the receiver
  again, which could name another queue.

Change-Id: Ibd97e9c73adb7703a0734ca9fcdedeb66c0a2189
@tignear
tignear force-pushed the stack/tignear/fix/sv-unpacked-struct-followups/fix-structure-defaults-record-padding-bare-pops--bd97e9c7 branch from 2332d0a to 6e06662 Compare October 29, 2026 04:27
@tignear

tignear commented Oct 29, 2026

Copy link
Copy Markdown
Contributor Author

Revision history

# Type Changes Reason Date
1 initial 2332d0a 2026-10-29 04:27 UTC
2 content 2332d0a → 6e06662 Review fix: a $ index read through a receiver with a side effect is rejected instead of sharing structurally equal receivers, which merged explicit repeated calls. 2026-10-29 04:27 UTC

@tignear

tignear commented Oct 29, 2026

Copy link
Copy Markdown
Contributor Author

@Mergifyio queue

@tignear tignear added the merge-ready Request merging through Mergify after required checks label Oct 29, 2026
@mergify

mergify Bot commented Oct 29, 2026 •

Copy link
Copy Markdown
Contributor

✅ Merged into master as 1dd9e9b at 05:11 UTC

13 min in the queue, 9 min of it CI.

So far

Merge conditions: 7 of 7 met

The batch, tested on draft #2517

Condition Required by
✅ check-success = Conventional Commit title —
✅ check-success = Queue validation —
✅ any of: check-success = @github-actions/Lint & Format, check-neutral = @github-actions/Lint & Format, check-skipped = @github-actions/Lint & Format GitHub repository ruleset rule master
✅ any of: check-success = @github-actions/Rust Test & NAPI Build, check-neutral = @github-actions/Rust Test & NAPI Build, check-skipped = @github-actions/Rust Test & NAPI Build GitHub repository ruleset rule master
✅ any of: check-success = @github-actions/JS Test (Ubuntu), check-neutral = @github-actions/JS Test (Ubuntu), check-skipped = @github-actions/JS Test (Ubuntu) GitHub repository ruleset rule master
✅ any of: check-success = @github-actions/Conventional Commit title, check-neutral = @github-actions/Conventional Commit title, check-skipped = @github-actions/Conventional Commit title GitHub repository ruleset rule master
✅ any of: check-success = @github-actions/Queue validation, check-neutral = @github-actions/Queue validation, check-skipped = @github-actions/Queue validation GitHub repository ruleset rule master

Times in UTC · dashboard · how the merge queue works

@mergify mergify Bot added the queued Mergify queue entry label Oct 29, 2026
@mergify
mergify Bot merged commit 1dd9e9b into master Oct 29, 2026
24 checks passed
@mergify
mergify Bot deleted the stack/tignear/fix/sv-unpacked-struct-followups/fix-structure-defaults-record-padding-bare-pops--bd97e9c7 branch October 29, 2026 05:11
@mergify mergify Bot removed the queued Mergify queue entry label Oct 29, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

merge-ready Request merging through Mergify after required checks

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant