Apple、Swift Buildのオープンソース化を発表
(swift.org)- Swiftはさまざまなプラットフォームをサポートする言語として人気を集めており、多様な組み込み機器やオペレーティングシステムで利用可能
- Appleは、強力で拡張性の高いビルドエンジンであるSwift Buildをオープンソースとして公開
- Swift BuildはXcodeのビルドエンジンとして使われており、「App StoreアプリやApple自身のオペレーティングシステムのビルド」にも活用されている。
- LinuxおよびWindows向けターゲットのビルドにも対応
-
Swift Buildの主要機能
- ビルドシステムは、プロジェクト記述とソースコードをコマンドラインツール、ライブラリ、アプリケーションといった成果物へ変換する役割を担う
- Swift Buildは、Swift Package ManagerやXcodeのような上位クライアントが要求したビルドを計画・実行するインフラコンポーネント
- Swiftコンパイラとの強力な統合により、Swiftプロジェクトのビルドを信頼性高く効率的に調整
- 多様な製品タイプをサポートし、高度なビルド構成オプションを提供
- SwiftおよびCコードのビルド時に並列性を最大化するビルドグラフ最適化を含む
-
Swift Buildのロードマップ
- Xcodeのビルドエンジンと比べると、Swift Package Managerのビルドエンジンは比較的シンプル
- Appleプラットフォーム上で2種類の異なるパッケージビルド方法が、ユーザーの混乱を招いている
- XcodeのビルドエンジンをSwiftプロジェクトへ提供し、Swiftコンパイラとともにオープンソースで開発することで、これらの問題を解決したい考え
- SwiftPMは、すべてのプラットフォームで統合ビルド実行エンジンを提供する機会を得ることになる
- この変更はユーザーに対して透過的に機能し、既存のすべてのパッケージとの完全な互換性を維持
- すべてのプラットフォームとツールにわたって新機能と改善を提供できる基盤を整備
- Swift BuildをSwiftPMの代替ビルドエンジンとして統合するPRを提出
- コミュニティと協力し、すべてのプラットフォームとプロジェクトモデルで今後のツール改善の恩恵を受けられるよう、ビルドシステム統合作業を完了させたい考え
-
参加の呼びかけ
- Swiftコードのビルド方法を継続的に進化させるため、コミュニティと協力していくことを期待している。
- GitHubのSwift Organizationで
swift-buildリポジトリを確認でき、ビルド方法や貢献方法を説明するREADMEとドキュメントが含まれている。 - プルリクエストやIssueを通じた貢献を歓迎しており、Swift Forumsで改善に関するフィードバックやアイデアを募っている。
- Swiftのビルドシステムにおける刺激的な新章であり、Swiftのあらゆる可能性を引き出すことが期待されている。
4件のコメント
https://llvm.org/devmtg/2016-11/… の 12ページが重要な内容のようですね。
従来の UNIX コンパイラ/ビルドシステムモデル
• コンパイラは別プロセスとして実行される
• 依存関係を伝達するための仕組みは原始的
• コマンドラインで定義された固定の入力/出力パイプライン
• これは API である…
• …そして私たちはそれを何十年も変えてこなかった
• 私たちは API を壊すのが大好き ❤
Java のほうは、コード間の依存関係を知らせる API があって、ビルドツールにどうすれば incremental build にできるかを伝えられるようになっているようです。
例: Gradle
Native ビルドにもその方法を適用する方向に進むべきだと思います。
つまり……要約すると、Xcode は今までと何も変わらずゴミってことですよね?
しくしく
zzz
Hacker Newsの意見
Swiftは「何にでも向いているが、Appleプラットフォームにはさらに向いている」という認識が言語にとって有害になり得る。これはSwiftエコシステムにより多くの人を引きつけられない要因になっている
Swiftはすばらしい言語だ
Swiftの状況は初期のC#時代を思い出させる
SwiftがAppleのLLVMフォークではなく、通常のLLVMをベースに構築されてほしい
SwiftはXcodeからの分離を目指すべきだ
SwiftPMの新しいリリースは、すべてのプラットフォームで統合されたビルド実行エンジンを提供する機会を与える
XcodeなしでSwift開発を可能にする道が開けるのか気になる
Swift BuildがSwiftのツール群および言語サーバーとどれほどよく統合されているのかは明確ではない
SwiftがAppleから独立していくのはうれしい
URLSession.shared.dataがLinuxでコンパイルできず、別の言語に切り替えた経験があるSwiftが組み込みシステムに本気なのか気になる