Swift Digest
Proposals | Swift Evolution

Proposal一覧

Status

485 / 528 Proposals

SE-0528 Active Review

Continuation — Safe and Performant Async Continuations

Fabian Fett, Konrad Malawski

SE-0527 Active Review

RigidArray and UniqueArray

Karoy Lorentey, Alejandro Alonso

SE-0526 Active Review

withDeadline

Franz Busch, Philippe Hausler, Konrad Malawski

SE-0525 Active Review

Safe loading API for RawSpan

Guillaume Lessard

SE-0524 Accepted

Add withTemporaryAllocation using Output(Raw)Span

Max Desiatov

SE-0523 Accepted

Hashable conformance for UnownedTaskExecutor

Fabian Fett, Konrad Malawski

SE-0522 Accepted

Source-Level Control Over Compiler Warnings

Artem Chikin, Doug Gregor, Holly Borla

SE-0521 Active Review

Improved Syntax for Optionals of Opaque and Existential Types

Tony Allevato

SE-0520 Active Review

Discardable result use in Task initializers

Konrad 'ktoso' Malawski

SE-0519 Active review

Borrow and Inout types for safe, first-class references

Joe Groff, Alejandro Alonso

SE-0518 Implemented

~Sendable for explicitly marking non-Sendable types

Pavel Yaskevich

SE-0517 Active Review

UniqueBox

Alejandro Alonso

SE-0516 Returned for revision

Borrowing Sequence

Nate Cook, Ben Cohen

SE-0515 Accepted

Allow reduce to produce noncopyable results

Ben Cohen

SE-0514 Implemented

Hashable Conformance for Dictionary.Keys, CollectionOfOne and EmptyCollection

Clinton Nkwocha

SE-0513 Returned for revision

API to get the path to the current executable

Jonathan Grynspan

SE-0512 Implemented

Document that Mutex.withLockIfAvailable(_:) cannot spuriously fail

Jonathan Grynspan

SE-0511 Active Review

SwiftPM Add Target Plugin Command

Gage Halverson

SE-0510 Accepted with modifications

Introduce Dictionary.mapValuesWithKeys

Diana Ma

SE-0509 Implemented

Software Bill of Materials (SBOM) Generation for Swift Package Manager

Ev Cheng

SE-0508 Implemented

Array Expression Trailing Closures

Cal Stephens

SE-0507 Implemented

Borrow and Mutate Accessors

Meghana Gupta, Tim Kientzle

SE-0506 Accepted

Advanced Observation Tracking

Philippe Hausler

SE-0505 Returned for revision

Delayed Enqueuing for Executors

Alastair Houghton

SE-0504 Implemented

Task Cancellation Shields

Konrad 'ktoso' Malawski

SE-0503 Accepted

Suppressed Default Conformances on Associated Types With Defaults

Kavon Farvardin

SE-0502 Implemented

Exclude private initialized properties from memberwise initializer

Hamish Knight, Holly Borla

SE-0501 Accepted

HTML Coverage Report

Sam Khouri

SE-0500 Accepted

Improving package creation with custom templates: SwiftPM Template Initialization

John Bute

SE-0499 Implemented

Support ~Copyable, ~Escapable in simple standard library protocols

Ben Cohen

SE-0498 Implemented

Expose demangle function in Runtime module

Konrad 'ktoso' Malawski, Alejandro Alonso

SE-0497 Implemented

Controlling function definition visibility in clients

Doug Gregor

SE-0496 Implemented

@inline(always) attribute

Arnold Schwaighofer

SE-0495 Implemented

C compatible functions and enums

Alexis Laferrière

SE-0494 Implemented

Add isTriviallyIdentical(to:) Methods for Quick Comparisons to Concrete Types

Rick van Voorden, Karoy Lorentey

SE-0493 Implemented

Support async calls in defer bodies

Freddy Kellison-Linn

SE-0492 Implemented

Section Placement Control

Kuba Mracek

SE-0491 Implemented

Module selectors for name disambiguation

Becca Royal-Gordon

SE-0490 Returned for revision

Environment Constrained Shared Libraries

tayloraswift

SE-0489 Implemented

Improve EncodingError and DecodingError’s printed descriptions

Zev Eisenberg

SE-0488 Implemented

Apply the extracting() slicing pattern more widely

Guillaume Lessard

SE-0487 Implemented

Nonexhaustive enums

Pavel Yaskevich, Franz Busch, Cory Benfield

SE-0486 Implemented

Migration tooling for Swift features

Anthony Latsis, Pavel Yaskevich

SE-0485 Implemented

OutputSpan: delegate initialization of contiguous memory

Guillaume Lessard

SE-0484 Accepted

Allow Additional Arguments to @dynamicMemberLookup Subscripts

Itai Ferber

SE-0483 Implemented

InlineArray Type Sugar

Hamish Knight, Ben Cohen

SE-0482 Implemented

Binary Static Library Dependencies

Daniel Grumberg, Max Desiatov, Franz Busch

SE-0481 Implemented

weak let

Mykola Pokhylets

SE-0480 Implemented

Warning Control Settings for SwiftPM

Dmitrii Galimzianov

SE-0479 Returned for revision

Method and Initializer Key Paths

Amritpan Kaur, Pavel Yaskevich

SE-0478 Returned for revision

Default actor isolation typealias

Holly Borla

SE-0477 Implemented

Default Value in String Interpolations

Nate Cook

SE-0476 Implemented

Controlling the ABI of a function, initializer, property, or subscript

Becca Royal-Gordon

SE-0475 Implemented

Transactional Observation of Values

Philippe Hausler

SE-0474 Accepted

Yielding accessors

Ben Cohen, Nate Chandler, Joe Groff

SE-0473 Implemented

Clock Epochs

Philippe Hausler

SE-0472 Implemented

Starting tasks synchronously from caller context

Konrad 'ktoso' Malawski

SE-0471 Implemented

Improved Custom SerialExecutor isolation checking for Concurrency Runtime

Konrad 'ktoso' Malawski

SE-0470 Implemented

Global-actor isolated conformances

Doug Gregor

