www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.ldc - LDC 0.15.0 alpha1 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 
alpha1 release!
It is based on the 2.066.1-rc2 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 quite usable. 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 is really bleeding edge. Please 
help to find the bugs!

This release does not include a mingw binary because of some 
build problems. This is on the todo list for alpha2 or beta1 
release.

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-alpha1

MD5 checksums for the release packages:

e9932001d1a220300cdb06e624a42e51 ldc-0.15.0-alpha1-src.tar.gz
9d54267d1734373452563e57d46d831b 
ldc2-0.15.0-alpha1-linux-x86.tar.gz
ace3a80431a57b7c88986da48a68d03c 
ldc2-0.15.0-alpha1-linux-x86.tar.xz
cfce02ac3372f943b78adde982cb6059 
ldc2-0.15.0-alpha1-linux-x86_64.tar.gz
af0d70c77ef0fe3cb56255c8635a0c46 
ldc2-0.15.0-alpha1-linux-x86_64.tar.xz
7d0d5f01de8b26b03017f4056db061d8 
ldc2-0.15.0-alpha1-osx-x86_64.tar.gz
673a79025347e4d240e396ca71d0110d 
ldc2-0.15.0-alpha1-osx-x86_64.tar.xz
1be7e8ab0fa6b74ffb223aaf8d380a8d ldc2-0.15.0-alpha1-win64-msvc.zip

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
Oct 22 2014
next sibling parent "Trass3r" <un known.com> writes:
 Even more exciting this release comes with the first official 
 development snapshot of a Win64 compiler targetting the MS C 
 Runtime.
Known issues: - broken varargs and thus array concatenation of more than 2 operands - poor debugging info. Make some noise on cfe-dev to get that fixed as it also affects clang-cl ;)
Oct 22 2014
prev sibling next sibling parent reply "bearophile" <bearophileHUGS lycos.com> writes:
Kai Nacke:

 e9932001d1a220300cdb06e624a42e51 ldc-0.15.0-alpha1-src.tar.gz
 9d54267d1734373452563e57d46d831b 
 ldc2-0.15.0-alpha1-linux-x86.tar.gz
 ace3a80431a57b7c88986da48a68d03c 
 ldc2-0.15.0-alpha1-linux-x86.tar.xz
 cfce02ac3372f943b78adde982cb6059 
 ldc2-0.15.0-alpha1-linux-x86_64.tar.gz
 af0d70c77ef0fe3cb56255c8635a0c46 
 ldc2-0.15.0-alpha1-linux-x86_64.tar.xz
 7d0d5f01de8b26b03017f4056db061d8 
 ldc2-0.15.0-alpha1-osx-x86_64.tar.gz
 673a79025347e4d240e396ca71d0110d 
 ldc2-0.15.0-alpha1-osx-x86_64.tar.xz
 1be7e8ab0fa6b74ffb223aaf8d380a8d 
 ldc2-0.15.0-alpha1-win64-msvc.zip
Is the 32 bit Windows version missing still? Bye, bearophile
Oct 22 2014
parent "Kai Nacke" <kai redstar.de> writes:
Hi bearophile!

On Wednesday, 22 October 2014 at 19:49:28 UTC, bearophile wrote:
 Is the 32 bit Windows version missing still?
