10 ms·
Incremental builds are something even enterprise build systems fail at. I've had Visual Studio and MSBuild fail on me multiple times by deciding not to recompi
by alexvitkov 3y ago
Incremental builds are something even enterprise build systems fail at.
I've had Visual Studio and MSBuild fail on me multiple times by deciding not to recompile a certain .cpp file, because they got the dependency graph wrong. This results in a running but inconsistent executable that's a bitch to debug.
If you're selling me another tool that duplicates this work, but that has even less context on my project than the build system, I'll pass.
- no_wizard 3y agoOne thing these tools should do automatically is at the end log to the console (or whatever system) what was compiled and what wasn't. This made debugging so much easier for these issues. They're bound to happen, because we're all human and bugs are a thing. Automatically being able to audit the build as step 1 makes this easy to spot
- jcparkyn 3y agoVisual studio does give a fairly detailed explanation of what was compiled each time, in the output>build view.
- pharmakom 3y agoBazel does this. I have to be honest - MS Build does not scale well. Companies use it because it’s the default.
- no_wizard 3y agoSeems they came up with a way to scale up build toolchains with BuildXL[0] Doesn't seem fully baked yet though [0]: https://github.com/microsoft/BuildXL https://github.com/microsoft/BuildXL
- CobsterLock 3y agoI don't have a ton of experience in Bazel, but from what I have experienced with Bazel I think it would be more accurate to say that you configure the dependency graph yourself in Bazel. Then Bazel can determine what to build from scratch and what to take from cache
- howinteresting 3y agoYes, but Bazel requires an all-in commitment and also tons of work to fit the rest of the world into it.