SE-0469 Implemented

Task Naming

Konrad Malawski, Harjas Monga

SE-0468 Implemented

Hashable conformance for Async(Throwing)Stream.Continuation

Mykola Pokhylets

SE-0467 Implemented

MutableSpan and MutableRawSpan: delegate mutations of contiguous memory

Guillaume Lessard

SE-0466 Implemented

Control default actor isolation inference

Holly Borla, Doug Gregor

SE-0465 Implemented

Standard Library Primitives for Nonescapable Types

Karoy Lorentey

SE-0464 Implemented

UTF8Span: Safe UTF-8 Processing Over Contiguous Bytes

Michael Ilseman, Guillaume Lessard

SE-0463 Implemented

Import Objective-C completion handler parameters as @Sendable

Holly Borla

SE-0462 Implemented

Task Priority Escalation APIs

Konrad 'ktoso' Malawski

SE-0461 Implemented

Run nonisolated async functions on the caller’s actor by default

Holly Borla, John McCall

SE-0460 Implemented

Explicit Specialization

Ben Cohen

SE-0459 Implemented

Add Collection Conformances for enumerated()

Alejandro Alonso

SE-0458 Implemented

Opt-in Strict Memory Safety Checking

Doug Gregor

SE-0457 Implemented

Expose attosecond representation of Duration

Philipp Gabriel

SE-0456 Implemented

Add Span-providing Properties to Standard Library Types

Guillaume Lessard

SE-0455 Accepted

SwiftPM @testable build setting

Jake Petroules

SE-0454 Accepted

Custom Allocator for Toolchain

Saleem Abdulrasool

SE-0453 Implemented

InlineArray, a fixed-size array

Alejandro Alonso

SE-0452 Implemented

Integer Generic Parameters

Alejandro Alonso, Joe Groff

SE-0451 Implemented

Raw identifiers

Tony Allevato

SE-0450 Implemented

Package traits

Franz Busch, Max Desiatov

SE-0449 Implemented

Allow nonisolated to prevent global actor inference

Sima Nerush, Holly Borla

SE-0448 Accepted

Regex lookbehind assertions

Jacob Hearst, Michael Ilseman

SE-0447 Implemented

Span: Safe Access to Contiguous Storage

Guillaume Lessard, Michael Ilseman, Andrew Trick

SE-0446 Implemented

Nonescapable Types

Andrew Trick, Tim Kientzle

SE-0445 Implemented

Improving String.Index’s printed descriptions

Karoy Lorentey

SE-0444 Implemented

Member import visibility

Allan Shortlidge

SE-0443 Implemented

Precise Control Flags over Compiler Warnings

Doug Gregor, Dmitrii Galimzianov

SE-0442 Implemented

Allow TaskGroup’s ChildTaskResult Type To Be Inferred

Richard L Zarth III

SE-0441 Implemented

Formalize ‘language mode’ terminology

James Dempsey

SE-0440 Implemented

DebugDescription Macro

Dave Lee

SE-0439 Implemented

Allow trailing comma in comma-separated lists

Mateus Rodrigues

SE-0438 Implemented

Metatype Keypaths

Amritpan Kaur, Pavel Yaskevich

SE-0437 Implemented

Noncopyable Standard Library Primitives

Karoy Lorentey

SE-0436 Implemented

Objective-C implementations in Swift

Becca Royal-Gordon

SE-0435 Implemented

Swift Language Version Per Target

Pavel Yaskevich

SE-0434 Implemented

Usability of global-actor-isolated types

Sima Nerush, Matt Massicotte, Holly Borla

SE-0433 Implemented

Synchronous Mutual Exclusion Lock

Alejandro Alonso

SE-0432 Implemented

Borrowing and consuming pattern matching for noncopyable types

Joe Groff

SE-0431 Implemented

@isolated(any) Function Types

John McCall

SE-0430 Implemented

sending parameter and result values

Michael Gottesman, Holly Borla, John McCall

SE-0429 Implemented

Partial consumption of noncopyable values

Michael Gottesman, Nate Chandler

SE-0428 Implemented

Resolve DistributedActor protocols for server-client apps

Konrad 'ktoso' Malawski, Pavel Yaskevich

SE-0427 Implemented

Noncopyable Generics

Kavon Farvardin, Tim Kientzle, Slava Pestov

SE-0426 Implemented

BitwiseCopyable

Kavon Farvardin, Guillaume Lessard, Nate Chandler, Tim Kientzle

SE-0425 Implemented

128-bit Integer Types

Stephen Canon

SE-0424 Implemented

Custom isolation checking for SerialExecutor

Konrad 'ktoso' Malawski

SE-0423 Implemented

Dynamic actor isolation enforcement from non-strict-concurrency contexts

Holly Borla, Pavel Yaskevich

SE-0422 Implemented

Expression macro as caller-side default argument

Apollo Zhu

SE-0421 Implemented

Generalize effect polymorphism for AsyncSequence and AsyncIteratorProtocol

Doug Gregor, Holly Borla

SE-0420 Implemented

Inheritance of actor isolation

John McCall, Holly Borla, Doug Gregor

SE-0419 Accepted

Swift Backtrace API

Alastair Houghton

SE-0418 Implemented

Inferring Sendable for methods and key path literals

Angela Laar, Kavon Farvardin, Pavel Yaskevich

SE-0417 Implemented

Task Executor Preference

Konrad 'ktoso' Malawski, John McCall, Franz Busch

SE-0416 Implemented

Subtyping for keypath literals as functions

Frederick Kellison-Linn

SE-0415 Implemented

Function Body Macros

Doug Gregor

SE-0414 Implemented

Region based Isolation

Michael Gottesman, Joshua Turcotti

SE-0413 Implemented

Typed throws

Jorge Revuelta, Torsten Lehmann, Doug Gregor

SE-0412 Implemented

Strict concurrency for global variables

John McCall, Sophia Poirier

SE-0411 Implemented

Isolated default value expressions

Holly Borla

SE-0410 Implemented

Low-Level Atomic Operations

Karoy Lorentey, Alejandro Alonso

SE-0409 Implemented

