www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.ldc - LDC 1.4.0

reply kinke <noone nowhere.com> writes:
Hi everyone,

LDC 1.4.0 is out now. The highlights of version 1.4 in a nutshell:

* Based on D 2.074.1.
* Shipping with ldc-build-runtime, a small D tool to easily 
(cross-)compile the runtime libraries yourself.
* Full Android support, incl. emulated TLS.
* Improved support for AddressSanitizer and libFuzzer. The 
libraries are shipped with the prebuilt Linux x86_64 and OSX 
packages.
* Prebuilt Linux x86_64 package shipping with LTO plugin, 
catching up with the OSX package.
* Prebuilt packages include the NVPTX LLVM target, in order to 
target CUDA via DCompute.

Full release log and downloads: 
https://github.com/ldc-developers/ldc/releases/tag/v1.4.0

Thanks to everybody contributing!
Sep 11
next sibling parent reply Arun Chandrasekaran <aruncxy gmail.com> writes:
On Monday, 11 September 2017 at 23:35:42 UTC, kinke wrote:
 Hi everyone,

 LDC 1.4.0 is out now. The highlights of version 1.4 in a
Thanks. Why is the executable named `ldc2` on Linux? If it's for historical reasons, why not just drop it and use just `ldc`?
Sep 13
parent reply Joakim <dlang joakim.fea.st> writes:
On Wednesday, 13 September 2017 at 07:17:04 UTC, Arun 
Chandrasekaran wrote:
 On Monday, 11 September 2017 at 23:35:42 UTC, kinke wrote:
 Hi everyone,

 LDC 1.4.0 is out now. The highlights of version 1.4 in a
Thanks. Why is the executable named `ldc2` on Linux? If it's for historical reasons, why not just drop it and use just `ldc`?
I agree, it was probably done to differentiate with D 1.0 back in the day, but enough time has passed since D 1.0's demise that we can probably just switch, while keeping a ldc2 symbolic link or wrapper so as not to break any code.
Sep 13
parent reply kinke <noone nowhere.com> writes:
On Wednesday, 13 September 2017 at 08:07:38 UTC, Joakim wrote:
 On Wednesday, 13 September 2017 at 07:17:04 UTC, Arun 
 Chandrasekaran wrote:
 Why is the executable named `ldc2` on Linux? If it's for 
 historical reasons, why not just drop it and use just `ldc`?
Because we can't simply change it and thus break integration with build tools.
 I agree, it was probably done to differentiate with D 1.0 back 
 in the day, but enough time has passed since D 1.0's demise 
 that we can probably just switch, while keeping a ldc2 symbolic 
 link or wrapper so as not to break any code.
Yep that is/was the reason. Symbolic file links on Windows are very uncommon, as they require an NTFS file system and Vista or newer.
Sep 13
parent reply Kagamin <spam here.lot> writes:
On Wednesday, 13 September 2017 at 12:28:39 UTC, kinke wrote:
 Yep that is/was the reason. Symbolic file links on Windows are 
 very uncommon, as they require an NTFS file system and Vista or 
 newer.
A hard link should be fine for a file. https://msdn.microsoft.com/en-us/library/windows/desktop/aa3638 0%28v=vs.85%29.aspx docs say hard links were supported on xp.
Sep 13
next sibling parent Joakim <dlang joakim.fea.st> writes:
On Wednesday, 13 September 2017 at 13:07:51 UTC, Kagamin wrote:
 On Wednesday, 13 September 2017 at 12:28:39 UTC, kinke wrote:
 Yep that is/was the reason. Symbolic file links on Windows are 
 very uncommon, as they require an NTFS file system and Vista 
 or newer.
A hard link should be fine for a file. https://msdn.microsoft.com/en-us/library/windows/desktop/aa3638 0%28v=vs.85%29.aspx docs say hard links were supported on xp.
Or, worst case, we could even provide a tiny binary that simply forwards to ldc, as ldmd2 currently does after adjusting for ldc's flags.
Sep 13
prev sibling parent reply kinke <noone nowhere.com> writes:
On Wednesday, 13 September 2017 at 13:07:51 UTC, Kagamin wrote:
 On Wednesday, 13 September 2017 at 12:28:39 UTC, kinke wrote:
 Yep that is/was the reason. Symbolic file links on Windows are 
 very uncommon, as they require an NTFS file system and Vista 
 or newer.
A hard link should be fine for a file. https://msdn.microsoft.com/en-us/library/windows/desktop/aa3638 0%28v=vs.85%29.aspx docs say hard links were supported on xp.
Requires NTFS too, only supported on the same volume (can't just move/copy to another partition), and the targets are apparently fixed (no relative link targets) after a quick test (copying to other directory). So I don't see an alternative to ugly wrappers for Windows compatibility.
Sep 13
next sibling parent kinke <noone nowhere.com> writes:
On Wednesday, 13 September 2017 at 14:04:33 UTC, kinke wrote:
 only supported on the same volume (can't just move/copy to 
 another partition), and the targets are apparently fixed (no 
 relative link targets) after a quick test (copying to other 
 directory).
Erm, yeah, by definition as hard link. ;) As we don't have an installer on Windows, just a portable archive, hard links aren't an option.
Sep 13
prev sibling parent Kagamin <spam here.lot> writes:
On Wednesday, 13 September 2017 at 14:04:33 UTC, kinke wrote:
 Requires NTFS too, only supported on the same volume (can't 
 just move/copy to another partition), and the targets are 
 apparently fixed (no relative link targets) after a quick test 
 (copying to other directory).
