It looks like a fix has been merged for this issue. (Thanks, @xedin!) Is there any chance this will make it into a Swift 6.3 patch? Or are we stuck with this miscompile until Swift 6.4 is released? Historically, it looks like it has taken a few months between the time the release branch is cut and when the final release happens.
| Version | Release branch created | Public Release | Delay |
|---|---|---|---|
| Swift 6.1 | November 13, 2024 | March 31, 2025 | ~4.5 months |
| Swift 6.2 | April 2, 2025 | September 15, 2025 | ~5.5 months |
| Swift 6.3 | November 12, 2025 | March 24, 2026 | ~4 months |
| Swift 6.4 | May 4, 2026 | September 2026? | ??? |
The Swift 6.4 release branch hasn't been created yet, but the release process post says this:
Until the new branch is created on May 4, 2026, the
mainbranch should be treated as a release branch. Major changes should be avoided during this time, and the focus should be on converging the release.
This suggests to me that the default assumption is that changes going into main at this point would be released in Swift 6.4. If the usual schedule holds, that means that we'd be living with this miscompile in Swift 6.3 for about 5 more months. That's unfortunate, because it makes nonisolated(nonsending) dangerous, even at a time when it's otherwise being actively promoted as a better default (via inclusion in "Approachable Concurrency").
Anyway, super happy that a fix has been found. I'm hoping the fix can make it into a 6.3.x patch — right now, our team has to stay on Swift 6.2 (via Xcode 26.3), and that means we're missing out on other new Xcode features. And that's sad.