Thread overview
LDC 1.1.0-beta2 has been released!
Aug 03, 2016
Kai Nacke
Aug 03, 2016
David Nadlinger
Aug 04, 2016
Seb
Aug 04, 2016
Kai Nacke
Aug 04, 2016
Seb
Aug 04, 2016
Edwin van Leeuwen
Aug 18, 2016
Suliman
Aug 18, 2016
David Nadlinger
Aug 06, 2016
Michael
Aug 17, 2016
Guillaume Piolat
August 03, 2016
Hi everyone!

On behalf of the LDC team I am proud to announce the new 1.1.0-beta2 release!
It is based on the 2.071.1 front-end and supports LLVM 3.5-3.9.

As usual this beta2 release contains a lot of bug fixes. :-)

Highlights of the 1.1.0 release are the support for profile-guided optimization and cross-module inlining. But there are lot of other changes - be sure to read the release notes!

We now bundle DUB with LDC in the binary distribution files. The Win64 binary packages now includes the 32bit libraries, too. And for the first time we distribute a FreeBSD binary!

Please, try this beta2 release. Every feedback we get can only improve the 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/v1.1.0-beta2

MD5 checksums for the release packages:

0a25986249e5aaa9346c18309594a763  ldc-1.1.0-beta2-src.tar.gz
800838801252430ca8dc5a42a51068b8  ldc2-1.1.0-beta2-freebsd-x86_64.tar.xz
9218da4a4171ac4a3a2cb8f1fadf78d9  ldc2-1.1.0-beta2-linux-armv7hf.tar.xz
227895b38e1c4560f0900303e04faa38  ldc2-1.1.0-beta2-linux-x86.tar.xz
d8bbdb0c14e8b02b92d4fdaa815fe0d1  ldc2-1.1.0-beta2-linux-x86_64-LLVM3.9.0rc1.tar.xz
5521b130813e1a4781950b5f585e2bf2  ldc2-1.1.0-beta2-linux-x86_64.tar.xz
f703df0bc3e53e837afd1330065a9368  ldc2-1.1.0-beta2-osx-x86_64-LLVM3.9.0-rc1.tar.xz
b7895b37a1954435ae761842a06bb30a  ldc2-1.1.0-beta2-osx-x86_64.tar.xz
e6dd4d89c4cd3fa5626faf5fc571fea4  ldc2-1.1.0-beta2-win32-msvc.zip
c84bdb86915185bcf8ff6041bb2ef5b4  ldc2-1.1.0-beta2-win64-msvc.zip

Regarding the binaries:
The Linux x86/x86_64 binaries are built on Ubuntu 12.04 LTS with gcc 4.8.x, ldc2 1.1.0-beta2 and LLVM 3.8.1. They work on Ubuntu 12.04 LTS (or later) without installing additional software.
The Linux armv7hf binary is built on Gentoo/ARM with gcc 4.9.x, ldc2 ldc2 1.1.0-beta2 and LLVM 3.8.1.
A Linux x64_64 binary built with LLVM 3.9.0rc1 is available, too.

The OS X binaries are built with LLVM 3.8.1 on OS X 10.10. An additional binary is built with LLVM 3.9.0rc1.

The FreeBSD binaries are built on PC-BSD 10.3 with gcc 4.8.5, ldc2 1.1.0-beta2 and LLVM 3.8.1.

The Win32 and Win64 MSVC versions are built with VS2015 (update 2) using ldc2 1.1.0-beta2 and LLVM 3.9.0rc1 in release mode. The distribution now contains a precompiled libcurl 7.46.0 from http://d.darktech.org/libcurl.html. For any other VisualStudio version you need to rebuild the library.
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

August 03, 2016
On 3 Aug 2016, at 21:10, Kai Nacke via digitalmars-d-ldc wrote:
> On behalf of the LDC team I am proud to announce the new 1.1.0-beta2 release!

