Official compiler

Andrei Alexandrescu via Digitalmars-d digitalmars-d at puremagic.com
Thu Feb 18 05:23:34 PST 2016


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



More information about the Digitalmars-d mailing list