www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.ldc - LDC 0.15.0 beta1 released! Please help test!

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

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

This is a really exciting release!

Support for the PowerPC architecture has grown. Linux/PPC64 
Little Endian is now usable, including garbage collector support. 
Linux/PPC32 compiles out of the box and can run simple 
application. There is still lot to do, though.

Even more exciting this release comes with the first official 
development snapshot(!) of a Win64 compiler targetting the MS C 
Runtime. Thanks to Trass3r and kinke for their active 
development! Please note that this version requires LLVM 3.6 
(current development version).

This beta release also includes the mingw binaries missing from 
the alpha release. The mingw binaries are build with 
i686-4.9.1-release-posix-dwarf-rt_v3-rev1 downloaded with the 
mingw installer.

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

MD5 checksums for the release packages:

55da6d4c4cdde7c2b3e8bbd3c7779c13 ldc-0.15.0-beta1-src.tar.gz
94bffe3d1abc01a869ac23636401cb33 
ldc2-0.15.0-beta1-linux-x86.tar.gz
47ee47bcc5236d5140b724a6c6511d52 
ldc2-0.15.0-beta1-linux-x86.tar.xz
ca448c178807dafc96c02c65b386060c 
ldc2-0.15.0-beta1-linux-x86_64.tar.gz
3322634a9958e6c959c8a70614d09818 
ldc2-0.15.0-beta1-linux-x86_64.tar.xz
b3b0010c3f4da6ea01cf6230b030cd9b ldc2-0.15.0-beta1-mingw-x86.7z
0a452f03f3fdfc1d992c36c382c27ca5 ldc2-0.15.0-beta1-mingw-x86.zip
431b48bba23d5c7925255e23cf72fbc0 
ldc2-0.15.0-beta1-osx-x86_64.tar.gz
f04a3d0ea38312be917915161c1a8b73 
ldc2-0.15.0-beta1-osx-x86_64.tar.xz
f0443bed76639d943d3499fb3648a2ef ldc2-0.15.0-beta1-win64-msvc.zip

As always, the Win32/MinGW packages require a recent version of 
the mingw-w64 toolchain, see 
http://wiki.dlang.org/Building_LDC_on_MinGW_x86 for details.

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
Nov 14 2014
next sibling parent reply "Daniel N" <ufo orbiting.us> writes:
On Friday, 14 November 2014 at 22:05:29 UTC, Kai Nacke wrote:
 Please be sure to report any bugs at
 https://github.com/ldc-developers/ldc/issues, and feel free to

 Thanks to everybody involved in making this happen!

 Regards,
 Kai
Dear Kai, indeed this release has amazing improvements, both in platform support and codegen, I saw some nice improvements in the assembly of one of my programs... thanks! I'll make a proper bug reporting account later, but I'm short on time right now, so I only quickly wanted to share that I found a potential blocker(?) When compiling the unittest for Peter's graph lib... (on OSX) https://github.com/Poita/stdex/blob/master/graph.d I was greeted by the following: "Stored value type does not match pointer operand type! store [2 x i32]* %7, [2 x i32]* %11 [2 x i32]LLVM ERROR: Broken function found, compilation aborted!" I hope this is sufficient info for you to reproduce, else I'll help more next week. Regards, Daniel N
Nov 15 2014
parent reply David Nadlinger via digitalmars-d-ldc <digitalmars-d-ldc puremagic.com> writes:
On 15 Nov 2014, at 21:35, Daniel N via digitalmars-d-ldc wrote:
 I hope this is sufficient info for you to reproduce, else I'll help 
 more next week
Issue on the GitHub tracker: https://github.com/ldc-developers/ldc/issues/797 Bug fix: https://github.com/ldc-developers/ldc/pull/798 A minimal test case would still be nice. Cheers, David
Nov 16 2014
parent reply "Daniel N" <ufo orbiting.us> writes:
On Sunday, 16 November 2014 at 22:37:43 UTC, David Nadlinger via 
digitalmars-d-ldc wrote:
 On 15 Nov 2014, at 21:35, Daniel N via digitalmars-d-ldc wrote:
 I hope this is sufficient info for you to reproduce, else I'll 
 help more next week