Access-level modifiers on import declarations

Alexis Laferrière

SE-0408 Implemented

Pack Iteration

Sima Nerush, Holly Borla

SE-0407 Implemented

Member Macro Conformances

Doug Gregor

SE-0406 Returned for revision

Backpressure support for AsyncStream

Franz Busch

SE-0405 Implemented

String Initializers with Encoding Validation

Guillaume Lessard

SE-0404 Implemented

Allow Protocols to be Nested in Non-Generic Contexts

Karl Wagner

SE-0403 Returned for Revision

Package Manager Mixed Language Target Support

Nick Cooke

SE-0402 Implemented

Generalize conformance macros as extension macros

Holly Borla

SE-0401 Implemented

Remove Actor Isolation Inference caused by Property Wrappers

BJ Homer

SE-0400 Implemented

Init Accessors

Holly Borla, Doug Gregor

SE-0399 Implemented

Tuple of value pack expansion

Sophia Poirier, Holly Borla

SE-0398 Implemented

Allow Generic Types to Abstract Over Packs

Slava Pestov, Holly Borla

SE-0397 Implemented

Freestanding Declaration Macros

Doug Gregor, Richard Wei, Holly Borla

SE-0396 Implemented

Conform Never to Codable

Nate Cook

SE-0395 Implemented

Observation

Philippe Hausler, Nate Cook

SE-0394 Implemented

Package Manager Support for Custom Macros

Boris Buegling, Doug Gregor

SE-0393 Implemented

Value and Type Parameter Packs

Holly Borla, John McCall, Slava Pestov

SE-0392 Implemented

Custom Actor Executors

Konrad 'ktoso' Malawski, John McCall, Kavon Farvardin

SE-0391 Implemented

Package Registry Publish

Yim Lee

SE-0390 Implemented

Noncopyable structs and enums

Joe Groff, Michael Gottesman, Andrew Trick, Kavon Farvardin

SE-0389 Implemented

Attached Macros

Doug Gregor, Holly Borla, Richard Wei

SE-0388 Implemented

Convenience Async[Throwing]Stream.makeStream methods

Franz Busch

SE-0387 Implemented

Swift SDKs for Cross-Compilation

Max Desiatov, Saleem Abdulrasool, Evan Wilde

SE-0386 Implemented

New access modifier: package

Ellie Shin, Alexis Laferriere

SE-0385 Returned for revision

Custom Reflection Metadata

Pavel Yaskevich, Holly Borla, Alejandro Alonso, Stuart Montgomery

SE-0384 Implemented

Importing Forward Declared Objective-C Interfaces and Protocols

Nuri Amari

SE-0383 Implemented

Deprecate @UIApplicationMain and @NSApplicationMain

Robert Widmann

SE-0382 Implemented

Expression Macros

Doug Gregor

SE-0381 Implemented

DiscardingTaskGroups

Cory Benfield, Konrad Malawski

SE-0380 Implemented

if and switch expressions

Ben Cohen, Hamish Knight

SE-0379 Returned for revision

Swift Opt-In Reflection Metadata

Max Ovtsin

SE-0378 Implemented

Package Registry Authentication

Yim Lee

SE-0377 Implemented

borrowing and consuming parameter ownership modifiers

Michael Gottesman, Joe Groff

SE-0376 Implemented

Function Back Deployment

Allan Shortlidge

SE-0375 Implemented

Opening existential arguments to optional parameters

Doug Gregor

SE-0374 Implemented

Add sleep(for:) to Clock

Brandon Williams, Stephen Celis

SE-0373 Implemented

Lift all limitations on variables in result builders

Pavel Yaskevich

SE-0372 Implemented

Document Sorting as Stable

Nate Cook

SE-0371 Implemented

Isolated synchronous deinit

Mykola Pokhylets

SE-0370 Implemented

Pointer Family Initialization Improvements and Better Buffer Slices

Guillaume Lessard

SE-0369 Implemented

Add CustomDebugStringConvertible conformance to AnyKeyPath

Ben Pious

SE-0368 Implemented

StaticBigInt

Ben Rimmington

SE-0367 Implemented

Conditional compilation for attributes

Doug Gregor

SE-0366 Implemented

consume operator to end the lifetime of a variable binding

Michael Gottesman, Andrew Trick, Joe Groff

SE-0365 Implemented

Allow implicit self for weak self captures, after self is unwrapped

Cal Stephens

SE-0364 Implemented

Warning for Retroactive Conformances of External Types

Harlan Haskins

SE-0363 Implemented

Unicode for String Processing

Nate Cook, Alejandro Alonso

SE-0362 Implemented

Piecemeal adoption of upcoming language improvements

Doug Gregor

SE-0361 Implemented

Extensions on bound generic types

Holly Borla

SE-0360 Implemented

Opaque result types with limited availability

Pavel Yaskevich

SE-0359 Returned for revision

Build-Time Constant Values

Artem Chikin, Ben Cohen, Xi Ge

SE-0358 Implemented

Primary Associated Types in the Standard Library

Karoy Lorentey

SE-0357 Implemented

Regex-powered string processing algorithms

Tina Liu, Michael Ilseman, Nate Cook, Tim Vermeulen

SE-0356 Implemented

Swift Snippets

Ashley Garland

SE-0355 Implemented

Regex Syntax and Run-time Construction

Hamish Knight, Michael Ilseman

SE-0354 Implemented

Regex Literals

Hamish Knight, Michael Ilseman, David Ewing

SE-0353 Implemented

Constrained Existential Types

Robert Widmann

SE-0352 Implemented

Implicitly Opened Existentials

Doug Gregor

SE-0351 Implemented

Regex builder DSL

Richard Wei, Michael Ilseman, Nate Cook, Alejandro Alonso

SE-0350 Implemented

Regex Type and Overview

Michael Ilseman

SE-0349 Implemented

Unaligned Loads and Stores from Raw Memory

Guillaume Lessard, Andrew Trick

SE-0348 Implemented

buildPartialBlock for result builders

Richard Wei

SE-0347 Implemented

Type inference from default expressions

Pavel Yaskevich

