Issue #186 03 Jun 2021
Written by: Kristaps Grinbergs
WWDC21 is just a couple of days away! Everyone is super excited, and there will be many community events throughout the week and later this month. Don’t worry if you can’t follow everything. We have plenty of time afterwards! The most important thing is to enjoy this moment and follow along at your own pace!
This month we celebrate Pride Month, and with it the new Pride in Swift community group, which is now open.
I want to end this introduction by congratulating Apple’s WWDC21 Swift Student Challenge winners. This year the intake includes three women, Damilola Awofisayo, Gianna Yan, and Abinaya Dinesh, whose code will definitely change our world!
Now let’s get to the news and enjoy WWDC21. Thanks!
Sponsored Link
Machine learning for voice made easy
Why don’t more Swift apps use voice? Machine learning for voice is full of pitfalls, and the native platform solutions are both clunky and uncustomizable. So we open-sourced our modular library for iOS that integrates with Siri (along with libraries for Node, Python, Android, & React Native) and then built a no-code service for creating custom wake words, domain-specific speech recognition, and custom synthetic AI voices—without a steep learning curve.
Starter tasks
SR-14667 (Compiler) Deprecation warning about the use of
dynamicType
when it’s a real property.
News and community
Holly Borla posted about the new Pride in Swift community group, which is now open on the Swift forums. She also updated us about the Swift Mentorship Program.
Paul Hudson wrote an article about what’s new in Swift 5.5.
Vincent Pradeilles posted a video explaining CaseIterable
.
Swift 5.4.1 for Linux and Windows has been released. Downloads are available here.
Swift Trunk (main) nightly development Ubuntu 20.04 arch64 Snapshots are available!
Proposals in review
SE-0317: Async Let is under review.
Note that this feature builds upon the structured concurrency proposal, the third review of which is happening concurrently to better discuss common aspects such as naming.
This review is part of the large concurrency feature, which we are reviewing in several parts. While we’ve tried to make it independent of other concurrency proposals that have not yet been reviewed, it may have some dependencies that we’ve failed to eliminate. Please do your best to review it on its merits, while still understanding its relationship to the larger feature. You may also want to raise interactions with previous already-accepted proposals – that might lead to opening up a separate thread of further discussion to keep the review focused.
SE-0304: Structured Concurrency is under the third review.
Following on from the second review, the proposal authors have made several changes. The changes made after the second review can be found at the end of the proposal, and the full diff can be found here.
Note that this feature is closely tied to the async let proposal, the first review of which is happening concurrently to better discuss common aspects such as naming.
This review is part of the large concurrency feature, which we are reviewing in several parts. While we’ve tried to make it independent of other concurrency proposals that have not yet been reviewed, it may have some dependencies that we’ve failed to eliminate. Please do your best to review it on its merits, while still understanding its relationship to the larger feature. You may also want to raise interactions with previous already-accepted proposals – that might lead to opening up a separate thread of further discussion to keep the review focused.
SE-0316: Global Actors is under review.
This review is part of the large concurrency feature, which we are reviewing in several parts. While we’ve tried to make it independent of other concurrency proposals that have not yet been reviewed, it may have some dependencies that we’ve failed to eliminate. Please do your best to review it on its merits, while still understanding its relationship to the larger feature. You may also want to raise interactions with previous already-accepted proposals – that might lead to opening up a separate thread of further discussion to keep the review focused.
SE-0292: Package Registry Service is under third review.
The proposal has been amended to address the feedback from the second review, and is ready for another review.
SE-0311: Task-local values is under third review.
The second review of SE-0311 was run to consider a significantly different language approach for binding and accessing task-local values, one based around property wrappers rather than an explicit key type. Shortly after the second review started, the community provided strong feedback that the proposal’s new use of property wrappers didn’t match their expectations because of the indirection through a wrapper value. The author agreed to re-revise the proposal, and the review was extended.
Swift Forums
Swift on the Server Workgroup posted their Annual Update for 2020.
Alejandro Martinez shared his video series about Swift Concurrency.
Jonathan Grynspan pitched an idea to add temporary uninitialised buffers.
I’d like to propose a new inlinable function in the standard library that allocates a buffer of a specified type and capacity, provides that buffer to a closure, and then deallocates the buffer. The buffer would be passed to the closure in an uninitialised state and treated as uninitialised on closure return—that is, the closure would be responsible for initialising and deinitialising the elements in the buffer.
Alexis Schultz explained an idea about using switch
without a subject.