HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
swiftlang
swift-evolution
Markdown2015–2026
swiftlang / swift-evolution

swift-evolution

This maintains proposals for changes and user-visible enhancements to the Swift Programming Language.

105Distinct people
154Mentions
2Explicit recommenders
15.9KGitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

This maintains proposals for changes and user-visible enhancements to the Swift Programming Language.

GitHub

Where it is used

No documented product use was verified in the last source check.

What people are saying

I love Swift. Writing in it is awesome, the community is great, and it has traditionally been focused on a truly wonderful dev-focused experience. That being said, releases…

joshuawright11 used a recommendation phrase. 2 indexed comments match. This is a phrase match, not a verdict.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

No other repository is repeatedly linked in the same discussions.

This week on Hacker News

Nov 8–Nov 15 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/15/2026, 12:01:02 AM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by year154 dated mentions

Observed mentions: 2015-12-03 17:04:39 UTC to 2026-07-10 11:39:51 UTC.

05101520252015-01-01 00:00:00 UTC to 2016-01-01 00:00:00 UTC (exclusive): 11 mentions; 7 submissions, 4 comments20152016-01-01 00:00:00 UTC to 2017-01-01 00:00:00 UTC (exclusive): 24 mentions; 4 submissions, 20 comments2017-01-01 00:00:00 UTC to 2018-01-01 00:00:00 UTC (exclusive): 12 mentions; 5 submissions, 7 comments2018-01-01 00:00:00 UTC to 2019-01-01 00:00:00 UTC (exclusive): 5 mentions; 0 submissions, 5 comments2019-01-01 00:00:00 UTC to 2020-01-01 00:00:00 UTC (exclusive): 11 mentions; 2 submissions, 9 comments2020-01-01 00:00:00 UTC to 2021-01-01 00:00:00 UTC (exclusive): 10 mentions; 2 submissions, 8 comments20202021-01-01 00:00:00 UTC to 2022-01-01 00:00:00 UTC (exclusive): 11 mentions; 4 submissions, 7 comments2022-01-01 00:00:00 UTC to 2023-01-01 00:00:00 UTC (exclusive): 10 mentions; 1 submissions, 9 comments2023-01-01 00:00:00 UTC to 2024-01-01 00:00:00 UTC (exclusive): 20 mentions; 6 submissions, 14 comments2024-01-01 00:00:00 UTC to 2025-01-01 00:00:00 UTC (exclusive): 18 mentions; 5 submissions, 13 comments2025-01-01 00:00:00 UTC to 2026-01-01 00:00:00 UTC (exclusive): 17 mentions; 5 submissions, 12 comments2026-01-01 00:00:00 UTC to 2027-01-01 00:00:00 UTC (exclusive): 5 mentions; 0 submissions, 5 comments. Incomplete calendar period.2026*

* An incomplete calendar period is marked with an outlined bar. Its count is not directly comparable with a full period.

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
20152015-01-01 00:00:00 UTC2016-01-01 00:00:00 UTC1174
20162016-01-01 00:00:00 UTC2017-01-01 00:00:00 UTC24420
20172017-01-01 00:00:00 UTC2018-01-01 00:00:00 UTC1257
20182018-01-01 00:00:00 UTC2019-01-01 00:00:00 UTC505
20192019-01-01 00:00:00 UTC2020-01-01 00:00:00 UTC1129
20202020-01-01 00:00:00 UTC2021-01-01 00:00:00 UTC1028
20212021-01-01 00:00:00 UTC2022-01-01 00:00:00 UTC1147
20222022-01-01 00:00:00 UTC2023-01-01 00:00:00 UTC1019
20232023-01-01 00:00:00 UTC2024-01-01 00:00:00 UTC20614
20242024-01-01 00:00:00 UTC2025-01-01 00:00:00 UTC18513
20252025-01-01 00:00:00 UTC2026-01-01 00:00:00 UTC17512
2026 (partial)2026-01-01 00:00:00 UTC2027-01-01 00:00:00 UTC505

From the project README

An excerpt from the repository, fetched Nov 13, 2026.

Read the project’s introduction
Swift Evolution https://www.swift.org/swift-evolution/ This repository tracks the ongoing evolution of the Swift programming language, standard library, and package manager. Goals and Release Notes Swift Language focus areas heading into 2025 CHANGELOG Version Announced Released Swift 6.4 2026-03-18 2026-09-15 Swift 6.3 2025-10-24 2026-03-24 Swift 6.2 2025-03-08 2025-09-15 Swift 6.1 2024-10-17 2025-03-31 Swift 6.0 2024-02-22 2024-09-17 Swift 5.10 2023-08-23 2024-03-05 Swift 5.9 2023-03-06 2023-09-18 Swift 5.8 2022-11-19 2023-03-30 Swift 5.7 2022-03-29 2022-09-12 Swift 5.6 2021-11-10 2022-03-14 Swift 5.5 2021-03-12 2021-09-20 Swift 5.4 2020-11-11 2021-04-26 Swift 5.3 2020-03-25 2020-09-16 Swift 5.2 2019-09-24 2020-03-24 Swift 5.1 2019-02-18 2019-09-20 Swift 5.0 2018-09-25 2019-03-25 Swift 4.2 2018-02-28 2018-09-17 Swift 4.1 2017-10-17 2018-03-29 Swift 4.0 2017-02-16 2017-09-19 Swift 3.1 2016-12-09 2017-03-27 Swift 3.0 2016-05-06 2016-09-13 Swift 2.2 2016-01-05 2016-03-21
Read the full README on GitHub

