The easy stuff is gone, but the remaining stuff is hard. I could brute force my way to the end, but goal is not to just have it build, I want to make sure that my users can rely on the guarantees and be able to benefit from this additional level of safety.
So the next step will take some time to complete, as many of these will require some research into some Godot features.
@Migueldeicaza If you haven't tried it, it may be worth grabbing a toolchain from swift.org for the 6.0 release. There are additional features of the upcoming compiler that e.g. let non-Sendable types be transferred between isolation domains if they can be seen to be the last use on the outgoing side.
@Migueldeicaza I'm sorry, these look like they're coming from the embedded driver inside XCBuild falling back to using the out of process driver. They're harmless, but pretty annoying given the whole point of this is to get warnings to burn down.
Setting SWIFT_USE_INTEGRATED_DRIVER to NO in the xcode build settings should supress them.
A feedback for this would be great (it's a bug in Xcode, not the Swift toolchain, so not a GitHub Issue)
Wanted to put together some logic that updates a stored property, preserves invariants, and triggers other business logic anyway, for a laugh? We had a tool for doing that: it was called a method.
me: types 2 letters into a search field
🔍: this one, right?
me: yep. you done looking?
🔍: yep, this one
me: you sure?
🔍: yep
me: really?
🔍: yep
me:
🔍:
me :
🔍: oh or maybe this one
me: <return>
me: godammit
So what does rewriting a Swift app in Swift 6 actually get you, that staying on Swift 5.x won’t? Will new Swift language/compiler features come to both language modes for the foreseeable future?
@stroughtonsmith Staying in Swift 5 mode with the Swift 6 compiler won't hold back any new language features other than full concurrency safety checking – that's the only feature gated by the language mode.
Experimental support for generic noncopyable types in the #swift standard library is now available in the nightly toolchain.
Here's a simple demonstration of adoption of this feature on the Swift Playdate example project. Switching the Sprite type from an enum+class box to a simpler non-copyable struct drops binary size from 7k to 6k on the SwiftBreak game.
Since people are still talking about Dune 2, here’s my contribution, which is that I was disappointed they left out 1/ the part about how Salusa Secundus and Arrakis were similarly harsh and 2/ basically anything about mentats