On Monday, 11 July 2022 at 21:46:10 UTC, IGotD- wrote:
> On Monday, 11 July 2022 at 18:19:41 UTC, max haughton wrote:
> The dmd backend is ancient, it isn't really capable of these kinds of loop optimizations.
I've said it several times before. Just depreciate the the DMD backend, it's just not up to the task anymore. This is not criticism against the original purpose of it as back in the 90s and early 2000s it made sense to create your own backend. Time has moved on and we have LLVM and GCC backends with a lot of CPU support that the D project could never achieve themselves. The D project should just can the DMD backend in order to free up resources for more important tasks.
Some people say they like it because it is fast, yes it is fast because it doesn't do much.
I use D because DMD compiles my huge project in ~1 second (full clean rebuild)
It is a competitive advantage that many languages doesn't have
LDC clean full rebuild
$ time dub build -f --compiler=ldc2
Performing "debug" build using ldc2 for x86_64.
game ~master: building configuration "desktop"...
Linking...
real 0m18.033s
user 0m0.000s
sys 0m0.015s
LDC incremental
$ time dub build --compiler=ldc2
Performing "debug" build using ldc2 for x86_64.
game ~master: building configuration "desktop"...
Linking...
real 0m17.215s
user 0m0.000s
sys 0m0.000s
DMD clean full rebuild
$ time dub build -f --compiler=dmd
Performing "debug" build using dmd for x86_64.
game ~master: building configuration "desktop"...
Linking...
real 0m1.348s
user 0m0.031s
sys 0m0.015s
DMD incremental
$ time dub build --compiler=dmd
Performing "debug" build using dmd for x86_64.
game ~master: building configuration "desktop"...
Linking...
real 0m1.249s
user 0m0.000s
sys 0m0.000s
The day DMD gets removed is the day i will good a different language
I want to thank Walter for maintaining DMD the compiler, and making it incredibly fast at compiling code
Release perf can't beat LLVM and its amount of optimizations, but the advantage is it allows VERY FAST and QUICK iteration time, it is ESSENTIAL for developing software