Quick note for Linux users/packagers: We've changed the way the D code in the compiler front-end is built to be able to cleanly take environment/LLVM linker flags into account (https://github.com/ldc-developers/ldc/pull/1594). This fixes a number of previous linking issues and should ultimately be much more solid, but we'd particularly appreciate help in testing the new build system bits in as many environments as possible before the release.

If you are using the upcoming Ubuntu 16.10, also be aware that it ships with a system linker patched to produce position-independent executables by default. This will lead to linker errors ("relocation … can not be used") unless LDC is also set to generate position-independent code by using -relocation-model=pic (default since https://github.com/ldc-developers/ldc/pull/1664, but not part of the beta yet).

 — David
August 04, 2016
On Wednesday, 3 August 2016 at 20:10:49 UTC, Kai Nacke wrote:
>
> Regarding the binaries:
> The Linux x86/x86_64 binaries are built on Ubuntu 12.04 LTS with gcc 4.8.x, ldc2 1.1.0-beta2 and LLVM 3.8.1. They work on Ubuntu 12.04 LTS (or later) without installing additional software.
> The Linux armv7hf binary is built on Gentoo/ARM with gcc 4.9.x, ldc2 ldc2 1.1.0-beta2 and LLVM 3.8.1.
> A Linux x64_64 binary built with LLVM 3.9.0rc1 is available, too.
>
> The OS X binaries are built with LLVM 3.8.1 on OS X 10.10. An additional binary is built with LLVM 3.9.0rc1.
>
> The FreeBSD binaries are built on PC-BSD 10.3 with gcc 4.8.5, ldc2 1.1.0-beta2 and LLVM 3.8.1.
>
> The Win32 and Win64 MSVC versions are built with VS2015 (update 2) using ldc2 1.1.0-beta2 and LLVM 3.9.0rc1 in release mode. The distribution now contains a precompiled libcurl 7.46.0 from http://d.darktech.org/libcurl.html. For any other VisualStudio version you need to rebuild the library.
> 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

Great news - thanks to everyone from the LDC team for your hard work! When I read the announcement I noticed [1] that building a release seems like a lot of manual work. I have seen that it is already partially automated, but how long does it take you to prepare a new release (in the case nothing goes wrong)? Ideally building the packages for all platforms would be fully automated, so that you can also provide nightlies for the common users.

Travis, Circle etc. provide a environment variable and sometimes special settings to distinguish a pull request from a active commit, so I assume that won't be a huge issue for you. Do you know about a good place to dump such nightlies? As you will usually overwrite the latest version space is probably not an issue, but traffic costs might (e. g. with S3). I am happy to offer one of my VPS servers with unlimited traffic for rsyncing and dumping the files to the public, but it comes with zero guarantees ;-)

[1] https://github.com/ldc-developers/ldc-scripts/tree/master/ldc2-packaging
August 04, 2016
Hi Seb!

On Thursday, 4 August 2016 at 00:53:31 UTC, Seb wrote:
> Great news - thanks to everyone from the LDC team for your hard work! When I read the announcement I noticed [1] that building a release seems like a lot of manual work. I have seen that it is already partially automated, but how long does it take you to prepare a new release (in the case nothing goes wrong)? Ideally building the packages for all platforms would be fully automated, so that you can also provide nightlies for the common users.

A release is not too much work. On a Unix system it is
- edit the config file
- run the 3 build scripts
- upload the binary package

This process could be better automated but delays have other root causes:
- Building on ARM takes a long time.
- I currently do not have a development notebook and doing the builds with sub-optimal resources.
- The last releases always introduced something new (ARM build, 32bit libraries with win64, FreeBSD build) which must be scripted and tested.
- And you can find new bugs while preparing a release.

But better automation is welcome. :-)

