www.digitalmars.com         C & C++   DMDScript  

D.gnu - D compiler as part of GCC

reply Jerry Quinn <jlquinn optonline.net> writes:
Hi, folks,

I'm interested in creating a D front end for GCC that would be part of the GCC
codebase.  My feeling is that a GDC that is part of GCC distributions will
likely have more life than one that must be updated whenever a new GCC release
comes out.  As with linux kernel in-tree drivers being kept up to date, an
integrated GDC would tend to move forward as well.

To do this though, copyright on the code must be assigned to the FSF.  This
means that even though the DMD front end sources are licensed under the GPL,
they cannot be directly used to write this front end as the copyright is owned
by DigitalMars.  Everyone who contributes code must not look at the DMD
compiler source code to avoid accidentally contributing code illegally. 
Therefore, this will be a completely new implementation of D.

The obvious disadvantage of doing this is that it will be a slow process to get
to a working D compiler.  However, one advantage to the D world is firming up
and validating the language specification so that the language is not defined
by what the DMD compiler does.

My personal desire is to implement (and track) the 2.0 language since I would
like to see that feature set available through GCC.  Second, by the time a
working front end becomes part of GCC, the 2.0 language will likely be complete.

One question I have (of many) is whether a different name should be used.  If
this is called GDC there will be some confusion with the current GDC.  What
thoughts do you all have?

In general is there interest in this project, especially contributing to it?

Thanks,
Jerry
Jan 17 2010
next sibling parent reply "Simen kjaeraas" <simen.kjaras gmail.com> writes:
Jerry Quinn <jlquinn optonline.net> wrote:

 One question I have (of many) is whether a different name should be  
 used.  If this is called GDC there will be some confusion with the  
 current GDC.  What thoughts do you all have?

If the project is to replace GDC, then taking its name sounds good to me. Otherwise, GCD (Gnu Compiler for D) is low-hanging fruit. -- Simen
Jan 18 2010
parent Jerry Quinn <jlquinn optonline.net> writes:
Simen kjaeraas Wrote:

 Jerry Quinn <jlquinn optonline.net> wrote:
 
 One question I have (of many) is whether a different name should be  
 used.  If this is called GDC there will be some confusion with the  
 current GDC.  What thoughts do you all have?

If the project is to replace GDC, then taking its name sounds good to me. Otherwise, GCD (Gnu Compiler for D) is low-hanging fruit.

Truthfully, I would be reasonably happy with either GDC becoming vibrant again, or D becoming part of the official GCC tree. GDC has been pretty idle, unfortunately. If D in GCC were to gain momentum, then I would hope to replace it, otherwise it probably won't matter if it has the same name. Jerry
Jan 18 2010
prev sibling next sibling parent Leandro Lucarella <llucax gmail.com> writes:
Jerry Quinn, el 17 de enero a las 21:43 me escribiste:
 Hi, folks,
 
 I'm interested in creating a D front end for GCC that would be part of
 the GCC codebase.  My feeling is that a GDC that is part of GCC
 distributions will likely have more life than one that must be updated
 whenever a new GCC release comes out.  As with linux kernel in-tree
 drivers being kept up to date, an integrated GDC would tend to move
 forward as well.

I think that if a D compiler is included with the official GCC distribution, it would be a massive step forward for the language. It would make it's adoption much easier since people tend to trust a lot in GCC.
 My personal desire is to implement (and track) the 2.0 language since
 I would like to see that feature set available through GCC.  Second, by
 the time a working front end becomes part of GCC, the 2.0 language will
 likely be complete.

If you are really going to do this, I strongly suggest that you make the new front-end as back-end independent as possible, so it can be used by other back-ends like LLVM. People is not very happy in general with DMD front-end, so having a new front-end that's not tied to DMD's back-end could be a huge win for other projects too. That could encourage third party tools too, like code analyzers, or even make it suitable for embedding in IDEs, etc. I think it would be best to even make the front-end project a separated from the whole compiler.
 One question I have (of many) is whether a different name should be
 used.  If this is called GDC there will be some confusion with the
 current GDC.  What thoughts do you all have?

I think too that if this compiler is intended to replace the current GDC (I'm not convinced that's a good idea, maybe it would be nice to have both front-end options), taking over the name is OK, otherwise a new name would be necessary.
 In general is there interest in this project, especially contributing to
 it?

I'm *very* interested, not so sure I could contribute a lot though :( -- Leandro Lucarella (AKA luca) http://llucax.com.ar/ ---------------------------------------------------------------------- GPG Key: 5F5A8D05 (F8CD F9A7 BF00 5431 4145 104C 949E BFB6 5F5A 8D05) ---------------------------------------------------------------------- Agitamos toda la zona de la paleta al horno, vemos que una luz nos atraviesa toda la zona intestinal... -- Sidharta Kiwi
Jan 18 2010
prev sibling next sibling parent =?ISO-8859-1?Q?Anders_F_Bj=F6rklund?= <afb algonet.se> writes:
Jerry Quinn wrote:
 Everyone who contributes code must not look at the DMD compiler
 source code to avoid accidentally contributing code illegally.
 Therefore, this will be a completely new implementation of D.

 One question I have (of many) is whether a different name should be
 used.  If this is called GDC there will be some confusion with the
 current GDC.  What thoughts do you all have?

