This week brought some very unexpected news. As you’ve likely heard, Chris Lattner will be leaving Apple and joining Tesla. The original author of the Clang Static Analyzer, Ted Kremenek, will be taking over as Swift Project Lead. While the timing certainly seems abrupt, these things rarely happen at “good” or convenient times. I’m sure he will be missed at Apple, and it’s certainly a great loss for the company. Let’s all wish Chris the best of luck! The good news is that the Core Team is still there — and they’ve been doing all the hard work lately anyway, right? 😉

One thing to note is that Chris is the first Core Team member to leave Apple and remain on the Core Team. Ironically, this makes him the first non-Apple member of the Core Team. In his note to swift-evolution, he mentioned that he intends to stay involved so hopefully the project will still benefit from his guidance and contributions!

Starter tasks

  • SR-3542: [Starter Proposal] enum cases should have compound names, like functions
  • SR-3419: [Starter Proposal] Strides should be collections
  • SR-888: [Starter Proposal] Sequence.minElement() and maxElement() should be protocol requirements (customization points)

Submit a task by sending a pull request or opening an issue.

News and community

DotSwift, the European Swift Conference, will be held 27 January, 2017 in Paris, France. Swift Weekly Brief readers can get a 20% discount on tickets with the code SWIFTWEEKLYBRIEF (direct link).

Commits and pull requests

Graydon Hoare (@graydon) sent a promising pull request to speed up project build times in non-WMO (whole-module-optimization) mode. “The point is to accelerate non-WMO builds with large bridging headers, which spend a nontrivial amount of time re-importing the header for each frontend job.”

Ben Ng (@ben-ng) sent a pull request to add a benchmark for += when appending to an Array. This is to measure the impact of his other pull request that improves the performance of appending to Array with +=.

Russell Currey (@russelldotcc) merged a pull request to corelibs-foundation to enable building on PowerPC.

Maxim Moiseev (@moiseev) opened a pull request to deprecate + and - for SignedInteger and its Stride. This allowed for mixed-type arithmetic, which is not supposed to work. It was necessary prior to the new collection indexing model to make moving indexes simple. This is a breaking change that will be allowed (with a warning) under Swift 3.1 and will be an error in Swift 4.

Ankit Aggarwal (@aciidb0mb3r) marked both SE-0082: Package Manager Editable Packages (proposal link) and SE-0145: Package Manager Version Pinning (proposal link) as implemented in Swift 3.1.

K Staring (@kstaring) finally merged a patch for FreeBSD compatibility that lets the current Swift 3 codebase compile on FreeBSD. The pull request was originally opened in September, but just merged this week.

Accepted proposals

Proposal SE-0147: Move UnsafeMutablePointer.initialize(from:) to UnsafeMutableBufferPointer by Ben Cohen was accepted.

Feedback was light but positive, and the proposal is accepted for Swift 4. Thanks to everyone who participated!

Mailing lists

As mentioned above, Chris Lattner sent an email this week about leaving Apple and transferring his responsibilities to Ted Kremenek:

Since Apple launched Swift at WWDC 2014, the Swift team has worked closely with our developer community. When we made Swift open source and launched Swift.org we put a lot of effort into defining a strong community structure. This structure has enabled Apple and the amazingly vibrant Swift community to work together to evolve Swift into a powerful, mature language powering software used by hundreds of millions of people.

I’m happy to announce that Ted Kremenek will be taking over for me as “Project Lead” for the Swift project, managing the administrative and leadership responsibility for Swift.org. This recognizes the incredible effort he has already been putting into the project, and reflects a decision I’ve made to leave Apple later this month to pursue an opportunity in another space. This decision wasn’t made lightly, and I want you all to know that I’m still completely committed to Swift. I plan to remain an active member of the Swift Core Team, as well as a contributor to the swift-evolution mailing list.

Working with many phenomenal teams at Apple to launch Swift has been a unique life experience. Apple is a truly amazing place to be able to assemble the skills, imagination, and discipline to pull something like this off. Swift is in great shape today, and Swift 4 will be a really strong release with Ted as the Project Lead.

Note that this isn’t a change to the structure - just to who sits in which role - so we don’t expect it to impact day-to-day operations in the Swift Core Team in any significant way. Ted and I wanted to let you know what is happening as a part of our commitment to keeping the structure of Swift.org transparent to our community.

-Chris

In a follow-up email, Chris elaborated on the change a bit more:

One thing that I don’t think is fully appreciated by the community: Ted has been one of the quiet but incredible masterminds behind Swift (and Clang, and the Clang Static Analyzer) for many years. His approach and modesty has led many to misunderstand the fact that he has actually been running the Swift team for quite some time (misattributing it to me). While I’m super happy to continue to participate in the ongoing evolution and design of Swift, I’m clearly outmatched by the members of the Apple Swift team, and by Ted’s leadership of the team. This is the time for me to graciously hand things over to folks who are far more qualified than me. Swift has an incredible future ahead of it, and I’m really thrilled to be small part of the force that helps guide its direction going forward.

I’ve spoken with Ted a few times via Twitter, and he’s always been super kind and helpful. I’m confident the project and community are in good hands. I’d love to see Ted show up at some of the indie Swift conferences this year!

Alex Martini sent out an email on design discussion for upcoming proposals:

To help keep proposals moving forward, the Swift core team has set aside some time specifically for design discussions of upcoming proposals. Below are some rough notes from the discussion this week.

These are informal comments, intended to guide the proposals in directions that draw constructive feedback. You are welcome to ignore the feedback, agree with it, or disagree with it. As always, the formal decision doesn’t happen until after the review period ends.

continue reading…

The email goes on to mostly discuss details about Doug Gregor’s draft proposal, Limiting @objc inference.

Chris Eidhof started a thread to discuss generic subscripts.

Recently, I’ve bumped into the lack of generic subscripts a few times. There are a bunch of useful things you could do with it. It’s in the generics manifesto as well…

Finally

And finally — Once the yak has been fully shaved…