Issue #153 13 Feb 2020
Written by: Kristaps Grinbergs
On top of that, the Swift repository now has more than 100,000 commits!
Interested in sponsoring Swift Weekly Brief? Learn more here.
swift-driverfails to diagnose a lack of input files
- TF-1134 [Autodiff] [Stlib] Define derivatives for
Doublemaximum and minimum methods
In episode 7 of the Swift Community Podcast, Tim Condon talks with Kaitlin Mahar, Siemen Sikkema, Tanner Nelson and Ian Partridge about the current state of Swift on the server, and what the future might have in store.
News and community
Swift Crypto is a new Swift package that brings the fantastic APIs of Apple CryptoKit to the wider Swift community. This will allow Swift developers, regardless of the platform on which they deploy their applications, to access these APIs for a common set of cryptographic operations.
Apple released Swift Playgrounds for Mac - making it fun to learn and experiment with code. Previously it was available only for iPad.
The release of Swift 5.1.4 for Linux was announced. New downloads are available on swift.org. Official Docker images are also available. Later Johannes Weiss informed that development is now open for Swift 5.1.5 for Linux.
Paul Hudson tweeted that whatsnewinswift.com now covers Swift 5.2 and other changes between the versions. Along with that, he released a tool called Sitrep that is a source code analyzer for Swift projects, giving you a high-level overview of your code.
Commits and pull requests
He also tweeted:
Dodged an ABI bullet here. Underscored keyword was broken… but thankfully the broken case wasn’t exercised in the standard library
Swift’s runtime casting infrastructure has been… “scary and organic” I guess? For quite a while. This rewrites it to be properly structured, and cleans up a ton of edge case behavior in the process.
Slava Pestov merged a pull request where he and CodaFi were able to fix the remaining cases where name lookup in imported types would force loading all the members of a type or extension in order to find a single member.
Sink the constraint generation and solution application of initialization patterns, including all of the logic for property wrappers, from the high-level entry point
typeCheckBindingdown into the lower-level handling for solution application targets.
We can use a
Range<Index>to refer to a group of consecutive positions in a collection, but the standard library doesn’t currently provide a way to refer to discontiguous positions in an arbitrary collection. I propose the addition of a
RangeSettype that can represent any number of positions, along with collection algorithms that operate on those positions.
Proposals in review
Float16type conforming to the
SIMDScalarprotocols, binding the IEEE 754 binary16 format (aka float16, half-precision, or half), and bridged by the compiler to the C
Old pitch thread: Add
When it comes to naming, I think it’s best to keep the majority in mind, and not trying to please a very small group by preferring their jargon. An expert may prefer his wording, but would certainly also understand common language easily.
In short, the original pitch was to create a special-case, compiler-level mechanism to generate Equatable conformance for all tuples whose elements themselves conform to Equatable. The conformance would be automatic, without any means to opt-in or opt-out.
There exists a fairly wide-spread and long-standing desire to enable protocol conformance for tuples and perhaps other structural types, and especially so with respect to ubiquitous protocols, like Equatable, Comparable, Hashable and Codable. Presently, we are not in a position to facilitate custom protocol conformance as a general feature for tuples or other structural types. It is anticipated that that sort of feature will be created, eventually.
Should a Swift library include a lot of Swift code? 🤔