If you are doing a completely new implementation, you should pick a new name for it. Something like the "Free D Compiler", or whatever. (like "GNU Pascal Compiler (GPC)" vs. "Free Pascal Compiler (FPC)")
 The obvious disadvantage of doing this is that it will be a slow
 process to get to a working D compiler.  However, one advantage to
 the D world is firming up and validating the language specification
 so that the language is not defined by what the DMD compiler does.

Is the language specification available under a more open license ? (I was under the impression that it is not freely redistributable) At least the source code is under GPLv1, even if also copyrighted... --anders
Jan 19 2010
prev sibling next sibling parent Vincenzo Ampolo <vincenzo.ampolo gmail.com> writes:
Jerry Quinn wrote:

 Hi, folks,

Hi Jerry
 
 I'm interested in creating a D front end for GCC that would be part of the
 GCC codebase.  My feeling is that a GDC that is part of GCC distributions
 will likely have more life than one that must be updated whenever a new
 GCC release comes out.  As with linux kernel in-tree drivers being kept up
 to date, an integrated GDC would tend to move forward as well.

Yes, you are right.
 
 To do this though, copyright on the code must be assigned to the FSF. 
 This means that even though the DMD front end sources are licensed under
 the GPL, they cannot be directly used to write this front end as the
 copyright is owned by DigitalMars.  Everyone who contributes code must not
 look at the DMD compiler source code to avoid accidentally contributing
 code illegally.  Therefore, this will be a completely new implementation
 of D.

Well, things are not so "black or white". Walter is a very kind person and i'm 100% sure he will release the copyright if there is a chance to have the gdc frontend integrated in the gcc codebase.
 
 The obvious disadvantage of doing this is that it will be a slow process
 to get to a working D compiler.  However, one advantage to the D world is
 firming up and validating the language specification so that the language
 is not defined by what the DMD compiler does.

It's the main part i'm fed up about D. No clear language specifications, if you want it, you have to put your hands into the dmd frontend.
 
 My personal desire is to implement (and track) the 2.0 language since I
 would like to see that feature set available through GCC.  Second, by the
 time a working front end becomes part of GCC, the 2.0 language will likely
 be complete.

This is the goal of all the people involved in the gdc project. However, a not stable language specification (or worse, not existent) makes all this work very hard to do.
 
 One question I have (of many) is whether a different name should be used. 
 If this is called GDC there will be some confusion with the current GDC. 
 What thoughts do you all have?

What do you mean? do you wanna start another D frontend for gcc? Well, i don't suggest you to start this way. A compiler is one of the most complex software a human is able to think. Compilers need a group of skilled people and, mainly, many years to be stable and to be production-friendly. Since GDC was a dead project, me and Michael thought that we could help in supporting that code and do enhancements. This leads us to make a GDC for hosted on bitbucket ( http://bitbucket.org/goshawk/gdc/wiki/Home ). If you are interested in gdc consider to join us and continue in supporting the d frontend.
 
 In general is there interest in this project, especially contributing to
 it?

There is interest in this project of course, but real life works take all the time sometimes. But with a large team of developers (and maybe a better language specification) we would be able to produce and release a good D compiler based on the gcc backend. We are trying to align the current trunk of the project to lastest dmd frontend and gcc backend. After we reach that goal we can start thinking to further plans. I'm here if you have more questions or suggestions :)
 
 Thanks,
 Jerry

-- Vincenzo Ampolo (goshawk) http://goshawknest.wordpress.com
Jan 19 2010
prev sibling parent reply Steve Teale <steve.teale britseyeview.com> writes:
 In general is there interest in this project, especially contributing to
 it?
 

Did anything come of this and the ensuing discussions? Steve
Mar 04 2010
next sibling parent Jerry Quinn <jlquinn optonline.net> writes:
Steve Teale Wrote:

 In general is there interest in this project, especially contributing to
 it?
 

Did anything come of this and the ensuing discussions?

At the moment, Walter is considering it. Beyond that I don't know and don't want to put words in anyone's mouth. I've been playing with writing one on my own in the meantime. I fully expect it to be throwaway at such time as the DMD front end is contributed to the GCC project. But, it's interesting to do anyway and I'm learning more about the front end of GCC in the process. So far I've got most of the lexer and part of the parsing pass before semantic analysis. That's the easy stuff. Jerry
Mar 07 2010
prev sibling parent Steve Teale <steve.teale britseyeview.com> writes:
On Sun, 07 Mar 2010 21:25:11 -0500, Jerry Quinn wrote:

 Steve Teale Wrote:
 
 In general is there interest in this project, especially contributing
 to it?
 


expect it to be throwaway at such time as the DMD front end is contributed to the GCC project. But, it's interesting to do anyway and I'm learning more about the front end of GCC in the process. So far I've got most of the lexer and part of the parsing pass before semantic analysis. That's the easy stuff. Jerry

I'm trying - at a low effort level - to get the current GDC2 working with GCC-4.4.3. There has been pretty substantial surgery in 4.4, so it is not clear how to achieve the equivalent of the 4.3.4 GCC patches. Steve
Mar 09 2010