Generic Subscripts

原文 swift-evolution/0148-generic-subscripts.md at 56e1c8ed24289f2e78efcb992cd48a6bbb77b2c2 · apple/swift-evolution · GitHub

ジェネリクスサブスクリプト

サブスクリプトジェネリクスを使えるようにする提案。引数と返り値の両方に対して、ジェネリクスが使えるようにする。

Move UnsafeMutablePointer.initialize(from:) to UnsafeMutableBufferPointer

原文 swift-evolution/0147-move-unsafe-initialize-from.md at 05759c6d3188961c65432229b052229095bb49a4 · apple/swift-evolution · GitHub

UnsafeMutablePointer.initialize(from:) から UnsafeMutablePointer に変更

Collectionを持つUnsafeMutablePointer を非推奨にしてSequenceを持つUnsafeMutablePointer。最終的にはメモリーセーフなプログラミグができるように改善して行くためのもの。

Package Manager Tools Version

2/7 に提案がマージされたばかりですが、すぐに実装されそうです。

原文 swift-evolution/NNNN-package-manager-tools-version.md at 4eca7991a60186ba140b454476b274f9acc38599 · rballard/swift-evolution · GitHub

パッケージマネージャーツールバージョン

Swiftのパッケージごとに宣言されたSwiftツールのバージョンを使われます。パッケージの使用するためのSwiftツールの最小バージョンを指定できるようになります。 Swift3とSwift4の互換のために導入するために、3.1で導入されるようです。

Package Manager Product Definitions

原文 swift-evolution/0146-package-manager-product-definitions.md at 81c6cae56474fe34253baccc496f5f2d6456c7ce · apple/swift-evolution · GitHub

パッケージマネージャーのプロダクト定義

Swift Package Managerに製品のコンセプトが導入され、パッケージが他のパッケージから参照可能な製品を定義できるように、Package.swift構文の拡張する提案。

Conditional conformances

原文

swift-evolution/0143-conditional-conformances.md at d33c129f0920af0404f42219db56981411b20e76 · apple/swift-evolution · GitHub

条件付き適合

条件付き適合は、型引数が特定の要件を満たす場合にのみ、ジェネリック型が特定のプロトコルに準拠するという概念を表します。例えば、Arrayコレクションは、その要素がEquatableである場合にのみEquatableプロトコルを実装することができます。 例えば、以下のように実装されます。

extension Array: Equatable where Element: Equatable {
  static func ==(lhs: Array<Element>, rhs: Array<Element>) -> Bool { ... }
}

ジェネリクスを扱う時に自然に扱うことができるようになり、ライブラリの作成に非常に貢献することになる。

Permit where clauses to constrain associated types

原文 swift-evolution/0142-associated-types-constraints.md at e14a99ffce9685a0dfe6e397916033ec3be4f6c6 · apple/swift-evolution · GitHub

where句で関連型の制約を行う

where句を導入することによって、関連型にジェネリクス型パラメータと同じだけの表現力をお持たせるという提案。 関連型は今までは、単純な制約をかける程度しかできなかったが、where句を使えるようにすることで、表現力を上げることができる。

Protocol-oriented integers

原文

swift-evolution/0104-improved-integers.md at 957ab545e05adb94507792e7871b38e34b56a0a5 · apple/swift-evolution · GitHub

整数のプロトコル指向

Swift整数型APIを整理し、ジェネリクスプログラミングのためにそれらをより使いやすくする提案。 ビットシフトや足し算といったArithmetic(算術) プロトコルを定義する。今までの演算子は異なる型で演算できなかった。例えば下の例では、Int8とIntが異なるのでビットシフトと比較がコンパイルエラーになる。型を合わせるのが手間でした。

var x: Int8 = 42
let y = 1
let z = 0

x <<= y   // error: binary operator '<<=' cannot be applied to operands of type 'Int8' and 'Int'
if x > z { ... }  // error: binary operator '>' cannot be applied to operands of type 'Int8' and 'Int'

読みきれていないのでそのうち追記する