Avatar
@giginet SwiftPMって、ビルドエンジン(ソースファイルとかオブジェクトファイルの依存関係に基づいて実行計画を立てるやつ)として llbuild を使っているんだけど・・・
6:37 AM
llbuildは実はllbuild2っていう新しいのが開発されていて
6:38 AM
https://github.com/apple/swift-llbuild2/blob/main/Docs/index.md
Remote execution llbuild2 provides data structures that enforce that action specifications are completely defined. This allows clients of llbuild2 to implement any kind of execution engine to power the action graph resolution. Through these interfaces, it would be possible to support common remote execution APIs such as Bazel's RE2 protocol.
6:39 AM
llbuild2は、↑にかかれている通り、リモート実行がアーキテクチャに組み込まれているんだよね
6:40 AM
で、「Bazel's RE2 protocol」がなんだかわからんけど多分Bazelのリモート実行(RE?)APIの設計をパクってるんだと思う、互換性とかはよくわからんが
6:40 AM
なので、SwiftPMの下請けをllbuildからllbuild2にマイグレートしたら、SwiftPMもリモートビルドできるようになりそう、っていう話があるんだけど
6:42 AM
このあたりが1年ぐらいなんの音沙汰も無い気がするから、 appleの展望がどうなっているのかとか、 技術的な詳細としてはどういう難しさがあるのかとか知りたい、 なんならやっちゃってほしい
6:42 AM
LINEはなんか大規模ビルドの改善に本気っぽいけど、Swiftプロジェクトとしての本命はこの道なんじゃないかと個人的には思ってるんだよね (edited)