Thread overview
LDC 0.10.0 Beta 1 available
Dec 12, 2012
David Nadlinger
Dec 12, 2012
Jacob Carlborg
Dec 12, 2012
David Nadlinger
Dec 12, 2012
Jacob Carlborg
Dec 12, 2012
Peter Alexander
Dec 12, 2012
David Nadlinger
Dec 12, 2012
SiegeLord
December 12, 2012
After a long wait and many unexpected delays, there is finally going to be a released version of LDC, the LLVM D compiler, again! I'll keep this post short and (hopefully) sweet, a more detailed announcement will follow when the release is actually out:

Right now, we are in the final stages of testing. You can help by downloading a beta version and evaluating it on your system and your projects. The binary packages linked below are self-contained (»DMD-style«) packages and do not require any setup.

Alternatively, you can easily build LDC from source yourself, see http://ldc-developers.github.com for instructions. Currently, this is also required if you want to use LDC as a D1 compiler, but if there is demand, D1 binary packages will be provided for the release.

LDC 0.10.0 is based on the latest currently released DMD versions (i.e. 2.060 for D2, 1.075 for D1), and with a few known exceptions (x86_64 D vararg handling, exception chaining), passes the DMD/druntime/Phobos test suites as part of the CI runs. There are some open bugs at the GitHub bug tracker (https://github.com/ldc-developers/ldc/issues?state=open); if you run into any other issues, please report them there.

As far as this release is concerned, our plan is to push it out together with the LLVM 3.2 release during the coming weekend, i.e. on Dec 16. If no truly critical issues pop up until then, the code will likely not receive any significant changes, with the exception of a cleaning pass over the license headers, documentation files, etc.

———

The packages are based on LLVM 3.2 RC and have been built on Ubuntu 10.04 resp. OS X 10.7. The x86_64 packages contain 64 bit compiler binaries, which support generating both 32 and 64 bit executables.

Linux x86:
 - https://github.com/downloads/ldc-developers/ldc/ldc2-0.10.0-beta1-linux-x86.tar.xz
   Size: 8.2 MiB
   MD5: 9354467f55e91b44f003cd8a2393489f
   SHA-1: 9caf6be0907c75727ee603adb7670374baa54ef5

 - https://github.com/downloads/ldc-developers/ldc/ldc2-0.10.0-beta1-linux-x86.tar.gz
   Size: 13 MiB
   MD5: 0bbb75195722117de03b8a9a9bb9c9c8
   SHA-1: b5a806f0940ba5c9b7d645b636f25ab6b9d16117

Linux x86_64:
  - https://github.com/downloads/ldc-developers/ldc/ldc2-0.10.0-beta1-linux-x86_64.tar.xz
   Size: 11 MiB
   MD5: fcabe906a9727999910fa1ed06e6a9cc
   SHA-1: e44c016ec97b6b15e876555dd1bf1d2279b63a2c
  - https://github.com/downloads/ldc-developers/ldc/ldc2-0.10.0-beta1-linux-x86_64.tar.gz
   Size: 19 MiB
   MD5: f02dd13f935318f563e42f897e44a469
   SHA-1: 4df054ba98d3f5325dea2ad185a4c1736b54482d

OS X x86_64 (10.7+):
 - https://github.com/downloads/ldc-developers/ldc/ldc2-0.10.0-beta1-osx-x86_64.tar.xz
   Size: 10 MiB
   MD5: 1a23b0d06b4910da1abb065c19418760
   SHA-1: 4674f68355232b25ef8a930e42330ea71e4bb9e6
 - https://github.com/downloads/ldc-developers/ldc/ldc2-0.10.0-beta1-osx-x86_64.tar.gz
   Size: 18 MiB
   MD5: ac7ad522acca7fa2cd0e685b35e626d2
   SHA-1: 0729d81989f1ae7b07e5f05e287fc4f128d99ddc

Source only:
 - https://github.com/downloads/ldc-developers/ldc/ldc-0.10.0-beta1.tar.gz
   Size: 3.7 MiB
   MD5: 041475c49c35557e8168b02ab62c101d
   SHA-1: f1dd7ee46398debac1b96b57372d15318c7e4209

Windows x64 support is progressing steadily, but not yet in a state suitable for general consumption – see https://github.com/ldc-developers/ldc/wiki/Building-and-hacking-LDC-on-Windows-using-MSVC for build instructions.

———

Thanks to everybody involved in making this happen!
David
December 12, 2012
On 2012-12-12 02:07, David Nadlinger wrote:
> After a long wait and many unexpected delays, there is finally going to
> be a released version of LDC, the LLVM D compiler, again!

Cool. Are there any plans to continue making pre-compiled releases like this?

-- 
/Jacob Carlborg
December 12, 2012
On Wednesday, 12 December 2012 at 01:07:56 UTC, David Nadlinger wrote:
> After a long wait and many unexpected delays, there is finally going to be a released version of LDC, the LLVM D compiler, again! I'll keep this post short and (hopefully) sweet, a more detailed announcement will follow when the release is actually out

Nice work.

I just downloaded the OSX version, but I'm getting a lot of unusual linker errors when trying to compile hello world. Here's the output with ldc -L=-v. I'm running OS X 10.6.8.

Let me know if I should file this as a bug (or if I've just missed something).

admin@poita ldc2-0.10.0-beta1-osx-x86_64/bin% ./ldc2 -L=-v test.d
collect2 version 4.2.1 (Apple Inc. build 5664) (i686 Darwin)
/usr/libexec/gcc/i686-apple-darwin10/4.2.1/ld -dynamic -arch x86_64 -macosx_version_min 10.6.8 -weak_reference_mismatches non-weak -o test -lcrt1.10.6.o -L/Users/admin/ldc2-0.10.0-beta1-osx-x86_64/bin/../lib -L/usr/lib/gcc/i686-apple-darwin10/4.2.1/x86_64 -L/usr/lib/gcc/i686-apple-darwin10/4.2.1/x86_64 -L/usr/lib/i686-apple-darwin10/4.2.1 -L/usr/lib/gcc/i686-apple-darwin10/4.2.1 -L/usr/lib/gcc/i686-apple-darwin10/4.2.1 -L/usr/lib/gcc/i686-apple-darwin10/4.2.1/../../../i686-apple-darwin10/4.2.1 -L/usr/lib/gcc/i686-apple-darwin10/4.2.1/../../.. test.o -v -lphobos-ldc -ldl -lpthread -lm -lSystem -lgcc -lSystem
@(#)PROGRAM:ld  PROJECT:ld64-97.14
Library search paths:
	/Users/admin/ldc2-0.10.0-beta1-osx-x86_64/lib
	/usr/lib/gcc/i686-apple-darwin10/4.2.1/x86_64
	/usr/lib/gcc/i686-apple-darwin10/4.2.1/x86_64
	/usr/lib/i686-apple-darwin10/4.2.1
	/usr/lib/gcc/i686-apple-darwin10/4.2.1
	/usr/lib/gcc/i686-apple-darwin10/4.2.1
	/usr/lib/i686-apple-darwin10/4.2.1
	/usr/lib
	/usr/lib
	/usr/local/lib
Framework search paths:
	/Library/Frameworks/
	/System/Library/Frameworks/
ld: warning: symbol __D2rt8lifetime18__blkcache_storagePS2rt8lifetime7BlkInfo found in unsupported section in /Users/admin/ldc2-0.10.0-beta1-osx-x86_64/lib/libphobos-ldc.a(lifetime_64.o)
ld: warning: symbol __D2rt8lifetime12__nextBlkIdxi found in unsupported section in /Users/admin/ldc2-0.10.0-beta1-osx-x86_64/lib/libphobos-ldc.a(lifetime_64.o)
ld: warning: symbol __D2rt8lifetime12__nextBlkIdxi$tlv$init found in unsupported section in /Users/admin/ldc2-0.10.0-beta1-osx-x86_64/lib/libphobos-ldc.a(lifetime_64.o)
ld: warning: symbol __D2rt8lifetime18__blkcache_storagePS2rt8lifetime7BlkInfo$tlv$init found in unsupported section in /Users/admin/ldc2-0.10.0-beta1-osx-x86_64/lib/libphobos-ldc.a(lifetime_64.o)
ld: warning: unknown relocation type 9
ld: warning: unknown relocation type 9
ld: warning: unknown relocation type 9
ld: warning: unknown relocation type 9
... lots more similar ...

December 12, 2012
On Wednesday, 12 December 2012 at 08:32:50 UTC, Peter Alexander wrote:
> On Wednesday, 12 December 2012 at 01:07:56 UTC, David Nadlinger wrote:
>> After a long wait and many unexpected delays, there is finally going to be a released version of LDC, the LLVM D compiler, again! I'll keep this post short and (hopefully) sweet, a more detailed announcement will follow when the release is actually out
>
> Nice work.
>
> I just downloaded the OSX version, but I'm getting a lot of unusual linker errors when trying to compile hello world. Here's the output with ldc -L=-v. I'm running OS X 10.6.8.

We discovered this only pretty recently, but unfortunately this is expected – LLVM relies on operating system support for TLS data, and it was first introduced in OS X 10.7 (dyld support is needed for it to work, so D2 executables generated using a newer OS/toolchain probably won't work on older systems either). Adding a manual TLS implementation to LLVM would be possible as a workaround, but nobody did it so far.

I will be sure to make it clear in the release notes that at least Lion is required.

David
December 12, 2012
On Wednesday, 12 December 2012 at 07:36:22 UTC, Jacob Carlborg wrote:
> On 2012-12-12 02:07, David Nadlinger wrote:
>> After a long wait and many unexpected delays, there is finally going to
>> be a released version of LDC, the LLVM D compiler, again!
>
> Cool. Are there any plans to continue making pre-compiled releases like this?

Yes! Now, that the infrastructure (build bots – thanks Alex! –, packaging scripts, etc.) is in place, and the D2 tests are green by default, our plan is to release new LDC versions coordinated with the DMD release schedule.

To that end – especially because D1 is about to reach end of life –, we might also change the versioning scheme so that the connection to DMD releases is more apparent. This still needs further discussion, though, especially because the current DMD versioning style is not entirely satisfactory.

David
December 12, 2012
On 2012-12-12 18:12, David Nadlinger wrote:

> Yes! Now, that the infrastructure (build bots – thanks Alex! –,
> packaging scripts, etc.) is in place, and the D2 tests are green by
> default, our plan is to release new LDC versions coordinated with the
> DMD release schedule.

Cool. I'm hoping to add support for LDC in DVM.

https://github.com/jacob-carlborg/dvm

-- 
/Jacob Carlborg
December 12, 2012
Good job. Compiles and passess all of the unittests of Tango-D2. I'm extra glad that you fixed the installation instructions too... the old ones were horrible.

-SiegeLord