I would expect them to be in the same folder. The downside for hardlink can be deletion and recreation of one of the files, after which they become unrelated files.
Sep 13
prev sibling next sibling parent Joakim <dlang joakim.fea.st> writes:
On Monday, 11 September 2017 at 23:35:42 UTC, kinke wrote:
 Hi everyone,

 LDC 1.4.0 is out now. The highlights of version 1.4 in a 
 nutshell:

 * Based on D 2.074.1.
 * Shipping with ldc-build-runtime, a small D tool to easily 
 (cross-)compile the runtime libraries yourself.
 * Full Android support, incl. emulated TLS.
 * Improved support for AddressSanitizer and libFuzzer. The 
 libraries are shipped with the prebuilt Linux x86_64 and OSX 
 packages.
 * Prebuilt Linux x86_64 package shipping with LTO plugin, 
 catching up with the OSX package.
 * Prebuilt packages include the NVPTX LLVM target, in order to 
 target CUDA via DCompute.

 Full release log and downloads: 
 https://github.com/ldc-developers/ldc/releases/tag/v1.4.0

 Thanks to everybody contributing!
I have updated the wiki page on building ldc from source, showing how to build our branch of llvm and switching it to CMake: https://wiki.dlang.org/Building_LDC_from_source I have also added some info about building on or for Android. Please look it over and add anything I missed. I will now remove the instructions on building ldc for Android here, since it's all in the official page now and no patches are needed: https://wiki.dlang.org/Build_LDC_for_Android
Sep 13
prev sibling parent reply geoguy <geoguy yahoo.com> writes:
On Monday, 11 September 2017 at 23:35:42 UTC, kinke wrote:
 Hi everyone,

 LDC 1.4.0 is out now. The highlights of version 1.4 in a 
 nutshell:

 * Based on D 2.074.1.
 * Shipping with ldc-build-runtime, a small D tool to easily 
 (cross-)compile the runtime libraries yourself.
 * Full Android support, incl. emulated TLS.
 * Improved support for AddressSanitizer and libFuzzer. The 
 libraries are shipped with the prebuilt Linux x86_64 and OSX 
 packages.
 * Prebuilt Linux x86_64 package shipping with LTO plugin, 
 catching up with the OSX package.
 * Prebuilt packages include the NVPTX LLVM target, in order to 
 target CUDA via DCompute.

 Full release log and downloads: 
 https://github.com/ldc-developers/ldc/releases/tag/v1.4.0

 Thanks to everybody contributing!
It seems that the brew formula is still at 1.3.0. Any chance it will be updated to 1.4.0 soon? Thanks.
Sep 21
parent reply Joakim <dlang joakim.fea.st> writes:
On Thursday, 21 September 2017 at 18:42:42 UTC, geoguy wrote:
 On Monday, 11 September 2017 at 23:35:42 UTC, kinke wrote:
 [...]
It seems that the brew formula is still at 1.3.0. Any chance it will be updated to 1.4.0 soon? Thanks.
Looks like some test issue: https://github.com/Homebrew/homebrew-core/pull/17966
Sep 21
next sibling parent geoguy <geoguy yahoo.com> writes:
On Thursday, 21 September 2017 at 19:24:25 UTC, Joakim wrote:
 On Thursday, 21 September 2017 at 18:42:42 UTC, geoguy wrote:
 On Monday, 11 September 2017 at 23:35:42 UTC, kinke wrote:
 [...]
It seems that the brew formula is still at 1.3.0. Any chance it will be updated to 1.4.0 soon? Thanks.
Looks like some test issue: https://github.com/Homebrew/homebrew-core/pull/17966
Thank you for pointing this out. Hopefully it gets resolved soon so that we can give 1.4.0 a try on Mac. I realize that I can download the binary directly, but brew is my preferred method for installation and is also currently the installation method described on the LDC GitHub page.
Sep 21
prev sibling parent John Colvin <john.loughran.colvin gmail.com> writes:
On Thursday, 21 September 2017 at 19:24:25 UTC, Joakim wrote:
 On Thursday, 21 September 2017 at 18:42:42 UTC, geoguy wrote:
 On Monday, 11 September 2017 at 23:35:42 UTC, kinke wrote:
 [...]
It seems that the brew formula is still at 1.3.0. Any chance it will be updated to 1.4.0 soon? Thanks.
Looks like some test issue: https://github.com/Homebrew/homebrew-core/pull/17966
Yeah I've had problems there that I haven't been able to fix yet. Hopefully soon.
Sep 25