> Travis, Circle etc. provide a environment variable and sometimes special settings to distinguish a pull request from a active commit, so I assume that won't be a huge issue for you. Do you know about a good place to dump such nightlies? As you will usually overwrite the latest version space is probably not an issue, but traffic costs might (e. g. with S3). I am happy to offer one of my VPS servers with unlimited traffic for rsyncing and dumping the files to the public, but it comes with zero guarantees ;-)

We have a place for it: GitHub.
See http://wiki.dlang.org/Latest_LDC_binaries_for_Windows

Regards,
Kai

August 04, 2016
On Thursday, 4 August 2016 at 06:19:11 UTC, Kai Nacke wrote:
> Hi Seb!
>
> On Thursday, 4 August 2016 at 00:53:31 UTC, Seb wrote:
>> Great news - thanks to everyone from the LDC team for your hard work! When I read the announcement I noticed [1] that building a release seems like a lot of manual work. I have seen that it is already partially automated, but how long does it take you to prepare a new release (in the case nothing goes wrong)? Ideally building the packages for all platforms would be fully automated, so that you can also provide nightlies for the common users.
>
> A release is not too much work. On a Unix system it is
> - edit the config file
> - run the 3 build scripts
> - upload the binary package
>
> This process could be better automated but delays have other root causes:
> - Building on ARM takes a long time.
> - I currently do not have a development notebook and doing the builds with sub-optimal resources.
> - The last releases always introduced something new (ARM build, 32bit libraries with win64, FreeBSD build) which must be scripted and tested.
> - And you can find new bugs while preparing a release.

Oh okay as said I was just worried when I skimmed through the list of different OSS used for each build. Good to be relieved :)

> But better automation is welcome. :-)

I will continue to observe your good work and maybe help out when you continue to expand to build for every OS possibly imaginable and releasing gets a more annoying job.

[...]

> We have a place for it: GitHub.
> See http://wiki.dlang.org/Latest_LDC_binaries_for_Windows

Oh sweet - sorry about the dumb question then  (I didn't even notice that because building from source on Unix is trivial).

> Regards,
> Kai


August 04, 2016
On Thursday, 4 August 2016 at 06:19:11 UTC, Kai Nacke wrote:
> But better automation is welcome. :-)

Would the opensuse build service be a good option here? They build for a variety of hardware platforms (ARM included) and distributions (looks like linux only though)

https://en.opensuse.org/openSUSE:Build_Service_supported_build_targets

August 06, 2016
On Wednesday, 3 August 2016 at 20:10:49 UTC, Kai Nacke wrote:
> Hi everyone!
>
> On behalf of the LDC team I am proud to announce the new 1.1.0-beta2 release!
> It is based on the 2.071.1 front-end and supports LLVM 3.5-3.9.
>
> [...]

I know this isn't specifically about the beta, but the LDC available on Linux Mint via Synaptic lists the latest ubunutu version 1:0.17.1. When will 1.0 be pushed to ubuntu? Thanks.
August 17, 2016
On Wednesday, 3 August 2016 at 20:10:49 UTC, Kai Nacke wrote:
> Please, try this beta2 release. Every feedback we get can only improve the 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/v1.1.0-beta2
>

I'm seeing a ~1% speed-up with v1.1.0-b2 relatively to v1.0.0-b2
Very slight changes in binary size in both directions.
Haven't tried PGO or @fastmath yet. Nice work.

August 18, 2016
I have never tried ldc2 before, not I get next error when compile my project:
http://img.ctrlv.in/img/16/08/18/57b5b7f2aeab3.png

is it's bug in LDC2?

I am using this release.
August 18, 2016
On 18 Aug 2016, at 15:30, Suliman via digitalmars-d-ldc wrote:
> I have never tried ldc2 before, not I get next error when compile my project:
> http://img.ctrlv.in/img/16/08/18/57b5b7f2aeab3.png
>
> is it's bug in LDC2?

It certainly seems like this is a compiler crash and hence by definition a bug. Could you please open an issue at https://github.com/ldc-developers/ldc with instructions on how to reproduce it?

Thanks!

 — David