Swift 4.1 がリリースされた!


2018年3月29日 Ted Kremenek


Swift 4.1 が公式にリリースされました!汎用のさらなるサポート、新しいビルドオプション、Swift パッケージマネージャと Foundation の小さな機能強化など、コアな言語の更新が含まれています。ABI の安定化にも大きな進展がありました。


Doug Gregor と Ben Cohen は最近、Swift Unwrappe (開封) のdポッドキャストの 2 つの部分のエピソードでこれらの機能の多くについて議論しました。ここでポッドキャストをチェックしてください: パート 1パート 2


訳注:

この 2 つのリンクは、書かれたリンク先の内容は異なりますが、結果として表示される内容は同じようです。それが意図された物なのか、エラーなのかはわかりません。



コンパイラの更新


Swift 4.1 は言語のマイナーなリリースです。これは Swift 4.0 とソース互換です。以下の言語の変更と更新が含まれており、そのほとんどは Swift 改革プロセス を経ています。


言語の改善点


Swift 4.1 は、Swift の汎用の声明 の目標をさらに進化させ、より多くの汎用の機能を追加しました。このリリースでは、以下の汎用に関連した提案が実装されています。



Swift 4.1 での条件付き準拠の進捗状況の詳細については、この ブログ記事 を参照してください。


ビルドの改善点


このリリースでは、新しいコードサイズの最適化や、ターゲット環境とプラットフォームのサポートを指定するためのより簡単な方法など、ビルドを構成するさまざまな方法が提供されています。


コードサイズ最適化モード


コンパイラは、新しい最適化モードをサポートするようになりました。これにより、専用の最適化によってコードサイズが削減されます。


これについては、以前この ブログ記事 で詳しく説明しました。


ビルドインポートテスト


canImport() プラットフォーム条件の引数は、すべてのプラットフォーム上に存在しないかもしれないモジュールの名前です。この条件は、モジュールをインポートすることができるかどうかをテストしますが、実際にはインポートしません。モジュールが存在する場合、プラットフォーム条件は true を返します。それ以外の場合は false を返します。


詳細は、SE-0075 ビルド構成のインポートテストの追加 と、条件付きコンパイルブロックの ドキュメント をご覧下さい。


ターゲット環境条件


コードがシミュレータ用にコンパイルされた場合、 targetEnvironment(simulator) プラットフォーム条件は true を返します。それ以外の場合、 false を返します。


詳細は、SE-0190 ターゲット環境プラットフォームの条件 と条件付きコンパイルブロックの ドキュメント をご覧ください。


Foundation


JSONEncoder クラスと JSONDecoder クラスは、コード化と復号時にキーを変換するための新しい戦略をサポートするようになりました。


これについては、この フォーラムの記事 で詳しく説明しました。


追加の更新


これらは、今回のリリースで実装された追加の Swift 改革の提案です。


ABI の安定性


Swift 4.1 には、Swift 5 で ABI を安定化させるための努力の一環として、いくつかの秘密の変更が含まれています。ここでは、このリリースで完了したタスクのリストを示します。


Swift の ABI 安定性の進捗状況の詳細については、ABI ダッシュボード を参照してください。


パッケージマネージャの機能強化


Swift 4.1 の Swift パッケージマネージャにはいくつかの機能強化があります:


Swift パッケージマネージャは、sshhttp などの異なる URL スキームを使用するパッケージグラフの依存関係を正しく解決するようになりました。依存関係を共有しているパッケージグラフのパフォーマンスが大幅に改善しました。


Swift 4.1 への移行


Swift 4.1 は Swift 4.0 とソース互換です。Swift の以前のリリースから Swift 4.1 への移行を支援するため、Apple の Xcode 9.3 には、必要なソースの変更の多くを自動的に処理できるコード移行ツールが含まれています。また、多くの変更点、特に機械的でなく直接的な精査が必要なものについては、移行ガイド もご利用いただけます。


ドキュメント


Swift 4.1 用の プログラム言語 Swift の最新バージョンは、Swift.org で利用可能になりました。Apple の iBooks ストアでも無料で入手できます。


