Hello C++ folks! I've started a blog series aimed at C++ programmers who are interested in learning #SwiftLang. It teaches the breadth of the Swift language, but anchored in the features and idioms of C++. So if you know your Rule Of Fives and your SFINAEs and think you might be interested in Swift, I'd love to hear what you think. Part 1 is something you know of from C++ that Swift takes a bit further: value types. https://www.douggregor.net/posts/swift-for-cxx-practitioners-value-types/
Swift 6 will only be ready when it’s usable and the migration is approachable.
Better Sendable inference and ways to safely transfer non-Sendable values will eliminate many false positive data race errors. We’re also exploring ways to mitigate repetitive annotations, such as by allowing preconcurrency APIs to defer actor isolation checking to runtime to streamline the ‘nonisolated + assumeIsolated’ pattern.
My team is #hiring for software engineers 🧑💻 to come work with us on #Xcode 🔨 in Vancouver, Canada 🍁🇨🇦 Applications from members in historically underrepresented groups are encouraged. Feel free to reach out if you have any questions. #apple#iosdev#swift#swiftlang#swiftui
“With the increased limit of the acceptance queue, and a patched version of wrk, we can now conclude that swift is a good competitor speed-wise as a web application server.
Memory wise it blows all the other technologies away, using only 2.5% of the amount of memory that the java implementation needs, and 10% of node-js.”
#SwiftLang parameter pack iteration is so much fun! This feature is amazing because it takes something that feels like it should be complicated---if you've used C++ variadic templates, you know what I mean---and makes it straightforward. Blog post by @simanerush is up at https://www.swift.org/blog/pack-iteration/
Finally landed the first of many #SwiftLang standard library updates to replace "rethrows" with generic typed throws: https://github.com/apple/swift/pull/69771. The feature has been a fantastic exercise in generalizing in place: it maintains the same behavior for existing Swift code, maintains the stable ABI of the standard library, and yet any Swift code that adopts typed throws will see typed errors propagate through the standard library in the natural way.
so many things changed since I touched the codebase the last time. I already made it work with all deps updated (the majority of work was SwiftPM changes). After the burnout phase I'm again Pumped to push it forward.
This changes the task creation APIs to synchronously enqueue directly on the isolated actor so that explicitly isolated tasks with the same priority are guaranteed to start in the order you create them.
An important engineering step forward for #SwiftLang WebAssembly: we've had Wasm in the main Swift compiler + standard library repository for a while now (merged in from the excellent SwiftWasm project), but CI for it was separate. Now we're getting pull request testing for Wasm + WASI, so we can ensure that it remains healthy on a day-to-day basis on main. This is one of the important milestones along the path to making WebAssembly an officially supported platform. More details from @maxd at https://forums.swift.org/t/stdlib-and-runtime-tests-for-wasm-wasi-now-available-on-swift-ci/70385
Just released a new version of Lighter.swift, my super-fast #SQLite tooling for #SwiftLang. It now supports all versions of Int types (Int8 and such), Float (in addition to Double) and has better behaviour when encountering unmapped raw representable values. Bool can also parse some basic textual booleans (0/1, yes/no, etc). https://github.com/lighter-swift
It's called Evolreader (because it's for reading Swift Evol-ution... you get it). It downloads the swift-evolution repo to your device so you can read stuff offline. It also saves your progress along the way.
I had fun making it, it's free, and maybe some of you might enjoy it. Here, have some hashtags and screenshots. #swiftlang#iosdev#macdev
If you have been fighting with Sendability when using #swiftlang concurrency, check out this new swift evolution proposal which has just entered review: https://forums.swift.org/t/se-0414-region-based-isolation/68805. The proposal introduces a new diagnostic that allows one to transfer non-Sendable values into other isolation domains when it is safe to do so and emit diagnostics when it is not. This should make it easier to use non-Sendable types in a concurrent world. We would love your thoughts and feedback!
I know there are already plenty of task managers available for the #GNOME desktop, but no one is simple enough for my very limited needs. So I'm working on the Subtasks app:
While developing the app, I documented the process and created a tutorial on how to develop GNOME apps in #swift (note that the tutorial is not very polished yet):
All the tips in the book are focused on Swift and Swift Standard Library, so they can be applied to any platform, from iOS and macOS to Swift on the server.