ABI のダッシュボード


Swift の現在の最優先事項の 1 つは、将来の Swift バージョン間の互換性です。これの主要な部分の 1 つは、ABI の安定性であり、これにより、異なるバージョンの Swift でコンパイルされたアプリケーションとライブラリのバイナリ互換が可能になります。Swift ABI マニフェスト は、ABI を安定させると宣言する前に完了しなければならないエンジニアリングと設計タスクについて説明しています。以下のダッシュボードは、これらのタスクの進行状況を追跡します*。


データレイアウト


タスクバグ追跡状況利用可能
部分的に不透明な集合体の効率的なレイアウトを定義SR-3722延期N/A
ライブラリの将来のバージョンにおけるライブラリ型に対する注釈の影響を判断SR-3911延期N/A
構造体のレイアウトアルゴリズムを定義SR-3723
SR-3724
SR-3725
SR-3912
タプルのレイアウトアルゴリズムを定義SR-3726
ペイロードされた列挙型 (enum) のレイアウトアルゴリズムを定義SR-3727
参照カウント用のネイティブなオブジェクトヘッダーにワードサイズのフィールドを使用SR-4353進行中
ARC 最適化用の参照でスペアビットを使用して探索SR-3728予定なしN/A
実在するコンテナのバッファサイズの再評価SR-3340進行中
out-of-line 割り当てを copy-on-write にすることを評価SR-4330完了Swift 4.0
実在のパラメータからプロトコルに制約のある汎用パラメータへの変換を評価SR-4331
将来のコンパイラ用のレイアウトアルゴリズムの技術仕様を作成SR-3730


メタデータ型


タスクバグ追跡状況利用可能
メタデータ型の進化を計画 (将来の機能のための領域を切り出し、重要な領域を凍結することを含む)SR-3923
メタデータ表現の履歴アーティファクトを一掃SR-3924
将来の特徴 (反映など) のためにメタデータに必要なセマンティック情報と空間を提示SR-3925予定なしN/A
すべての言語構成のメタデータレイアウトの固定部分の技術仕様SR-3731
名前付き値型のメタデータに格納されている名前の切り分けを決定SR-3926
目撃テーブルを介して enum 分別機と対話する効率を確認SR-4332
値目撃テーブルのレイアウトをロックSR-3927
ライブラリの発展に対してどのクラスのメタデータが不透明であるかを決定SR-4343
テーブルのレイアウトをロックするか、または思考を使用するかを決定SR-3928
プロトコル目撃テーブルのレイアウトをロックSR-3732
プロトコル記述子を含む実在型のメタデータのレイアウトを決定SR-4341
関数パラメータの既存のタプル設計を更新することを検討SR-4333


切り分け


タスクバグ追跡状況利用可能
順序に依存しない切り分け用の汎用およびプロトコル要件の標準化を定義SR-3733
関数パラメータの切り分けの多様性を確認SR-3734完了Swift 4.0
構造体と列挙型を区別しないように調査SR-3930予定なしN/A
デバッグに役立たない内部目撃テーブルシンボルの削除を調査SR-3931
名前の重複を減らすための単語置換のオーバーホールSR-4344完了Swift 4.0
回復しない関数用の既知のオーバーロードセットに基づいて切り分けを調査SR-3933予定なしN/A
共通の接頭部分を最大にするための型/適合 情報の再編集SR-3932完了Swift 4.0


呼び出し規約


タスクバグ追跡状況利用可能
新しい Swift 呼び出し規約を採用SR-4346完了Swift 4.0
関数シグネチャ低下スキームをロックSR-4349
戻り値を保持するレジスタの数を決定SR-3946
部分的に不透明なレイアウトで値を分割するかどうかを調査SR-3947延期N/A


実行時


タスクバグ追跡状況利用可能
望ましさと動作用のすべての実行時関数の監査SR-3735
ライブラリの発展と所有権のセマンティクスのために新しい実行時 API の作成または既存の API の変更SR-4352


標準ライブラリ