I still have to create the mingw32 version. This will be part of the next alpha/beta release. A version targetting Win32 with MS C Runtime is still missing because there is no exception support for 32bit SEH in LLVM. Regards, Kai
Oct 22 2014
prev sibling next sibling parent reply "Kiith-Sa" <kiithsacmp gmail.com> writes:
On Wednesday, 22 October 2014 at 18:28:44 UTC, Kai Nacke wrote:
 Hi everyone!

 On behalf of the LDC team I am proud to announce the LDC 0.15.0
 alpha1 release!
 It is based on the 2.066.1-rc2 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 quite usable. 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 is really bleeding edge. Please
 help to find the bugs!

 This release does not include a mingw binary because of some
 build problems. This is on the todo list for alpha2 or beta1
 release.

 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-alpha1

 MD5 checksums for the release packages:

 e9932001d1a220300cdb06e624a42e51 ldc-0.15.0-alpha1-src.tar.gz
 9d54267d1734373452563e57d46d831b
 ldc2-0.15.0-alpha1-linux-x86.tar.gz
 ace3a80431a57b7c88986da48a68d03c
 ldc2-0.15.0-alpha1-linux-x86.tar.xz
 cfce02ac3372f943b78adde982cb6059
 ldc2-0.15.0-alpha1-linux-x86_64.tar.gz
 af0d70c77ef0fe3cb56255c8635a0c46
 ldc2-0.15.0-alpha1-linux-x86_64.tar.xz
 7d0d5f01de8b26b03017f4056db061d8
 ldc2-0.15.0-alpha1-osx-x86_64.tar.gz
 673a79025347e4d240e396ca71d0110d
 ldc2-0.15.0-alpha1-osx-x86_64.tar.xz
 1be7e8ab0fa6b74ffb223aaf8d380a8d
 ldc2-0.15.0-alpha1-win64-msvc.zip

 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
I tried it with a project I'm working on, compilation works OK, but I'm getting extremely bad performance (50-100x overhead compared to DMD) - profiling has shown that some code that should execute at compile-time seems to run at run-time. I never used LDC before, I don't know if this is a bug or I'm doing something wrong - I'm using LDC through DUB, so I didn't specify command-line args directly. (tried both debug and release builds, but args were passed by DUB) Can't publish the project (yet), but here's a part of a function annotated by the profiler (perf): bool matchComponents(ComponentTypeIDs...)() push %rbp mov %rsp,%rbp { // Type IDs of processed component types. enum processedIDs = componentIDs!ProcessedComponents; sub $0x70,%rsp mov $0x68dae0,%eax mov %eax,%ecx mov $0x4,%eax mov %eax,%esi mov %rdi,-0x40(%rbp) mov %rcx,%rdi → callq _d_newarrayU movw $0x28,0x6(%rdx) movw $0x25,0x4(%rdx) movw $0x21,0x2(%rdx) movw $0x1,(%rdx) enum sortedIDs = std.algorithm.sort([ComponentTypeIDs]); mov $0x68e210,%r8d mov %r8d,%edi mov $0x3,%r8d mov %r8d,%esi mov %rax,-0x48(%rbp) → callq _d_newarrayU .. etc Note the _d_newarrayU - it seems the array literal is allocated despite only being used at compile-time? On the other hand, sort() doesn't seem to be called. Same function with DMD (the 'enum' lines don't even show up): /// Determine if the current entity contains specified component types. bool matchComponents(ComponentTypeIDs...)() push %rbp mov %rsp,%rbp sub $0x18,%rsp push %rbx mov %rdi,-0x8(%rbp) mov -0x8(%rbp),%rax mov (%rax),%rcx lea 0x358(%rax),%rdx cmp (%rdx),%rcx ↓ jb 2a mov $0x1f1,%edi → callq _D7tharsis6entity11entityrange7__arrayZ 2a: mov (%rax),%rbx mov (%rdx),%rax mov 0x8(%rdx),%rdx mov (%rdx,%rbx,2),%cx neg %cx sbb %ecx,%ecx neg %ecx mov %cl,-0x10(%rbp) return parts.join(" && "); } // The actual run-time code is here. mixin(q{const result = cast(bool)(%s);}.format(matchCode())); return result; mov -0x10(%rbp),%al } pop %rbx leaveq ← retq
Oct 23 2014
parent reply "Kai Nacke" <kai redstar.de> writes:
Hi Kiith-Sa!

On Friday, 24 October 2014 at 00:50:51 UTC, Kiith-Sa wrote:
 On Wednesday, 22 October 2014 at 18:28:44 UTC, Kai Nacke wrote:
 Hi everyone!

 On behalf of the LDC team I am proud to announce the LDC 0.15.0
 alpha1 release!
 It is based on the 2.066.1-rc2 front-end and LLVM 3.1-3.5 (OS
 X: no support for 3.3).
I tried it with a project I'm working on, compilation works OK, but I'm getting extremely bad performance (50-100x overhead compared to DMD) - profiling has shown that some code that should execute at compile-time seems to run at run-time. I never used LDC before, I don't know if this is a bug or I'm doing something wrong - I'm using LDC through DUB, so I didn't specify command-line args directly. (tried both debug and release builds, but args were passed by DUB)
Thanks for trying LDC! CTFE is done in the frontend therefore there should be no difference between LDC and DMD. But a bug can always creep in...
 Can't publish the project (yet), but here's a part of a 
 function annotated by the profiler (perf):
We really prefer reduced test cases. :-) If you can produce one that would be really great.
       bool matchComponents(ComponentTypeIDs...)()
       push   %rbp
       mov    %rsp,%rbp
         {
             // Type IDs of processed component types.
             enum processedIDs = 
 componentIDs!ProcessedComponents;
       sub    $0x70,%rsp
       mov    $0x68dae0,%eax
       mov    %eax,%ecx
       mov    $0x4,%eax
       mov    %eax,%esi
       mov    %rdi,-0x40(%rbp)
       mov    %rcx,%rdi
     → callq  _d_newarrayU
       movw   $0x28,0x6(%rdx)
       movw   $0x25,0x4(%rdx)
       movw   $0x21,0x2(%rdx)
       movw   $0x1,(%rdx)
             enum sortedIDs = 
 std.algorithm.sort([ComponentTypeIDs]);
       mov    $0x68e210,%r8d
       mov    %r8d,%edi
       mov    $0x3,%r8d
       mov    %r8d,%esi
       mov    %rax,-0x48(%rbp)
     → callq  _d_newarrayU
 .. etc

 Note the _d_newarrayU - it seems the array literal is allocated 
 despite only being used at compile-time? On the other hand, 
 sort() doesn't seem to be called.


 Same function with DMD (the 'enum' lines don't even show up):

       /// Determine if the current entity contains specified 
 component types.
       bool matchComponents(ComponentTypeIDs...)()
       push   %rbp
       mov    %rsp,%rbp
       sub    $0x18,%rsp
       push   %rbx
       mov    %rdi,-0x8(%rbp)
       mov    -0x8(%rbp),%rax
       mov    (%rax),%rcx
       lea    0x358(%rax),%rdx
       cmp    (%rdx),%rcx
     ↓ jb     2a
       mov    $0x1f1,%edi
     → callq  _D7tharsis6entity11entityrange7__arrayZ
 2a:   mov    (%rax),%rbx
       mov    (%rdx),%rax
       mov    0x8(%rdx),%rdx
       mov    (%rdx,%rbx,2),%cx
       neg    %cx
       sbb    %ecx,%ecx
       neg    %ecx
       mov    %cl,-0x10(%rbp)
                 return parts.join(" && ");
             }

             // The actual run-time code is here.
             mixin(q{const result = 
 cast(bool)(%s);}.format(matchCode()));
             return result;
       mov    -0x10(%rbp),%al
         }
       pop    %rbx
       leaveq
     ← retq