SE-0346 Implemented

Lightweight same-type requirements for primary associated types

Pavel Yaskevich, Holly Borla, Slava Pestov

SE-0345 Implemented

if let shorthand for shadowing an existing optional variable

Cal Stephens

SE-0344 Implemented

Distributed Actor Runtime

Konrad 'ktoso' Malawski, Pavel Yaskevich, Doug Gregor, Kavon Farvardin, Dario Rexin, Tomer Doron

SE-0343 Implemented

Concurrency in Top-level Code

Evan Wilde

SE-0342 Accepted

Statically link Swift runtime libraries by default on supported platforms

neonichu, tomerd

SE-0341 Implemented

Opaque Parameter Declarations

Doug Gregor

SE-0340 Implemented

Unavailable From Async Attribute

Evan Wilde

SE-0339 Implemented

Module Aliasing For Disambiguation

Ellie Shin

SE-0338 Implemented

Clarify the Execution of Non-Actor-Isolated Async Functions

John McCall

SE-0337 Implemented

Incremental migration to concurrency checking

Doug Gregor, Becca Royal-Gordon

SE-0336 Implemented

Distributed Actor Isolation

Konrad 'ktoso' Malawski, Pavel Yaskevich, Doug Gregor, Kavon Farvardin

SE-0335 Implemented

Introduce existential any

Holly Borla

SE-0334 Implemented

Pointer API Usability Improvements

Guillaume Lessard, Andrew Trick

SE-0333 Implemented

Expand usability of withMemoryRebound

Guillaume Lessard, Andrew Trick

SE-0332 Implemented

Package Manager Command Plugins

Anders Bertelrud

SE-0331 Implemented

Remove Sendable conformance from unsafe pointer types

Andrew Trick

SE-0330 Returned for revision

Conditionals in Collections

John Holdsworth

SE-0329 Implemented

Clock, Instant, and Duration

Philippe Hausler

SE-0328 Implemented

Structural opaque result types

Benjamin Driscoll, Holly Borla

SE-0327 Implemented

On Actors and Initialization

Kavon Farvardin, John McCall, Konrad Malawski

SE-0326 Implemented

Enable multi-statement closure parameter/result type inference

Pavel Yaskevich

SE-0325 Implemented

Additional Package Plugin APIs

Anders Bertelrud

SE-0324 Implemented

Relax diagnostics for pointer arguments to C functions

Andrew Trick, Pavel Yaskevich

SE-0323 Implemented

Asynchronous Main Semantics

Evan Wilde

SE-0322 Implemented

Temporary uninitialized buffers

Jonathan Grynspan

SE-0321 Accepted

Package Registry Service - Publish Endpoint

Whitney Imura, Mattt Zmuda

SE-0320 Implemented

Allow coding of non String / Int keyed Dictionary into a KeyedContainer

Morten Bek Ditlevsen

SE-0319 Implemented

Conform Never to Identifiable

Kyle Macomber

SE-0318 Returned for revision

Package Creation

Miguel Perez

SE-0317 Implemented

async let bindings

John McCall, Joe Groff, Doug Gregor, Konrad 'ktoso' Malawski

SE-0316 Implemented

Global actors

John McCall, Doug Gregor

SE-0315 Implemented

Type placeholders (formerly, “Placeholder types”)

Frederick Kellison-Linn

SE-0314 Implemented

AsyncStream and AsyncThrowingStream

Philippe Hausler, Tony Parker, Ben D. Jones, Nate Cook

SE-0313 Implemented

Improved control over actor isolation

Doug Gregor, Chris Lattner

SE-0312 Returned for revision

Add indexed() and Collection conformances for enumerated() and zip(_:_:)

Tim Vermeulen

SE-0311 Implemented

Task Local Values

Konrad 'ktoso' Malawski

SE-0310 Implemented

Effectful Read-only Properties

Kavon Farvardin

SE-0309 Implemented

Unlock existentials for all protocols

Anthony Latsis, Filip Sakel, Suyash Srijan

SE-0308 Implemented

#if for postfix member expressions

Rintaro Ishizaki

SE-0307 Implemented

Allow interchangeable use of CGFloat and Double types

Pavel Yaskevich

SE-0306 Implemented

Actors

John McCall, Doug Gregor, Konrad Malawski, Chris Lattner

SE-0305 Implemented

Package Manager Binary Target Improvements

Anders Bertelrud, Tom Doron

SE-0304 Implemented

Structured concurrency

John McCall, Joe Groff, Doug Gregor, Konrad Malawski

SE-0303 Implemented

Package Manager Extensible Build Tools

Anders Bertelrud, Konrad 'ktoso' Malawski, Tom Doron

SE-0302 Implemented

Sendable and @Sendable closures

Chris Lattner, Doug Gregor

SE-0301 Implemented

Package Editor Commands

Owen Voorhees

SE-0300 Implemented

Continuations for interfacing async tasks with synchronous code

John McCall, Joe Groff, Doug Gregor, Konrad Malawski

SE-0299 Implemented

Extending Static Member Lookup in Generic Contexts

Pavel Yaskevich, Sam Lazarus, Matt Ricketson

SE-0298 Implemented

Async/Await: Sequences

Tony Parker, Philippe Hausler

SE-0297 Implemented

Concurrency Interoperability with Objective-C

Doug Gregor

SE-0296 Implemented

Async/await

John McCall, Doug Gregor

SE-0295 Implemented

Codable synthesis for enums with associated values

Dario Rexin

SE-0294 Implemented

Declaring executable targets in Package Manifests

Anders Bertelrud

SE-0293 Implemented

Extend Property Wrappers to Function and Closure Parameters

Holly Borla, Filip Sakel

SE-0292 Implemented

Package Registry Service

Bryan Clark, Whitney Imura, Mattt Zmuda

SE-0291 Implemented

Package Collections

Boris Bügling, Yim Lee, Tom Doron

SE-0290 Implemented

Unavailability Condition

Bruno Rocha

SE-0289 Implemented

Result builders

John McCall, Doug Gregor

SE-0287 Implemented

Extend implicit member syntax to cover chains of member references

