Jump to page: 1 2 3
Thread overview
Why the DMD Backend?
Nov 28, 2014
Xinok
Nov 28, 2014
ketmar
Dec 04, 2014
Jesse Phillips
Nov 29, 2014
Joakim
Nov 29, 2014
ketmar
Nov 30, 2014
Ary Borenszweig
Nov 30, 2014
ketmar
Dec 03, 2014
MachineCode
Dec 03, 2014
ketmar
Dec 03, 2014
Shriramana Sharma
Dec 03, 2014
ketmar
Nov 30, 2014
MachineCode
Nov 30, 2014
bearophile
Dec 01, 2014
MachineCode
Dec 02, 2014
Chris
Dec 02, 2014
bearophile
Dec 02, 2014
Chris
Dec 02, 2014
Temtaime
Dec 02, 2014
Chris
Dec 02, 2014
Temtaime
November 28, 2014
Given that we have GDC with the GCC backend and LDC with the LLVM backend, what are the benefits of keeping the DMD compiler backend? It seems to me that GCC and LLVM are far more developed and better supported by their respective communities. They have superior optimizers and are better equipped for migrating D to new platforms. On the other hand, from what I gather, there's lots of work to be done on DMD on improving support for x64 Windows and ARM.

It's a genuine question, which is why I posted this to D.learn. I don't follow development on the backend and overall I'm unfamiliar with compilers, so I'm not sure what the benefits are of the D community continuing to maintain it's own backend.
November 28, 2014
On Fri, 28 Nov 2014 19:59:39 +0000
Xinok via Digitalmars-d-learn <digitalmars-d-learn@puremagic.com> wrote:

> Given that we have GDC with the GCC backend and LDC with the LLVM backend, what are the benefits of keeping the DMD compiler backend?
build time for the whole DMD compiler with standard library, using G++: 100 seconds. yea, no kidding.

gdc: i don't even want to think about that, way toooo long.

ldc: not that long as gcc, but still much longer than DMD.

besides, for get ready to use compiler with DMD i need only installed c++ compiler binary. for gdc i need the whole gcc source tree. for ldc i need installed llvm with it's headers.

DMD is good for fast write-compile-test cycles. and in most cases it's codegen is satisfying enough.

last, but not least: rdmd is faster than rgdc. ;-)


November 28, 2014
On Friday, 28 November 2014 at 19:59:40 UTC, Xinok wrote:
> Given that we have GDC with the GCC backend and LDC with the LLVM backend, what are the benefits of keeping the DMD compiler backend? It seems to me that GCC and LLVM are far more developed and better supported by their respective communities. They have superior optimizers and are better equipped for migrating D to new platforms. On the other hand, from what I gather, there's lots of work to be done on DMD on improving support for x64 Windows and ARM.
>
> It's a genuine question, which is why I posted this to D.learn. I don't follow development on the backend and overall I'm unfamiliar with compilers, so I'm not sure what the benefits are of the D community continuing to maintain it's own backend.

DDMD, bootstraping.
LDC and GDC are not written in D.
November 29, 2014
On Friday, 28 November 2014 at 19:59:40 UTC, Xinok wrote:
> Given that we have GDC with the GCC backend and LDC with the LLVM backend, what are the benefits of keeping the DMD compiler backend? It seems to me that GCC and LLVM are far more developed and better supported by their respective communities. They have superior optimizers and are better equipped for migrating D to new platforms. On the other hand, from what I gather, there's lots of work to be done on DMD on improving support for x64 Windows and ARM.

The backend comes from the dmc and dmc++ compilers which Walter wrote, so he's always going to build against that, both because he knows it well and because he refuses to look at source for other compilers, for legal reasons.  I don't know that there's much work left for Win64, certainly not on the backend.  The dmc backend is for Intel only, ie i386 and x64.  No support for ARM or any other arch and no plans to add them.

> It's a genuine question, which is why I posted this to D.learn. I don't follow development on the backend and overall I'm unfamiliar with compilers, so I'm not sure what the benefits are of the D community continuing to maintain it's own backend.

What are the drawbacks?  ldc and gdc have their own maintainers.  I don't think it takes much work to maintain the dmc backend.

On Friday, 28 November 2014 at 20:10:03 UTC, ketmar via Digitalmars-d-learn wrote:
> On Fri, 28 Nov 2014 19:59:39 +0000
> Xinok via Digitalmars-d-learn <digitalmars-d-learn@puremagic.com> wrote:
>
>> Given that we have GDC with the GCC backend and LDC with the LLVM backend, what are the benefits of keeping the DMD compiler backend?
> build time for the whole DMD compiler with standard library, using
> G++: 100 seconds. yea, no kidding.
>
> gdc: i don't even want to think about that, way toooo long.
>
> ldc: not that long as gcc, but still much longer than DMD.

