4 ms·
Personally I more wish Rust would take this approach. Rust desperately needs a fast, developer oriented compiler. The slow compile times is potentially Rusts bi
by eikenberry 7y ago
Personally I more wish Rust would take this approach. Rust desperately needs a fast, developer oriented compiler. The slow compile times is potentially Rusts biggest flaw, to the point where I find it keeps me off the language for anything non-trivial. Even better might be a Rust interpreter, so you'd get REPL and fast development cycles.
- mixedCase 7y agoIsn't Cranelift going to be usable for that?
- pcwalton 7y agoThis is why Cranelift is being worked on. There is also a Rust interpreter, miri. I think starting with LLVM was the right decision (and one that was I was primarily responsible for). Rust would lose most of its benefits if it didn't produce code with performance on par with C++. LLVM is not the fastest compiler in the world (though it's not like it's horribly slow either), but its optimization pipeline is unmatched. I don't see replicating LLVM's code quality as feasible without a large team and a decade of work. Middling code gen performance is an acceptable price to pay until we get Cranelift; the alternative, developing our own backend, would mean not being able to deploy Rust code at all in many scenarios.
- eikenberry 7y agoThanks for the pointer! I was unfamiliar with Cranelift and it seems like a promising tech. I'll keep an eye on it in hopes that once it is stable I'll be able to put together a development environment that allows for the fast turnaround I prefer.
- voldacar 7y agoForgive me if this is ignorant, since I havent done any benchmarks on this in a while, but doesnt GCC produce slightly faster code on average across a wide set of benchmarks compared to clang/LLVM?
- pcwalton 7y agoPerhaps, but the advantages of a large third-party ecosystem around LLVM outweighed any performance differences between GCC and LLVM.
- oscargrouch 7y agoAt least in these benchmarks that phoronix run time-to-time, (so they at least can be compared to their older self) LLVM, in its Clang incarnation, is finally getting some parity in execution times with GCC https://www.phoronix.com/scan.php?page=article&item=gcc-clang-3960x&num=7 https://www.phoronix.com/scan.php?page=article&item=gcc-clan... Of course, benchmarks, yada yada, but at least is some sort of comparison axis where the improvement over the years is clear.
- voldacar 7y agoThanks for the link. I was probably thinking about some older phoronix benchmarks when I made my post
- MarkSweep 7y agoI have not used rust for anything very large, but the using an editor that supports the rust language server mitigates the compile time problem. In VSCode it show you the compiler warnings and errors as you are editing a file. There is a little lag in updating but the workflow is faster than switching to a terminal to do a full compile.
- ComputerGuru 7y agoSlow compile is a developer problem. Big binaries is a problem for both developers and users. Typically, developers can afford to throw more cores and more ram at their build machines.