Issue on the GitHub tracker: https://github.com/ldc-developers/ldc/issues/797 Bug fix: https://github.com/ldc-developers/ldc/pull/798 A minimal test case would still be nice. Cheers, David
Great, thanks! I dusted it down fairly good now, might not be fully minimal but at least it's small. import std.algorithm; import std.traits; struct PrioritySearch(Graph) { alias Vertex = ParameterTypeTuple!(Graph.adjacent); Tuple!(Vertex) Node; this(Graph graph) { } } unittest { struct Graph { void adjacent(int[1]) { } } PrioritySearch!(Graph)(Graph.init); } Regards, Daniel N
Nov 17 2014
parent "Daniel N" <ufo orbiting.us> writes:
On Monday, 17 November 2014 at 13:08:59 UTC, Daniel N wrote:
 On Sunday, 16 November 2014 at 22:37:43 UTC, David Nadlinger 
 via digitalmars-d-ldc wrote:
 On 15 Nov 2014, at 21:35, Daniel N via digitalmars-d-ldc wrote:
 I hope this is sufficient info for you to reproduce, else 
 I'll help more next week
Issue on the GitHub tracker: https://github.com/ldc-developers/ldc/issues/797 Bug fix: https://github.com/ldc-developers/ldc/pull/798 A minimal test case would still be nice. Cheers, David
Great, thanks! I dusted it down fairly good now, might not be fully minimal but at least it's small.
Even smaller: import std.algorithm; import std.traits; struct PrioritySearch { void adjacent(int[1]) { } alias Vertex = ParameterTypeTuple!adjacent; Tuple!(Vertex) Node; }
Nov 17 2014
prev sibling next sibling parent reply "bearophile" <bearophileHUGS lycos.com> writes:
Kai Nacke:

 This beta release also includes the mingw binaries missing from 
 the alpha release. The mingw binaries are build with 
 i686-4.9.1-release-posix-dwarf-rt_v3-rev1 downloaded with the 
 mingw installer.
 
 b3b0010c3f4da6ea01cf6230b030cd9b ldc2-0.15.0-beta1-mingw-x86.7z
If I try to compile this code with the latest 32-bit Windows ldc2: void main() { import std.stdio; writeln("hello"); } It crashes saying it can't find _ZSt24__throw_out_of_range_fmtPKcz of the library libstdc++6.dll. Do I have to update gcc? Bye, bearophile
Nov 19 2014
parent reply "Kai Nacke" <kai redstar.de> writes:
On Wednesday, 19 November 2014 at 15:24:31 UTC, bearophile wrote:
 Kai Nacke:

 This beta release also includes the mingw binaries missing 
 from the alpha release. The mingw binaries are build with 
 i686-4.9.1-release-posix-dwarf-rt_v3-rev1 downloaded with the 
 mingw installer.
 
 b3b0010c3f4da6ea01cf6230b030cd9b ldc2-0.15.0-beta1-mingw-x86.7z
