Jump to page: 1 2 3
Thread overview
LDC 0.11.0 has been released!
Jun 09, 2013
David Nadlinger
Jun 09, 2013
Andrej Mitrovic
Jun 09, 2013
David Nadlinger
Jun 09, 2013
Andrej Mitrovic
Jun 09, 2013
Temtaime
Jun 09, 2013
David Nadlinger
Jun 09, 2013
Kai Nacke
Jun 11, 2013
Richard Webb
Jun 11, 2013
David Nadlinger
Jun 11, 2013
Richard Webb
Jun 16, 2013
Temtaime
Jun 17, 2013
David Nadlinger
Jun 20, 2013
Temtaime
Jun 22, 2013
Michael
Jun 24, 2013
Temtaime
Jun 25, 2013
Michael
Jun 29, 2013
Kai Nacke
Jul 28, 2013
bearophile
Jul 28, 2013
David Nadlinger
Jul 31, 2013
bearophile
Jul 31, 2013
David Nadlinger
Aug 05, 2013
bearophile
Aug 06, 2013
bearophile
Aug 06, 2013
bearophile
Aug 07, 2013
Kagamin
Aug 10, 2013
David Nadlinger
Aug 10, 2013
bearophile
Sep 15, 2013
David Nadlinger
Sep 16, 2013
bearophile
Oct 03, 2013
bearophile
June 09, 2013
Hi all,

As the third round of beta testing did not turn up any new problems, I'm glad to announce the official release of LDC 0.11.0. A quick overview of the changes since the last release:

 - Based on the DMD 2.062 frontend.
 - D1 is no longer supported.

 - As with recent versions of DMD, .di file generation now strips
functions bodies. The '-Hkeep-all-bodies' command line has been added
to disable this, like '-inline' does for DMD.
 - LDMD now correctly parses extra arguments for -run and no longer
drops -deps.

 - Previously, due to an oversight LDC always optimized for the
 features of the host CPU, and not for a generic x86/x86_64 CPU as
 expected. This has been fixed; for the old behavior use -march=native.
 - -O now is equivalent to -O3 (instead of -O2) to match DMD.
 - The GC to stack promotion optimizer pass is enabled by default on
-O2 and higher. It is still *very* conservative, though (due to a
change in the signature of the relevant druntime functions).

 - The LDC_global_crt_ctor/LDC_global_crt_dtor pragmas allow
registering functions to be run during C runtime startup/shutdown. This
is mostly helpful for implementing druntime itself.
 - The LDC_never_inline pragma can now be used to mark functions that
should never be inlined.

 - Passing large static arrays by value no longer leads to horribly
inefficient code and long compile times.
 - A large number of code generation bugs has been fixed, see the
GitHub issue tracker. [1]


Platform support
----------------

 - Linux x86/x86_64: Stable.

 - OS X 10.7+: (Almost) stable. The last few LLVM versions, including
the current 3.2 release, sometimes emit broken exception handling
tables for large stack frames, which can to crashes in libunwind [2]
on throwing exceptions in rare cases. This issue will be fixed in LLVM
3.3, which the next LDC release will be based on. For building 32 bit
applications, the DMD frontend unfortunately gets the alignment of
real-type fields wrong [3], causing issues with initialization of such
structs.

 - Win32/MinGW: An alpha-quality version is available as part of this
release. For use together with [4], see [5] for a more in-depth look
at the current state.

 - Win64/MSVC: Not officially part of this release yet, a preview
version is available here:
http://forum.dlang.org/post/vscpokspiejlckivqsuq@forum.dlang.org

For the current state on other platforms such as Linux/PPC64 and ARM, please refer to the LDC wiki. [6]


Package download
----------------

The below are self-contained ("DMD-style") binary packages that do not
require any installation.

Apart from the changed file names and the addition of a minimal README file, the release is bit-for-bit identical to the third beta, so there is no need to re-download the archives if you already have a beta3 package.

If you prefer to build LDC yourself, just grab the source archive and see the wiki [6] for instructions.

http://d32gngvpvl2pi1.cloudfront.net/ldc2-0.11.0-linux-x86.tar.gz http://d32gngvpvl2pi1.cloudfront.net/ldc2-0.11.0-linux-x86.tar.xz http://d32gngvpvl2pi1.cloudfront.net/ldc2-0.11.0-linux-x86_64.tar.gz http://d32gngvpvl2pi1.cloudfront.net/ldc2-0.11.0-linux-x86_64.tar.xz http://d32gngvpvl2pi1.cloudfront.net/ldc2-0.11.0-mingw-x86.7z http://d32gngvpvl2pi1.cloudfront.net/ldc2-0.11.0-osx-x86_64.tar.gz http://d32gngvpvl2pi1.cloudfront.net/ldc2-0.11.0-osx-x86_64.tar.xz http://d32gngvpvl2pi1.cloudfront.net/ldc-0.11.0-src.tar.gz

MD5 checksums:

