How is the build system supposed to know? Does Bazel have a magic Rust parser that can understand comment changes?
-
-
Replying to @pcwalton @BRIAN_____ and
Bazel's dependency graph goes down to the file level. If your test doesn't have transitive edges going to a doc, the test will not rerun if the doc changes. That said, if your compiler changes, expect all tests to rerun.
1 reply 0 retweets 0 likes -
Replying to @jin_ @BRIAN_____ and
This is my point. File-level dependency tracking is something we already do in Cargo. (Actually, Cargo uses incremental compilation, so it’s *better* than file-level.) It wouldn’t have helped this case, precisely because it’s file-level.
1 reply 0 retweets 1 like -
Replying to @pcwalton @BRIAN_____ and
If the Bazel Rust rules produce an "ABI" kind of output, you don't need to re-run downstream actions. This is what the Java/JVM rules do with interface jars.
2 replies 0 retweets 0 likes -
Replying to @jin_ @BRIAN_____ and
Yes, my point is that we have to do compiler work first to integrate with the build system. (BTW, Cargo already integrates with incremental compilation in this way.)
1 reply 0 retweets 1 like -
This Tweet is unavailable.
-
We already do that in rustc, for that exact reason (Cargo does what you describe). Look at how many subcrates are under src/. Splitting up into fine grained crates to help with build time is a process that has been going on for years.
1 reply 0 retweets 0 likes -
This Tweet is unavailable.
-
Yes, Cargo does that. However, this isn't as helpful as you might think for the compiler because it's self-hosting. Any change anywhere in the compiler could potentially change how the compiler itself is compiled, which could cause any test to fail if rustc miscompiles itself.
1 reply 0 retweets 1 like
A lot of the slowness of the build is inherent to the compiler's self-hosting nature. Any change could have extremely nonlocal effects. e.g. busted change to feature X in the language causes a miscompiled rustc which breaks feature Y.
-
-
... because rustc might have internally used X to implement Y. You can see how this is complicated (like, halting problem level complicated).
0 replies 0 retweets 1 likeThanks. Twitter will use this to make your timeline better. UndoUndo
-
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.