Thread overview
LDC 0.16.0 alpha2 is out!
Sep 01, 2015
Kai Nacke
Sep 02, 2015
David Nadlinger
Sep 03, 2015
Jacob Carlborg
Sep 03, 2015
Zekereth
Sep 03, 2015
David Nadlinger
Sep 03, 2015
Daniel N
Sep 11, 2015
Jeremy DeHaan
Sep 11, 2015
Kai Nacke
Sep 16, 2015
Jeremy DeHaan
September 01, 2015
Hi everyone!

On behalf of the LDC team I am proud to announce the LDC 0.16.0 alpha2 release!
It is based on the 2.067.1 front-end and LLVM 3.1-3.7 (OS X: no support for 3.3).

This alpha version fixes some issues and adds new features. Most important changes are:

- Frontend is now at 2.067.1
- LLVM 3.7 is supported
- DMD-style coverage analysis is added
- ABI changes which fixes a lot of bugs in the Win64 compiler

Be sure to read the change log at the GitHub release page which also has the package download links:
https://github.com/ldc-developers/ldc/releases/tag/v0.16.0-alpha2

Note: This release has alpha quality. There are known and unknown bugs left. Please test it!

MD5 checksums for the release packages:

669ab8a326a5dc6fbf83fcedc63de839 ldc2-0.16.0-alpha2-linux-x86.tar.gz
49640fce95ed1cdffd45637ce5d127e7 ldc2-0.16.0-alpha2-linux-x86.tar.xz
5cd11ce7be0e5318be9ee85382dd02ce ldc2-0.16.0-alpha2-linux-x86_64.tar.gz
1baff7662236538ac2415d5a297dc90c ldc2-0.16.0-alpha2-linux-x86_64.tar.xz
a96f9509f2e55953e7739fdcdc54b4e0 ldc2-0.16.0-alpha2-osx-x86_64.tar.gz
800961d6de716d0e80620a59f40c58c0 ldc2-0.16.0-alpha2-osx-x86_64.tar.xz
a99512c68c7690ac4174f7ca8ce97ac6 ldc2-0.16.0-alpha2-win64-msvc.zip
f16ccbe0991fef2bc9165eb9c066620f ldc-0.16.0-alpha2-src.tar.gz

Regarding the binaries:
The Linux binaries are built on Ubuntu 12.04 LTS with gcc 4.8.x and LLVM 3.6.2. They work on Ubuntu 12.04 LTS (or later) without installing additional software.

Due to a library build problem there is currently no MinGW32 version. This will be fixed in alpha3 or beta1.

The OS X binaries are now built on OS X 10.10. It is currently unknown if this causes backwards compatibility issues.

