Why rust work with a special custom llvm instead of the standard? Will it change in the future?
On 15 October 2012 03:07, Brian Anderson <bander...@mozilla.com> wrote: > On 10/14/2012 10:20 AM, John Mija wrote: > >> This email is related to one sent to the Go mailing list[1] about the >> great difference in compiling time between Rust which took 50 minutes, >> and Go with a time of 2 minutes in build compiler, all libraries, all >> commands and testing. >> >> > That the entire test suite runs in under two minutes is an amazing feat. > Go's efficient toolchain is one of its great strengths. > > We are probably never Going to catch Go here, but there is a whole lot > that Rust can do to improve. > > Patrick discussed most of the major problems. There are general Rust > performance issues, specific compiler issues, and build system issues. This > email is about the build system. > > There are _a lot_ of duplicate and redundant builds in a full build/test > run. I was curious about how long the build would take if we removed all > the redundancy. In other words, how long does it take an optimized rustc to > build and test all the Rust components, without optimizations, minus LLVM > and clang (which we presumably won't fork forever), just once? (TL;DR 8m45s) > > Here's the goal: > > * Build these native components: libuv (C), rt (C++), rustllvm (C++) > * Build and test these crates: core, std, syntax, rustc, cargo, rustdoc, > compiletest > * Run the compiler test suite (everything in src/test) (including the > pretty-printer tests which run most of the test suite through entire parser > processes multiple times) > * Build and test the documentation > > First I ran `make` to build the stage2 compiler, with optimizations on. > > Then I ran `time make check CFG_DISABLE_OPTIMIZE=1 > CFG_DISABLE_VALGRIND=1`. Due to the way crate testing is currently done > this will (re)do most of the work to build a full rust toolchain (yes, > testing the Rust compiler more or less involves a full rebuild). It will > build and test core, std, rustc, cargo, and rustdoc (not syntax which has > not a single unit test). It will also run the compiler test suite and the > documentation tests. Also builds 'compiletest', the compiler test driver. > > On my modest 4-core system that took 7m53s (and 15m53 cpu time, so some > parallelism). > > Syntax, measured separately, took 18s. So around 8m10s to build and test > all the rust code. That leaves building libuv, rt, and rustllvm, and the > docs. I measure these as libuv/rt: 19s, rustllvm: 4s, docs: 12s. Total of > 35s for native code and docs. > > That's 8m45s to compile and test all of Rust. To compare, simply running > `time make check`, using the default (optimized, valgrinding) > configuration, with a prebuilt llvm and clang, takes 36m. This machine > builds and tests go in under 2 minutes. > > Getting the Rust build to actually go that fast in the default > configuration will take some work. > > > ______________________________**_________________ > Rust-dev mailing list > Rust-dev@mozilla.org > https://mail.mozilla.org/**listinfo/rust-dev<https://mail.mozilla.org/listinfo/rust-dev> > -- הבלוג שלי: http://nadavvin.com
_______________________________________________ Rust-dev mailing list Rust-dev@mozilla.org https://mail.mozilla.org/listinfo/rust-dev