1839973c921a6b72580e1e9d6b1ec2e3  ldc2-0.11.0-linux-x86_64.tar.gz e40e93ff36bba688a4028b12139ba22e  ldc2-0.11.0-linux-x86_64.tar.xz 09cb1a88318a5cf8d63db33c63a33037  ldc2-0.11.0-linux-x86.tar.gz 0dbe83267165eaa7fdc3ecc5ef3a62e1  ldc2-0.11.0-linux-x86.tar.xz 11317c4b9cdbca43e94b9aabc171f9e3  ldc2-0.11.0-mingw-x86.7z 004c79868bb91eb9c85f2a4c5004bebe  ldc2-0.11.0-osx-x86_64.tar.gz 40067905fb7c8022ef8db9d7780ee9a3  ldc2-0.11.0-osx-x86_64.tar.xz 437c2c30970fc98eee49eb0f5b66fd26  ldc-0.11.0-src.tar.gz


Thanks to everybody involved in making this happen!

As usual, the main contact address for anything LDC is the digitalmars.D.ldc forum (http://forum.dlang.org), which is also reachable via NNTP and a mailing list interface.

 — David



[1] https://github.com/ldc-developers/ldc/issues?milestone=2&state=closed
[2] https://github.com/ldc-developers/ldc/issues/362
[3] https://github.com/ldc-developers/ldc/issues/363
[4]
http://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win32/Personal%20Builds/rubenvb/gcc-4.8-dw2-release/i686-w64-mingw32-gcc-dw2-4.8.0-win32_rubenvb.7z/download
[5] http://klickverbot.at/blog/2013/05/the-state-of-ldc-on-windows/
[6] http://wiki.dlang.org/LDC
June 09, 2013
On Sunday, 9 June 2013 at 14:35:30 UTC, David Nadlinger wrote:
> 11317c4b9cdbca43e94b9aabc171f9e3  ldc2-0.11.0-mingw-x86.7z

Very nice.

Btw, it would be good to note that it requires the MinGW release with DW2 (Dwarf afaik) rather than SJLJ exceptions. Otherwise it will error at runtime looking for the missing "libgcc_s_dw2-1.dll".
June 09, 2013
On Sunday, 9 June 2013 at 14:54:39 UTC, Andrej Mitrovic wrote:
> Btw, it would be good to note that it requires the MinGW release with DW2 (Dwarf afaik) rather than SJLJ exceptions. Otherwise it will error at runtime looking for the missing "libgcc_s_dw2-1.dll".

Oh, somehow that paragraph didn't make it in there: It doesn't only require a DW2-based release, but also a very recent snapshot of mingw-w64, because for TLS support requires a recent assembler and fixes to the MinGW C runtime.

Just using the package I linked should work fine.

David
June 09, 2013
On Sunday, 9 June 2013 at 14:54:39 UTC, Andrej Mitrovic wrote:
> On Sunday, 9 June 2013 at 14:35:30 UTC, David Nadlinger wrote:
>> 11317c4b9cdbca43e94b9aabc171f9e3  ldc2-0.11.0-mingw-x86.7z
>
> Very nice.
>
> Btw, it would be good to note that it requires the MinGW release with DW2 (Dwarf afaik) rather than SJLJ exceptions. Otherwise it will error at runtime looking for the missing "libgcc_s_dw2-1.dll".

Well it's noted in the blog post, I skimmed that part. :)
June 09, 2013
I think SJLJ exception more native for windows.
Also waiting for ldc based on 2.0.63 frontend.
June 09, 2013
On Sunday, 9 June 2013 at 17:33:05 UTC, Temtaime wrote:
> I think SJLJ exception more native for windows.

Nah, SEH is the Windows-native exception handling model. SJLJ and DW2 EH are both foreign on Win32, and for the use in a typical D program, I think SJLJ has too many downsides to be considered more than a crude workaround. But, of course, you are more than welcome to contribute an LDC patch implementing it. ;)

> Also waiting for ldc based on 2.0.63 frontend.

Work in progress, but there are some internals to be cleaned up first.

David
June 09, 2013
On Sunday, 9 June 2013 at 14:35:30 UTC, David Nadlinger wrote:
> I'm glad to announce the official release of LDC 0.11.0.

The Gentoo ebuild for 0.11.0 is now available. As another highlight it contains all patches required for Linux/PPC64.

Kai
June 11, 2013
> http://d32gngvpvl2pi1.cloudfront.net/ldc2-0.11.0-mingw-x86.7z


fwiw, I just tried to build a simple test app using xmlp with the mingw build, and it appears to build and run fine, and is a bit faster than the DMD version (parsing an ~18 megabyte test xml file into a DOM takes ~2 seconds with the DMD build and ~1.6 seconds with the LDC build).


Keep up the good work :-)
June 11, 2013
On Tuesday, 11 June 2013 at 16:52:38 UTC, Richard Webb wrote:
> fwiw, I just tried to build a simple test app using xmlp with the mingw build, and it appears to build and run fine, and is a bit faster than the DMD version […]

Thanks a lot for your post – we simply don't have enough data points right now to be able to realistically judge the quality of LDC/MinGW, so every bit of feedback helps.

Were you using the personal build from Ruben I linked, or another MinGW(-w64) installation?

David
June 11, 2013
>
> Were you using the personal build from Ruben I linked, or another MinGW(-w64) installation?
>

It was the one you linked to.
« First   ‹ Prev
1 2 3