-
Notifications
You must be signed in to change notification settings - Fork 41
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
Enable Swift 6 feature flags #258
Conversation
97a8fec
to
c80a7d1
Compare
0fb790d
to
3593e8b
Compare
140fa70
to
e87b780
Compare
3593e8b
to
a1914aa
Compare
a1914aa
to
7cd669a
Compare
7f55ac4
to
4203038
Compare
This adds two warnings to the build complaining about a sending closure. <https://github.com/swiftlang/swift-evolution/blob/945d93776cf44cefaa5e685ede0fa4fc96d460ab/proposals/0414-region-based-isolation.md>
4203038
to
a3c598b
Compare
SWIFT_UPCOMING_FEATURE_INFER_SENDABLE_FROM_CAPTURES = YES; | ||
SWIFT_UPCOMING_FEATURE_ISOLATED_DEFAULT_VALUES = YES; | ||
SWIFT_UPCOMING_FEATURE_REGION_BASED_ISOLATION = YES; | ||
SWIFT_VERSION = 5.0; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just curious, how was this empty before? What exactly does it do?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I believe this is just enforcing the default as of XCode 16. XCode 16 ships with the Swift 6 compiler, which can run in Swift 4, Swift 5, or Swift 6 compiler modes. So I'm enforcing the default to then upgrade to 6 later.
@@ -563,6 +563,7 @@ | |||
MTL_ENABLE_DEBUG_INFO = NO; | |||
SDKROOT = iphoneos; | |||
SUPPORTED_PLATFORMS = iphoneos; | |||
SWIFT_UPCOMING_FEATURE_DEPRECATE_APPLICATION_MAIN = YES; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks like we might get some warnings from libraries that we use, but it should be fine up until swift 6:
Current Swift libraries will continue to build because they compile under pre-Swift 6 language modes. Under such language modes this proposal adds only an unconditional warning when framework-specific entrypoints are used, and provides diagnostics to avoid the warning by automatically migrating user code.
|
||
init(messenger: FlutterBinaryMessenger, site: Site) { | ||
init(messenger: any FlutterBinaryMessenger, site: Site) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just curious, was this migration manual or automated?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Manually clicking "fix" in XCode, not sure how to make it more like eslint . --fix
where they're all applied at once
Each feature flag commit links to the associated swift language proposal. Most of them haven't required changes to the source code, other than
existential any
, as well asregion-based isolation
popped two new warnings that I'm going to leave for future work to fix.https://flags.swiftythemes.com/language-features/5.10.html is also a bit of a guide to them.
Example of the warning:
The warnings are attempting to ensure memory safety when swift is running multi-threaded code.