Frederick Kellison-Linn

SE-0286 Implemented

Forward-scan matching for trailing closures

Doug Gregor

SE-0285 Implemented

Ease the transition to concise magic file strings

Becca Royal-Gordon

SE-0284 Implemented

Allow Multiple Variadic Parameters in Functions, Subscripts, and Initializers

Owen Voorhees

SE-0283 Returned for revision

Tuples Conform to Equatable, Comparable, and Hashable

Alejandro Alonso

SE-0282 Implemented

Clarify the Swift memory consistency model

Karoy Lorentey

SE-0281 Implemented

@main: Type-Based Program Entry Points

Nate Cook, Nate Chandler, Matt Ricketson

SE-0280 Implemented

Enum cases as protocol witnesses

Suyash Srijan

SE-0279 Implemented

Multiple Trailing Closures

Kyle Macomber, Pavel Yaskevich, Doug Gregor, John McCall

SE-0278 Implemented

Package Manager Localized Resources

David Hart

SE-0277 Implemented

Float16

Stephen Canon

SE-0276 Implemented

Multi-Pattern Catch Clauses

Owen Voorhees

SE-0274 Implemented

Concise magic file names

Becca Royal-Gordon, Dave DeLong

SE-0273 Partially implemented

Package Manager Conditional Target Dependencies

David Hart

SE-0272 Implemented

Package Manager Binary Dependencies

Braden Scothern, Daniel Dunbar, Franz Busch

SE-0271 Implemented

Package Manager Resources

Anders Bertelrud, Ankit Aggarwal

SE-0270 Implemented

Add Collection Operations on Noncontiguous Elements

Nate Cook, Jeremy Schonfeld

SE-0269 Implemented

Increase availability of implicit self in @escaping closures when reference cycles are unlikely to occur

Frederick Kellison-Linn

SE-0268 Implemented

Refine didSet Semantics

Suyash Srijan

SE-0267 Implemented

where clauses on contextually generic declarations

Anthony Latsis

SE-0266 Implemented

Synthesized Comparable conformance for enum types

Diana Ma (taylorswift)

SE-0265 Returned for revision

Offset-Based Access to Indices, Elements, and Slices

Michael Ilseman

SE-0264 Implemented

Standard Library Preview Package

Ben Cohen, Max Moiseev, Nate Cook

SE-0263 Implemented

Add a String Initializer with Access to Uninitialized Storage

David Smith

SE-0261 Implemented

Identifiable Protocol

Matthew Johnson, Kyle Macomber

SE-0260 Implemented

Library Evolution for Stable ABIs

Jordan Rose, Ben Cohen

SE-0259 Returned for revision

Approximate Equality for Floating Point

Stephen Canon

SE-0258 Implemented

Property Wrappers

Doug Gregor, Joe Groff

SE-0257 Returned for revision

Eliding commas from multiline expression lists

Nate Chandler, Matthew Johnson

SE-0255 Implemented

Implicit returns from single-expression functions

Nate Chandler

SE-0254 Implemented

Static and class subscripts

Becca Royal-Gordon

SE-0253 Implemented

Callable values of user-defined nominal types

Richard Wei, Dan Zheng

SE-0252 Implemented

Key Path Member Lookup

Doug Gregor, Pavel Yaskevich

SE-0251 Implemented with Modifications

SIMD additions

Stephen Canon

SE-0250 Returned for revision

Swift Code Style Guidelines and Formatter

Tony Allevato, Dave Abrahams

SE-0249 Implemented

Key Path Expressions as Functions

Stephen Celis, Greg Titus

SE-0248 Implemented

String Gaps and Missing APIs

Michael Ilseman

SE-0247 Implemented

Contiguous Strings

Michael Ilseman

SE-0245 Implemented

Add an Array Initializer with Access to Uninitialized Storage

Nate Cook

SE-0244 Implemented

Opaque Result Types

Doug Gregor, Joe Groff

SE-0242 Implemented

Synthesize default values for the memberwise initializer

Alejandro Alonso

SE-0241 Implemented

Deprecate String Index Encoded Offsets

Michael Ilseman

SE-0240 Implemented

Ordered Collection Diffing

Scott Perry, Kyle Macomber

SE-0239 Implemented

Add Codable conformance to Range types

Dale Buckley, Ben Cohen, Maxim Moiseev

SE-0238 Implemented

Package Manager Target Specific Build Settings

Ankit Aggarwal

SE-0237 Implemented

Introduce withContiguous{Mutable}StorageIfAvailable methods

Ben Cohen

SE-0236 Implemented

Package Manager Platform Deployment Settings

Ankit Aggarwal

SE-0235 Implemented

Add Result to the Standard Library

Jon Shier

SE-0234 Implemented

Remove Sequence.SubSequence

Ben Cohen

SE-0233 Implemented

Make Numeric Refine a new AdditiveArithmetic Protocol

Richard Wei

SE-0232 Implemented

Remove Some Customization Points from the Standard Library’s Collection Hierarchy

Ben Cohen

SE-0230 Implemented

Flatten nested optionals resulting from ‘try?’

BJ Homer

SE-0229 Implemented

SIMD Vectors

Stephen Canon

SE-0228 Implemented

Fix ExpressibleByStringInterpolation

Becca Royal-Gordon, Michael Ilseman

SE-0227 Implemented

Identity key path

Joe Groff

SE-0226 Partially implemented

Package Manager Target Based Dependency Resolution

Ankit Aggarwal

SE-0225 Implemented

Adding isMultiple to BinaryInteger

Robert MacEachern, Micah Hansonbrook

SE-0224 Implemented

Support ‘less than’ operator in compilation conditions

Daniel Martín

SE-0221 Implemented

Character Properties

Michael Ilseman, Tony Allevato

SE-0220 Implemented

count(where:)

Soroush Khanlou

SE-0219 Implemented

Package Manager Dependency Mirroring

Ankit Aggarwal

SE-0218 Implemented

Introduce compactMapValues to Dictionary

Daiki Matsudate

SE-0216 Implemented

Introduce user-defined dynamically “callable” types

Chris Lattner, Dan Zheng

