You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+90-33Lines changed: 90 additions & 33 deletions
Original file line number
Diff line number
Diff line change
@@ -38,7 +38,7 @@ concretely, this release is focused on several key areas:
38
38
**How do we maintain high performance?*: Resilient implementations often incur more execution overhead than non-resilient (or *fragile*) implementations, because resilient implementations need to leave some details unspecified until load time, such as the specific sizes of a class or offsets of a stored property.
39
39
***Portability**: Make Swift available on other platforms and ensure that one can write portable Swift code that works properly on all of those platforms.
40
40
***Type system cleanup and documentation**: Revisit and document the various subtyping and conversion rules in the type system, as well as their implementation in the compiler's type checker. The intent is to converge on a smaller, simpler type system that is more rigorously defined and more faithfully represented by the type checker.
41
-
***Complete generics**: Generics are used pervasively in a number of Swift libraries, especially the standard library. However, there are a number of generics features the standard library requires to fully realize its vision, including recursive protocol constraints, the ability to make a constrained extension conform to a new protocol (i.e., an array of `Equatable` elements is `Equatable`), and so on. Swift 3.0 should provide those generics features needed by the standard library, because they affect the standard library's ABI.
41
+
***Complete generics**: Generics are used pervasively in a number of Swift libraries, especially the standard library. However, there are a number of generics features the standard library requires to fully realize its vision, including recursive protocol constraints, the ability to make a constrained extension conform to a new protocol (i.e., an array of `Equatable` elements is `Equatable`), and so on. Swift 3.0 should provide those generics features needed by the standard library, because they affect the standard library's ABI. For more information on generics as envisioned for Swift, please see [Douglas Gregor's *Completing Generics* manifesto](https://github.com/apple/swift/blob/master/docs/GenericsManifesto.md).
42
42
***Focus and refine the language**: Despite being a relatively young language, Swift's rapid development has meant that it has accumulated some language features and library APIs that don't fit well with the language as a whole. Swift 3 will remove or improve those features to provide better overall consistency for Swift.
43
43
***API design guidelines**: The way in which Swift is used in popular
44
44
libraries has almost as much of an effect on the character of Swift
@@ -82,6 +82,12 @@ sampling of potentially good ideas that are not in scope for Swift
82
82
system to be a workaround that reduces the incentive for making the core
83
83
language great.
84
84
85
+
***Implicit conversions between numeric types**: We may do this in a future
86
+
release, but there is simply too much work to be done first. Before we can
87
+
loosen these type rules, we will need to speed up the type checker, redesign
88
+
the numerics protocols, and implement a subtyping feature to express the
89
+
permitted conversions. This won't all come together before Swift 3.0 ships.
90
+
85
91
***Major new library functionality**: The Swift Standard Library is focused on
86
92
providing core "language" functionality as well as common data structures. The
87
93
"corelibs" projects are focused on providing existing Foundation functionality
@@ -95,64 +101,115 @@ sampling of potentially good ideas that are not in scope for Swift
95
101
96
102
### Implemented proposals for Swift 3
97
103
98
-
*[SE-0005: Better Translation of Objective-C APIs Into Swift](proposals/0005-objective-c-name-translation.md)
99
-
*[SE-0019: Swift Testing](proposals/0019-package-manager-testing.md)
100
-
*[SE-0031: Adjusting inout Declarations for Type Decoration](proposals/0031-adjusting-inout-declarations.md)
101
-
*[SE-0023: API Design Guidelines](proposals/0006-apply-api-guidelines-to-the-standard-library.md)
*[SE-0003: Removing `var` from Function Parameters](proposals/0003-remove-var-parameters.md)
109
106
*[SE-0004: Remove the `++` and `--` operators](proposals/0004-remove-pre-post-inc-decrement.md)
107
+
*[SE-0005: Better Translation of Objective-C APIs Into Swift](proposals/0005-objective-c-name-translation.md)
108
+
*[SE-0006: Apply API Guidelines to the Standard Library](proposals/0006-apply-api-guidelines-to-the-standard-library.md)
110
109
*[SE-0007: Remove C-style for-loops with conditions and incrementers](proposals/0007-remove-c-style-for-loops.md)
110
+
*[SE-0008: Add a Lazy flatMap for Sequences of Optionals](proposals/0008-lazy-flatmap-for-optionals.md)
111
+
*[SE-0016: Adding initializers to Int and UInt to convert from UnsafePointer and UnsafeMutablePointer](proposals/0016-initializers-for-converting-unsafe-pointers-to-ints.md)
112
+
*[SE-0019: Swift Testing](proposals/0019-package-manager-testing.md)
113
+
*[SE-0023: API Design Guidelines](proposals/0006-apply-api-guidelines-to-the-standard-library.md)
*[SE-0063: SwiftPM System Module Search Paths](proposals/0063-swiftpm-system-module-search-paths.md)
160
+
*[SE-0066: Standardize function type argument syntax to require parentheses](proposals/0066-standardize-function-type-syntax.md)
161
+
*[SE-0067: Enhanced Floating Point Protocols](proposals/0067-floating-point-protocols.md)
162
+
*[SE-0068: Expanding Swift `Self` to class members and value types](proposals/0068-universal-self.md)
163
+
*[SE-0076: Add overrides taking an UnsafePointer source to non-destructive copying methods on UnsafeMutablePointer](proposals/0076-copying-to-unsafe-mutable-pointer-with-unsafe-pointer-source.md)
0 commit comments