Le 25/02/2016 03:48, Walter Bright a écrit :
On 2/24/2016 6:05 PM, Adam D. Ruppe wrote:
I've also heard from big users who want the performance more than
compile time
and hit difficulty in build scaling..
I know that performance trumps all for many users. But we can have both
- dmd and ldc/gdc.
My point is that compile speed is a valuable and distinguishing feature
of D. It's one that I have to constantly maintain, or it bit rots away.
It's one that people regularly dismiss as unimportant. Sometimes it
seems I'm the only one working on the compiler who cares about it.
For comparison, C++ compiles like a pig, I've read that Rust compiles
like a pig, and Go makes a lot of hay for compiling fast.
I think that you are very gentle with C++. It can be hell, when you are
working on multiple platforms with different compiler and build systems
it took a lot of efforts and time to maintain compilation time at a
decent level.
I recently made optimizations on our build configurations after adding
some boost modules at my day job. Our build time double instantly.
All optimizations have a great cost on at least an other point.
- PIMPL: Increase the code complexity, decrease performances
- Precompiled header: not standard, mingw is limited to 130Mo generated file
- Unity build: can be hard to add to many build system if
auto-generated. compiler can crash with an out of memory (mingw will be
the first)
- cleaning our includes: how doing that without tools?
- multi-threaded compilation: not standard, sometimes it have to be
configured on computer
So thank you for having created a fast compiler even if I just can dream
to be able to use it a day professionally.
IMO if Go is a fast compiler is just because dmd shows the way.
Is dmd multi-threaded?
PS: I don't understand why import modules aren't already here in c++, it
make years that clang team is working on it.