プラットフォーム


Linux(Ubuntu 14.04、Ubuntu 16.04、および Ubuntu 16.10)


Ubuntu 14.04、Ubuntu 16.04、および Ubuntu 16.10 の公式バイナリを ダウンロードできます。


Apple (Xcode)


アップルのプラットフォーム上での開発のために、Swift 4.1 は Xcode 9.3 の一部として出荷されます。


ソース


Swift 4.1 での開発は、GitHub 上の以下のリポジトリの swift-4.1-branch で追跡されています。


swift-4.1-RELEASE のタグは、Swift 4.1 の最終バージョンを構成するリポジトリの特定のリビジョンを指定します。


swift-4.1-branch は開いたままですが、同じ リリース管理プロセス の下で、潜在的な将来のバグ修正 "dot" リリースの変更を蓄積します。


訳注:

このリンクは、「Swift 3.0 リリースの過程」にリンクされているので、今のところ翻訳する予定はありません。



<-Swift 4.2 リリースのプロセス 暗黙開封された Optionals の再実装->






目次
Xcode 10 の新機能

SwiftLogo
  • Swift 4.2 全メニュー

  • Swift について

  • ブログ
  • Swift 4.1 がリリースされた!
  • コンパイラの更新
    言語の改善点
    ビルドの改善点
    Foundation
    追加の更新
    ABI の安定性
    パッケージマネージャの機能強化
    Swift 4.1 への移行
    ドキュメント
    プラットフォーム
    Apple (Xcode)

  • Swift のダウンロード

  • Swift 入門

  • 文書化

  • ソースコード

  • コミュニティガイドライン

  • 投稿

  • Swift の継続的統合

  • Swift ソースの互換性

  • フォーカスエリア

  • ABI の安定性

  • サーバー API プロジェクト

  • コンパイラと標準ライブラリ

  • プロジェクト

  • パッケージマネージャ

  • Swift コアライブラリ

  • REPL とデバッガ、プレイグラウンド













  • トップへ(Swift 4.2)












    トップへ(Swift 4.2)












    トップへ(Swift 4.2)












    トップへ(Swift 4.2)












    トップへ(Swift 4.2)












    トップへ(Swift 4.2)












    トップへ(Swift 4.2)












    トップへ(Swift 4.2)












    トップへ(Swift 4.2)












    トップへ(Swift 4.2)












    トップへ(Swift 4.2)












    トップへ(Swift 4.2)












    トップへ(Swift 4.2)












    トップへ(Swift 4.2)












    トップへ(Swift 4.2)












    トップへ(Swift 4.2)












    トップへ(Swift 4.2)












    トップへ(Swift 4.2)












    トップへ(Swift 4.2)












    トップへ(Swift 4.2)












    トップへ(Swift 4.2)












    トップへ(Swift 4.2)












    トップへ(Swift 4.2)












    トップへ(Swift 4.2)












    トップへ(Swift 4.2)












    トップへ(Swift 4.2)












    トップへ(Swift 4.2)












    トップへ(Swift 4.2)












    トップへ(Swift 4.2)












    トップへ(Swift 4.2)












    トップへ(Swift 4.2)












    トップへ(Swift 4.2)












    トップへ(Swift 4.2)












    トップへ(Swift 4.2)












    トップへ(Swift 4.2)












    トップへ(Swift 4.2)












    トップへ(Swift 4.2)












    トップへ(Swift 4.2)












    トップへ(Swift 4.2)












    トップへ(Swift 4.2)












    トップへ(Swift 4.2)












    トップへ(Swift 4.2)












    トップへ(Swift 4.2)












    トップへ(Swift 4.2)












    トップへ(Swift 4.2)












    トップへ(Swift 4.2)












    トップへ(Swift 4.2)












    トップへ(Swift 4.2)












    トップへ(Swift 4.2)












    トップへ(Swift 4.2)












    トップへ(Swift 4.2)












    トップへ(Swift 4.2)












    トップへ(Swift 4.2)












    トップへ(Swift 4.2)












    トップへ(Swift 4.2)