Swift 2.2のリリースプロセス・目標・予定スケジュールに関する新たな詳細をAppleが発表した。Appleによると、Swift 2.2はほぼソース互換性のあるリリースとなり、大きな破壊的変更はSwift 3に委ねるという。
Swiftの次のリリース、すなわちAppleが言語をオープンソース化して最初のリリースは、2016年3月から5月、うまくいけば今度のWWDCの時になると予想されている。Appleによると、主にバグ修正、診断機能の強化、コード生成の改善が含まれ、Swiftの使い方を根本的に変更するものではないという。Swift Core LibrariesとSwift Package Managerも含まれないようだ。
言語自体とその標準ライブラリの両方に対する破壊的変更は、2016年後半にリリースされるSwift 3で予定されている。
Swift 2.2リリースプロセスにおいて重要なのは2016年1月13日だ。この日、5つのリポジトリ(swift、swift-llvm、swift-clang、swift-lldb、swift-cmark)でmaster
からswift-2.2-branch
が生成される。。その時点より、検討されるバグ修正や機能強化は、Swift 2.1とのソース互換性を高めるため、もしくはSwift 3でエラーになる移行警告を追加するために限られる。
この記事を執筆中、Appleはまさにswift-2.2-branch
を作ろうとしているところだ。以下にSwift 2.2に入る予定の新機能を挙げる。
in
、repeat
などの言語キーワードの大部分を引数ラベルに使えるように- 特定の項数までのタプル比較演算子
- AnySequence.initに制約追加。
AnySequence
からSequenceType
にdelegateして、必要なところで動的にダウンキャストされないようにできる。 - OptionalのシーケンスのためのLazy flatMap。変換後のシーケンスの並びをフラットにする。
- 関連型宣言のためのキーワードをtypealiasからassociatedtypeに置き換える。型エイリアスと関連型(プロトコルの一部に使われる、型に対するプレースホルダー名)の両方に
typealias
を使っていたのをやめる。
新しいブランチが作られた後、Swift 2.2に含まれるべき修正については、まずmaster
ブランチで受け付けられ、その後プルリクエストを使ってプルされなくてはならない。ただし、Swift 2.2固有の変更とSwift 3に入らない場合は例外だ。プルリクエストには、内容説明、変更の影響評価、関連リスクの評価、実施済みあるいは実施する必要のあるテストに関する詳細を含めること。