Skip to content

Fix ref-assembly MVID collisions from truncating signature-hash combiner - #20392

Open
T-Gro wants to merge 4 commits into
mainfrom
fix/issue-20389
Open

Fix ref-assembly MVID collisions from truncating signature-hash combiner#20392
T-Gro wants to merge 4 commits into
mainfrom
fix/issue-20389

Conversation

@T-Gro

@T-Gro T-Gro commented Aug 28, 2026

Copy link
Copy Markdown
Member

Fixes #20389

Reference-assembly MVIDs collided when a public member was renamed in an early file of a large (>~32 file) project under --optimize-: the per-file signature hashes were folded with a left-shift-by-one combiner over a 32-bit Hash, truncating the contribution of any file more than ~32 positions from the end of the compile order, so CopyRefAssembly kept a stale reference assembly (surfacing downstream as FS0039). The combiner is now an FNV-1a multiply mix over a 64-bit Hash.

Copilot and others added 4 commits August 28, 2026 08:25
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…isions (#20389)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@github-actions

Copy link
Copy Markdown
Contributor

❗ Release notes required

You can open this PR in browser to add release notes: open in github.dev


✅ Found changes and release notes in following paths:

Warning

No PR link found in some release notes, please consider adding it.

Change path Release notes path Description
`src/Compiler` docs/release-notes/.FSharp.Compiler.Service/11.0.100.md No current pull request URL (#20392) found, please consider adding it

@github-actions github-actions Bot added the AI-Tooling-Check-Bypassed Tooling check: non-fork PR, not diff-analyzed label Aug 28, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

AI-Tooling-Check-Bypassed Tooling check: non-fork PR, not diff-analyzed

Projects

Status: New

Development

Successfully merging this pull request may close these issues.

Reference assembly MVID does not change when a public member is renamed in an early file (--optimize-)

1 participant