Avatar
例として挙がっているswift-syntaxとswift-nioの実装を改善した事例ですが、これらが重要なのは、SwiftPMの仕組みだとライブラリのユーザがソースを再コンパイルするからです。ライブラリのコードが重いとユーザのプロジェクトのリビルドが重くなって被害がスケールします。なのでコミットして再利用されるコードのコンパイルが早くなってれば良くて、開発中に重いというのはそもそも大した問題ではないと思います。
2:00 AM
重いということが分かるまでにすでに時間がかかってしまっています
これについては、探索幅が広い・探索深さが深い、というカットオフもあって、これらは高速ですが、 たまにその両方のチェックをすり抜けて狭くて浅いが実際に重いというパターンが出てくるのがこれらですね。 これは決定性問題が絡んでて完全な事前検出はできないんだと思います。「重いことがわかる時点で重いのが問題」とすると、双方向推論を無くすしかなさそうです。
t_naruhodo 1