Thread overview | ||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
June 09, 2013 LDC 0.11.0 has been released! | ||||
---|---|---|---|---|
| ||||
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 Re: LDC 0.11.0 has been released! | ||||
---|---|---|---|---|
| ||||
Posted in reply to David Nadlinger | 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 Re: LDC 0.11.0 has been released! | ||||
---|---|---|---|---|
| ||||
Posted in reply to Andrej Mitrovic | 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 Re: LDC 0.11.0 has been released! | ||||
---|---|---|---|---|
| ||||
Posted in reply to Andrej Mitrovic | 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 Re: LDC 0.11.0 has been released! | ||||
---|---|---|---|---|
| ||||
Posted in reply to Andrej Mitrovic | I think SJLJ exception more native for windows. Also waiting for ldc based on 2.0.63 frontend. |
June 09, 2013 Re: LDC 0.11.0 has been released! | ||||
---|---|---|---|---|
| ||||
Posted in reply to Temtaime | 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 Re: LDC 0.11.0 has been released! | ||||
---|---|---|---|---|
| ||||
Posted in reply to David Nadlinger | 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 Re: LDC 0.11.0 has been released! | ||||
---|---|---|---|---|
| ||||
Posted in reply to David Nadlinger |
> 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 Re: LDC 0.11.0 has been released! | ||||
---|---|---|---|---|
| ||||
Posted in reply to Richard Webb | 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 Re: LDC 0.11.0 has been released! | ||||
---|---|---|---|---|
| ||||
Posted in reply to David Nadlinger |
>
> Were you using the personal build from Ruben I linked, or another MinGW(-w64) installation?
>
It was the one you linked to.
|
Copyright © 1999-2021 by the D Language Foundation