dmd codegen improvements

Laeeth Isharc via Digitalmars-d digitalmars-d at puremagic.com
Wed Sep 2 19:30:39 PDT 2015


On Sunday, 30 August 2015 at 16:17:49 UTC, Ola Fosheim Grøstad 
wrote:
> On Sunday, 30 August 2015 at 06:07:25 UTC, Laeeth Isharc wrote:
>> Morale is important in long term projects that don't pay off 
>> very quickly, and constant nagging and grumbling doesn't tend 
>> to help, even in the case when it is entirely well founded.
>
> Actually, it does help.

There's a big difference between saying "dmd generates code 
that's slow by the standards of modern C++ compilers.  it's an 
impressive accomplishment for a small group, but we ought to do 
better.  I know C++ and asm, and only have a little time, but I 
would like to help.  what would be most useful to look at ?"

and something else.

In my experience grumbling without action doesn't tend to lead to 
the change you want in the world.  In theory maybe it should, and 
someone will listen.  But human beings are funny creatures.

> There has been changes over time. Right now the most sensible 
> thing to do is
> to focus on stability, refactor the codebase, document the 
> codebase and track regressions. If you actually want others to 
> contribute you need to leading by example... E.g. you need to 
> get the boring stuff done first.

Well how would a dictator of D accomplish that?  Probably porting 
the compiler to D would be a pretty good start, for a variety of 
reasons.  That will help with stability, refactoring, and 
documentation I should have thought.  Not everyone knows C++, and 
of those who do, not everyone wants to write in it.

By the way, the dmd source code doesn't seem horribly obscure to 
read at first glance.

> If you actually want others to contribute you need to leading 
> by example

alors ?  as you point out, an asm.js backend would be rather nice 
to have, and you are by all accounts a low-level guy, so it 
shouldn't be hard to do, no ?

> There is absolutely no point in helping out with a project that 
> add features/optimizations faster than they are finished. Such 
> projects are never finished. Even if you got 10 more people to 
> work on it, the outcome would not be that it would be finished, 
> you would end up getting more features, not more polish.

Given that C compilers are still developing, I doubt D will ever 
be finished in my useful career.  So what ?  The facts speak 
against your claim, since D is clearly becoming more polished 
with every release - just look at the improvements to the GC 
within the past year.  (Runtime/compiler, whatever).

> For a project that is in perpetual beta leaders need to show 
> their priorities.

Andrei talked about documentation and presentation a little while 
back, and we're now in a much better state.  Allocators soon 
here.  People have got D to run on embedded systems with low 
resources.  GC is getting better - maybe not yet good enough for 
some, but I don't know that it's an easy problem and realistic to 
expect things to change in the space of a year.  etcimon has 
written something interesting - maybe a niche application or not 
yet ready for prime time - I haven't had time to see.

Walter talked about the need to get across that D is being used 
for serious business by serious people.  He made the Andy Smith 
talk happen, and that certainly increases the language 
credibility amongst a group that spends a lot of money on 
technology.  Maybe D will have another decent-sized hedge fund 
user soon.  I tried with a bank, but they had bigger problems.

> 1. Complete the language specification (define semantics).
> 2. Implement and polish semantics.
> 3. Clean up syntax.
> 4. Tooling.
> 5. Performance.

As some wit once said, what is true is not original, and what is 
original is not necessarily true.  Ie syntax/tooling/performance 
is already a focus here.  Semantics, I don't know.  I'd bet on 
good taste over excessive formalisation, but I am no computer 
science expert.  It's good enough for my modest needs.  I'd 
honestly bet that a little more effort to communicate the 
practical commercial benefits of D would make much more of a 
difference than this abstract stuff.  But who am I to say.



Laeeth.




More information about the Digitalmars-d mailing list