-
Notifications
You must be signed in to change notification settings - Fork 149
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
GRDB compatiblity with Swift 6.0 #964
base: main
Are you sure you want to change the base?
Conversation
Hello, is there anything I should do for having this PR reviewed and merged? |
@groue no my apologies on the late review! 👁️ |
@swift-ci test |
@groue Was this able to build locally for you using a recent compiler? |
Hello @justice-adams-apple,
Yes, I can build the specified commit Xcode 16.0 ✅
Xcode 16.1 ✅
Xcode 16.2 ✅
Linux builds ✅ I don't know which version specifically, but this PR was recently merged, and at the time we were already relying on the sendability of |
My interpretation of the failure is that the toolchain used by the compatibility suite is not identical to the released toolchains. Since Swift 6 comes with strict concurrency checkings, so it is crucial that the compatibility suite runs with the exact same concurrency annotations as the released toolchains (stdlib, Foundation, Dispatch, etc.) Any difference in |
I hope I haven't uncovered a problem that can not be addressed in this repository. If I have, what is my best option for successfully have this pull request merged? I could perform changes in the GRDB repo, in order to make it compatible with the particular toolchain that is used here, for example? I could add the following line to GRDB: // DispatchQoS already conforms to Sendable, except
// in swiftlang/swift-source-compat-suite, which needs
// this extra conformance.
extension DispatchQoS: @retroactive Sendable { } Still, I'm sorry to repeat myself, but I find it concerning that the compatibility suite does not use the same toolchain as the released one. This weakens the "compatibility" that is tested. Given the sensitivity of Swift 6 to concurrency annotations, the compatibility we need involves the compiler, the standard lib, and core libraries as well (Foundation, Dispatch, Synchronization, Observation, etc.) |
Pull Request Description
Hello, this pull request adds compatibility check for GRDB with Swift 6.0.
Acceptance Criteria
To be accepted into the Swift source compatibility test suite, a project must:
./project_precommit_check
script runThe last check does not pass, due to the lack of support for Swift 6.0 in
project_precommit_check
(see #963).