Skip to content
This repository was archived by the owner on Mar 26, 2023. It is now read-only.

Commit 91be494

Browse files
committed
Finish 152
1 parent 78b3e1a commit 91be494

File tree

1 file changed

+168
-16
lines changed

1 file changed

+168
-16
lines changed

_drafts/2020-01-30-issue-152.md

Lines changed: 168 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -2,26 +2,25 @@
22
layout: post
33
title: ! 'Issue #152'
44
author: btb
5-
sponsor:
6-
link: TODO
7-
heading: TODO
8-
body: TODO
9-
displaylink: TODO
105
---
116

12-
> TODO: intro comments
7+
I think I don't have to mention much more than that a lot of fantastic
8+
information on the distant future of Swift has been shared in the last two
9+
weeks: the road to Swift 6, progress on the Function Builders proposal, and
10+
more. 🎉🎉🎉
11+
12+
This is a big issue with lots of interesting topics being discussed!
1313

1414
<!--excerpt-->
1515

1616
{% include sponsor.html %}
1717

1818
### Starter tasks
1919

20-
> TODO
21-
22-
### Podcasts
23-
24-
> TODO: Latest episode(s) of Swift Unwrapped & the Swift Community Podcast
20+
- [SR-12085](https://bugs.swift.org/browse/SR-12085) [Compiler] Clean up
21+
`TypeCheckType` so it never returns `Type()`
22+
- [TF-1107](https://bugs.swift.org/browse/TF-1107) [Autodiff] Add JVPs to
23+
standard library
2524

2625
### News and community
2726

@@ -44,27 +43,89 @@ Like I said; you're going to want to give this a read.
4443
a quite surprisingly high amount (to me) is pretty up-to-date with the latest
4544
Swift versions!
4645

46+
[Mattt](https://twitter.com/mattt) announced [`swift-doc`](https://twitter.com/mattt/status/1221863163915694085),
47+
an (experimental) command-line utility for generating documentation for Swift
48+
projects. One of the distinguishing features of `swift-doc` is that it operates
49+
on Swift code at a syntactic level, without first compiling it.
50+
4751
[George Barnett](https://twitter.com/glbrntt) released [SwiftNIO 2.13.0](https://github.com/apple/swift-nio/releases/tag/2.13.0).
4852

4953
### Commits and pull requests
5054

5155
[Pavel Yaskevich](https://twitter.com/pyaskevich) merged [a pull request](https://github.com/apple/swift/pull/28837)
5256
that is a big step toward improving type inference for closures over time.
5357

54-
### Accepted proposals
58+
[Doug Gregor](https://twitter.com/dgregor79) merged a bunch of pull requests:
59+
60+
- [#29331](https://github.com/apple/swift/pull/29331) is a large refactor he's
61+
been doing on-and-off for a while. By itself it has no user-visible effect,
62+
but it's the building block to make function builders more powerful and
63+
expressive.
64+
- [#29409](https://github.com/apple/swift/pull/29409) makes supporting multiple
65+
conditions for `if` statements within function builder closures a
66+
straightforward generalization of the refactored code. This would have required
67+
some gross hackery with the old implementation of function builders.
68+
- [#29419](https://github.com/apple/swift/pull/29419) adds support for
69+
`if #available` within function builders.
5570

56-
> TODO
71+
All this is part of a much larger effort to improve function builders, and
72+
[this post](https://forums.swift.org/t/function-builders-implementation-progress/32981)
73+
explains this effort further.
5774

58-
### Returned proposals
75+
### Accepted proposals
5976

60-
> TODO
77+
[SE-0276](https://github.com/apple/swift-evolution/blob/master/proposals/0276-multi-pattern-catch-clauses.md): *Multi-Pattern Catch Clauses* was [accepted](https://forums.swift.org/t/accepted-se-0276-multi-pattern-catch-clauses/33220).
78+
79+
> Feedback was almost universally positive, and the proposal has been accepted!
80+
Thank you to everyone who participated in the review process.
6181

6282
### Rejected proposals
6383

64-
> TODO
84+
[SE-0275](https://github.com/apple/swift-evolution/blob/master/proposals/0275-allow-more-characters-like-whitespaces-and-punctuations-for-escaped-identifiers.md): *Allow more characters (like whitespaces and punctuations) for escaped identifiers* was [rejected](https://forums.swift.org/t/se-0275-allow-more-characters-like-whitespaces-and-punctuations-for-escaped-identifiers/32538/46).
85+
86+
> The core team has decided to reject this proposal. Community reaction was
87+
mixed, and many of the people both supporting and rejecting the idea had
88+
concerns about the breadth of the set of characters this allows. Allowing more
89+
characters in identifiers would also add complexity to tooling, including
90+
syntax highlighting, IDEs, and runtime reflection libraries, which would need
91+
to be able to recognize quoted identifiers, know when identifiers would need
92+
to be quoted for presentation purposes, and potentially need to implement more
93+
elaborate parsing and escaping rules to handle these generalized identifiers.
94+
In the core team's judgment, this added demand on tooling is not justified by
95+
the amount of utility provided by the proposal.
6596

6697
### Proposals in review
6798

99+
[SE-0274](https://github.com/apple/swift-evolution/blob/master/proposals/0274-magic-file.md): *Concise magic file names* is [under a second review](https://forums.swift.org/t/re-review-se-0274-concise-magic-file-names/33171).
100+
101+
> The original review thread concluded with the core team accepting the
102+
proposal in principal: `#file` will be updated to include only the file and
103+
module names, with `#filePath` introduced for use cases that require the full
104+
path to the file.
105+
>
106+
> However, during the review it was proposed that the exact format of `#file`
107+
be specified, in order to allow for future tooling to rely on that format to
108+
determine the file and module name from the string.
109+
>
110+
> The proposal has been amended to explicitly include this format, and this
111+
re-review is focused on that aspect of the proposal.
112+
113+
> **Changes since the first review**
114+
>
115+
> - We now specify that the `#file` string will have the format
116+
`<module-name>/<file-name>` (with a second form for future expansion) and
117+
discuss how to parse it. The previous revision left this format as a compiler
118+
implementation detail that tools should always treat as opaque.
119+
> - We now discuss the behavior of `#sourceLocation`'s `file` parameter and
120+
provide for a warning when it creates conflicts. The previous revision did not
121+
discuss these topics.
122+
> - We now mention the need for tooling to map `#file` strings back to paths.
123+
> - We now provide for a warning when a wrapper around a `#filePath`-defaulting
124+
function passes it `#file` instead, or vice versa. The previous revision did
125+
not discuss this.
126+
> - We have added several suggestions from the first review to the
127+
"alternatives considered" section to explain why we aren't proposing them.
128+
68129
[SE-0270](https://github.com/apple/swift-evolution/blob/master/proposals/0270-rangeset-and-collection-operations.md): *Add Collection Operations on Noncontiguous Elements* is [under a third review](https://forums.swift.org/t/se-0270-review-3-add-collection-operations-on-noncontiguous-elements/32839).
69130

70131
> We can use a `Range<Index>` to refer to a group of consecutive positions in a
@@ -135,6 +196,97 @@ f(.zero.incremented) // Error: Cannot infer contextual base in reference to memb
135196

136197
> but the same problem persists.
137198
199+
[Yuta Koshizawa](https://twitter.com/koher) pitched [a proposal](https://forums.swift.org/t/three-steps-to-variadic-generics/33154):
200+
Three Steps to Variadic Generics.
201+
202+
> Variadic generics was referred to in "[On the road to Swift 6](https://forums.swift.org/t/on-the-road-to-swift-6/32862)".
203+
I think it may be a good idea to break down it into the following three steps
204+
compared to tackle variadic generics directly.
205+
>
206+
> 1. Operations for tuples
207+
> 2. Variadic tuples
208+
> 3. Variadic generics
209+
210+
[Fabian Fett](https://twitter.com/fabianfett) announced [official platform support for other Linux
211+
Distributions](https://forums.swift.org/t/official-platform-support-for-other-linux-distributions-and-a-case-for-amazon-linux-2/33167)
212+
(besides Ubuntu).
213+
214+
> The SSWG announced that they are looking for other Linux Distributions
215+
besides Ubuntu to support official prebuilt toolchains for in [their yearly
216+
update](https://swift.org/blog/sswg-update/).
217+
>
218+
> After some research the only documented way I found to engage in widening the
219+
platform support is by [administering a Jenkins slave](https://github.com/apple/swift-community-hosted-continuous-integration)
220+
that builds Swift on a given platform as part of the Community-CI effort.<br />
221+
Sadly administering such a slave comes with at least a monetary burden (besides
222+
time and security).
223+
>
224+
> For this reason I want to ask: What will the process be to become an
225+
officially supported platform? If there is no process planned so far maybe we
226+
can start a discussion here.
227+
228+
[Rahul Malik](https://twitter.com/rmalik) pitched [a proposal](https://forums.swift.org/t/swiftpm-support-for-swift-scripts/33126)
229+
to add SwiftPM support for Swift scripts.
230+
231+
> Swift is a general-purpose language that aims expand it's availability and
232+
impact on various domains and platforms. We believe great scripting support and
233+
experience is an important part of improving the impact of Swift as a language.
234+
Swift already includes basic support for scripting via the Swift command-line
235+
tool. This is a proposal for greatly improving the script support by providing
236+
a deeper integration with the Swift Package Manager.
237+
238+
[Steve Canon](https://twitter.com/stephentyrone) pitched [a proposal](https://forums.swift.org/t/add-float16/33019)
239+
to add `Float16`.
240+
241+
> Introduce the `Float16` type conforming to the `BinaryFloatingPoint` and
242+
`SIMDScalar` protocols, binding the IEEE 754 *binary16* format (aka *float16*,
243+
*half-precision*, or *half*), and bridged by the compiler to the C `_Float16`
244+
type.
245+
246+
[David Hart](https://twitter.com/dhartbit) pitched [a proposal](https://forums.swift.org/t/package-manager-localized-resources/32963)
247+
to add Localized Resources to the Swift Package Manager.
248+
249+
> This proposal builds on top of the [Package Manager Resources](https://github.com/apple/swift-evolution/blob/master/proposals/0271-package-manager-resources.md)
250+
proposal to allow defining localized versions of resources in the SwiftPM
251+
manifest and have them automatically accessible at runtime using the same APIs.
252+
253+
[Nikhil Pandey](https://forums.swift.org/u/nikhilpandey4) pitched [a proposal](https://forums.swift.org/t/more-push-towards-distribution-and-promotion-of-the-server-side-swift-framework/32931)
254+
for a push towards distribution and promotion of the Server Side Swift
255+
Framework.
256+
257+
> Lots of efforts are being made for creation of new frameworks and creating
258+
new libraries since last few years for making Swift on Server Side a real
259+
success, which is commendable. Let's also accept the fact that Server Side
260+
Swift is also something which requires cooperation and support of wider
261+
developer community outside Apple ecosystem too, especially on Linux side and,
262+
so cooperation with external developers is also a requirement.
263+
>
264+
> A time has come for putting efforts also towards promotion and distribution
265+
of Server Side Swift too.
266+
267+
[Owen Voorhees](https://twitter.com/owenvoorhees) shared [an update](https://forums.swift.org/t/swift-driver-and-help-documentation-lookup/32881)
268+
on `swift-driver` and `–help` / documentation lookup.
269+
270+
> In short, I think we should consider adding writing a `swift-help` in Swift
271+
as part of the `swift-driver` project, and use it to entirely replace help
272+
handling in the compiler sooner rather than later. The benefits are:
273+
>
274+
> - We'd gain experience integrating a Swift package product in compiler
275+
toolchains with minimal impact on day-to-day development. Anything we learned
276+
could then be applied to `swift-driver` later on. No bootstrapping would be
277+
needed since the help text isn't needed to build the compiler.
278+
> - `swift help` becomes a supported subcommand
279+
> - It solves my immediate problem (admittedly not a strong justification)
280+
> - We could delete a little bit of C++ from the frontend :)
281+
282+
[Nevin](https://forums.swift.org/u/nevin) pitched [a proposal](https://forums.swift.org/t/set-only-subscripts/32858)
283+
to add support for set-only subscripts.
284+
285+
> Currently, subscripts can be read-only or they can be read-write, but there
286+
is no way to declare a subscript as write-only. Write-only subscripts have a
287+
number of important uses, and this proposal aims to bring them into the
288+
language.
289+
138290
### Finally
139291

140292
[#nofilter](https://twitter.com/jckarter/status/1217861938136276993).

0 commit comments

Comments
 (0)