タスクバグ追跡状況利用可能
String を再設計SR-4354進行中
プロトコル指向の整数SR-3196完了Swift 4.0
シーケンスとコレクションに適切な制約を適用SR-3453
条件適合を使用してさまざまなコレクションカバーを折りたたむSR-3458
メモリ所有機能のために連続したメモリを効率的に使用するための抽象化を作成SR-4355


最終更新日:2017年9月13日


*注:進行状況が増えるにつれて、タスクが追加される可能性があります。





目次
Xcode 9 の新機能

SwiftLogo
  • Swift について
  • 特徴
    安全
    Swift.org とオープンソース
    プロジェクト
    プラットフォームサポート
    アップルのプラットフォーム
    Linux
  • ブログ:Swift 4.0 リリース!
  • 言語の更新
    文字列
    コレクション
    アーカイブとシリアル化
    その他の言語の更新
    新しい互換モード
    Package Manager の更新
    文書化
  • プラットフォーム
  • Linux
    Apple(Xcode)
    ソース
  • Swift のローカルリファクタリング
  • リファクタリングの種類
    カーソルベースのリファクタリング
    レンジベースのリファクタリング
    診断
    テスト
    文脈上のリファクタリングテスト
    コード変換テスト
    Xcode との統合
    潜在的なローカルリファクタリングの考え方
  • Swift のダウンロード
  • リリース
    Swift 4.0
    Swift 3.1.1
    Swift 3.1
    Swift 3.0.2
    Swift 3.0.1
    Swift 3.0
    Swift 2.2.1
    Swift 2.2
    スナップショット
    基幹となる開発(マスター)
    古いスナップショット
    Swift 4.0 の開発
    古いスナップショット
    Swift 3.1 の開発
    古いスナップショット
    古いリリースの分岐
    ダウンロードを使用して
    インストール
    MacOS でのコード署名
    Linux
    必要
    サポートしているターゲットプラットフォーム
    インストール
    アクティブな署名鍵
  • Swift 4.0 入門
  • Swift のインストール
    Linux の場合
    REPL の使用
    パッケージマネージャの使用
    パッケージの作成
    実行可能ファイルの作成
    複数のソースファイルの操作
    LLDB デバッガの使用
  • 文書化
  • Swift プログラミング言語
    翻訳
    API 設計ガイドライン
  • API 設計ガイドライン
  • 目次
    基礎
    ネーミング
    明確な使用の促進
    流暢な使用を目指す
    用語をよく使う
    規約
    一般的規約
    パラメータ
    引数ラベル
    特別な命令
  • Swift 4 への移行
  • 移行前の準備
    Swift 移行アシスタント
    Swift 4 移行の変更の概要
    SDK の変更点
    注目すべき特別なケース
    新しい String
    デフォルトのパラメータ値は public です
    移行の後
    移行に関する既知の問題
    Carthage/CocoaPods プロジェクトの使用
    その他
  • Swift 3 への移行
  • 移行前の準備
    Swift 移行アシスタント
    Swift 3 移行変更の概要
    API 設計ガイドライン
    SDK
    Swift 標準ライブラリ
    言語
    移行後
    Carthage/CocoaPods プロジェクトの使用 既知の移行の問題
    Swift 標準ライブラリ
    SDK
    Swift 3 言語
    その他
  • ソースコード
  • コンパイラと標準ライブラリ
    Core Library
    パッケージマネージャ
    Xcode の Playground サポート
    クローンされたリポジトリ
  • コミュニティガイドライン
  • コミュニケーション
    コミュニティの構造
    プロジェクトリーダー
    コアチーム
    コードオーナー
    ライセンス
    Runtime Library Exception (実行時ライブラリ例外)
    ソースコードの著作権とライセンス
    投稿
    入門
    コードの貢献 (投稿)
    新しい機能の提案
    行動規範
    投稿者行動規範 v1.3
    報告
    メーリングリスト
    General Interest
    Swift 開発
    Swift の発展
    通知
  • 投稿
  • 質問に答える
    バグを報告する
    バグのトリアージ
    コードの投稿
    段階的な開発
    メッセージをコミットする
    変更の帰属
    コードテンプレート
    コードのレビュー
    テスト
    品質
    コミットアクセス
    外部ライブラリ依存関係の追加
    Swift 発展プロセスへの参加
    LLVM と Swift
    LLVM の変更はどこで行われますか?
    Swift と LLVM 開発者ポリシー
  • Swift の継続的インテグレーション
  • 構成
    ジョブの組織
    ジョブの構成
    使用法
    リクエストのテスト
  • Swift ソースの互換性
  • プロジェクトの現在のリスト
    プロジェクトの追加
    合格基準
    プロジェクトの追加
    プロジェクトの維持
    リクエストのテスト
    プロジェクトをビルドする
    フォーカスエリア
  • ABI の安定性
  • データレイアウト
    メタデータ型
    切り分け
    呼び出し規約
    実行時
    標準ライブラリ
  • サーバーAPIプロジェクト
  • フォーカスエリア
    移植性
    外部ライブラリの使用
    ワークグループ
    舵取りチーム
    ステークホルダー
    開発プロセス
    API の提案
    プロトタイプ化と開発
    リリースプロセス
    メーリングリスト
  • コンパイラと標準ライブラリ
  • コンパイラのアーキテクチャ
    標準ライブラリの設計
  • パッケージマネージャ
  • 概念の概要
    モジュール
    パッケージ
    製品
    依存関係
    例の使用法
    ライブラリパッケージの作成
    ビルド構成文の使用
    依存関係のインポート
    副依存関係の解決
    コミュニティの提案
  • Swift コアライブラリ
  • プロジェクトの状態
    Foundation
    libdispatch
    XCTest
  • REPL とデバッガ、プレイグラウンド
  • なぜ REPL とデバッガを組み合わせるのか?
    Xcode プレイグラウンドサポート












    トップへ(Swift 4.0)












    トップへ(Swift 4.0)












    トップへ(Swift 4.0)












    トップへ(Swift 4.0)












    トップへ(Swift 4.0)












    トップへ(Swift 4.0)












    トップへ(Swift 4.0)












    トップへ(Swift 4.0)












    トップへ(Swift 4.0)












    トップへ(Swift 4.0)












    トップへ(Swift 4.0)












    トップへ(Swift 4.0)












    トップへ(Swift 4.0)












    トップへ(Swift 4.0)












    トップへ(Swift 4.0)












    トップへ(Swift 4.0)












    トップへ(Swift 4.0)












    トップへ(Swift 4.0)












    トップへ(Swift 4.0)












    トップへ(Swift 4.0)












    トップへ(Swift 4.0)












    トップへ(Swift 4.0)












    トップへ(Swift 4.0)












    トップへ(Swift 4.0)












    トップへ(Swift 4.0)












    トップへ(Swift 4.0)












    トップへ(Swift 4.0)












    トップへ(Swift 4.0)












    トップへ(Swift 4.0)












    トップへ(Swift 4.0)












    トップへ(Swift 4.0)












    トップへ(Swift 4.0)












    トップへ(Swift 4.0)












    トップへ(Swift 4.0)












    トップへ(Swift 4.0)












    トップへ(Swift 4.0)












    トップへ(Swift 4.0)












    トップへ(Swift 4.0)












    トップへ(Swift 4.0)












    トップへ(Swift 4.0)












    トップへ(Swift 4.0)












    トップへ(Swift 4.0)












    トップへ(Swift 4.0)












    トップへ(Swift 4.0)












    トップへ(Swift 4.0)












    トップへ(Swift 4.0)












    トップへ(Swift 4.0)












    トップへ(Swift 4.0)












    トップへ(Swift 4.0)












    トップへ(Swift 4.0)












    トップへ(Swift 4.0)












    トップへ(Swift 4.0)












    トップへ(Swift 4.0)












    トップへ(Swift 4.0)












    トップへ(Swift 4.0)












    トップへ(Swift 4.0)












    トップへ(Swift 4.0)












    トップへ(Swift 4.0)












    トップへ(Swift 4.0)












    トップへ(Swift 4.0)