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

Reply via email to