www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.announce - LDC 1.4.0-beta1

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

on behalf of the LDC team, I'm glad to announce LDC 1.4.0-beta1. 
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.

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

Thanks to everybody contributing!
Aug 26
next sibling parent Kai Nacke <kai redstar.de> writes:
On Saturday, 26 August 2017 at 22:35:11 UTC, kinke wrote:
 Hi everyone,

 on behalf of the LDC team, I'm glad to announce LDC 
 1.4.0-beta1. 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.

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

 Thanks to everybody contributing!
Well done! It's great work you all are doing! Regards, Kai
Aug 27
prev sibling next sibling parent Jon Degenhardt <jond noreply.com> writes:
On Saturday, 26 August 2017 at 22:35:11 UTC, kinke wrote:
 Hi everyone,

 on behalf of the LDC team, I'm glad to announce LDC 
 1.4.0-beta1. 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.

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

 Thanks to everybody contributing!
Wow, this looks fantastic, congrats! --Jon
Aug 27
prev sibling next sibling parent reply bitwise <bitwise.pvt gmail.com> writes:
On Saturday, 26 August 2017 at 22:35:11 UTC, kinke wrote:

 * Shipping with ldc-build-runtime, a small D tool to easily 
 (cross-)compile the runtime libraries yourself.
 * Full Android support, incl. emulated TLS.
Does this mean I can actually build D static libraries, link them into an NDK shared lib, and use it in a phone app that I can submit to Google Play?
Aug 27
parent reply Joakim <dlang joakim.fea.st> writes:
On Sunday, 27 August 2017 at 15:45:00 UTC, bitwise wrote:
 On Saturday, 26 August 2017 at 22:35:11 UTC, kinke wrote:

 * Shipping with ldc-build-runtime, a small D tool to easily 
 (cross-)compile the runtime libraries yourself.
 * Full Android support, incl. emulated TLS.
Does this mean I can actually build D static libraries, link them into an NDK shared lib, and use it in a phone app that I can submit to Google Play?
Yes. Just follow these instructions to generate the standard library for Android/ARM; https://wiki.dlang.org/Building_LDC_runtime_libraries We're still cleaning up loose ends and refining the process though. I forgot that you need to disable building one module when cross-compiling the stdlib, as mentioned here: http://forum.dlang.org/post/jmucnjekkcmiszpagoih forum.dlang.org Then, you can use a variation of these instructions to build D code: https://wiki.dlang.org/Build_D_for_Android The problem is those instructions assume you have a ldc2.conf set up properly, whereas the new ldc 1.4 beta won't do that for you. I'm looking into adding that. Basically, you can do what you asked now, but while all the functionality is there, we're refining the build setup with this ldc beta process. By the final 1.4 release, it should be really easy to cross-compile the stdlib and use it, but we're not quite there yet. If you're adventurous, try it out know and let us know what you think. Otherwise, it will get even simpler soon.
Aug 27
parent bitwise <bitwise.pvt gmail.com> writes:
On Sunday, 27 August 2017 at 18:30:36 UTC, Joakim wrote:
 Yes.

 [...]
This is awesome. I appreciate all the hard work. As far as testing, it will be a while before my current project is ready for an android port.
Aug 27
prev sibling next sibling parent reply Andrea Fontana <nospam example.com> writes:
On Saturday, 26 August 2017 at 22:35:11 UTC, kinke wrote:
 * Shipping with ldc-build-runtime, a small D tool to easily 
 (cross-)compile the runtime libraries yourself.
Have anyone ever tried to compile a linux version of ldc that generates windows executables? Andrea
Aug 29
parent reply kinke <kinke gmx.net> writes:
On Tuesday, 29 August 2017 at 12:46:16 UTC, Andrea Fontana wrote:
 On Saturday, 26 August 2017 at 22:35:11 UTC, kinke wrote:
 * Shipping with ldc-build-runtime, a small D tool to easily 
 (cross-)compile the runtime libraries yourself.
Have anyone ever tried to compile a linux version of ldc that generates windows executables? Andrea
Yep, I even mentioned it prominently in the 1.3 release log. See https://github.com/ldc-developers/ldc/pull/2142#issuecomment-304472412. That was before ldc-build-runtime though; I simply used druntime/Phobos from the prebuilt Win64 package.
Aug 29
next sibling parent Andrea Fontana <nospam example.com> writes:
On Tuesday, 29 August 2017 at 13:11:44 UTC, kinke wrote:
 On Tuesday, 29 August 2017 at 12:46:16 UTC, Andrea Fontana 
 wrote:
 On Saturday, 26 August 2017 at 22:35:11 UTC, kinke wrote:
 * Shipping with ldc-build-runtime, a small D tool to easily 
 (cross-)compile the runtime libraries yourself.
