To contribute to this issue, simply leave a comment here. Please also review our contributing guidelines.
The current draft for this issue in _drafts/. If you want to contribute directly, feel free to open a pull request.
[Accepted with Modifications] SE-0271: Package Manager Resources
The review for SE-0271: Package Manager Resources ran from November 12th through November 19th, 2019. You can find the review thread here.
https://forums.swift.org/t/accepted-with-modifications-se-0271-package-manager-resources/31021
CVE-2019-8849: SwiftNIO SSL Executable Stack
If you or any of your dependencies are running on Linux and using swift-nio-ssl 2.0.0 through 2.4.0 inclusive, please update to swift-nio-ssl 2.4.1 or later effective immediately. Note that swift-nio-ssl 2.4.1 was released with a cloaked security patch on October 4th, so it is entirely possible that you have already picked up this fix. A number of 2.4.x releases have been shipped since 2.4.1: any later release is also acceptable
https://forums.swift.org/t/cve-2019-8849-swiftnio-ssl-executable-stack/31100
Heaps (structure, not storage) and Priority Queues
I pulled out the heap-graph functionality and the priority queue type (that uses heap graphs) in a Gist. They are inspired by the functions and type from the C++ standard library.
https://forums.swift.org/t/heaps-structure-not-storage-and-priority-queues/31135
Sorted Sequence Operations: Merge-Sort, Set Operations, Inclusion Testing
Working on another part of the C++ Standard Library to import.
Continuing the discussion from Computations, and where to save resources, are hard:
The set-subtraction functionality is actually part of a mini-framework. I uploaded it to a Gist.
Maybe funny https://twitter.com/0xTim/status/1199699381529776131 ?
Better Access Level Control on Protocol Requirements
The Problem
The disadvantages of such an implementation are what lead to the creation of this proposal. The main problem is that you have to write a lot of boilerplate code. For every new requirement that you want to be inaccessible to the user for your own internal Types, you have to:Write the initial Protocol requirement (like the 'publish' method in Publisher).
Rewrite that requirement in the internal Protocol (like the '_publish' method in Publisher).
Cancel the initial requirement with an extension implementation that throws a fatal error (like the 'publish' method in the extension of TrustedPublisher).Proposal
What I propose is enabling the marking of Protocol requirements with Access Levels.
https://forums.swift.org/t/better-access-level-control-on-protocol-requirements/31237
SE-0264 (review #2) — Standard Library Preview Package
The second review of SE-0264 — Standard Library Preview Package begins now and runs through December 10, 2019
https://forums.swift.org/t/se-0264-review-2-standard-library-preview-package/31288
[ANN] CeedNumerics released (SN’s ShapedArray API discussion)
Over the last year, we had a need for numerical computation for one of our apps, and we decided to implement it in Swift. Swift is very well suited to math & algorithms, and also we've mostly moved to it anyway. I reviewed existing options for linear algebra Swift libraries, but ended up making a new one (named CeedNumerics, imports as Numerics) to better address our specific needs. I took inspiration in both NumPy and Swift conventions (which sometimes conflicted). Here are a number of things I went through and the design choice I made along the way.
Keep in mind that this is a work-in-progress that wasn't made to be shared so soon, it certainly lacks polish in API and implementation.
https://forums.swift.org/t/ann-ceednumerics-released-sns-shapedarray-api-discussion/31285
Concise Magic File Names
Today, #file evaluates to a string literal containing the full path to the current source file. We propose to instead have it evaluate to a human-readable string containing the filename and module name, while preserving the existing behavior in a new #filePath expression.
Swift-evolution thread: We need #fileName
Package Manager Conditional Target Dependencies
I've been working on a proposal to allow assigning build environment conditions (with the same syntax as for build settings) to target dependencies in the Package Manager manifest to allow setting under which platform or configuration conditions the dependency should be observed.
An implementation is already available if you want to play with it (link in the proposal), but it currently requires cloning and building SwiftPM. @mishal_shah Is it possible to have a toolchain based off a SwiftPM PR to let the community more easily play with the implementation?
https://forums.swift.org/t/package-manager-conditional-target-dependencies/31306
Function calls in key paths?
Today a key path may only reference properties and subscripts:
swift \Array<String>.[0].countBut cannot reference method calls:
\Array<String>.[0].lowercased().count // ^ // error: Invalid component of Swift key pathSince Swift already supports subscripts, how hard can it be to implement support for method calls in key paths? Sure, subscripts are different from regular methods, but are they different enough to be an implementation problem?
https://forums.swift.org/t/function-calls-in-key-paths/31307
61: “End-to-end Swift” with special guest Tim Condon
Tim Condon, server-side Swift developer, writer and conference organizer, joins John to talk about all things networking. From organizing and abstracting networking code on the client-side, to using Swift on the server, and how to combine the two in order to write Swift end-to-end.
Modifier for classes to make their fields and methods private by default
There has been debate about whether the default access control should be private or internal. It seems like having a class-level modifier would solve many of the complaints voiced in that thread.
Here are, I would imagine, the pros and cons of a class-level modifier to make things private:
Pros
- All the pros of private visibility by default (promotes good OOP encapsulation and leads to better build times)
- Allows people not to worry about private visibility if they don't want to
- Allows people not to worry about private visibility if they're still learning the basics
Cons
- Require each class to be changed for it to have private visibility
Starter bugs to add:
https://bugs.swift.org/browse/SR-11902
https://bugs.swift.org/browse/SR-11900
https://bugs.swift.org/browse/SR-11892
https://bugs.swift.org/browse/SR-11889
https://bugs.swift.org/browse/SR-11885
https://bugs.swift.org/browse/SR-11884
or maybe split in next brief :)
or maybe split in next brief :)
Yep, splitting!
Most helpful comment
https://spec.fm/podcasts/swift-unwrapped/313353