BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース Swift 5の目標が確定、新たな発展プロセスを定義

Swift 5の目標が確定、新たな発展プロセスを定義

原文(投稿日:2017/08/20)へのリンク

2018年後半にリリース予定のSwift 5では、ABIの安定化とAPIのレジリエンスの強化、メモリ所有権が提供される。この新たな発展のプロセスは、Swift 5の開発が当初の目標に向かって進んでいることを確信させるものだ。

前回リリースでの見送りにより、ABI安定化はSwift 5の要件として残されることになった。サードパーティのフレームワーク開発者のみならず、Apple社内でのSwift採用の拡大にも重要な意味を持つABI安定化をこれ以上遅らせる訳にはいかない、と同社エンジニアでSwiftメンテナのTed Kremenek氏は記している。ABI安定化は、Swift 5の最重要課題なのだ。Swift 5におけるABI安定化の公式な定義には、しかしながらモジュール安定化は含まれていない。モジュール安定化は継続的な目標として、次回の言語リリースでは完結しない可能性がある。モジュール安定化は、コンパイラがフレームワークの公開インターフェースを表現する方法を定義するもので、モジュールファイルのフォーマットに関連がある。つまり、バイナリモジュールに依存するコードの開発において必要なものであり、実行時の共有ライブラリのロード機能には影響しないのだ。ABI安定性を管理するためには、条件適合性再帰的プロトコル要件など、さまざまな低レベルの実装を詳細に確定する必要がある他、ABIを安定に保ちながらライブラリAPIを変更可能なAPIレジリエンスや、メモリ所有権も必要となる。

その他のSwift 5の主な目標としては、ソースの安定化がある。これはSwift 5コンパイラが、以前のバージョンのSwiftで記述されたコードを受け入れ可能にするものだ。これを実現するためには、互換性のない変更を受け入れる条件として、実際に問題を発生する構文が特定されていること、新たな構文の優位性が明らかであること、既存コードの自動マイグレーション手段が存在すること、が求められるようになる。安定化の対象にはSwift 4の他、Swift 3のコードも含まれる見込みである。

その他の言語の改良としては、文字列人間工学(string ergonomics)の領域における文字列の使いやすさ向上と高速化、標準ライブラリの改善、新たな並行性モデルの基盤の確立などが計画されている。

そして最後に、Swift 5では改善プロセスが再定義され、改善提案が多過ぎることによってABI安定性の焦点があいまいになるリスクの低減が図られている。具体的には、2018年3月1日以降の新たな提案に対しては、実際に動作する実装とテストケースが必要になる。実装を伴わない提案を提出することは可能ではあるが、レビューの対象とはされない。

 
 

この記事を評価

採用ステージ
スタイル
 
 

この記事に星をつける

おすすめ度
スタイル

BT