On Fri, Nov 29, 2013 at 9:09 AM, Patrick Walton <pcwal...@mozilla.com> wrote: > I shouldn't say that Rust has no problems with build times--it could always > be faster, and in particular the memory representations are inefficient, > particularly around ASTs--but when you actually run with `-Z time-passes`, > you'll see that the vast majority of the time for any reasonably-sized crate > is spent in LLVM. There isn't much we can do to make that faster by an order > of magnitude, other than to try to push on the parallel per-function > optimization and codegen work that is happening in some upstream branches. > Mergefunc, disabling exceptions, and the no-zeroing-out stuff that Niko is > doing would be nice, but they won't improve build times by an order of > magnitude.
What about caching LLVM bitcode for individual Rust functions / items (using workcache, for example) and only recompiling those items whose dependencies have changed? Obviously this would be a lot of design and implementation work, and one would want to do the math to make sure it's likely to improve build performance, but offhand I can't see why it's not feasible. The scenario I'm thinking of is "add a debug! statement to one function, and only recompile the code for that function since its interface hasn't changed". In that case, only regenerating code for the changed function and not the entire crate should make a big difference. Cheers, Tim > > Patrick > > [1]: > https://groups.google.com/forum/#!topic/mozilla.dev.platform/WjcCfckml4A > > > _______________________________________________ > Rust-dev mailing list > Rust-dev@mozilla.org > https://mail.mozilla.org/listinfo/rust-dev -- Tim Chevalier * http://catamorphism.org/ * Often in error, never in doubt "If you are silent about your pain, they'll kill you and say you enjoyed it." -- Zora Neale Hurston _______________________________________________ Rust-dev mailing list Rust-dev@mozilla.org https://mail.mozilla.org/listinfo/rust-dev