作者:Jesse Squires,原文链接,原文日期:2016/02/11
译者:pmst;校对:numbbbbb;定稿:numbbbbb

欢迎收看 Swift 开源周刊#9!由于周刊期号是从0开始的,这意味着本周已经是我们的第十期拉。🎉感谢亲们长久以来的陪伴!😄本周开源进展似乎略有放缓。甚至 Xcode7.3 beta3 的发布说明也略显平淡。这是否意味着我们越来越接近 Xcode7.3 和 Swift2.2 的正式发布呢。

Commits 和 pull requests

John Holdsworth 合并了一个 pull request,修复了 switch 枚举用例匹配(case)中缺失“Quick Help”的问题。

Dmitri Gribenko 已开始着手启用 iOS 主机测试

来自 IBM 的 Divid Grove 研究合并 Swift 的初始化整合,将其覆盖到 libdispatch 构建中,以及做出相关修改使得能够同时构建 corelibs-libdispatch 和 corelibs-foundation。

Brian Gesiak 向 Apple 提交了 CI 要求覆盖 corelibs-xctest,目前已经采纳了!😎

Swift 基准组件 目前已经开源!“该组件代码囊括了基准,库和工具,旨在帮助我们在提交代码前跟踪 Swift 性能和捕获性能回归。”

Nadav Roterm 改善了 Swift runtime 中的元数据哈希函数(metadata hash function)。

Proposals

Daniel Dunbar 开始着手准备关于“Package Manager C Language Target Support”的新提案。ps:具体请点击这里

该提案旨在新增一个初始包管理器,支持 C,C++,Objective-C 以及 Objective-C++ 语言。【省略部分文字…】我们希望 Swift 包能够将 C 目标文件囊括进来,且这些目标文件能够直接作为单一包的一部分为 Swift 提供接口。这样使得开发者和 C 之间提供了一种简单的“回退”机制…

该话题早在1月的邮件列表线程就已经存在,不过看起来 Daniel 才刚刚提交了该 pull request。总而言之,该提案是具有实际意义的,不过在 SPM 团队中优先级较低。倘若被采纳,Swift 包管理器有可能取代 CocoaPods —— 而且我猜测这很快就会发生。😁除此之外,来自 IBM 的 Ricardo Olivieri 开启了一个关于外部关系和 SPM 的相关线程

Joe Groff 的 “Property Behaviors” 提案(SE-0030)目前正在审核中。这在邮件列表中曾讨论过一段时间,我认为整个社区对于该提案都显得十分亢奋。我坚信它最终会被接受。

Chris Lattner 提出有关“Remove implicit tuple splat behavior from function applications”的方案(SE-0029)已经正式被采纳并收录到 Swift3 当中了。当前除可以使用典型的方式调用函数之外,我们还可通过传入 N个参数的元组(N-tuple)作为函数参数列表。不过这个鲜为人知的特性正逐渐从 Swift3 中移除,因为它仅是纯粹的语法糖罢了。

// some function
func foo(a: Int, b: Int) { }

// 典型调用
foo(42, b: 17)

// 使用元组方式 译者注:swift 中将被移除
let x = (1, b: 2)
foo(x)

有关该提案的大多数反馈都表示“我从未使用过该特性”,因此我猜测这很有可能被废弃掉。不过,Brent Royal-Gordon 已经创建关于这个话题的讨论了。

Mailing lists

Félix Cloutier 创建有关垃圾回收机制的话题Joe GroffChris Lattner 阐述了引用计数对分代标记清理的优势和权衡。同时 Joes 分享了当时尝试标记清理的一些历史和惨痛的教训,而 Austen Zheng 则提醒我们安卓在这方面的困境。

Jordan Rose 询问关于 Swift 中对 library 演变的支持。严格意义上来说这并非是一个提案,因此也无法通过正规的 Swift 演变提案流程,不过反馈结果是鼓励该行为的。你能够在这里找到完整的文档。

随着来自社区的大量反馈,Dave Abrahams 修改了早前由他创建的“何时使用参数标签(一个新方法)”话题中的想法,同时重新创建了一个新的话题支线继续该话题。倘若你还没有头绪,其实标题已经很好地描述了该想法。下面举个比较恰当的例子:a.moveFrom(b,to:c)a.move(from:b,to:c)?显然,完整的讨论更加细致。API 设计准则的一个主要目标就是帮助回答类似这样的问题。

本文由 SwiftGG 翻译组翻译,已经获得作者翻译授权,最新文章请访问 http://swift.gg

文章目录
  1. 1. Commits 和 pull requests
  2. 2. Proposals
  3. 3. Mailing lists