On 2/18/16 8:11 AM, Márcio Martins wrote:
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.
Which of these advantages cannot be taken advantage of today?
All that DMD has going for it is it's compilation speed.
Walter does most of the feature implementation work. Having a familiar
back-to-back codebase is a big asset. Compilation speed is a big asset,
too, probably not as big.
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.
A step everybody would agree is good would be to make it easy for the
three compilers to stay in sync.
Thanks for your work on the GC!
Andrei