Skip to content
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

Swift 6 concurrency error on _StorageClass.defaultInstance #1729

Open
rebello95 opened this issue Oct 3, 2024 · 6 comments
Open

Swift 6 concurrency error on _StorageClass.defaultInstance #1729

rebello95 opened this issue Oct 3, 2024 · 6 comments

Comments

@rebello95
Copy link
Contributor

When building with Xcode 16.0 and the Swift 6 toolchain, the following error occurs with a generated _StorageClass type:

Static property 'defaultInstance' is not concurrency-safe because non-'Sendable' type

Screenshot 2024-10-03 at 10 42 56 AM

I read through #1560 which discussed this a bit, but based on this comment I opted to open a new issue.

This can reproduced on this Connect-Swift branch, but I think this is an issue with any generated _StorageClass when building with Swift 6.

@thomasvl
Copy link
Collaborator

thomasvl commented Oct 3, 2024

@FranzBusch @gjcairo fyi - since I think you all mentioned working on full Swift 6 language mode. I guess starting with generated code would unblock folks first.

While #1561 might be sorta large to pull off in a non breaking way, I do wonder if that resolves a lot of this since I think the name map could get a lot simpler (no need for interning, etc.)

@thomasvl
Copy link
Collaborator

thomasvl commented Oct 3, 2024

@tbkka fyi also

@FranzBusch
Copy link
Member

since I think you all mentioned working on full Swift 6 language mode. I guess starting with generated code would unblock folks first.

I agree tackling the generated code is the most important thing. I do think we need to do all of this in a non-breaking way for now. Right now we are working through our other repos to make sure they compile without errors in Swift 6.

rebello95 added a commit to connectrpc/connect-swift that referenced this issue Oct 9, 2024
We can upgrade to the Swift 6 toolchain separately; need some fixes in
SwiftProtobuf first (like
apple/swift-protobuf#1729).

---------

Signed-off-by: Michael Rebello <[email protected]>
@jhump
Copy link

jhump commented Oct 16, 2024

Do you have any idea of how soon this repo can be made compatible with Swift 6? We have a library that depends on this repo, and we're nearing a v1.0 release for it. We were hoping the v1.0 release could use Swift 6, but this issue is a blocker for that.

@Lukasa
Copy link
Contributor

Lukasa commented Nov 29, 2024

I think it'd be very helpful to get a complete list of Swift 6 issues you see. The specific concurrency issue here should be solveable using nonisolated(unsafe) on this static let, but I'd love to know if there were more.

@thomasvl
Copy link
Collaborator

Can someone that is seeing this issue see if they can recreated it by modifying #1737? I made attempt at ensuring the generate file had the Storage and also enabling v6 language mode on the packages, but I can't seem to get the warnings/errors in the new CI step.

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

No branches or pull requests

5 participants