If I try to compile this code with the latest 32-bit Windows ldc2: void main() { import std.stdio; writeln("hello"); } It crashes saying it can't find _ZSt24__throw_out_of_range_fmtPKcz of the library libstdc++6.dll. Do I have to update gcc? Bye, bearophile
Yes. I compiled the LDC binary with the mentioned mingw gcc (http://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win32/Personal%20Builds/mingw-builds/4.9.1/threads-posix/dwarf/i686-4.9.1-release-posix-dwarf-rt_v -rev1.7z/download). The link is on the wiki page, too. Regards, Kai
Nov 19 2014
parent "bearophile" <bearophileHUGS lycos.com> writes:
Kai Nacke:

 Yes. I compiled the LDC binary with the mentioned mingw gcc 
 (http://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win32/Personal%20Builds/mingw-builds/4.9.1/threads-posix/dwarf/i686-4.9.1-release-posix-dwarf-rt_v
-rev1.7z/download). 
 The link is on the wiki page, too.
Now ldc2 seems to work correctly here. Nice. Thank you, bearophile
Nov 19 2014
prev sibling next sibling parent reply drug <drug2004 bk.ru> writes:
I built ldc on debian wheezy using cmake. It needed to install libconfig 
and libedit but cmakefile didn't required them.
Nov 20 2014
parent reply "Kai Nacke" <kai redstar.de> writes:
On Thursday, 20 November 2014 at 11:20:57 UTC, drug wrote:
 I built ldc on debian wheezy using cmake. It needed to install 
 libconfig and libedit but cmakefile didn't required them.
Hi drug! The CMakeList.txt checks for libconfig. But this can be really improved - I'll try to add some sanity checks. libedit is a dependency from latest LLVM. I am not sure if this must be checked by the LDC files. Regards, Kai
Nov 24 2014
next sibling parent David Nadlinger via digitalmars-d-ldc <digitalmars-d-ldc puremagic.com> writes:
On 24 Nov 2014, at 21:15, Kai Nacke via digitalmars-d-ldc wrote:
 libedit is a dependency from latest LLVM. I am not sure if this must 
 be checked by the LDC files.
I agree; as far as I'm aware, the public API should not depend on libedit. If it really does, this might be something to alert the LLVM people know about. Cheers, David
Nov 24 2014
prev sibling parent Russel Winder via digitalmars-d-ldc <digitalmars-d-ldc puremagic.com> writes:
On Mon, 2014-11-24 at 20:15 +0000, Kai Nacke via digitalmars-d-ldc
wrote:
[…]
 libedit is a dependency from latest LLVM. I am not sure if this 
 must be checked by the LDC files.
I manually added the libedit package on Debian Sid in order to get LDC to build, it wasn't going to build any other way :-( -- Russel. ============================================================================= Dr Russel Winder t: +44 20 7585 2200 voip: sip:russel.winder ekiga.net 41 Buckmaster Road m: +44 7770 465 077 xmpp: russel winder.org.uk London SW11 1EN, UK w: www.russel.org.uk skype: russel_winder
Nov 24 2014
prev sibling parent reply "Daniel N" <ufo orbiting.us> writes:
On Friday, 14 November 2014 at 22:05:29 UTC, Kai Nacke wrote:
 Even more exciting this release comes with the first official 
 development snapshot(!) of a Win64 compiler targetting the MS C 
 Runtime.
I was curious to see the differences between MSVC and MinGW. (I ran strip on the MinGW binary) Version | Size | Compilation Time | Null-I/O | Full-I/O | MSVC | 715k | 1m48.78s | 0.234s | 1.139 | MinGW | 1825k | 14.25s | 0.296s | 1.201 | This is a closed source app which mainly uses regex and I/O, thus I also made a test with as little I/O as possible. Is the msvc compiler itself a debug build?
Nov 24 2014
parent reply "Kai Nacke" <kai redstar.de> writes:
On Monday, 24 November 2014 at 11:37:38 UTC, Daniel N wrote:
 On Friday, 14 November 2014 at 22:05:29 UTC, Kai Nacke wrote:
 Even more exciting this release comes with the first official 
 development snapshot(!) of a Win64 compiler targetting the MS 
 C Runtime.
I was curious to see the differences between MSVC and MinGW. (I ran strip on the MinGW binary) Version | Size | Compilation Time | Null-I/O | Full-I/O | MSVC | 715k | 1m48.78s | 0.234s | 1.139 | MinGW | 1825k | 14.25s | 0.296s | 1.201 | This is a closed source app which mainly uses regex and I/O, thus I also made a test with as little I/O as possible. Is the msvc compiler itself a debug build?
Yes, the compiler is itself a debug build. I won't change this until LLVM 3.6 is released (this LLVM is required for the msvc build). Regards, Kai
Nov 24 2014
parent David Nadlinger via digitalmars-d-ldc <digitalmars-d-ldc puremagic.com> writes:
On 24 Nov 2014, at 21:16, Kai Nacke via digitalmars-d-ldc wrote:
 Yes, the compiler is itself a debug build. I won't change this until 
 LLVM 3.6 is released (this LLVM is required for the msvc build).
Maybe a Release+Asserts build would be a good compromise? I don't recall how much of a difference it makes, though. David
Nov 24 2014