Swift Evolution Monthly: Proposal Summaries
This repository is here to make it easier to look up summaries of specific Swift Evolution proposals. They were first extracted from the Swift Evolution Monthly newsletter and put into one file each within the proposals
folder and they are all named after the related proposal file in the official Swift Evolution repo.
This way, while reading an evolution proposal on GitHub, you can simply replace apple
with FlineDev
in your URL and you'll land on the related proposal summary if one exists. New summaries are added every month, both of new and (relevant) old proposals.
Here's a full ordered list of all proposals summarized so far in this repository:
- SE-0314:
AsyncStream
andAsyncThrowingStream
- SE-0329: Clock, Instant, and Duration
- SE-0339: Module Aliasing For Disambiguation
- SE-0341: Opaque Parameter Declarations
- SE-0344: Distributed Actor Runtime
- SE-0345:
if let
shorthand for shadowing an existing optional variable - SE-0346: Lightweight same-type requirements for primary associated types
- SE-0347: Type inference from default expressions
- SE-0348:
buildPartialBlock
for result builders - SE-0349: Unaligned Loads and Stores from Raw Memory
- SE-0350: Regex Type and Overview
- SE-0351: Regex builder DSL
- SE-0352: Implicitly Opened Existentials
- SE-0353: Constrained Existential Types
- SE-0354: Regex Literals
- SE-0355: Regex Syntax and Run-time Construction
- SE-0356: Swift Snippets
- SE-0357: Regex-powered string processing algorithms
- SE-0358: Primary Associated Types in the Standard Library
- SE-0359: Build-Time Constant Values
- SE-0360: Opaque result types with limited availability
- SE-0361: Extensions on bound generic types
- SE-0362: Piecemeal adoption of upcoming language improvements
- SE-0363: Unicode for String Processing
- SE-0364: Warning for Retroactive Conformances of External Types
- SE-0365: Allow implicit
self
forweak self
captures, afterself
is unwrapped - SE-0366:
consume
operator to end the lifetime of a variable binding - SE-0367: Conditional compilation for attributes
- SE-0368: StaticBigInt
- SE-0369: Add CustomDebugStringConvertible conformance to AnyKeyPath
- SE-0370: Pointer Family Initialization Improvements and Better Buffer Slices
- SE-0371: Isolated synchronous deinit
- SE-0372: Document Sorting as Stable
- SE-0373: Lift all limitations on variables in result builders
- SE-0374: Add sleep(for:) to Clock
- SE-0375: Opening existential arguments to optional parameters
- SE-0376: Function Back Deployment
- SE-0377:
borrowing
andconsuming
parameter ownership modifiers - SE-0378: Package Registry Authentication
- SE-0379: Swift Opt-In Reflection Metadata
- SE-0380:
if
andswitch
expressions - SE-0381: DiscardingTaskGroups
- SE-0382: Expression Macros
- SE-0383: Deprecate @UIApplicationMain and @NSApplicationMain
- SE-0384: Importing Forward Declared Objective-C Interfaces and Protocols
- SE-0386: New access modifier:
package
- SE-0388: Convenience Async[Throwing]Stream.makeStream methods
- SE-0389: Attached Macros
- SE-0390: Noncopyable structs and enums
- SE-0391: Package Registry Publish
- SE-0392: Custom Actor Executors
- SE-0393: Value and Type Parameter Packs
- SE-0394: Package Manager Support for Custom Macros
- SE-0396: Conform
Never
toCodable
- SE-0397: Freestanding Declaration Macros
- SE-0398: Allow Generic Types to Abstract Over Packs
- SE-0399: Tuple of value pack expansion
Feel free to provide corrections or updates to the summary articles by just opening a Pull Request with your suggested change. If you want to provide a summary for an older proposal that's not summarized yet, feel free to open a Pull Request with your summary. And don't forget to add your summary page to the list above in your PR.
Note that anything you contribute to this repo with a PR falls under the same license and additionally gives Cihat Gündüz the rights to edit, reshare, and re-license the summary for other uses, such as a potentially commercial app or website.
Swift Evolution Monthly is brought to you by Cihat Gündüz in his free time. If you want to thank me and support my writing, please consider becoming a sponsor on GitHub or simply make a small donation on PayPal. Thank you very much for your support, it really keeps me motivated! 🙏
All information, text, and code examples provided here are Open Source licensed under GPLv3 which basically means you can do with it what you want, but you have to re-share any changes or projects you use them in under the same license. This is to forbid usage in closed-source projects and keep improvements public. For other non-profit or educational uses, please contact Cihat Gündüz to get permission – if it helps the community it will be granted.