This whole conversation is driving me crazy because we’re starting from the position “Bazel good, Cargo bad” without even stopping to understand what the specific problems that Rust is currently facing are. So far I’ve heard talk about caching LLVM, but that is a Travis issue.
-
-
This Tweet is unavailable.
-
Again, for the millionth time, that is a CI problem, not a build system problem.
2 replies 0 retweets 0 likes -
Why is it hard (or even non-pathologically possible) for the CI system to do the right thing here? CI is choked because builds take a long time, typically.
1 reply 0 retweets 0 likes -
It is very much not the case that changing a .md file in the docs causes an LLVM rebuild. This has *NEVER* been the case in Rust’s 10 year history.
1 reply 0 retweets 1 like -
Nor is it the case that changing a .rs file in the compiler causes an LLVM rebuild. Again, this has *never* been the case.
1 reply 0 retweets 1 like -
So if LLVM is being rebuilt when the docs change, it is a problem specific to the CI, and it should be solved *there*. Because if you change the build system to Bazel, and don’t fix *that* issue, it will *still* be a problem.
1 reply 0 retweets 2 likes -
This Tweet is unavailable.
-
Now we’re getting somewhere. The reason why that triggered a rebuild is that the compiler couldn’t tell—or, more likely, incremental compilation lacked the hooks to tell the build system—that a rebuild was not necessary.
1 reply 0 retweets 0 likes -
This is a problem that needs to be solved! But it needs to be solved *in the compiler*. The problem is presumably that the compiler, right now, can’t say “oh, I didn’t need to rebuild anything” in a way that the build system can understand.
3 replies 0 retweets 1 like
Once that work is done, getting the build system to take advantage of this information is the easy part. It could be solved with Bazel, but it would be a lot less work to just solve it in rustbuild.
-
-
But unless this work is done in the compiler—which is the hard part—switching to Bazel will do nothing to help.
2 replies 0 retweets 2 likes -
Strong agreement. The fanciest build system in the world isn’t going to help a compilation model that isn’t sufficiently broken up at the language & compiler level. And once that is done, the miniature build system inside the compiler driver may be adequate. Same in Swift fwiw.
0 replies 0 retweets 4 likes
End of conversation
New conversation -
Loading seems to be taking a while.
Twitter may be over capacity or experiencing a momentary hiccup. Try again or visit Twitter Status for more information.