www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.ldc - Project ideas - looking for more contributors

reply "Kai Nacke" <kai redstar.de> writes:
Hi all!

LDC is a community effort. All kinds of contributions are 
welcome!!! This is a great way to speed up development and 
increase quality of LDC!

But how to start? Well, Ian (from GDC project) told everybody 
that compiler construction is no rocket science. Yes, that's 
true! Here are some ideas to start with:

* First, report all bugs you find. Just make sure that it is a 
genuine LDC bug (e.g. not a frontend problem which is solved in 
an upcoming DMD version) and provide a nice test case.

* Build LDC from source. Improve the build instructions if you 
find inaccuracies or tell us about build problems.

* In general improve the wiki pages at http://wiki.dlang.org/LDC

* Maybe you want to get some dirty hands? Just look at the 
reported issues (https://github.com/ldc-developers/ldc/issues/) 
and fire up your debugger. It is quite easy to understand LDC 
source just be single stepping through some functions.

* Implement some missing feature, e.g. support for  ldc.attribute.

If you really dislike C++ then there are still areas which need 
help:

* Implement shared library support on Linux. The basic 
infrastructure is in place but still needs some cleanup.

* Port LDC to a new environment. E.g. LDC itself compiles on 
Solaris 11 but misses some files in druntime and phobos. Or try 
LDC on OpenBSD, NetBSD, Plan 9, ....

* Translate ldmd2 to D. This would be a great start to eat our 
own dog food.

* Provide a D module replacing libconfig. This would help in 
transition of LDC to D.

* The CMake scripts can be improved in various way. Just look up 
the related issues.

If you provide a pull request then you should have a look at the 
CI servers https://travis-ci.org/ldc-developers/ldc/ and 
http://ci.lycus.org/job/LDC/
to identify possible problems.

And don't hesitate to ask your questions here in the newsgroup!

Regards,
Kai
Jun 06 2014
next sibling parent reply David Nadlinger via digitalmars-d-ldc <digitalmars-d-ldc puremagic.com> writes:
On 6 Jun 2014, at 18:54, Kai Nacke via digitalmars-d-ldc wrote:
 Well, Ian (from GDC project) told everybody that compiler construction 
 is no rocket science.
Actually, that was me, and I'm very much not from the GDC project. ;) Best, David
Jun 06 2014
parent "Kai Nacke" <kai redstar.de> writes:
On Friday, 6 June 2014 at 17:31:23 UTC, David Nadlinger via 
digitalmars-d-ldc wrote:
 On 6 Jun 2014, at 18:54, Kai Nacke via digitalmars-d-ldc wrote:
 Well, Ian (from GDC project) told everybody that compiler 
 construction is no rocket science.
Actually, that was me, and I'm very much not from the GDC project. ;)
Ohh.... I read too much comments from Ian that day... I'am sorry. Regards, Kai
Jun 10 2014
prev sibling parent reply Dan Olson <zans.is.for.cans yahoo.com> writes:
"Kai Nacke" <kai redstar.de> writes:

 * Port LDC to a new environment. E.g. LDC itself compiles on Solaris
 11 but misses some files in druntime and phobos. Or try LDC on
 OpenBSD, NetBSD, Plan 9, ....
I bet any of the BSD family might be fairly easy for any who wants to try, especially if clang/LLVM already is well supported. DragonFly BSD is another one. Could be instant gratification for someone.
 * Translate ldmd2 to D. This would be a great start to eat our own dog
 food.
ldmd2 is a dmd like small wrapper that translates commandline and executes real compiler ldc2, right? It looks like it consists of three C++/C files: ldmd.cpp response.cpp man.c This one doesn't require compiler knowledge and is mostly string processing. I think anyone with a good C background moving into D would have fun with it. Question: is ldmd.d short lived though? What happens when dmd itself switches to D? -- Dan
Jun 08 2014
next sibling parent reply "Dicebot" <public dicebot.lv> writes:
On Sunday, 8 June 2014 at 17:32:24 UTC, Dan Olson wrote:
 Question: is ldmd.d short lived though?  What happens when dmd 
 itself
 switches to D?
AFAIK it will always be relevant as natural ldc CLI provides lot of additional flags that expose LLVM capabilities. And goal of ldmd is to provide exact drop-in replacement for any script or utility that uses dmd CLI.
Jun 08 2014
parent David Nadlinger via digitalmars-d-ldc <digitalmars-d-ldc puremagic.com> writes:
On 8 Jun 2014, at 23:52, Dicebot via digitalmars-d-ldc wrote:
 AFAIK it will always be relevant as natural ldc CLI provides lot of 
 additional flags that expose LLVM capabilities. And goal of ldmd is to 
 provide exact drop-in replacement for any script or utility that uses 
 dmd CLI.
That is indeed true. LDC use the LLVM command-line parsing code to also expose all the LLVM-internal flags, which are very helpful for debugging, testing and fine-tuning the optimization options. The names of some of them conflict with DMD options, e.g. -debug. For this reason, the D flag has been renamed to -d-debug in the ldc binary. This is unlikely to change unless somebody comes up with a very compelling usability argument. Best, David
Jun 09 2014
prev sibling parent reply "Kai Nacke" <kai redstar.de> writes:
On Sunday, 8 June 2014 at 17:32:24 UTC, Dan Olson wrote:
 "Kai Nacke" <kai redstar.de> writes:

 * Port LDC to a new environment. E.g. LDC itself compiles on 
 Solaris
 11 but misses some files in druntime and phobos. Or try LDC on
 OpenBSD, NetBSD, Plan 9, ....
I bet any of the BSD family might be fairly easy for any who wants to try, especially if clang/LLVM already is well supported. DragonFly BSD is another one. Could be instant gratification for someone.
FreeBSD is well supported except that there is no FreeBSD port (anyone?).
 * Translate ldmd2 to D. This would be a great start to eat our 
 own dog
 food.
ldmd2 is a dmd like small wrapper that translates commandline and executes real compiler ldc2, right? It looks like it consists of three C++/C files: ldmd.cpp response.cpp man.c This one doesn't require compiler knowledge and is mostly string processing. I think anyone with a good C background moving into D would have fun with it. Question: is ldmd.d short lived though? What happens when dmd itself switches to D?
As Dicebot and David already said: ldmd2 is a frontend driver required for DMD compability. This will not change even if DDMD arrives. Regards, Kai
Jun 10 2014
next sibling parent "Daniel Murphy" <yebbliesnospam gmail.com> writes:
"Kai Nacke"  wrote in message news:xegnwtwoubzseegyjqxi forum.dlang.org...

 As Dicebot and David already said: ldmd2 is a frontend driver required for 
 DMD compability. This will not change even if DDMD arrives.
_when_ DDMD arrives. And with Walter changing the frontend license it would be possible to use the converted code as a base for ldmd2.
Jun 12 2014
prev sibling parent reply "Temtaime" <temtaime gmail.com> writes:
Hi Kai !
I'm interesting at ldc in support of 2.065 or even better git 
head frontend.

I'll try on those days build ldc itself and try to merge with 
2.065.
Also i think link to gcc should be updated to :

http://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win32/Personal%20Builds/mingw-builds/4.9.0/threads-posix/dwarf/i686-4.9.0-release-posix-dwarf-rt_v3-rev2.7z/download

It's newer gcc and ldc works fine with it.
Jun 12 2014
parent reply "Kai Nacke" <kai redstar.de> writes:
Hi Temtaine!

On Thursday, 12 June 2014 at 20:45:32 UTC, Temtaime wrote:
 Hi Kai !
 I'm interesting at ldc in support of 2.065 or even better git 
 head frontend.
That's great! 2.065 is already merged (in branch merege-2.065) but there is yet not work done on upcoming 2.066.
 I'll try on those days build ldc itself and try to merge with 
 2.065.
 Also i think link to gcc should be updated to :

 http://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win32/Personal%20Builds/mingw-builds/4.9.0/threads-posix/dwarf/i686-4.9.0-release-posix-dwarf-rt_v3-rev2.7z/download

 It's newer gcc and ldc works fine with it.
I'll check and update. Thanks for the link. Regards, Kai
Jun 12 2014
parent reply "Frank Like" <1150015857 qq.com> writes:
On Friday, 13 June 2014 at 05:00:57 UTC, Kai Nacke wrote:
 Hi Temtaine!

 On Thursday, 12 June 2014 at 20:45:32 UTC, Temtaime wrote:
 Hi Kai !
 I'm interesting at ldc in support of 2.065 or even better git 
 head frontend.
That's great! 2.065 is already merged (in branch merege-2.065) but there is yet not work done on upcoming 2.066.
When will be updated on 'http://dlang.org/download.html'? Thank you. Frank
Jun 14 2014
parent "Kai Nacke" <kai redstar.de> writes:
On Saturday, 14 June 2014 at 11:52:44 UTC, Frank Like wrote:
 On Friday, 13 June 2014 at 05:00:57 UTC, Kai Nacke wrote:
 Hi Temtaine!

 On Thursday, 12 June 2014 at 20:45:32 UTC, Temtaime wrote:
 Hi Kai !
 I'm interesting at ldc in support of 2.065 or even better git 
 head frontend.
That's great! 2.065 is already merged (in branch merege-2.065) but there is yet not work done on upcoming 2.066.
When will be updated on 'http://dlang.org/download.html'? Thank you. Frank
As soon as the next release is published. Alpha and beta releases are only available at https://github.com/ldc-developers/ldc/releases Regards, Kai
Jun 15 2014