A compile that would take 15 minutes now taking 20 hours is not ok.
-
-
That's gross I agree. It must be some exceptional size of code base and some very disruptive change to it.
1 reply 0 retweets 1 like -
You don't need an exceptional size of code base to have this issue, just your regular 6-figure LOC industrial project. Exceptionally large code bases have compile time issues in C++ (that's a major reason why Google created Go).
2 replies 0 retweets 0 likes -
Where Chromium is building in 30-45 minutes, Firefox is taking 12-24 hours. Stuck in Rust. I can’t work with that.
4 replies 0 retweets 1 like -
I don't think such build times are expected for Firefox on any platform, sounds like a bug... Their build times in CI are < 1h afaik.
1 reply 0 retweets 5 likes -
On gentoo, if I emerge Firefox, it’s ready tomorrow. I will loudly and happily proclaim my error if this is a gentoo bug and not a rust bug. I will sit down and write some rust code if that’s the case.
5 replies 1 retweet 3 likes -
For what it’s worth, we do know compile times are a pain point, and are always working on improving them. That does sound quite excessive though. I don’t follow Firefox build times, but if that was the norm, I’d expect to have heard about it.
2 replies 0 retweets 10 likes -
IMO the way we talk about Rust compile times is suboptimal: given that most of the time is spent in LLVM, we only add 10%-50% (you should probably submit a bug if it's 50% or more) on top of that. So when building from scratch, C++ *maybe* gets wins from parallelism.
5 replies 2 retweets 8 likes -
But you have to be careful not to put anything significant in your headers in C++ to get an edge on Rust in the first place (since Rust type-checks each generic exactly once, and can cache a lot of type/trait-system information). C++ has had better "file-wise incremental", but,
2 replies 0 retweets 3 likes -
With icecc we can distribute Gecko’s C++ files to a hundred cores across the office. Even with costly headers, throwing hardware at the problem gets us quite far. With Rust, if the crate dependency graph is narrow (i.e. if the critical path is long) there’s nothing we can do.
2 replies 0 retweets 6 likes
We can (a) pipeline so that compilation of a downstream crate can start before an upstream crate has finished codegen (since only metadata is needed); (b) parallelize intra-crate compilation in rustc.
-
-
Simon Sapin Retweeted Simon Sapin
Simon Sapin added,
0 replies 0 retweets 0 likesThanks. 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.