digitalmars.D.announce - LDC 1.15.0
- kinke (19/19) Apr 06 2019 Glad to announce LDC 1.15:
- Thomas Mader (10/29) Apr 07 2019 Were there some changes to the shared phobos unittest runners
- kinke (4/14) Apr 07 2019 No changes wrt. the test runners, especially none wrt. build
- Thomas Mader (21/36) Apr 12 2019 In [1] you mentioned that it might be an order problem because I
- Vijay Nayar (5/24) Apr 10 2019 Pretty amazing work! I especially like the -lowmem option, which
- Radu (2/19) Apr 12 2019 Thank you!
- jmh530 (25/29) Apr 12 2019 I think I had passed over this when I first read the
Glad to announce LDC 1.15: * Based on D 2.085.1. * Support for LLVM 8.0. The prebuilt packages ship with LLVM 8.0.0 and include the Khronos SPIRV-LLVM-Translator, so that dcompute can now emit OpenCL too. * New -lowmem switch to enable the GC for the front-end, trading compile times for less required memory (in some cases, by more than 60%). * New generic llvmAttr("name") parameter UDAs, incl. restrict with C-like semantics. * Dropped support for 32-bit macOS. Min macOS version for prebuilt package raised to 10.9. * Prebuilt packages don't depend on libtinfo/libedit and don't require SSSE3 anymore. * Fix: functions annotated with `pragma(inline, true)` are implicitly cross-module-inlined again. Full release log and downloads: https://github.com/ldc-developers/ldc/releases/tag/v1.15.0 Thanks to all contributors!
Apr 06 2019
On Saturday, 6 April 2019 at 17:40:39 UTC, kinke wrote:Glad to announce LDC 1.15: * Based on D 2.085.1. * Support for LLVM 8.0. The prebuilt packages ship with LLVM 8.0.0 and include the Khronos SPIRV-LLVM-Translator, so that dcompute can now emit OpenCL too. * New -lowmem switch to enable the GC for the front-end, trading compile times for less required memory (in some cases, by more than 60%). * New generic llvmAttr("name") parameter UDAs, incl. restrict with C-like semantics. * Dropped support for 32-bit macOS. Min macOS version for prebuilt package raised to 10.9. * Prebuilt packages don't depend on libtinfo/libedit and don't require SSSE3 anymore. * Fix: functions annotated with `pragma(inline, true)` are implicitly cross-module-inlined again. Full release log and downloads: https://github.com/ldc-developers/ldc/releases/tag/v1.15.0 Thanks to all contributors!Were there some changes to the shared phobos unittest runners between beta2 and the final release? I ask because I have the problem on macOS with the final release that libphobos2-ldc-unittest-shared.85.dylib is not fixed by my fixing step to switch to absolute paths referencing. I use install_name_tool and run this step after I do 'make all-test-runners'. It used to work previously and also with beta2. My guess is that libphobos2-ldc-unittest-shared.85.dylib is getting created after my fixing step now for some reason.
Apr 07 2019
On Sunday, 7 April 2019 at 14:26:16 UTC, Thomas Mader wrote:Were there some changes to the shared phobos unittest runners between beta2 and the final release? I ask because I have the problem on macOS with the final release that libphobos2-ldc-unittest-shared.85.dylib is not fixed by my fixing step to switch to absolute paths referencing. I use install_name_tool and run this step after I do 'make all-test-runners'. It used to work previously and also with beta2. My guess is that libphobos2-ldc-unittest-shared.85.dylib is getting created after my fixing step now for some reason.No changes wrt. the test runners, especially none wrt. build order. The only CMake change was the frontend version. See https://github.com/ldc-developers/ldc/compare/v1.15.0-beta2...v1.15.0.
Apr 07 2019
On Sunday, 7 April 2019 at 15:14:59 UTC, kinke wrote:On Sunday, 7 April 2019 at 14:26:16 UTC, Thomas Mader wrote:In [1] you mentioned that it might be an order problem because I used make instead of ninja but the problem occurred again. I got it working now by setting the DYLD_LIBRARY_PATH variable to the build/lib directory. For some reason the phobos2-test-runner-debug-shared binary didn't have the full path to libphobos2-ldc-unittest-debug-shared.85.dylib [2]. The druntime test didn't have this problem and the problem was also not always reproducible I believe. For me it's not a problem anymore but maybe it's a pointer to something problematic. [2] otool -L /private/var/folders/wq/m1dnr42s42n5msqk2v8l0lfc0000gn/T/nix-build-ldc-1.15.0.drv-4/ldc-1.15.0-src/build/runtime/phobos2-test-runner-debug-shared /private/var/folders/wq/m1dnr42s42n5msqk2v8l0lfc0000gn/T/nix-build-ldc-1.15.0.drv-4/ldc-1.15.0-src/build/runtime/phobos2-test-runner-debug-shared: libphobos2-ldc-unittest-debug-shared.85.dylib (compatibility version 85.0.0, current version 2.0.85) /private/var/folders/wq/m1dnr42s42n5msqk2v8l0lfc0000gn/T/nix-build-ldc-1.15.0.drv-4/ldc-1.15.0-src/build/lib/libdruntime-ldc-debug shared.2.0.85.dylib (compatibility version 85.0.0, current version 2.0.85) /nix/store/mkfq1a1i6n66fahlcjvw890xj32zvlqp-Libsystem-osx-10.11.6/l b/libSystem.B.dylib (compatibility version 1.0.0, current version 1226.10.1) [1] https://forum.dlang.org/post/rsfddgngewcloqucyfco forum.dlang.orgWere there some changes to the shared phobos unittest runners between beta2 and the final release? I ask because I have the problem on macOS with the final release that libphobos2-ldc-unittest-shared.85.dylib is not fixed by my fixing step to switch to absolute paths referencing. I use install_name_tool and run this step after I do 'make all-test-runners'. It used to work previously and also with beta2. My guess is that libphobos2-ldc-unittest-shared.85.dylib is getting created after my fixing step now for some reason.No changes wrt. the test runners, especially none wrt. build order. The only CMake change was the frontend version. See https://github.com/ldc-developers/ldc/compare/v1.15.0-beta2...v1.15.0.
Apr 12 2019
On Saturday, 6 April 2019 at 17:40:39 UTC, kinke wrote:Glad to announce LDC 1.15: * Based on D 2.085.1. * Support for LLVM 8.0. The prebuilt packages ship with LLVM 8.0.0 and include the Khronos SPIRV-LLVM-Translator, so that dcompute can now emit OpenCL too. * New -lowmem switch to enable the GC for the front-end, trading compile times for less required memory (in some cases, by more than 60%). * New generic llvmAttr("name") parameter UDAs, incl. restrict with C-like semantics. * Dropped support for 32-bit macOS. Min macOS version for prebuilt package raised to 10.9. * Prebuilt packages don't depend on libtinfo/libedit and don't require SSSE3 anymore. * Fix: functions annotated with `pragma(inline, true)` are implicitly cross-module-inlined again. Full release log and downloads: https://github.com/ldc-developers/ldc/releases/tag/v1.15.0 Thanks to all contributors!Pretty amazing work! I especially like the -lowmem option, which actually solves the problem of certain compile-time heavy algorithms failing to compile entirely due to running out of memory.
Apr 10 2019
On Saturday, 6 April 2019 at 17:40:39 UTC, kinke wrote:Glad to announce LDC 1.15: * Based on D 2.085.1. * Support for LLVM 8.0. The prebuilt packages ship with LLVM 8.0.0 and include the Khronos SPIRV-LLVM-Translator, so that dcompute can now emit OpenCL too. * New -lowmem switch to enable the GC for the front-end, trading compile times for less required memory (in some cases, by more than 60%). * New generic llvmAttr("name") parameter UDAs, incl. restrict with C-like semantics. * Dropped support for 32-bit macOS. Min macOS version for prebuilt package raised to 10.9. * Prebuilt packages don't depend on libtinfo/libedit and don't require SSSE3 anymore. * Fix: functions annotated with `pragma(inline, true)` are implicitly cross-module-inlined again. [...]Thank you!
Apr 12 2019
On Saturday, 6 April 2019 at 17:40:39 UTC, kinke wrote:* New generic llvmAttr("name") parameter UDAs, incl. restrict with C-like semantics. [snip]I think I had passed over this when I first read the announcement. The llvmAttr("noalias") compiled on run.dlang.org, but I couldn't get the restrict to work. I assume that uses the most recent version of LDC, but I don't really know. Hmm, given that these work in LDC and not DMD, making code that uses it compiler-agnostic might be a little more roundabout. The best I could think of was something like below, unless you have other recommendations. version(LDC) { import ldc.attributes; } mixin template fooImpl() {} version(LDC) { void foo( llvmAttr("noalias") void* p) { mixin fooImpl; } } else { void foo(void* p) { mixin fooImpl; } } void main() { }
Apr 12 2019
On Friday, 12 April 2019 at 13:26:14 UTC, jmh530 wrote:The llvmAttr("noalias") compiled on run.dlang.org, but I couldn't get the restrict to work. I assume that uses the most recent version of LDC, but I don't really know.--version as cmdline switch tells you the run.dlang.io version is still at v1.14 (as is the ldc-beta there).unless you have other recommendations.I'd use something like version (LDC) import ldc.attributes : restrict; else enum restrict = null;
Apr 12 2019
On Friday, 12 April 2019 at 13:54:05 UTC, kinke wrote:[snip] I'd use something like version (LDC) import ldc.attributes : restrict; else enum restrict = null;Much better, thanks.
Apr 12 2019
On Friday, 12 April 2019 at 13:54:05 UTC, kinke wrote:[snip] I'd use something like version (LDC) import ldc.attributes : restrict; else enum restrict = null;Excellent. Thanks.
Apr 12 2019