SE-0215 Implemented

Conform Never to Equatable and Hashable

Matt Diephouse

SE-0214 Implemented

Renaming the DictionaryLiteral type to KeyValuePairs

Erica Sadun, Chéyo Jiménez

SE-0213 Implemented

Literal initialization via coercion

Pavel Yaskevich

SE-0212 Implemented

Compiler Version Directive

David Hart

SE-0211 Implemented

Add Unicode Properties to Unicode.Scalar

Tony Allevato

SE-0210 Implemented

Add an offset(of:) method to MemoryLayout

Joe Groff

SE-0209 Implemented

Package Manager Swift Language Version API Update

Ankit Aggarwal

SE-0208 Implemented

Package Manager System Library Targets

Ankit Aggarwal, Daniel Dunbar

SE-0207 Implemented

Add an allSatisfy algorithm to Sequence

Ben Cohen

SE-0206 Implemented

Hashable Enhancements

Karoy Lorentey, Vincent Esche

SE-0205 Implemented

withUnsafePointer(to:_:) and withUnsafeBytes(of:_:) for immutable values

Joe Groff

SE-0204 Implemented

Add last(where:) and lastIndex(where:) Methods

Nate Cook

SE-0202 Implemented

Random Unification

Alejandro Alonso

SE-0201 Implemented

Package Manager Local Dependencies

Ankit Aggarwal

SE-0200 Implemented

Enhancing String Literals Delimiters to Support Raw Text

John Holdsworth, Becca Royal-Gordon, Erica Sadun

SE-0199 Implemented

Adding toggle to Bool

Chris Eidhof

SE-0198 Implemented

Playground QuickLook API Revamp

Connor Wakamo

SE-0197 Implemented

Adding in-place removeAll(where:) to the Standard Library

Ben Cohen

SE-0196 Implemented

Compiler Diagnostic Directives

Harlan Haskins

SE-0195 Implemented

Introduce User-defined “Dynamic Member Lookup” Types

Chris Lattner

SE-0194 Implemented

Derived Collection of Enum Cases

Jacob Bandes-Storch, Becca Royal-Gordon, Robert Widmann

SE-0193 Implemented

Cross-module inlining and specialization

Slava Pestov

SE-0192 Implemented

Handling Future Enum Cases

Jordan Rose

SE-0191 Implemented

Eliminate IndexDistance from Collection

Ben Cohen

SE-0190 Implemented

Target environment platform condition

Erica Sadun, Graydon Hoare

SE-0189 Implemented

Restrict Cross-module Struct Initializers

Jordan Rose

SE-0188 Implemented

Make Standard Library Index Types Hashable

Nate Cook

SE-0187 Implemented

Introduce Sequence.compactMap(_:)

Max Moiseev

SE-0186 Implemented

Remove ownership keyword support in protocols

Greg Spiers

SE-0185 Implemented

Synthesizing Equatable and Hashable conformance

Tony Allevato

SE-0184 Implemented

Unsafe[Mutable][Raw][Buffer]Pointer: add missing methods, adjust existing labels for clarity, and remove deallocation size

Diana Ma (“Taylor Swift”)

SE-0183 Implemented

Substring performance affordances

Ben Cohen

SE-0182 Implemented

String Newline Escaping

John Holdsworth, David Hart, Adrian Zubarev

SE-0181 Implemented

Package Manager C/C++ Language Standard Support

Ankit Aggarwal

SE-0180 Implemented

String Index Overhaul

Dave Abrahams

SE-0179 Implemented

Swift run Command

David Hart

SE-0178 Implemented

Add unicodeScalars property to Character

Ben Cohen

SE-0177 Returned for revision

Add clamp(to:) to the stdlib

Nicholas Maccharoli

SE-0176 Implemented

Enforce Exclusive Access to Memory

John McCall

SE-0175 Implemented

Package Manager Revised Dependency Resolution

Rick Ballard

SE-0174 Implemented

Change RangeReplaceableCollection.filter to return Self

Ben Cohen

SE-0173 Implemented

Add MutableCollection.swapAt(_:_:)

Ben Cohen

SE-0172 Implemented

One-sided Ranges

Ben Cohen, Dave Abrahams, Becca Royal-Gordon

SE-0171 Implemented

Reduce with inout

Chris Eidhof

SE-0170 Implemented

NSNumber bridging and Numeric types

Philippe Hausler

SE-0169 Implemented

Improve Interaction Between private Declarations and Extensions

David Hart, Chris Lattner

SE-0168 Implemented

Multi-Line String Literals

John Holdsworth, Becca Royal-Gordon, Tyler Cloutier

SE-0167 Implemented

Swift Encoders

Itai Ferber, Michael LeHew, Tony Parker

SE-0166 Implemented

Swift Archival & Serialization

Itai Ferber, Michael LeHew, Tony Parker

SE-0165 Implemented

Dictionary & Set Enhancements

Nate Cook

SE-0164 Implemented

Remove final support in protocol extensions

Brian King

SE-0163 Implemented

String Revision: Collection Conformance, C Interop, Transcoding

Ben Cohen, Dave Abrahams

SE-0162 Implemented

Package Manager Custom Target Layouts

Ankit Aggarwal

SE-0161 Implemented

Smart KeyPaths: Better Key-Value Coding for Swift

David Smith, Michael LeHew, Joe Groff

SE-0160 Implemented

Limiting @objc inference

Doug Gregor

SE-0158 Implemented

Package Manager Manifest API Redesign

Ankit Aggarwal

SE-0157 Implemented

Support recursive constraints on associated types

Douglas Gregor, Erica Sadun, Austin Zheng

SE-0156 Implemented

Class and Subtype existentials

David Hart, Austin Zheng

SE-0155 Implemented

Normalize Enum Case Representation

Daniel Duan, Joe Groff

SE-0154 Implemented

Provide Custom Collections for Dictionary Keys and Values

Nate Cook

SE-0152 Implemented

Package Manager Tools Version

Rick Ballard

SE-0151 Implemented

Package Manager Swift Language Compatibility Version

Daniel Dunbar, Rick Ballard