I do not use DUB so I don't know which args were passed to LDC. I would assume that release only passes the -release switch. Could you try it again with a higher optimization level, e.g. -O2 or -O3? There is also a problem with the inliner (David gave some hints here: http://forum.dlang.org/post/ursgarblzengucvxnmfz forum.dlang.org). Using -singleobj with multiple objects might help, too. Regards, Kai
Oct 24 2014
parent reply "David Nadlinger" <code klickverbot.at> writes:
On Friday, 24 October 2014 at 16:28:13 UTC, Kai Nacke wrote:
 I do not use DUB so I don't know which args were passed to LDC. 
 I would assume that release only passes the -release switch.
That's not the issue, it's something along the lines of -O3 -release -disable-boundscheck by default.
 Could you try it again with a higher optimization level, e.g. 
 -O2 or -O3? There is also a problem with the inliner (David 
 gave some hints here: 
 http://forum.dlang.org/post/ursgarblzengucvxnmfz forum.dlang.org). 
 Using -singleobj with multiple objects might help, too.
The issues is most probably not related to optimization at all. I obviously can't say any definitive without more context/code, but it looks like we might emit a manifest constant once and unconditionally instead of on every use (there is/was even an ancient fixme note about this in the code at some point). CTFE itself seems not to be directly related to the issue. It only happens to produce the initializer we erroneously emit afterwards. And regarding the optimizer, the only thing we could there is to catch that the value is never used/escaped and elide it, but clearly it just shouldn't be there in the first place. David
Oct 24 2014
parent "Kiith-Sa" <kiithsacmp gmail.com> writes:
On Friday, 24 October 2014 at 21:21:40 UTC, David Nadlinger wrote:
 On Friday, 24 October 2014 at 16:28:13 UTC, Kai Nacke wrote:
 I do not use DUB so I don't know which args were passed to 
 LDC. I would assume that release only passes the -release 
 switch.
That's not the issue, it's something along the lines of -O3 -release -disable-boundscheck by default.
 Could you try it again with a higher optimization level, e.g. 
 -O2 or -O3? There is also a problem with the inliner (David 
 gave some hints here: 
 http://forum.dlang.org/post/ursgarblzengucvxnmfz forum.dlang.org). 
 Using -singleobj with multiple objects might help, too.
The issues is most probably not related to optimization at all. I obviously can't say any definitive without more context/code, but it looks like we might emit a manifest constant once and unconditionally instead of on every use (there is/was even an ancient fixme note about this in the code at some point). CTFE itself seems not to be directly related to the issue. It only happens to produce the initializer we erroneously emit afterwards. And regarding the optimizer, the only thing we could there is to catch that the value is never used/escaped and elide it, but clearly it just shouldn't be there in the first place. David
I've reduced the code needed to reproduce the issue: https://github.com/ldc-developers/ldc/issues/762
Oct 25 2014
prev sibling next sibling parent reply "Daniel N" <ufo orbiting.us> writes:
On Wednesday, 22 October 2014 at 18:28:44 UTC, Kai Nacke wrote:
 Hi everyone!

 On behalf of the LDC team I am proud to announce the LDC 0.15.0 
 alpha1 release!
 It is based on the 2.066.1-rc2 front-end and LLVM 3.1-3.5 (OS 
 X: no support for 3.3).
Hi Kai, wow looks like an amazing release, I did spot a minor issue, the descriptive text for ldmd2 is outdated when it comes to boundscheck. DMD32 D Compiler v2.066.1 -boundscheck=[on|safeonly|off] bounds checks on, in safe only, or off -noboundscheck no array bounds checking (deprecated, use -boundscheck=off) LDC - the LLVM D compiler (aa0cc4): based on DMD v2.066.1 and LLVM 3.6.0git Default target: x86_64-pc-windows-msvc -noboundscheck turns off array bounds checking for all functions
Oct 24 2014
parent "Kai Nacke" <kai redstar.de> writes:
On Friday, 24 October 2014 at 11:35:10 UTC, Daniel N wrote:
 On Wednesday, 22 October 2014 at 18:28:44 UTC, Kai Nacke wrote:
 Hi everyone!

 On behalf of the LDC team I am proud to announce the LDC 
 0.15.0 alpha1 release!
 It is based on the 2.066.1-rc2 front-end and LLVM 3.1-3.5 (OS 
 X: no support for 3.3).
Hi Kai, wow looks like an amazing release, I did spot a minor issue, the descriptive text for ldmd2 is outdated when it comes to boundscheck. DMD32 D Compiler v2.066.1 -boundscheck=[on|safeonly|off] bounds checks on, in safe only, or off -noboundscheck no array bounds checking (deprecated, use -boundscheck=off) LDC - the LLVM D compiler (aa0cc4): based on DMD v2.066.1 and LLVM 3.6.0git Default target: x86_64-pc-windows-msvc -noboundscheck turns off array bounds checking for all functions
Hi Daniel! Thanks for the report. This is really unimplemented functionality. Regards, Kai
Oct 24 2014
prev sibling next sibling parent reply "Anonymus" <a b.com> writes:
Not sure wether this is an issue at all: I get some strange 
behaviour when I try to mix dmd and LDC generated *.o-files:
//versions:
DMD64 D Compiler v2.066.0

linux-x86_64 LDC

//code:
module a;

int foo(int a) {
	return a;
}

module b;

import a;
import std.stdio;

void main() {
	writeln(foo(2));
}


dmd a.d -c
ldc2 b.d a.o
./b
output:
object.Exception /build/src/ldc/runtime/phobos/std/stdio.d(2156): 
Enforcement failed

dmd a.d -c
ldc2 b.d -c
ldc2 b.o a.o
./b
output:
2

dmd b.d -c
ldc2 b.o a.d
output:
b.o: In Funktion 
`_D3std9exception105__T12errnoEnforceTiVAyaa35_2f7573722f696e636c7564652f646d642f70686f626f732f7374642f737464696f2e64Vmi2113Z12errnoEnforceFNfiLAyaZi':
b.d:(.text._D3std9exception105__T12errnoEnforceTiVAyaa35_2f7573722f696e636c7564652f646d642f70686f626f732f7374642f737464696f2e64Vmi2113Z12errnoEnfo
ceFNfiLAyaZi+0x6a): 
Nicht definierter Verweis auf `_d_throwc'
collect2: error: ld returned 1 exit status
Error: /usr/bin/gcc failed with status: 1


If dmd does the linking, there are even more different results...
I also have a ldc version build from github source at 20.10.2014 
(0.14 was broken for me) where I get
dmd -c a.d
ldc2 b.d a.o
./b
2
Ungültiger Maschinenbefehl

Note that I usually compile everything with the same compiler and 
LDC 0.15 seems to work fine. The only minor problem is that I 
can't use the compilation speed of dmd during development because 
it is unable to link against my gtkd (compiled by an old LDC 
version) - not sure wether that is related.
Oct 24 2014
next sibling parent "David Nadlinger" <code klickverbot.at> writes:
On Friday, 24 October 2014 at 20:56:28 UTC, Anonymus wrote:
 Not sure wether this is an issue at all: I get some strange 
 behaviour when I try to mix dmd and LDC generated *.o-files.
DMD and LDC are indeed not ABI compatible right now,
 (compiled by an old LDC version)
and neither different versions of any one D compiler. David
Oct 24 2014
prev sibling parent Marco Leise <Marco.Leise gmx.de> writes:
Am Fri, 24 Oct 2014 20:56:27 +0000
schrieb "Anonymus" <a b.com>:

 The only minor problem is that I 
 can't use the compilation speed of dmd during development because 
 it is unable to link against my gtkd (compiled by an old LDC 
 version) - not sure wether that is related.
And that's why on Gentoo Linux I made it so GtkD is installed once per dmd version, ldc2 version, gdc version and pointer size. So on Gentoo you can unleash the speed of DMD with installed D libraries and also compile your release versions with ldc2 or gdc. Just remember not to mix object files produced by different compilers or different compiler versions. Some APIs in Phobos changed even from 2.066.0 to 2.066.1. -- Marco
Oct 31 2014
prev sibling next sibling parent reply "Andrei Amatuni" <andrei.amatuni gmail.com> writes:
Building DCD (d completion daemon) is failing for me. The build
works with DMD though. It was failing with the same error on
0.14.0 too, so it's not something new. I'm on OS X. It might just
be a stupid mistake on my part. Here's my error message:

Undefined symbols for architecture x86_64:
    "__D4core8internal4hash9bytesHashFNaNbNePxvmmZm", referenced
from:
        __D11modulecache10CacheEntry6toHashMxFNbNfZm in
modulecache.o

__D4core8internal4hash16__T6hashOfTxAyaZ6hashOfFNaNbNeKxAyamZm in
modulecache.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to
see invocation)
Oct 26 2014
parent reply David Nadlinger via digitalmars-d-ldc <digitalmars-d-ldc puremagic.com> writes:
Hi Andrei,

On 27 Oct 2014, at 2:24, Andrei Amatuni via digitalmars-d-ldc wrote:
 It might just be a stupid mistake on my part. […]
  "__D4core8internal4hash9bytesHashFNaNbNePxvmmZm" […]
This looks like it might just be a stupid mistake on _our_ part: https://github.com/ldc-developers/ldc/pull/770 Cheers, David
Oct 26 2014
parent "Andrei Amatuni" <andrei.amatuni gmail.com> writes:
On Monday, 27 October 2014 at 02:32:35 UTC, David Nadlinger via
digitalmars-d-ldc wrote:
 Hi Andrei,

 On 27 Oct 2014, at 2:24, Andrei Amatuni via digitalmars-d-ldc 
 wrote:
 It might just be a stupid mistake on my part. […]
 "__D4core8internal4hash9bytesHashFNaNbNePxvmmZm" […]
This looks like it might just be a stupid mistake on _our_ part: https://github.com/ldc-developers/ldc/pull/770 Cheers, David
Hey David, Thanks for the quick response! I was almost sure it was my fault. Spent some time tinkering with ldflags/library_path but still no luck. Hopefully this takes care of it. Andrei
Oct 26 2014
prev sibling parent reply "Steve" <sadams58 woh.rr.com> writes:
On Wednesday, 22 October 2014 at 18:28:44 UTC, Kai Nacke wrote:
 Hi everyone!

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

 This is a really exciting release!
<snip> I have an up-to-date version of Crunchbang running on a Thinkpad R52. Starting with version 0.13, I get ldc2: /usr/lib/i386-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.18' not found (required by ldc2) ldc2: /lib/i386-linux-gnu/i686/cmov/libc.so.6: version `GLIBC_2.15' not found (required by ldc2) when trying to run the binary images. This keeps me at 0.12.
Nov 05 2014
parent reply David Nadlinger via digitalmars-d-ldc <digitalmars-d-ldc puremagic.com> writes:
On 5 Nov 2014, at 17:32, Steve via digitalmars-d-ldc wrote:
 I have an up-to-date version of Crunchbang running on a Thinkpad R52.  
 Starting with version 0.13, I get

 ldc2: /usr/lib/i386-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.18' 
 not found (required by ldc2)
 ldc2: /lib/i386-linux-gnu/i686/cmov/libc.so.6: version `GLIBC_2.15' 
 not found (required by ldc2)

 when trying to run the binary images.  This keeps me at 0.12.
Seems like your libc is older than the one the binary packages were built against. Kai has been building the release packages since I handed over maintainership to him, but generally our strategy is to build them on the second-to-last Ubuntu LTS release. Right now, this is 12.04, which over 2.5 years old at this point. Generally, we've found this to be enough for the vast majority of users to be able to just use the binary releases. If you want to use it on an older system, you can always compile it from source yourself. By the way, thanks to Konstantinos are now Debian packages for LDC. I've no idea how feasible it is to backport them to whatever Crunchbang is using, but it might simplify things. Regards, David
Nov 06 2014
parent "Kai Nacke" <kai redstar.de> writes:
On Thursday, 6 November 2014 at 20:29:53 UTC, David Nadlinger via 
digitalmars-d-ldc wrote:
 On 5 Nov 2014, at 17:32, Steve via digitalmars-d-ldc wrote:
 I have an up-to-date version of Crunchbang running on a 
 Thinkpad R52.  Starting with version 0.13, I get

 ldc2: /usr/lib/i386-linux-gnu/libstdc++.so.6: version 
 `GLIBCXX_3.4.18' not found (required by ldc2)
 ldc2: /lib/i386-linux-gnu/i686/cmov/libc.so.6: version 
 `GLIBC_2.15' not found (required by ldc2)
Kai has been building the release packages since I handed over maintainership to him, but generally our strategy is to build them on the second-to-last Ubuntu LTS release. Right now, this is 12.04, which over 2.5 years old at this point. Generally, we've found this to be enough for the vast majority of users to be able to just use the binary releases. If you want to use it on an older system, you can always compile it from source yourself.
I am building the binaries on Ubuntu 12.04.5 LTS. The mentioned libstdc++ version is indeed used. Starting with release 0.1.50, the only difference to a vanilla 12.04 LTS is the backported gcc 4.8.1 which is required to compile LLVM 3.5+ Regards, Kai
Nov 08 2014