August 28, 2015
Currently there are 3948 issues reported.
There are 24K threads and 83K posts it « Issues » while in « Learn » only 11K and 74K.

I can say than backend is not a problem at all for now.
Many bugs are ugly.
August 28, 2015
On 28-Aug-2015 15:37, Temtaime wrote:
> Currently there are 3948 issues reported.

Specifically for DMD including enhancements - 2569
Without enhancements - 1574

Having around 1K open issues is quite typical for a product that is actually being used.

> I can say than backend is not a problem at all for now.
> Many bugs are ugly.

Fixing one will make that list shorter.

-- 
Dmitry Olshansky
August 28, 2015
On Friday, 28 August 2015 at 11:53:20 UTC, Dmitry Olshansky wrote:
> On 28-Aug-2015 14:18, Temtaime wrote:
>> So comparing to llvm the idea of optimizing backend comes with:
>>
>> 1) LLVM optimizes code much better than DMD for now. And it's in active
>> development, so it always will be far from DMD.
>
> In producing better code very it well may be. Faster - I don't think so.
>
>> 2) LLVM has over 120k commits, it has many financial investments from
>> Google and Apple. Are you sure that ONE Walter can achieve what they done ?
>> 3) LLVM supports many platforms while DMD will never support anything
>> different from x86.
>
> We do not need to do the new LLVM thing. Then the rest of argument is destroyed.

You ignored probably the most important point in that post. Getting DMD to work on ARM would be a huge undertaking, probably so large that I don't think it will ever happen. This is a huge bummer because this essentially means getting D on phones or cheap computers is a pipe dream.

LDC's ARM branch shows that it can be done with LLVM as a back end. It doesn't support 64 bit and I believe that exception handling still doesn't work, but if there was more man power dedicated to it, it would be possible.

August 28, 2015
On Friday, 28 August 2015 at 15:01:32 UTC, Jack Stouffer wrote:
> This is a huge bummer because this essentially means getting D on phones or cheap computers is a pipe dream.

D has worked on ARM for a long time. gdc supports it well, and I'm skeptical that it would be all that hard for dmd to do it too.... but since gdc already works, I'm meh at spending the time on it.
August 28, 2015
On Friday, 28 August 2015 at 11:18:57 UTC, Temtaime wrote:
> Are you sure that ONE Walter can achieve what they done ?

Yes. A LOT of significant projects are primarily one-person jobs. Even the hard parts can be replicated by one person after a team blazes the path since they can just observe the successes and failures out of the others and skip the research steps.

Even on a team, there's often one person who does the bulk of the work for any section of it; a really large project might just be a bunch of basically independent pieces that happen to fit together.
August 28, 2015
On 28-Aug-2015 18:01, Jack Stouffer wrote:
> On Friday, 28 August 2015 at 11:53:20 UTC, Dmitry Olshansky wrote:
>> On 28-Aug-2015 14:18, Temtaime wrote:
>>> So comparing to llvm the idea of optimizing backend comes with:
>>>
>>> 1) LLVM optimizes code much better than DMD for now. And it's in active
>>> development, so it always will be far from DMD.
>>
>> In producing better code very it well may be. Faster - I don't think so.
>>
>>> 2) LLVM has over 120k commits, it has many financial investments from
>>> Google and Apple. Are you sure that ONE Walter can achieve what they
>>> done ?
>>> 3) LLVM supports many platforms while DMD will never support anything
>>> different from x86.
>>
>> We do not need to do the new LLVM thing. Then the rest of argument is
>> destroyed.
>
> You ignored probably the most important point in that post. Getting DMD
> to work on ARM would be a huge undertaking, probably so large that I
> don't think it will ever happen. This is a huge bummer because this
> essentially means getting D on phones or cheap computers is a pipe dream.
>

Have you ever written a backend? What is the evidance?

Consider that x86 x64 bit support was done in about one year and a half by Walter single-handedly that is without freezing the other activity on DMD, of course. Aside from emitting different sequences of instructions most IR-based optimizations stay the same.


-- 
Dmitry Olshansky
August 28, 2015
On Friday, 28 August 2015 at 11:18:57 UTC, Temtaime wrote:
> 4) LLVM has free licensing, while DMD's backend is not.

this is probably the biggest, you can't even legally redistribute dmd therefore linux distros can't include it in their repos
August 28, 2015
On Friday, 28 August 2015 at 19:10:56 UTC, rsw0x wrote:
> On Friday, 28 August 2015 at 11:18:57 UTC, Temtaime wrote:
>> 4) LLVM has free licensing, while DMD's backend is not.
>
> this is probably the biggest, you can't even legally redistribute dmd therefore linux distros can't include it in their repos

That is by far one of the biggest problem D has.
August 28, 2015
On 8/28/2015 4:18 AM, Temtaime wrote:
> Are you sure that ONE Walter can achieve what they done ?

People told me I couldn't write a C compiler, then told me I couldn't write a C++ compiler. I'm still the only person who has ever implemented a complete C++ compiler (C++98). Then they all (100%) laughed at me for starting D, saying nobody would ever use it.

My whole career is built on stepping over people who told me I couldn't do anything and wouldn't amount to anything.

LLVM is a fine compiler, but there's nothing magical about it.

Besides, we have a secret productivity enhancing weapon that LLVM doesn't have - D!

Now, if I can only tear myself away from the internet for a while...

August 28, 2015
On 8/28/2015 9:49 AM, Dmitry Olshansky wrote:
> Have you ever written a backend? What is the evidance?
>
> Consider that x86 x64 bit support was done in about one year and a half by
> Walter single-handedly that is without freezing the other activity on DMD, of
> course. Aside from emitting different sequences of instructions most IR-based
> optimizations stay the same.

Doing an ARM back end wouldn't be that hard. It's much less complex than x86. Most of the work would be deleting about half of the x86 code generator :-)