Perhaps they were on old builds or some massive projects?
Perhaps they were on old builds or some massive projects?
ripgrep is probably on the smallish side. It's not hard to get a lot bigger than that and have those incremental times also get correspondingly bigger.
And complaining about compile times doesn't mean compile times haven't improved.
My personal project takes seconds to compile, but fair enough it's small, but even bigger projects like a game in Bevy don't take that much to compile. Minute or two tops. About 30 seconds when incremental.
People complained of 10x slower perf. Essentially 15min build times.
Fact that older versions might be slower to compile fills another part of the puzzle.
That and fact I have a 24 hyper thread monster of CPU.
I work on a large'ish C++ project and incremental is generally 1-2 seconds.
Incremental must work in release builds(someone else said it only works in debug for Rust), although it is fine to disable link time optimizations as those are obviously kinda slow.
I don't recall exact numbers. But bevy can pull a lot of depenencies. Enough for `target` directory to rival NPM worst offenders (e.g. ~1GB).
I truly just do not see what is difficult to understand here.
Also, people have vastly different work flows. Some people tend to slowly write a lot of code and compile rarely. Maybe they tend to have runtime tools to tweak things. Otherwise like to iterate really fast. Try a code change, see if the UI looks better or things run faster, and when you work like this even a compile time of 3 seconds can be a little bit annoying, and 30 seconds maddening.
Notably, serde can drive up compile times a lot, which is why miniserde still exists and gets some use.
diesel = { version = "*", features = ["128-column-tables"], ... }