I haven't timed it, but compiling ldc feels about 50-100% longer to me, which isn't too bad.  Unless you're including the time to compile llvm, which is a different story.

On Friday, 28 November 2014 at 20:14:07 UTC, LeakingAntonovPlane wrote:
> DDMD, bootstraping.
> LDC and GDC are not written in D.

That's not the reason, both those projects plan on moving to the new D frontend also.  dmd isn't written in D either: they just plan on translating the common dmd frontend from C++ to D, then using it across all three compilers.  There is a D frontend written from scratch in D, SDC, which also uses llvm as the backend:

https://github.com/deadalnix/SDC
November 29, 2014
On Sat, 29 Nov 2014 15:37:32 +0000
Joakim via Digitalmars-d-learn <digitalmars-d-learn@puremagic.com>
wrote:

> > build time for the whole DMD compiler with standard library,
> > using
> > G++: 100 seconds. yea, no kidding.
> >
> > gdc: i don't even want to think about that, way toooo long.
> >
> > ldc: not that long as gcc, but still much longer than DMD.
> 
> I haven't timed it, but compiling ldc feels about 50-100% longer to me, which isn't too bad.  Unless you're including the time to compile llvm, which is a different story.
at least 80%-100% longer. this is noticable.

besides, i don't want to use anything llvm-related.


November 30, 2014
On 11/29/14, 3:48 PM, ketmar via Digitalmars-d-learn wrote:
> On Sat, 29 Nov 2014 15:37:32 +0000
> Joakim via Digitalmars-d-learn <digitalmars-d-learn@puremagic.com>
> wrote:
>
>>> build time for the whole DMD compiler with standard library,
>>> using
>>> G++: 100 seconds. yea, no kidding.
>>>
>>> gdc: i don't even want to think about that, way toooo long.
>>>
>>> ldc: not that long as gcc, but still much longer than DMD.
>>
>> I haven't timed it, but compiling ldc feels about 50-100% longer
>> to me, which isn't too bad.  Unless you're including the time to
>> compile llvm, which is a different story.
> at least 80%-100% longer. this is noticable.
>
> besides, i don't want to use anything llvm-related.
>

Why not?
November 30, 2014
On Sat, 29 Nov 2014 22:57:52 -0300
Ary Borenszweig via Digitalmars-d-learn
<digitalmars-d-learn@puremagic.com> wrote:

> > besides, i don't want to use anything llvm-related.
> Why not?
let's say that there is some "ideological" reasons.


November 30, 2014
On Friday, 28 November 2014 at 19:59:40 UTC, Xinok wrote:
> Given that we have GDC with the GCC backend and LDC with the LLVM backend, what are the benefits of keeping the DMD compiler backend? It seems to me that GCC and LLVM are far more developed and better supported by their respective communities. They have superior optimizers and are better equipped for migrating D to new platforms. On the other hand, from what I gather, there's lots of work to be done on DMD on improving support for x64 Windows and ARM.
>
> It's a genuine question, which is why I posted this to D.learn. I don't follow development on the backend and overall I'm unfamiliar with compilers, so I'm not sure what the benefits are of the D community continuing to maintain it's own backend.

I don't want to download neither gcc or llvm just to use D
language. If so, I could refuse to install and move me away from
the language. I tried to use others compilers which use gcc/llvm
as backend where I had to do alot of workaround just to make it
working on Windows that I just gave up.
November 30, 2014
MachineCode:

> I tried to use others compilers which use gcc/llvm
> as backend where I had to do alot of workaround just to make it
> working on Windows that I just gave up.

I using ldc2 on Windows with no problems, and the installation is very easy, just download two archives and unpack them in the root. Add a path to your path file, and you are done.

Bye,
bearophile
December 01, 2014
On Sunday, 30 November 2014 at 22:15:44 UTC, bearophile wrote:
> MachineCode:
>
>> I tried to use others compilers which use gcc/llvm
>> as backend where I had to do alot of workaround just to make it
>> working on Windows that I just gave up.
>
> I using ldc2 on Windows with no problems, and the installation is very easy, just download two archives and unpack them in the root. Add a path to your path file, and you are done.
>
> Bye,
> bearophile

I wasn't speaking about the ldc(I haven't used it yet) but other compilers gcc/llvm-based that I've tried to use a while ago.
« First   ‹ Prev
1 2 3