|
9 | 9 |
|
10 | 10 | ## Introduction
|
11 | 11 |
|
12 |
| -The future we envision for Swift will take many more valiant evolutionary |
13 |
| -decisions and major transformations with a proportional impact on its |
14 |
| -expanding domains. |
15 |
| - |
16 |
| -Source-breaking changes to Swift were first staged behind the now obsolete |
17 |
| -Swift 3 language mode. |
18 |
| -Each successive major release has since included a corresponding language mode, |
19 |
| -using the previous language mode as the default to maximize source |
20 |
| -compatibility. |
21 |
| -For example, Swift 6 compilers operate in the Swift 5 language mode by default. |
22 |
| -Users that are not ready to adopt the new default can still specify an earlier |
23 |
| -language mode explicitly. |
24 |
| -Once the time is right, old language modes together with the legacy behaviors |
25 |
| -they manifest will be proposed to be deprecated. |
26 |
| - |
27 |
| -In Swift 5.8, the cumulative source compatibility impact of a still converging |
28 |
| -Swift 6 language mode gave rise to the |
29 |
| -[Swift feature model][SE-0362], which enabled piecemeal adoption of individual |
30 |
| -features as opposed to an entire language mode. |
31 |
| -Among other things, upcoming features facilitated earlier adoption of |
32 |
| -improvements and drastically reduced the pressures in our evolutionary model. |
33 |
| - |
34 |
| -This proposal seeks to improve the experience of adopting individual |
35 |
| -features. |
36 |
| -The proposition is that the growing complexity and diversification of Swift |
37 |
| -calls for a flexible, integrated mechanism for supporting quality assistance |
38 |
| -with feature adoption. |
39 |
| -And that — in principle — comprehensive, code-aware assistance can be delivered |
40 |
| -without breaking source and acted upon incrementally. |
| 12 | +In Swift 5.8 introduced [upcoming features][SE-0362], |
| 13 | +which enabled piecemeal adoption of individual source incompatible |
| 14 | +changes that are enabled by default in a new langauge mode. |
| 15 | +Many upcoming features have a mechanical migration, meaning the compiler can |
| 16 | +determine the exact source changes necessary to allow the code to compile under |
| 17 | +the upcoming feature while preserving the behavior of the code. |
| 18 | +This proposal seeks to improve the experience of enabling individual |
| 19 | +upcoming features by providing tools that produce the necessary source code |
| 20 | +changes automatically for a given set of upcoming features that a programmer |
| 21 | +wants to enable. |
41 | 22 |
|
42 | 23 | ## Motivation
|
43 | 24 |
|
|
0 commit comments