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

Issue 104 #371

Merged
merged 14 commits into from
Mar 8, 2018
51 changes: 0 additions & 51 deletions _drafts/2018-03-08-issue-104.md

This file was deleted.

77 changes: 77 additions & 0 deletions _posts/2018-03-08-issue-104.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
---
layout: post
title: ! 'Issue #104'
author: btb
---

A lot has happened in the past two weeks. Apple introduced a new open source framework, a new Xcode beta was released (with improved compile-times!) and Swift 4.2 was announced. And of course, Swift 5 has seen another two weeks of progress.

So, without further ado...

<!--excerpt-->

### Starter tasks

- [SR-6979](https://bugs.swift.org/browse/SR-6979) [Compiler] `thin_to_thick_function` derived pointers do not need to be retained/released
- [SR-6960](https://bugs.swift.org/browse/SR-6960) [Standard Library] Floating-point `nextUp` and `nextDown` are unnecessarily slow for concrete types
- [SR-6889](https://bugs.swift.org/browse/SR-6889) [Compiler] Use `ArgMemOnly` for runtime functions
- [SR-6789](https://bugs.swift.org/browse/SR-6789) [Foundation] `IndexPath` needs benchmarks

{% include task_remind.html %}

### Swift Unwrapped

In [episode 48](https://spec.fm/podcasts/swift-unwrapped/117689), Jesse and JP discuss the Google Summer Of Code 2018 and Swift's participation in the project. In [episode 49](https://spec.fm/podcasts/swift-unwrapped/117707), they discuss [Dave DeLong](https://twitter.com/davedelong)'s Swift Protocol Wishlist, looking at the possibilities of Swift Protocols without boundaries.

### News and community

Apple [released](https://download.developer.apple.com/Developer_Tools/Xcode_9.3_beta_4/Release_Notes_for_Xcode_9.3_beta_4.pdf) Xcode 9.3 beta 4. Erica Sadun [wrote](http://ericasadun.com/2018/03/05/new-to-swift-in-xcode-9-3-beta-4-se-0075-and-se-0190-allow-better-configuration-testing/) about some of the included Swift changes (`canImport` and `targetEnvironment`).

Ted Kremenek [announced](https://swift.org/blog/4-2-release-process/) Swift 4.2 and its planned release process. Swift 4.2 "is meant to be a waypoint towards achieving ABI stability in Swift 5 [..] as well as have a goal of some focused improvements on compile-time performance". 🎉

Jordan Rose [wrote](http://belkadan.com/blog/2018/02/Many-to-Many-Protocols/) a blog post exploring types with multiple `RawValue`s.

Ben Asher [shared](https://twitter.com/benasher44/status/968905975724892160) their clean build times (with the "old" build system) decreased by 4 minutes compared to Swift 9.2; from 11 minutes to 7 minutes, that's a 36% speedup!

Alfredo Delli Bovi [shared](https://twitter.com/adellibovi/status/969012500682477568) similar results, going from 7 and a half minutes to 5. 🏎

At try! Swift, Norman Maurer introduced [SwiftNIO](https://github.com/apple/swift-nio), "a cross-platform asynchronous event-driven network application framework for rapid development of maintainable high performance protocol servers & clients".
Interesting to note is that they are using [GitHub Issues](https://github.com/apple/swift-nio/issues); no JIRA!

Vapor then [integrated](https://twitter.com/codevapor/status/970012673852178432) with SwiftNIO mere days after the announcement. They were able to delete nearly 15.000 lines of code! 😮

Marcin Krzyżanowski [wrote](https://pspdfkit.com/blog/2018/first-class-swift-api-for-objective-c-frameworks/) how they created a first-class Swift API for an Objective-C framework, using all the amazing bridging and attributes available.

### Commits and pull requests

[Karoy Lorentey](https://github.com/lorentey) worked on a [pull request](https://github.com/apple/swift/pull/14913) to use `SipHash-1-3` for all hashing.

> This PR intends to improve matters by standardizing on a high quality hash function, SipHash, for use inside the standard library and inside compiler-synthesized `Hashable` implementations. (SipHash is already implemented in the Standard Library, but so far it has been sitting there largely unused.)
>
> This pull request does not introduce a public API to help with manual `Hashable` implementations — but it provides the first step towards providing one.

[Harlan Haskins](https://github.com/harlanhaskins) created a [pull request](https://github.com/apple/swift/pull/14854) that makes `SwiftSyntax` build on Linux.

[Michael Ilseman](https://github.com/milseman) worked on a [pull request](https://github.com/apple/swift/pull/14755) that could speedup ObjC bridging 2.5 times. 😱

### Accepted proposals

[SE-0198](https://github.com/apple/swift-evolution/blob/master/proposals/0198-playground-quicklook-api-revamp.md): *Playground QuickLook API Revamp* was [accepted](https://forums.swift.org/t/se-0198-playground-quicklook-api-revamp/9448/16) with a minor revision.

> The new API for customizing playground display will be adopted, and the previous API deprecated, as described in the proposal. However, the new protocol will remain part of the standard library rather than moving to the playground support library, in order to facilitate frameworks that want to ship with built-in custom playground display capability.

[SE-0199](https://github.com/apple/swift-evolution/blob/master/proposals/0199-bool-toggle.md): *Adding toggle to Bool* was [accepted](https://forums.swift.org/t/accepted-se-199-add-toggle-to-bool/10681).

> The review of SE-199 has ended, and the proposal has been accepted as-is. There was some discussion during the review of alternative names, but the team felt that `toggle()` was the best one offered.

### Swift Forums

Jordan Rose [shared](https://forums.swift.org/t/se-0192-non-exhaustive-enums/7291/337) an update on [SE-0192](https://github.com/apple/swift-evolution/blob/master/proposals/0192-non-exhaustive-enums.md):

> Over the last few weeks I’ve been discussing this with the core team, who pretty much all agreed that **this is not the right direction for third-party libraries.**
>
> I’m working on cutting down the proposal text (and the implementation) to match this feedback from the core team.

### Finally

Did you know that `enum` was once called [`oneof`](https://twitter.com/dgregor79/status/970857272724172800) — and [`union`](https://github.com/apple/swift/blob/master/CHANGELOG.md#2013-09-24)?