SE-0150 Implemented

Package Manager Support for branches

Boris Bügling

SE-0149 Implemented

Package Manager Support for Top of Tree development

Boris Bügling

SE-0148 Implemented

Generic Subscripts

Chris Eidhof

SE-0147 Implemented

Move UnsafeMutablePointer.initialize(from:) to UnsafeMutableBufferPointer

Ben Cohen

SE-0146 Implemented

Package Manager Product Definitions

Anders Bertelrud

SE-0145 Implemented

Package Manager Version Pinning

Daniel Dunbar, Ankit Aggarwal, Graydon Hoare

SE-0143 Implemented

Conditional conformances

Doug Gregor

SE-0142 Implemented

Permit where clauses to constrain associated types

David Hart, Jacob Bandes-Storch, Doug Gregor

SE-0141 Implemented

Availability by Swift version

Graydon Hoare

SE-0140 Implemented

Warn when Optional converts to Any, and bridge Optional As Its Payload Or NSNull

Joe Groff

SE-0139 Implemented

Bridge Numeric Types to NSNumber and Cocoa Structs to NSValue

Joe Groff

SE-0138 Implemented

UnsafeRawBufferPointer

Andrew Trick

SE-0137 Implemented

Avoiding Lock-In to Legacy Protocol Designs

Dave Abrahams, Dmitri Gribenko

SE-0136 Implemented

Memory layout of values

Xiaodi Wu

SE-0135 Implemented

Package Manager Support for Differentiating Packages by Swift version

Anders Bertelrud

SE-0134 Implemented

Rename two UTF8-related properties on String

Xiaodi Wu, Erica Sadun

SE-0133 Implemented

Rename flatten() to joined()

Jacob Bandes-Storch

SE-0131 Implemented

Add AnyHashable to the standard library

Dmitri Gribenko

SE-0130 Implemented

Replace repeating Character and UnicodeScalar forms of String.init

Roman Levenstein

SE-0129 Implemented

Package Manager Test Naming Conventions

Anders Bertelrud

SE-0128 Implemented

Change failable UnicodeScalar initializers to failable

Xin Tong

SE-0127 Implemented

Cleaning up stdlib Pointer and Buffer Routines

Charlie Monroe

SE-0125 Implemented

Remove NonObjectiveCBase and isUniquelyReferenced

Arnold Schwaighofer

SE-0124 Implemented

Int.init(ObjectIdentifier) and UInt.init(ObjectIdentifier) should have a bitPattern: label

Arnold Schwaighofer

SE-0121 Implemented

Remove Optional Comparison Operators

Jacob Bandes-Storch

SE-0120 Implemented

Revise partition Method Signature

Lorenzo Racca, Jeff Hajewski, Nate Cook

SE-0118 Implemented

Closure Parameter Names and Labels

Dave Abrahams, Dmitri Gribenko, Maxim Moiseev

SE-0117 Implemented

Allow distinguishing between public access and public overridability

Javier Soto, John McCall

SE-0116 Implemented

Import Objective-C id as Swift Any type

Joe Groff

SE-0115 Implemented

Rename Literal Syntax Protocols

Matthew Johnson

SE-0114 Implemented

Updating Buffer “Value” Names to “Header” Names

Erica Sadun

SE-0113 Implemented

Add integral rounding functions to FloatingPoint

Karl Wagner

SE-0112 Implemented

Improved NSError Bridging

Doug Gregor, Charles Srstka

SE-0111 Implemented

Remove type system significance of function argument labels

Austin Zheng

SE-0110 Implemented

Distinguish between single-tuple and multiple-argument function types

Vladimir S., Austin Zheng

SE-0109 Implemented

Remove the Boolean protocol

Anton Zhilin, Chris Lattner

SE-0107 Implemented

UnsafeRawPointer API

Andrew Trick

SE-0106 Implemented

Add a macOS Alias for the OSX Platform Configuration Test

Erica Sadun

SE-0104 Implemented

Protocol-oriented integers

Dave Abrahams, Maxim Moiseev

SE-0103 Implemented

Make non-escaping closures the default

Trent Nadeau

SE-0102 Implemented

Remove @noreturn attribute and introduce an empty Never type

Joe Groff

SE-0101 Implemented

Reconfiguring sizeof and related functions into a unified MemoryLayout struct

Erica Sadun, Dave Abrahams

SE-0099 Implemented

Restructuring Condition Clauses

Erica Sadun, Chris Lattner

SE-0096 Implemented

Converting dynamicType from a property to an operator

Erica Sadun

SE-0095 Implemented

Replace protocol<P1,P2> syntax with P1 & P2 syntax

Adrian Zubarev, Austin Zheng

SE-0094 Implemented

Add sequence(first:next:) and sequence(state:next:) to the stdlib

Lily Ballard, Erica Sadun

SE-0093 Implemented

Adding a public base property to slices

Max Moiseev

SE-0092 Implemented

Typealiases in protocols and protocol extensions

David Hart, Doug Gregor

SE-0091 Implemented

Improving operator requirements in protocols

Tony Allevato, Doug Gregor

SE-0090 Returned for revision

Remove .self and freely allow type references in expressions

Joe Groff, Tanner Nelson

SE-0089 Implemented

Renaming String.init<T>(_: T)

Austin Zheng, Becca Royal-Gordon

SE-0088 Implemented

Modernize libdispatch for Swift 3 naming conventions

Matt Wright

SE-0086 Implemented

Drop NS Prefix in Swift Foundation

Tony Parker, Philippe Hausler

SE-0085 Implemented

Package Manager Command Names

Rick Ballard, Daniel Dunbar

SE-0082 Implemented

Package Manager Editable Packages

Daniel Dunbar

SE-0081 Implemented

Move where clause to end of declaration

David Hart, Robert Widmann, Pyry Jahkola

SE-0080 Implemented

Failable Numeric Conversion Initializers

Matthew Johnson

SE-0079 Implemented

Allow using optional binding to upgrade self from a weak to strong reference

Evan Maloney

SE-0078 Returned for revision

Implement a rotate algorithm, equivalent to std::rotate() in C++