What Hacker News says

20 sources
> That swift code is painful to read. I you mean the Swift code in the article, that almost looks like Kotlin :-) Swift requires type constraints on the original add function, but infers them for addFive. func add<T> (x:T, y:T) -> T where T: Numeric { x + y } let addFive = {(y) in add(x: 5, y: y)} let result = addFive(3) Edit: in Swift 3, one could write func add<T>(x:T)(y:T) -> T where T: Numeric { return x + y } and call that as add(x: 2)(y: 3) or, in two steps, as let addTwo = add(2) addTwo(3) That functionality was removed, though. For reasoning behind that, see https://github.com/apple/swift-evolution/blob/main/proposals....
In Currying in Kotlin
> So in Lua the "first" element has an index of 1. There's absolutely nothing wrong with this. I’m beginning to wonder whether a language that doesn’t have indexes at all would be viable. Swift abandoned C-style for loops (https://github.com/apple/swift-evolution/blob/main/proposals...) It still has enumerated (https://developer.apple.com/documentation/swift/sequence/enu...()), though. That’s a special case of zip, though, and programs could use zip(items, 0...Int.max) or zip(items, 1...Int.max) according to their preference. Also, slices could be created using items.subrange( skip: 3, take: 5) instead of items.subrange( startIndex: 3, numItems: 5) Implementation-wise, those are identical, but conceptually, the first doesn’t use indexes
In Ask HN: Can Lua be remade to use 0-based numbering?
> Yeah, and by representing the differences this way, Rust allows you to easily decide whether an object is used directly or is wrapped in a rc box when its used, instead of when it's defined, often not by you, and when you change your mind you don't need to change all methods or functions than mutates it and all their call sites Changing a value type into a reference type is a pretty fundamental transformation because your local mutations now become non-local. Its not clear the Rust approach makes this any easier either, since you’d still have to update all call sites that perform mutation if suddenly one of your value types was now always wrapped in a box. > Whatever this is called you seem to agree that the syntax is hacked and it can get hard to understand what something means Result builders are just a way to build data types from th
Read the rest
e results of top-level expressions (hence their name). It’s not just a SwiftUI thing, they’re also used for regular expressions for example: https://github.com/apple/swift-evolution/blob/main/proposals...
In Ownership in Swift: Manifesto and meta-proposal (2017)
> It's super easy to cause its type check to timeout, which is something I haven't seen when using Rust. Yeah, the operator overloading design makes it too easy to construct an exponential search space. > For instance, Swift doesn't have the orphan rule, so it's possible that 2 packages implement the same protocol for the same type, and when this happens currently there are no solutions; There's now a warning about this: https://github.com/apple/swift-evolution/blob/main/proposals.... What other solutions can there be other than making it a hard error? It seems like an inherent drawback of typeclasses over first-class modules. > there is this strange design decision that classes and structs should be different things and each have their own set of random limitations structs in Swift are the same as structs in Rust, and a class is a heap-a
Read the rest
llocated reference counted box, like an Arc<Box<T>>. What are the random limitations? As far as I'm aware the behavioral differences between structs and classes are entirely explainable by the above. > and there is SwiftUI, which hacks on the syntax itself, making statements no longer mean what they are supposed to mean Result builders are a language feature and not part of SwiftUI: https://github.com/apple/swift-evolution/blob/main/proposals...
In Ownership in Swift: Manifesto and meta-proposal (2017)
The best description I know is https://www.hackingwithswift.com/articles/258/whats-new-in-s..., which refers to a few Swift Evolution docs: https://github.com/apple/swift-evolution/blob/main/proposals... https://github.com/apple/swift-evolution/blob/main/proposals... https://github.com/apple/swift-evolution/blob/main/proposals... The first is explicitly marked as “Implementation: Swift 5.9, without no-implicit-copy constraint”, but it seems the others also ¿partly? are in.
In Ownership in Swift: Manifesto and meta-proposal (2017)
C# made that change in C# 5 (2012) (https://ericlippert.com/2009/11/12/closing-over-the-loop-var...) Swift had the problem in C-style for loops but not in “for…in” loops (https://www.timekl.com/blog/2015/11/26/variable-capture-in-g...), but got rid of it when it removed C-style for loops altogether in Swift 3 (September 2016) (https://github.com/apple/swift-evolution/blob/main/proposals...)
In Since Go 1.22, loop {for I, p:= 0, new(int); p = &I; {p = &I}} might never exit

Showing the 15 most recent of 20 sources. Enable JavaScript to search and browse every indexed mention.

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.