www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.ldc - LDC 0.16.0 alpha4 is out! We need your feedback!

reply Kai Nacke <kai redstar.de> writes:
Hi everyone!

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

Big thanks to everyone who provided feedback on the last alpha 
version! Without your feedback it would not be possible to 
eliminate the bugs so fast!

This alpha version fixes some issues and adds new features. The 
LDC team already considers this the best LDC release of all times!
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-alpha4

Note: This release has alpha quality. There are known and unknown 
bugs left. Please test it with your projects! There are 2 test 
failures on Linux/x86 but otherwise the release should be good.

Due to a library build problem with Phobos there is currently no 
MinGW32 version. !!!Volunteer help wanted!!!

MD5 checksums for the release packages:

3fd73c56485a930cf0ffa70878f899ed ldc-0.16.0-alpha4-src.tar.gz
d16ace7f1695b087f39db3049da8a439 
ldc2-0.16.0-alpha4-linux-x86.tar.gz
efe021c1b8670588cc0a0fb4fe77bea6 
ldc2-0.16.0-alpha4-linux-x86.tar.xz
315a16190d82448e5518ebe9099b0281 
ldc2-0.16.0-alpha4-linux-x86_64.tar.gz
a2f18d8d661dec07f85edcd2b75f947f 
ldc2-0.16.0-alpha4-linux-x86_64.tar.xz
b5c90c83f810562eda43d0b1cc7d94c2 
ldc2-0.16.0-alpha4-osx-x86_64.tar.gz
48310e03f26978d9bb50586577e74ae4 
ldc2-0.16.0-alpha4-osx-x86_64.tar.xz
f2996c43477d1ec620ae1dc41742745a ldc2-0.16.0-alpha4-win64-msvc.zip

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.

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 VS2015 using LLVM 3.7 in release mode. The 
distribution now contains a precompiled libcurl 7.40.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
Sep 19 2015
next sibling parent Dicebot <public dicebot.lv> writes:
Haven't checked any real projects but on packaging side all is 
good (with LLVM 3.6)

Is -cov implementation shared with DMD or different?
Sep 19 2015
prev sibling next sibling parent reply Jack Stouffer <jack jackstouffer.com> writes:
On Saturday, 19 September 2015 at 21:08:47 UTC, Kai Nacke wrote:
 Hi everyone!

 On behalf of the LDC team I am proud to announce the LDC 0.16.0 
 alpha4 release!
Still getting the same segfault that I was experiencing in the last announce thread http://forum.dlang.org/post/fcnljqdpkdgieecahkxg forum.dlang.org
Sep 19 2015
parent reply Kai Nacke <kai redstar.de> writes:
On Sunday, 20 September 2015 at 00:14:11 UTC, Jack Stouffer wrote:
 On Saturday, 19 September 2015 at 21:08:47 UTC, Kai Nacke wrote:
 Hi everyone!

 On behalf of the LDC team I am proud to announce the LDC 
 0.16.0 alpha4 release!
Still getting the same segfault that I was experiencing in the last announce thread http://forum.dlang.org/post/fcnljqdpkdgieecahkxg forum.dlang.org
How to reproduce? I can't find the project on code.dlang.org. Regards, Kai
Sep 19 2015
parent reply Jack Stouffer <jack jackstouffer.com> writes:
On Sunday, 20 September 2015 at 00:56:36 UTC, Kai Nacke wrote:
 http://forum.dlang.org/post/fcnljqdpkdgieecahkxg forum.dlang.org
How to reproduce? I can't find the project on code.dlang.org. Regards, Kai
Sorry, I should have mentioned it's a private side project on github. I'll give you access to the repo so you can download it.
Sep 20 2015
next sibling parent Kai Nacke <kai redstar.de> writes:
On Sunday, 20 September 2015 at 14:42:32 UTC, Jack Stouffer wrote:
 On Sunday, 20 September 2015 at 00:56:36 UTC, Kai Nacke wrote:
 http://forum.dlang.org/post/fcnljqdpkdgieecahkxg forum.dlang.org