Nate Cook, Sergey Bolshedvorsky

SE-0077 Implemented

Improved operator declarations

Anton Zhilin

SE-0076 Implemented

Add overrides taking an UnsafePointer source to non-destructive copying methods on UnsafeMutablePointer

Janosch Hildebrand

SE-0075 Implemented

Adding a Build Configuration Import Test

Erica Sadun

SE-0072 Implemented

Fully eliminate implicit bridging conversions from Swift

Joe Pamer

SE-0071 Implemented

Allow (most) keywords in member references

Doug Gregor

SE-0070 Implemented

Make Optional Requirements Objective-C-only

Doug Gregor

SE-0069 Implemented

Mutability and Foundation Value Types

Tony Parker

SE-0068 Implemented

Expanding Swift Self to class members and value types

Erica Sadun

SE-0067 Implemented

Enhanced Floating Point Protocols

Stephen Canon

SE-0066 Implemented

Standardize function type argument syntax to require parentheses

Chris Lattner

SE-0065 Implemented

A New Model for Collections and Indices

Dmitri Gribenko, Dave Abrahams, Maxim Moiseev

SE-0064 Implemented

Referencing the Objective-C selector of property getters and setters

David Hart

SE-0063 Implemented

SwiftPM System Module Search Paths

Max Howell

SE-0062 Implemented

Referencing Objective-C key-paths

David Hart

SE-0061 Implemented

Add Generic Result and Error Handling to autoreleasepool()

Timothy J. Wood

SE-0060 Implemented

Enforcing order of defaulted parameters

Joe Groff

SE-0059 Implemented

Update API Naming Guidelines and Rewrite Set APIs Accordingly

Dave Abrahams

SE-0057 Implemented

Importing Objective-C Lightweight Generics

Doug Gregor

SE-0055 Implemented

Make unsafe pointer nullability explicit using Optional

Jordan Rose

SE-0054 Implemented

Abolish ImplicitlyUnwrappedOptional type

Chris Willmore

SE-0053 Implemented

Remove explicit use of let from Function Parameters

Nicholas Maccharoli

SE-0052 Implemented

Change IteratorType post-nil guarantee

Patrick Pijnappel

SE-0049 Implemented

Move @noescape and @autoclosure to be type attributes

Chris Lattner

SE-0048 Implemented

Generic Type Aliases

Chris Lattner

SE-0047 Implemented

Defaulting non-Void functions so they warn on unused results

Erica Sadun, Adrian Kashivskyy

SE-0046 Implemented

Establish consistent label behavior across all parameters including first labels

Jake Carter, Erica Sadun

SE-0045 Implemented

Add prefix(while:) and drop(while:) to the stdlib

Lily Ballard

SE-0044 Implemented

Import as member

Michael Ilseman

SE-0043 Implemented

Declare variables in ‘case’ labels with multiple patterns

Andrew Bennett

SE-0040 Implemented

Replacing Equal Signs with Colons For Attribute Arguments

Erica Sadun

SE-0039 Implemented

Modernizing Playground Literals

Erica Sadun

SE-0038 Implemented

Package Manager C Language Target Support

Daniel Dunbar

SE-0037 Implemented

Clarify interaction between comments & operators

Jesse Rusak

SE-0036 Implemented

Requiring Leading Dot Prefixes for Enum Instance Member Implementations

Erica Sadun, Chris Lattner

SE-0035 Implemented

Limiting inout capture to @noescape contexts

Joe Groff

SE-0034 Implemented

Disambiguating Line Control Statements from Debugging Identifiers

Erica Sadun

SE-0033 Implemented

Import Objective-C Constants as Swift Types

Jeff Kelley

SE-0032 Implemented

Add first(where:) method to Sequence

Lily Ballard

SE-0031 Implemented

Adjusting inout Declarations for Type Decoration

Joe Groff, Erica Sadun

SE-0029 Implemented

Remove implicit tuple splat behavior from function applications

Chris Lattner

SE-0028 Implemented

Modernizing Swift’s Debugging Identifiers

Erica Sadun

SE-0025 Implemented

Scoped Access Level

Ilya Belenkiy

SE-0023 Implemented

API Design Guidelines

Dave Abrahams, Doug Gregor, Dmitri Gribenko, Ted Kremenek, Chris Lattner, Alex Migicovsky, Max Moiseev, Ali Ozer, Tony Parker

SE-0022 Implemented

Referencing the Objective-C selector of a method

Doug Gregor

SE-0021 Implemented

Naming Functions with Argument Labels

Doug Gregor

SE-0020 Implemented

Swift Language Version Build Configuration

Ashley Garland

SE-0019 Implemented

Swift Testing

Max Howell, Daniel Dunbar, Mattt Thompson

SE-0018 Returned for revision

Flexible Memberwise Initialization

Matthew Johnson

SE-0017 Implemented

Change Unmanaged to use UnsafePointer

Jacob Bandes-Storch

SE-0016 Implemented

Add initializers to Int and UInt to convert from UnsafePointer and UnsafeMutablePointer

Michael Buckley

SE-0015 Implemented

Tuple comparison operators

Lily Ballard

SE-0014 Implemented

Constraining AnySequence.init

Max Moiseev

SE-0011 Implemented

Replace typealias keyword with associatedtype for associated type declarations

Loïc Lecrenier

SE-0008 Implemented

Add a Lazy flatMap for Sequences of Optionals

Oisin Kidney

SE-0007 Implemented

Remove C-style for-loops with conditions and incrementers

Erica Sadun

SE-0006 Implemented

Apply API Guidelines to the Standard Library

Dave Abrahams, Dmitri Gribenko, Maxim Moiseev

SE-0005 Implemented

Better Translation of Objective-C APIs Into Swift

Doug Gregor, Dave Abrahams

SE-0004 Implemented

Remove the ++ and -- operators

Chris Lattner

SE-0003 Implemented

Removing var from Function Parameters

Ashley Garland

SE-0002 Implemented

Removing currying func declaration syntax

Joe Groff

SE-0001 Implemented

Allow (most) keywords as argument labels

Doug Gregor