On Thursday, 18 February 2016 at 12:05:12 UTC, Jonathan M Davis
wrote:
On Thursday, 18 February 2016 at 11:41:26 UTC, Kai Nacke wrote:
On Thursday, 18 February 2016 at 10:45:54 UTC, Márcio Martins
wrote:
I suppose it's a lot easier to address the compilation speed
issue in LDC/GDC, than to improve and maintain DMD's backend
to the expected levels, right?
LLVM has about 2.5 million code lines. I am anything than sure
if it is easy to improve compilation speed.
On some level, I would expect compilation speed and generating
well-optimized binaries to be mutually exclusive. To get those
extra optimizations, you usually have to do more work, and that
takes more time. I'm sure that some optimizations can be added
to dmd without particularly compromising compilation speed, and
gdc and ldc can probably be made to compile faster without
losing out on optimizations, but you can only go so far without
either losing out on compilation speed or on optimizations. And
obviously, it's not necessarily easy to make improvements to
either, regardless of whether it comes at the cost of the other.
- Jonathan M Davis
I agree with that. It also means that it would be considerably
easier to have a setting in LDC/GDC that generates slightly worst
code, and compiles slightly faster... perhaps never reaching the
speed of DMD, but compilation speed is not the only factor, is it?
GCC/LLVM have many more supported platforms and architectures,
produce faster code, and have large communities behind them,
constantly optimizing and modernizing, backed by it giants like
Google, Apple, ...
I cannot say for GCC but LDC also has considerably better tooling
with the sanitizers.
LDC seems to also be the closest to support all major platforms
and architectures, including iOS and Android which are huge
markets. It supports Win64/Win32 (experimental) out-of-the-box.
Both LDC and GDC have no weird legal strings attached.
Both can be distributed with major Linux distros.
All that DMD has going for it is it's compilation speed.
These are all big points towards having more users experience and
enjoy D as we do!
To get more contributors, more people have to use and believe in
the language. DMD has a lot of clear barriers for this.
Really, not a lot has to change to start with, just fix the
installers and slap the official tag in either LDC or GDC.