Skip to content

Update links to use scala/scala3 in latest blog post #1605

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Mar 7, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions blog/_posts/2024-03-06-scala-3.3.2-post-mortem.md
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ However, for code readability and performance reasons, the compiler maintains a
When it reads the string `"evidence$"`, it reuses the instance of `NameKind` that it uses for that particular string.

This leads us to the cause of our bug.
Between 3.3.1 and 3.3.2, we merged [PR #18280](https://github.com/lampepfl/dotty/pull/18280).
Between 3.3.1 and 3.3.2, we merged [PR #18280](https://github.com/scala/scala3/pull/18280).
That PR starts with what appeared to be a *refactoring* commit that renamed some `NameKind`s and their associated strings.
Unfortunately, that means the 3.3.2 compiler started emitting `UniqueName`s with the string `"contextual$"`.
When the 3.3.1 compiler reads that structured name, it tries to find the cached instance of `NameKind` that it should use for `"contextual$"`, and does not find any, because it did not use to generate that string.
Expand All @@ -63,7 +63,7 @@ In order to fix this in 3.3.3, we reverted to generating `UniqueName("evidence$"
The root cause is that the compiler assumed that only a fixed set of known strings would ever appear in TASTy `UniqueName`s, despite the fact that the TASTy format says that any string is valid in that position.
From that root cause, an unfortunate combination of events happened.

First, when we reviewed [PR #18280](https://github.com/lampepfl/dotty/pull/18280), taking the TASTy format into account, we assumed that using new strings would be a perfectly compatible change.
First, when we reviewed [PR #18280](https://github.com/scala/scala3/pull/18280), taking the TASTy format into account, we assumed that using new strings would be a perfectly compatible change.
We therefore did not mark the PR as "needs-minor-release" as we merged it into the `main` branch for release in 3.4.0.

Second, the PR was backported to the 3.3.x LTS branch.
Expand Down