5 ポイント 投稿者 GN⁺ 2025-02-02 | 4件のコメント | WhatsAppで共有
  • 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件のコメント

 
ganadist 2025-02-03

https://llvm.org/devmtg/2016-11/… の 12ページが重要な内容のようですね。

従来の UNIX コンパイラ/ビルドシステムモデル
• コンパイラは別プロセスとして実行される
• 依存関係を伝達するための仕組みは原始的
• コマンドラインで定義された固定の入力/出力パイプライン
• これは API である…
• …そして私たちはそれを何十年も変えてこなかった
• 私たちは API を壊すのが大好き ❤

Java のほうは、コード間の依存関係を知らせる API があって、ビルドツールにどうすれば incremental build にできるかを伝えられるようになっているようです。
例: Gradle

Native ビルドにもその方法を適用する方向に進むべきだと思います。

 
nemorize 2025-02-02

つまり……要約すると、Xcode は今までと何も変わらずゴミってことですよね?
しくしく

 
roxie 2025-02-02

zzz

 
GN⁺ 2025-02-02
Hacker Newsの意見
  • Swiftは「何にでも向いているが、Appleプラットフォームにはさらに向いている」という認識が言語にとって有害になり得る。これはSwiftエコシステムにより多くの人を引きつけられない要因になっている

    • 競合はよりオープンソース的で、貢献者が多く、スコープが狭い
    • Xcodeのようなツールをオープンソース化しなければ、他の言語との差は広がるだろう
  • Swiftはすばらしい言語だ

    • "index out of range" エラーのとき、エラーメッセージはどこで発生したのかを教えてくれない
    • Golangはエラーが発生したファイル名と行番号を教えてくれる
  • Swiftの状況は初期のC#時代を思い出させる

    • C#もオープンソースかつクロスプラットフォームとして宣伝されたが、期待には及ばなかった
  • SwiftがAppleのLLVMフォークではなく、通常のLLVMをベースに構築されてほしい

  • SwiftはXcodeからの分離を目指すべきだ

    • Xcodeは3.1点という評価は過大評価な面がある
  • SwiftPMの新しいリリースは、すべてのプラットフォームで統合されたビルド実行エンジンを提供する機会を与える

    • これはSwiftのマルチプラットフォームエコシステムを構築する鍵になるだろう
  • XcodeなしでSwift開発を可能にする道が開けるのか気になる

  • Swift BuildがSwiftのツール群および言語サーバーとどれほどよく統合されているのかは明確ではない

    • 言語サーバーはすでにオープンソースだ
  • SwiftがAppleから独立していくのはうれしい

    • クロスプラットフォームプロジェクトで URLSession.shared.data がLinuxでコンパイルできず、別の言語に切り替えた経験がある
  • Swiftが組み込みシステムに本気なのか気になる