How to reproduce? I can't find the project on code.dlang.org. Regards, Kai
Sorry, I should have mentioned it's a private side project on github. I'll give you access to the repo so you can download it.
Thanks for the access. The compiler dies deep in LLVM, after a call to DtoConstArrayInitializer(). I wonder if this is the same as issue #1022 (https://github.com/ldc-developers/ldc/issues/1022). BTW: I did the following: 1) run: dub -v --compiler=ldc2 2>bug.sh 2) edit bug.sh: add #!/bin/bash -x add top, remove all lines except the ldc2. Add gdb --args before ldc2 3) chmod 755 bug.sh 4) run: ./bug.sh You are now in gdb. Type r and after the crash bt. This stacktrace is the interesting one. Regards, Kai
Sep 20 2015
prev sibling parent reply Kai Nacke <kai redstar.de> writes:
On Sunday, 20 September 2015 at 14:42:32 UTC, Jack Stouffer wrote:
 On Sunday, 20 September 2015 at 00:56:36 UTC, Kai Nacke wrote:
 http://forum.dlang.org/post/fcnljqdpkdgieecahkxg forum.dlang.org
How to reproduce? I can't find the project on code.dlang.org. Regards, Kai
Sorry, I should have mentioned it's a private side project on github. I'll give you access to the repo so you can download it.
Thanks for the access. I opened issue #1101 (https://github.com/ldc-developers/ldc/issues/1101) including a minimal test case. Regards, Kai
Sep 20 2015
parent Jack Stouffer <jack jackstouffer.com> writes:
On Sunday, 20 September 2015 at 16:20:48 UTC, Kai Nacke wrote:
 Thanks for the access. I opened issue #1101 
 (https://github.com/ldc-developers/ldc/issues/1101) including a 
 minimal test case.

 Regards,
 Kai
Thanks for fixing it so quickly! In the next alpha/beta I'll test again and see if that was the only issue.
Sep 20 2015
prev sibling next sibling parent Jacob Carlborg <doob me.com> writes:
On 2015-09-19 23:08, 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.
If you link with "-macosx_version_min 10.<x>", where <x> is some number, you can choose which version of the OS to be compatible with. -- /Jacob Carlborg
Sep 20 2015
prev sibling parent reply ponce <contact gam3sfrommars.fr> writes:
On Saturday, 19 September 2015 at 21:08:47 UTC, Kai Nacke wrote:
 Hi everyone!

 On behalf of the LDC team I am proud to announce the LDC 0.16.0 
 alpha4 release!
Latest version of my game is built with this release: http://www.gamesfrommars.fr/vibrant/ I was pleased to see performance enhancements notably in GC pauses.
Sep 21 2015
parent reply Marco Leise <Marco.Leise gmx.de> writes:
Am Mon, 21 Sep 2015 23:57:48 +0000
schrieb ponce <contact gam3sfrommars.fr>:

 Latest version of my game is built with this release:
 http://www.gamesfrommars.fr/vibrant/
 
 I was pleased to see performance enhancements notably in GC 
 pauses.
If you actually moved from ldc2 0.15 to 0.16 I wouldn't call this a shameless self-advertising. ;) What you really changed: - target architecture from x86 32-bit to 64-bit - compiler back-end from DMD to LDC - switched from D1 to D2 So the better performance is not surprising. Aside from actual changes to the GC in D2, ldc2 also replaces GC allocations with stack allocations in some cases, reducing the amount of short lived garbage, which is the way it's meant to be (tm) and the larger address range of 64-bit makes false positives (i.e. ints that look like pointers to GC memory) in the mark phase unlikely. -- Marco
Sep 21 2015
parent ponce <contact gam3sfrommars.fr> writes:
On Tuesday, 22 September 2015 at 01:59:33 UTC, Marco Leise wrote:
 So the better performance is not surprising. Aside from actual 
 changes to the GC in D2, ldc2 also replaces GC allocations with 
 stack allocations in some cases, reducing the amount of short 
 lived garbage, which is the way it's meant to be (tm) and the 
 larger address range of 64-bit makes false positives (i.e. ints 
 that look like pointers to GC memory) in the mark phase 
 unlikely.
I haven't tested against 64-bit DMD. Maybe it also exposes GC pauses reductions.
Sep 22 2015