Have anyone ever tried to compile a linux version of ldc that generates windows executables? Andrea
Yep, I even mentioned it prominently in the 1.3 release log. See https://github.com/ldc-developers/ldc/pull/2142#issuecomment-304472412. That was before ldc-build-runtime though; I simply used druntime/Phobos from the prebuilt Win64 package.
Is there also a wiki page about this?
Aug 29
prev sibling parent Nicholas Wilson <iamthewilsonator hotmail.com> writes:
On Tuesday, 29 August 2017 at 13:11:44 UTC, kinke wrote:
 On Tuesday, 29 August 2017 at 12:46:16 UTC, Andrea Fontana 
 wrote:
 On Saturday, 26 August 2017 at 22:35:11 UTC, kinke wrote:
 * Shipping with ldc-build-runtime, a small D tool to easily 
 (cross-)compile the runtime libraries yourself.
Have anyone ever tried to compile a linux version of ldc that generates windows executables? Andrea
Yep, I even mentioned it prominently in the 1.3 release log. See https://github.com/ldc-developers/ldc/pull/2142#issuecomment-304472412. That was before ldc-build-runtime though; I simply used druntime/Phobos from the prebuilt Win64 package.
Ooh, sweet! I might try this if I can't get LDC to build on windows and just build the libs from my mac instead.
Aug 29
prev sibling next sibling parent Joakim <dlang joakim.fea.st> writes:
On Saturday, 26 August 2017 at 22:35:11 UTC, kinke wrote:
 Hi everyone,

 on behalf of the LDC team, I'm glad to announce LDC 
 1.4.0-beta1. 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.

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

 Thanks to everybody contributing!
Just noticed this on proggit: https://www.reddit.com/r/programming/comments/6wm6d0/ldc_140beta1_the_llvm_d_compiler_adds_tons_of_new/
Sep 01
prev sibling next sibling parent reply Igor Shirkalin <mathsoft inbox.ru> writes:
On Saturday, 26 August 2017 at 22:35:11 UTC, kinke wrote:

Hello!

 Hi everyone,

 on behalf of the LDC team, I'm glad to announce LDC 
 1.4.0-beta1. The highlights of version 1.4 in a nutshell:

 * Based on D 2.074.1.
Is it possible to build LDC based on D 2.076 with latest -betterC feature?
Sep 02
parent Nicholas Wilson <iamthewilsonator hotmail.com> writes:
On Saturday, 2 September 2017 at 09:59:42 UTC, Igor Shirkalin 
wrote:
 On Saturday, 26 August 2017 at 22:35:11 UTC, kinke wrote:

 Hello!

 Hi everyone,

 on behalf of the LDC team, I'm glad to announce LDC 
 1.4.0-beta1. The highlights of version 1.4 in a nutshell:

 * Based on D 2.074.1.
Is it possible to build LDC based on D 2.076 with latest -betterC feature?
No, we're still ironing out 2.075. https://github.com/ldc-developers/ldc/pull/2252 https://github.com/ldc-developers/ldc/pull/2273
Sep 02
prev sibling parent reply jmh530 <john.michael.hall gmail.com> writes:
On Saturday, 26 August 2017 at 22:35:11 UTC, kinke wrote:
 Hi everyone,

 on behalf of the LDC team, I'm glad to announce LDC 
 1.4.0-beta1. The highlights of version 1.4 in a nutshell:
The following code compiles on DMD, but not on LDC (tested versions 1.3.0 and the 1.4.0 beta). unittest { import std.array : appender; import std.format : formattedWrite; auto x = appender!(string); typeof(x) y; formattedWrite(y, "%2s", [0, 1]); assert(y.data == "[ 0, 1]"); }
Sep 10
parent reply kinke <noone nowhere.com> writes:
On Sunday, 10 September 2017 at 16:25:52 UTC, jmh530 wrote:
 The following code compiles on DMD, but not on LDC (tested 
 versions 1.3.0 and the 1.4.0 beta).

 unittest
 {
     import std.array : appender;
     import std.format : formattedWrite;

     auto x = appender!(string);
     typeof(x) y;

     formattedWrite(y, "%2s", [0, 1]);
     assert(y.data == "[ 0,  1]");
 }
There's a difference between "doesn't compile" and "asserts". Please always compare to the matching DMD version, 2.074.1 in this case, which produces an empty string as well, I guess because the writer was taken by value in Phobos 2.074.1.
Sep 11
parent jmh530 <john.michael.hall gmail.com> writes:
On Monday, 11 September 2017 at 14:49:44 UTC, kinke wrote:
 There's a difference between "doesn't compile" and "asserts".
 Please always compare to the matching DMD version, 2.074.1 in 
 this case, which produces an empty string as well, I guess 
 because the writer was taken by value in Phobos 2.074.1.
Fair point on the DMD versioning. I think I was only using the most recent DMD. I had thought this capability was added in 2.074.0 when the CT string feature was added, but the changelogs only reference formattedRead, not formattedWrite. https://dlang.org/changelog/2.074.0.html#std-format-formattedRead I don't know when it was actually added.
Sep 11