The Win64 MSVC version is still considered alpha quality. It is built with VS2013 using LLVM 3.7rc3 in release mode. The distribution now contains a precompiled libcurl 7.40.0 from http://d.darktech.org/libcurl.html.
Attention: There is a regression in LDC or a bug in LLVM which currently requires the use of linker flag -L/FORCE:MULTIPLE. I am currently investigating this issue (issue #988).
You find the build script here: https://github.com/ldc-developers/ldc-scripts/blob/master/ldc2-win64/RELEASE.proj

Please be sure to report any bugs at https://github.com/ldc-developers/ldc/issues, and feel free to drop by at the digitalmars.D.ldc forums (http://forum.dlang.org/group/digitalmars.D.ldc) for any questions or comments.

Thanks to everybody involved in making this happen!

Regards,
Kai

September 02, 2015
On 2 Sep 2015, at 1:25, Kai Nacke via digitalmars-d-ldc wrote:
> On behalf of the LDC team I am proud to announce the LDC 0.16.0 alpha2 release!
> It is based on the 2.067.1 front-end and LLVM 3.1-3.7 (OS X: no support for 3.3).

Note that at the current point, the LLVM 3.7-based build seems decidedly less stable than the others for as of yet unknown reasons (see GitHub issues).

It is highly recommended to build against LLVM 3.6.

 — David
September 03, 2015
On 2015-09-02 00:25, Kai Nacke wrote:

> The OS X binaries are now built on OS X 10.10. It is currently unknown
> if this causes backwards compatibility issues.

Without having looked at how LDC is built, there's a linker flag, -macosx_version_min, that can be used to indicated which minimum version of the OS the binary should be able to run on.

-- 
/Jacob Carlborg
September 03, 2015
On Tuesday, 1 September 2015 at 22:25:40 UTC, Kai Nacke wrote:
> Hi everyone!
>
> On behalf of the LDC team I am proud to announce the LDC 0.16.0 alpha2 release!
> It is based on the 2.067.1 front-end and LLVM 3.1-3.7 (OS X: no support for 3.3).
>
> [...]

Not sure if this is a bug but I'm getting this error when building with dub:
Performing "release" build using ldc2 for x86_64.
Building raijin ~develop configuration "library"...
Error: failed to create path to file: .dub/obj/.dub/build/library-release-linux.posix-x86_64-ldc_0-2AFD432DEF289933FA297CAD17F4F9E0/libraijin.a
No such file or directory
ldc2 failed with exit code 1.

Works fine with dmd. Dub version DUB version 0.9.24-rc.2+8-g64582dd, built on Aug 18 2015
September 03, 2015
On 3 Sep 2015, at 9:39, Zekereth via digitalmars-d-ldc wrote:
> Not sure if this is a bug but I'm getting this error when building with dub:
> Performing "release" build using ldc2 for x86_64.
> Building raijin ~develop configuration "library"...
> Error: failed to create path to file: .dub/obj/.dub/build/library-release-linux.posix-x86_64-ldc_0-2AFD432DEF289933FA297CAD17F4F9E0/libraijin.a
> No such file or directory
> ldc2 failed with exit code 1.
>
> Works fine with dmd. Dub version DUB version 0.9.24-rc.2+8-g64582dd, built on Aug 18 2015

This is https://github.com/ldc-developers/ldc/issues/1061.

It would be great if somebody could look into fixing it (should be simple enough, it's in the frontend driver, not some complex piece of code), as I'm knee-deep into other work.

 — David

September 03, 2015
On Tuesday, 1 September 2015 at 22:25:40 UTC, Kai Nacke wrote:
> Hi everyone!
>
> On behalf of the LDC team I am proud to announce the LDC 0.16.0 alpha2 release!

MSVC version is starting to kick some serious #$% despite its alpha status.

All metrics from my own software improved over 0.15.2 MSVC
Execution time:   98%
Size of binary:   65%
Compilation time: Order of magnitude faster(since it's a release build)

Awesome, thanks!

September 11, 2015
On Tuesday, 1 September 2015 at 22:25:40 UTC, Kai Nacke wrote:
> The Win64 MSVC version is still considered alpha quality.

I'm actually having some issues with this if anyone can help me.

LDC seems to default to trying to use Optlink for some reason. This seems strange considering that all the switches are in msvc format. Anyway I can get it to default to msvc instead?

ldc2.conf doesn't seem to have any information on the linker being used.
September 11, 2015
On Friday, 11 September 2015 at 04:22:29 UTC, Jeremy DeHaan wrote:
> On Tuesday, 1 September 2015 at 22:25:40 UTC, Kai Nacke wrote:
>> The Win64 MSVC version is still considered alpha quality.
>
> I'm actually having some issues with this if anyone can help me.
>
> LDC seems to default to trying to use Optlink for some reason. This seems strange considering that all the switches are in msvc format. Anyway I can get it to default to msvc instead?
>
> ldc2.conf doesn't seem to have any information on the linker being used.

Hi Jeremy,

you need to have the Windows SDK installed (or better VS2015). If you use the "VS2015 x64 Native Tools Command Prompt" then everything should compile. Just make sure that "link" is really the Microsoft Linker. (Just type link/help on the command line. The output should be something like

Microsoft (R) Incremental Linker Version 14.00.23026.0
Copyright (C) Microsoft Corporation.  All rights reserved.

   For help on Linker, type `link /link' or `link'
   For help on Library Manager, type `link /lib' or `lib'
   For help on Dumper, type `link /dump' or `dumpbin'
   For help on Editor, type `link /edit' or `editbin'
   For help on CvtCIL, type `link /cvtcil'

If it still runs Optlink then remove dmd2\windows\bin from your PATH variable.

Regards,
Kai
September 16, 2015
On Friday, 11 September 2015 at 08:37:58 UTC, Kai Nacke wrote:
> On Friday, 11 September 2015 at 04:22:29 UTC, Jeremy DeHaan wrote:
>> On Tuesday, 1 September 2015 at 22:25:40 UTC, Kai Nacke wrote:
>>> The Win64 MSVC version is still considered alpha quality.
>>
>> I'm actually having some issues with this if anyone can help me.
>>
>> LDC seems to default to trying to use Optlink for some reason. This seems strange considering that all the switches are in msvc format. Anyway I can get it to default to msvc instead?
>>
>> ldc2.conf doesn't seem to have any information on the linker being used.
>
> Hi Jeremy,
>
> you need to have the Windows SDK installed (or better VS2015). If you use the "VS2015 x64 Native Tools Command Prompt" then everything should compile. Just make sure that "link" is really the Microsoft Linker. (Just type link/help on the command line. The output should be something like
>
> Microsoft (R) Incremental Linker Version 14.00.23026.0
> Copyright (C) Microsoft Corporation.  All rights reserved.
>
>    For help on Linker, type `link /link' or `link'
>    For help on Library Manager, type `link /lib' or `lib'
>    For help on Dumper, type `link /dump' or `dumpbin'
>    For help on Editor, type `link /edit' or `editbin'
>    For help on CvtCIL, type `link /cvtcil'
>
> If it still runs Optlink then remove dmd2\windows\bin from your PATH variable.
>
> Regards,
> Kai

Thanks for the help, Kai. My original issue ended up being that VS 2015 for what ever reason didn't actually install the VC components. Before I realized that, I tried VS 2013, but got some linker errors, mostly likely user error. Once I got 2015 actually set up though, it works.

Thanks for all the hard work!