Jump to page: 1 24  
Page
Thread overview
ldc 0.9.1 released
May 27, 2009
Christian Kamm
May 27, 2009
Robert Clipsham
May 27, 2009
Frits van Bommel
May 27, 2009
Robert Clipsham
May 27, 2009
Lutger
May 28, 2009
Kagamin
May 28, 2009
Walter Bright
May 28, 2009
Robert Fraser
May 28, 2009
bearophile
May 28, 2009
Nick Sabalausky
May 28, 2009
Nick Sabalausky
May 29, 2009
Sean Kelly
May 29, 2009
Danny Wilson
May 27, 2009
Robert Clipsham
May 27, 2009
Leandro Lucarella
May 27, 2009
bearophile
May 27, 2009
Robert Clipsham
May 27, 2009
Leandro Lucarella
May 27, 2009
Frits van Bommel
May 27, 2009
bearophile
May 27, 2009
Frits van Bommel
May 28, 2009
bearophile
May 27, 2009
Timo Gransch
May 28, 2009
Christian Kamm
May 28, 2009
Timo Gransch
May 29, 2009
Christian Kamm
May 30, 2009
Timo Gransch
May 27, 2009
Lutger
May 27, 2009
The release 0.9.1 of LDC, the LLVM based compiler for the D programming language, contains the following major improvements:

 * lots of bug fixes (http://www.dsource.org/projects/ldc/report/15)
 * x86-64 support is mature
 * inline asm improved (we now define D_Inline_Asm)
 * cross-compilation support
 * uses boehm-gc during compilation (x86-32 only)
 * D specific optimizations:
   * turn GC allocations to allocas if possible
   * simplify or remove certain calls to D runtime functions

The command line interface of LDC now has added options in line with other LLVM based tools. Please use the ldmd wrapper if you want a drop-in replacement for DMD.

Linux x86-32 download: http://www.incasoftware.de/~kamm/ldc/ldc-0.9.1-x86_32.tar.bz2

Linux x86-64 download: http://www.incasoftware.de/~kamm/ldc/ldc-0.9.1-x86_64.tar.bz2

Tomas Lindquist Olsen
Christian Kamm
Frits van Bommel
Kelly Wilson


May 27, 2009
Christian Kamm wrote:
> The release 0.9.1 of LDC, the LLVM based compiler for the D programming language, contains the following major improvements:
> 
>  * lots of bug fixes (http://www.dsource.org/projects/ldc/report/15)
>  * x86-64 support is mature
>  * inline asm improved (we now define D_Inline_Asm)
>  * cross-compilation support
>  * uses boehm-gc during compilation (x86-32 only)
>  * D specific optimizations:
>    * turn GC allocations to allocas if possible
>    * simplify or remove certain calls to D runtime functions
> 
> The command line interface of LDC now has added options in line with other LLVM based tools. Please use the ldmd wrapper if you want a drop-in replacement for DMD.
> 
> Linux x86-32 download: http://www.incasoftware.de/~kamm/ldc/ldc-0.9.1-x86_32.tar.bz2
> 
> Linux x86-64 download: http://www.incasoftware.de/~kamm/ldc/ldc-0.9.1-x86_64.tar.bz2
> 
> Tomas Lindquist Olsen
> Christian Kamm
> Frits van Bommel
> Kelly Wilson

Great! Quick question - are you supporting or considering supporting D2? I looked on the project's home page and couldn't find that information. There's mention of druntime for D2 which makes me hopeful.

Thanks,

Andrei
May 27, 2009
Andrei Alexandrescu wrote:
> Great! Quick question - are you supporting or considering supporting D2? I looked on the project's home page and couldn't find that information. There's mention of druntime for D2 which makes me hopeful.
> 
> Thanks,
> 
> Andrei

D2 support in LDC has been started, but it does not have any of D2's features implemented. I believe all that has been done is the frontend added. Last time I checked ldc + d2 would not compile.

I believe that the plan is to make D1 solid (more so than DMD), before moving on to D2. One of the developers might be able to give a more accurate status.
May 27, 2009
Christian Kamm wrote:
> The release 0.9.1 of LDC, the LLVM based compiler for the D programming language, contains the following major improvements:
> 
>  * lots of bug fixes (http://www.dsource.org/projects/ldc/report/15)
>  * x86-64 support is mature
>  * inline asm improved (we now define D_Inline_Asm)
>  * cross-compilation support
>  * uses boehm-gc during compilation (x86-32 only)
>  * D specific optimizations:
>    * turn GC allocations to allocas if possible
>    * simplify or remove certain calls to D runtime functions
> 
> The command line interface of LDC now has added options in line with other LLVM based tools. Please use the ldmd wrapper if you want a drop-in replacement for DMD.
> 
> Linux x86-32 download: http://www.incasoftware.de/~kamm/ldc/ldc-0.9.1-x86_32.tar.bz2
> 
> Linux x86-64 download: http://www.incasoftware.de/~kamm/ldc/ldc-0.9.1-x86_64.tar.bz2
> 
> Tomas Lindquist Olsen
> Christian Kamm
> Frits van Bommel
> Kelly Wilson

Congratulations on your hard work! This is a really big step for LDC and D, so thanks!
May 27, 2009
On Wed, May 27, 2009 at 2:19 PM, Christian Kamm <kamm-incasoftware@removethis.de> wrote:
>
> The release 0.9.1 of LDC, the LLVM based compiler for the D programming language, contains the following major improvements:
>
>  * lots of bug fixes (http://www.dsource.org/projects/ldc/report/15)
>  * x86-64 support is mature
>  * inline asm improved (we now define D_Inline_Asm)
>  * cross-compilation support
>  * uses boehm-gc during compilation (x86-32 only)
>  * D specific optimizations:
>   * turn GC allocations to allocas if possible
>   * simplify or remove certain calls to D runtime functions
>
> The command line interface of LDC now has added options in line with other LLVM based tools. Please use the ldmd wrapper if you want a drop-in replacement for DMD.
>
> Linux x86-32 download: http://www.incasoftware.de/~kamm/ldc/ldc-0.9.1-x86_32.tar.bz2
>
> Linux x86-64 download: http://www.incasoftware.de/~kamm/ldc/ldc-0.9.1-x86_64.tar.bz2

Rock on!
May 27, 2009
Robert Clipsham wrote:
> Andrei Alexandrescu wrote:
>> Great! Quick question - are you supporting or considering supporting D2? I looked on the project's home page and couldn't find that information. There's mention of druntime for D2 which makes me hopeful.
>>
>> Thanks,
>>
>> Andrei
> 
> D2 support in LDC has been started, but it does not have any of D2's features implemented. I believe all that has been done is the frontend added. Last time I checked ldc + d2 would not compile.
> 
> I believe that the plan is to make D1 solid (more so than DMD), before moving on to D2. One of the developers might be able to give a more accurate status.

That's pretty accurate, actually.

A while back somebody sent in a patch to get D2 support working, but by the time it got properly reviewed it was already outdated...

The main problem on this front is that nobody currently working on LDC is particularly interested in D2.
May 27, 2009
Frits van Bommel wrote:
> Robert Clipsham wrote:
>> Andrei Alexandrescu wrote:
>>> Great! Quick question - are you supporting or considering supporting D2? I looked on the project's home page and couldn't find that information. There's mention of druntime for D2 which makes me hopeful.
>>>
>>> Thanks,
>>>
>>> Andrei
>>
>> D2 support in LDC has been started, but it does not have any of D2's features implemented. I believe all that has been done is the frontend added. Last time I checked ldc + d2 would not compile.
>>
>> I believe that the plan is to make D1 solid (more so than DMD), before moving on to D2. One of the developers might be able to give a more accurate status.
> 
> That's pretty accurate, actually.
> 
> A while back somebody sent in a patch to get D2 support working, but by the time it got properly reviewed it was already outdated...
> 
> The main problem on this front is that nobody currently working on LDC is particularly interested in D2.

I actually thought about giving this a try about a week ago. I managed to get all but one file to compile with the current version of the D2 front end (2.021 I believe)... Not bad considering my (lack of) C/C++ knowledge. If there's some interest for it I suppose I could give it another shot and try to merge the latest front end, it'd be a good chance for me to finally learn C/C++ (I made the <del>mistake</del> decision to learn D first... I found it too awesome to bother learning the obviously inferior C/C++ :P).
May 27, 2009
Christian Kamm, el 27 de mayo a las 20:19 me escribiste:
> 
> The release 0.9.1 of LDC, the LLVM based compiler for the D programming language, contains the following major improvements:
> 
>  * lots of bug fixes (http://www.dsource.org/projects/ldc/report/15)
>  * x86-64 support is mature
>  * inline asm improved (we now define D_Inline_Asm)
>  * cross-compilation support
>  * uses boehm-gc during compilation (x86-32 only)
>  * D specific optimizations:
>    * turn GC allocations to allocas if possible
>    * simplify or remove certain calls to D runtime functions
> 
> The command line interface of LDC now has added options in line with other LLVM based tools. Please use the ldmd wrapper if you want a drop-in replacement for DMD.

Great, great news! Thanks for the hard work.

-- 
Leandro Lucarella (luca) | Blog colectivo: http://www.mazziblog.com.ar/blog/
----------------------------------------------------------------------------
GPG Key: 5F5A8D05 (F8CD F9A7 BF00 5431 4145  104C 949E BFB6 5F5A 8D05)
----------------------------------------------------------------------------
May 27, 2009
Christian Kamm:
> The release 0.9.1 of LDC, the LLVM based compiler for the D programming language, contains the following major improvements:

Very good. I'll try this too.


>    * turn GC allocations to allocas if possible

Phobos1 of DMD too has alloca, so can this optimization be folded in DMD too?


>    * simplify or remove certain calls to D runtime functions

What calls?

Bye,
bearophile
May 27, 2009
bearophile wrote:
>>    * turn GC allocations to allocas if possible
> Phobos1 of DMD too has alloca, so can this optimization be folded in DMD too?

I doubt it, these look like LLVM specific optimisations.

>>    * simplify or remove certain calls to D runtime functions
> What calls?

Looking at the source code (gen/passes/*.cpp):
 * _d_arraysetlengthT
 * _d_arraysetlengthiT
 * _d_array_cast_len
 * _d_array_slice_copy
 * _d_allocmemoryT
 * _d_newarrayT
 * _d_newarrayiT
 * _d_newarrayvT
 * _d_newarraymT
 * _d_newarraymiT
 * _d_newarraymvT
 * _d_allocclass

Are the runtime calls currently optimized. There may be more that I've missed, that looks like all of them though.
« First   ‹ Prev
1 2 3 4