LDC 1.40.0-beta4
Glad to announce the 4th beta for LDC 1.40. Major changes (since v1.39): * Based on D ~2.110.0 (today's upstream stable). * LLVM for prebuilt packages bumped to v18.1.8 (incl. macOS arm64). * Android: NDK for prebuilt package bumped from r26d to r27. * Emscripten: The compiler now mimicks a musl Linux platform wrt. extra predefined versions. ABI compatibility with clang improved too. * Mainly for **distro package maintainers**: Use system zlib instead of Phobos' vendored version through CMake `-DPHOBOS_SYSTEM_ZLIB=ON`. Thanks Andrei! * Edge-case fixes regarding IR struct layouts and link-time culling (for ELF targets). Full release log and downloads: https://github.com/ldc-developers/ldc/releases/tag/v1.40.0-beta4 Please help test, and thanks to all contributors & sponsors!
Re: LDC 1.40.0-beta3
On Monday, 9 September 2024 at 17:53:34 UTC, ryuukk_ wrote: Thanks! i got SDL + printf working Cool, thanks for the idea in the 1st place (I thought Emscripten was some legacy framework compiling to JavaScript... ;)) and providing all required info via a minimal example. :+1:
Re: LDC 1.40.0-beta3
Oh, I forgot an item: * Emscripten: The compiler now mimicks a musl Linux platform wrt. extra predefined versions. This should pave the way for supporting Emscripten in druntime & Phobos (via `version(Emscripten)` special cases), which is probably much simpler with the musl libc interface than the WASI interface directly.
LDC 1.40.0-beta3
Glad to announce the 3rd beta for LDC 1.40. Major changes: * Based on D ~2.110.0 (yesterday's upstream stable). * LLVM for prebuilt packages bumped to v18.1.8 (incl. macOS arm64). * Android: NDK for prebuilt package bumped from r26d to r27. * Mainly for **distro package maintainers**: Use system zlib instead of Phobos' vendored version through CMake `-DPHOBOS_SYSTEM_ZLIB=ON`. Thanks Andrei! * Edge-case fixes regarding IR struct layouts and link-time culling (for ELF targets). Full release log and downloads: https://github.com/ldc-developers/ldc/releases/tag/v1.40.0-beta3 Please help test, and thanks to all contributors & sponsors!
Re: LDC 1.40.0-beta1
On Thursday, 22 August 2024 at 10:50:44 UTC, Dakota wrote: Is this hardcoded in ldc2 ? No, but there's a wasm section in `etc/ldc2.conf`, defaulting to `-link-internally` and some linker flags, to make it work out of the box for most users. Please don't abuse an announcement thread for questions which are unrelated to the new release.
Re: LDC 1.40.0-beta1
The 2nd beta has just been released, including the latest upstream `stable` fixes and a LDC-specific regression fix (introduced in v1.31, for under-alignment edge cases): https://github.com/ldc-developers/ldc/releases/tag/v1.40.0-beta2
LDC 1.40.0-beta1
Glad to announce the first beta for LDC 1.40. Major changes: * Based on D ~2.110.0 (today's upstream stable). * LLVM for prebuilt packages bumped to v18.1.8 (incl. macOS arm64). * Android: NDK for prebuilt package bumped from r26d to r27. Full release log and downloads: https://github.com/ldc-developers/ldc/releases/tag/v1.40.0-beta1 Please help test, and thanks to all contributors & sponsors!
LDC 1.39.0
Glad to announce LDC 1.39.0. Major changes: * Based on D 2.109.1. * LLVM for prebuilt packages bumped to v18.1.6. * musl libc: Misc. bug fixes and removal of libunwind dependency. * Support for LLVM 11-14 was dropped. The CLI options `-passmanager` and `-opaque-pointers` were removed. Full release log and downloads: https://github.com/ldc-developers/ldc/releases/tag/v1.39.0 Thanks to all contributors & sponsors!
LDC 1.39.0-beta1
Glad to announce the first beta for LDC 1.39. Major changes: * Based on D 2.109.0. * LLVM for prebuilt packages bumped to v18.1.6. * Support for LLVM 11-14 was dropped. The CLI options `-passmanager` and `-opaque-pointers` were removed. Full release log and downloads: https://github.com/ldc-developers/ldc/releases/tag/v1.39.0-beta1 Please help test, and thanks to all contributors & sponsors!
LDC 1.38.0
Glad to announce LDC 1.38.0. Major changes: - Based on D 2.108.1. - Support for LLVM 18; the prebuilt packages use v18.1.5. - Android: Switch to native ELF TLS, supported since API level 29 (Android v10), dropping our former custom TLS emulation (requiring a modified LLVM and a legacy ld.bfd linker). The prebuilt packages themselves require Android v10+ (armv7a) / v11+ (aarch64) too, and are built with NDK r26d. Shared druntime and Phobos libraries are now available (`-link-defaultlib-shared`), as on regular Linux. Full release log and downloads: https://github.com/ldc-developers/ldc/releases/tag/v1.38.0 Thanks to all contributors & sponsors!
LDC 1.38.0-beta1
Glad to announce the first beta for LDC 1.38. Major changes: * Based on D 2.108.0+ (yesterday's DMD stable). * Support for LLVM 18; the prebuilt packages use v18.1.3. * Android: Switch to native ELF TLS, supported since API level 29 (Android v10), dropping our former custom TLS emulation (requiring a modified LLVM and a legacy ld.bfd linker). The prebuilt packages themselves require Android v10+ (armv7a) / v11+ (aarch64) too, and are built with NDK r26d. Shared druntime and Phobos libraries are now available (`-link-defaultlib-shared`), as on regular Linux. Full release log and downloads: https://github.com/ldc-developers/ldc/releases/tag/v1.38.0-beta1 Please help test, and thanks to all contributors & sponsors!
LDC 1.37.0
Glad to announce LDC 1.37.0. Major changes: * Based on D 2.107.1. * Important fix wrt. if-statement elision on constant condition. Full release log and downloads: https://github.com/ldc-developers/ldc/releases/tag/v1.37.0 Thanks to all contributors & sponsors!
LDC 1.37.0-beta1
Glad to announce the first beta for LDC 1.37. The single major change for now is the bump to D v2.107.0+. Full release log and downloads: https://github.com/ldc-developers/ldc/releases/tag/v1.37.0-beta1 Please help test, and thanks to all contributors & sponsors!
LDC 1.36.0
Glad to announce LDC 1.36.0. Major changes: * Based on D 2.106.1. * Support for LLVM 17; the prebuilt packages use v17.0.6. * New GDC-compatible CLI options `-fno-{exceptions,moduleinfo,rtti}` to selectively enable some `-betterC` effects. * Support for sample-based PGO via clang-compatible CLI option `-fprofile-sample-use` and `ldc-profgen` tool. Full release log and downloads: https://github.com/ldc-developers/ldc/releases/tag/v1.36.0 Thanks to all contributors & sponsors!
Re: LDC 1.36.0-beta1
On Wednesday, 6 December 2023 at 15:10:14 UTC, d007 wrote: ```sh /ldc/bin/../import/core/internal/array/duplication.d(39): Error: appending to array in `res ~= cast(immutable(Column))e` requires the GC which is not available with -betterC ``` The code is used in ctfe function, I am not sure `~=` or `.idup` cause this problem. Thanks for testing. - This is a new check in the codegen layer; DMD has it, LDC was missing it so far. So if it does work with DMD, please file an LDC issue. - The expected root problem here is that the array-append lowering ends up being codegen'd, even though it's exclusively used for CTFE and so the template instances should be culled from codegen. (The logic for this is in the DMD frontend.)
LDC 1.36.0-beta1
Glad to announce the first beta for LDC 1.36. Major changes: * Based on D 2.106.0. * Support for LLVM 17; the prebuilt packages use v17.0.6. * New GDC-compatible CLI options `-fno-{exceptions,moduleinfo,rtti}` to selectively enable some `-betterC` effects. * Support for sample-based PGO via clang-compatible CLI option `-fprofile-sample-use` and `ldc-profgen` tool. Full release log and downloads: https://github.com/ldc-developers/ldc/releases/tag/v1.36.0-beta1 Please give this some extra regression testing if you find the time, as it's the first LDC version with enforced opaque IR pointers, and there might still be related, hard-to-find bugs lurking in our codebase. You can e.g. run *optimized* unittests via `DFLAGS=-O dub run -c unittest -b unittest`. So please help test, and thanks to all contributors & sponsors!
Re: LDC 1.35.0
On Tuesday, 17 October 2023 at 16:29:34 UTC, Imperatorn wrote: ``` lld-link: error: undefined symbol: _d_newitemT [...] ``` Sounds like you're using an older host compiler with newer target libs. That doesn't work, the host compiler needs to be upgraded too. [This is mentioned in https://wiki.dlang.org/Cross-compiling_with_LDC#Default_libraries.]
Re: LDC 1.35.0
On Monday, 16 October 2023 at 20:54:05 UTC, Sergey wrote: Does the build from GitHub now use LLVM's SPIR-V? It is not stated in release changes Yes, we've switched to the experimental LLVM target with our LDC-LLVM 16, in LDC v1.34 already.
LDC 1.35.0
Glad to announce LDC 1.35.0. Major changes: * Based on D 2.105.2+. * A few important ImportC fixes. * Fix GC2Stack optimization regression introduced in v1.24. Full release log and downloads: https://github.com/ldc-developers/ldc/releases/tag/v1.35.0 Thanks to all contributors & sponsors!
Re: tshare/1.0 a fast way to share file using transfer.sh
On Saturday, 7 October 2023 at 22:40:58 UTC, Andrea Fontana wrote: Question: - Is there a way to compile curl statically with ldc for windows? If I try (using -static), it throws a runtime error. Yes; IIRC, you need to link `curl_a.lib` *and* add `curl.exp` (as Phobos tries to find the exported functions in the .exe itself) to the linker cmdline too (both files in the LDC lib dir).
LDC 1.35.0-beta1
Glad to announce the first beta for LDC 1.35. The single major change for now is the bump to D v2.105.1+. Full release log and downloads: https://github.com/ldc-developers/ldc/releases/tag/v1.35.0-beta1 Please help test, and thanks to all contributors & sponsors!
LDC 1.34.0
Glad to announce LDC 1.34.0. Major changes: * Based on D 2.104.2. * Support for LLVM 16, incl. v16.0.6 for the prebuilt packages. Support for v9 and v10 was dropped. * 64-bit RISC-V: Enable ISA extensions ('rv64gc') by default when targeting an operating system. Full release log and downloads: https://github.com/ldc-developers/ldc/releases/tag/v1.34.0 Thanks to all contributors & sponsors!
LDC 1.34.0-beta2
Glad to announce the second beta for LDC 1.34. Major change since beta1: LLVM 16 support, incl. v16.0.6 for the prebuilt packages. Full release log and downloads: https://github.com/ldc-developers/ldc/releases/tag/v1.34.0-beta2 Please help test, and thanks to all contributors & sponsors!
LDC 1.34.0-beta1
Glad to announce the first beta for LDC 1.34. The single major change for now (since last week's v1.33) is the bump to D v2.104.2. Full release log and downloads: https://github.com/ldc-developers/ldc/releases/tag/v1.34.0-beta1 Please help test, and thanks to all contributors & sponsors!
LDC 1.33.0
Glad to announce LDC 1.33.0. Major changes: - Based on D 2.103.1. - New CLI option `-femit-local-var-lifetime` to enable stack memory reuse. - C files are now automatically preprocessed using the external C compiler. - Less pedantic checks for conflicting C(++) function declarations ('Error: Function type does not match previously declared function with the same mangled name'). - New CLI option `--fcf-protection` to enable Intel's Control-Flow Enforcement Technology (CET). - Experimental: `--plugin` now also accepts semantic analysis plugins (besides LLVM plugins). New tool `ldc-build-plugin` simplifies building such plugins. Full release log and downloads: https://github.com/ldc-developers/ldc/releases/tag/v1.33.0 Thanks to all contributors & sponsors! PS: Unfortunately no prebuilt Linux-AArch64 package to download for now; our CI provider is having issues.
LDC 1.33.0-beta2
Glad to announce the second beta for LDC 1.33. Major changes since beta1: - New CLI option `-femit-local-var-lifetime` to enable stack memory reuse. - C files are now automatically preprocessed using the external C compiler. - Less pedantic checks for conflicting C(++) function declarations ('Error: Function type does not match previously declared function with the same mangled name'). Full release log and downloads: https://github.com/ldc-developers/ldc/releases/tag/v1.33.0-beta2 Please help test, and thanks to all contributors & sponsors!
LDC 1.33.0-beta1
Glad to announce the first beta for LDC 1.33. The single major change for now (since yesterday's v1.32.2) is the bump to D v2.103.1. Full release log and downloads: https://github.com/ldc-developers/ldc/releases/tag/v1.33.0-beta1 Please help test, and thanks to all contributors & sponsors!
LDC 1.32.2
A new patch version was just released, mainly to fix a bad compile-time regression, but Johan also tackled challenges wrt. stack limits: - Fix potentially huge compile slowdowns with `-g` and LLVM 15+. - New CLI option `--fwarn-stack-size=`. - New CLI option `--fsplit-stack` for incremental stack allocations, see https://llvm.org/docs/SegmentedStacks.html. - New CLI option `--indent` for the `timetrace2txt` tool. Full release log and downloads: https://github.com/ldc-developers/ldc/releases/tag/v1.32.2 Thanks to all contributors & sponsors!
LDC 1.32.1
A new patch version was just released: * The prebuilt Linux packages are now generated on a Ubuntu 20.04 box, so the min required glibc version has been raised from 2.26 to 2.31. * Fix empty `ldc.gccbuiltins_*` modules with LLVM 15+. * Fix v1.31 regression wrt. potentially wrong constant pointer offsets. * Windows: Fix v1.32.0 regression wrt. leaking `Throwable.info` backtraces. * Fix C assert calls for newlib targets. Full release log and downloads: https://github.com/ldc-developers/ldc/releases/tag/v1.32.1 Thanks to all contributors & sponsors!
LDC 1.32.0
Glad to announce LDC 1.32.0. Major changes: - Based on D 2.102.2. - LLVM for prebuilt packages bumped to v15.0.7. - Linker-level dead code elimination is enabled by default for Apple, wasm and *all* ELF targets too now. - Vector comparisons (==, !=, <, <=, >, >=) now yield a vector mask. Identity comparisons (`is`, `!is`) still yield a scalar `bool`. - `-mabi` support for RISC-V targets. Thanks @zyedidia! - New `timetrace2txt` tool for easier inspection of `--ftime-trace` output. - `--ftime-trace` now also traces CTFE execution. Full release log and downloads: https://github.com/ldc-developers/ldc/releases/tag/v1.32.0 Thanks to all contributors & sponsors!
Re: LDC 1.32.0-beta1
On Tuesday, 28 February 2023 at 06:01:51 UTC, newbie wrote: find one error for musl + aarch64: ```sh /ldc2/bin/../import/core/sys/posix/sys/stat.d(1659): Error: alias `core.sys.posix.sys.stat.__mode_t` conflicts with alias `core.sys.posix.sys.stat.__mode_t` at /ldc2/bin/../import/core/sys/posix/sys/stat.d(662) ``` This was fixed upstream, but didn't make it into v2.102 unfortunately: https://github.com/dlang/dmd/pull/14793
LDC 1.32.0-beta1
Glad to announce the first beta for LDC 1.32. Major changes: * Based on D 2.102.1+. * LLVM for prebuilt packages bumped to v15.0.7. * Linker-level dead code elimination is enabled by default for Apple, wasm and *all* ELF targets too now. * Vector comparisons (==, !=, <, <=, >, >=) now yield a vector mask. Identity comparisons (`is`, `!is`) still yield a scalar `bool`. * `-mabi` support for RISC-V targets. Thanks @zyedidia! Full release log and downloads: https://github.com/ldc-developers/ldc/releases/tag/v1.32.0-beta1 Please help test, and thanks to all contributors & sponsors!
LDC 1.31.0
Glad to announce LDC 1.31.0. Major changes: * Based on D 2.101.2. * ImportC: The C preprocessor isn't invoked yet. * mac/iOS arm64: Linking with `-g` is working again without unaligned pointer warnings/errors. * *Preliminary* support for LLVM 15. Thanks @jamesragray for helping out! * Initial ABI support for 64-bit RISC-V. Thanks @Ast-x64! Full release log and downloads: https://github.com/ldc-developers/ldc/releases/tag/v1.31.0 Thanks to all contributors & sponsors!
LDC 1.31.0-beta1
Glad to announce the first beta for LDC 1.31. Major changes: * Based on D 2.101.2. * ImportC: The C preprocessor isn't invoked yet. * mac/iOS arm64: Linking with `-g` is working again without unaligned pointer warnings/errors. * *Preliminary* support for LLVM 15. Thanks @jamesragray for helping out! * Initial ABI support for 64-bit RISC-V. Thanks @Ast-x64! Full release log and downloads: https://github.com/ldc-developers/ldc/releases/tag/v1.31.0-beta1 Please help test, and thanks to all contributors & sponsors!
LDC 1.30.0
Glad to announce LDC 1.30.0. Major changes: - Based on D 2.100.1. - LLVM for prebuilt packages bumped to v14.0.3. All target architectures supported by LLVM are enabled now. - Dropped LDC ltsmaster (v0.17.x) as supported host compiler. Like DMD, the min D version for bootstrapping is v2.079 (or GDC v9.x) now. - Dropped support for LLVM < 9. - New LeakSanitizer support via `-fsanitize=leak`. - New prebuilt universal macOS package, runnable on both x86_64 and arm64, and enabling x86_64/arm64 macOS/iOS cross-compilation targets out of the box. Full release log and downloads: https://github.com/ldc-developers/ldc/releases/tag/v1.30.0 Thanks to all contributors & sponsors!
Re: LDC 1.30.0-beta1
On Monday, 23 May 2022 at 01:42:31 UTC, zoujiaqing wrote: The Arm64 version can't run on my MacBook: https://github.com/ldc-developers/ldc/issues/3864 It should definitely *run*. The linked debuginfo issue for macOS 12 targets mentions 2 workarounds - setting the `MACOSX_DEPLOYMENT_TARGET` env var to < 12 (recommended), or resorting to `-preserve-dwarf-line-section=false`.
Re: LDC 1.30.0-beta1
On Sunday, 22 May 2022 at 12:58:49 UTC, Test123 wrote: There is a bug with this simple code. ```d import ldc.attributes : assumeUsed; @nogc nothrow extern(C): export int test() @assumeUsed { return 0; } ``` [...] If I enable lto there is no name for Export Table: This works fine on my box, targeting Win64: ``` ldc2 -shared -O current.d -flto=full dumpbin /exports current.dll Microsoft (R) COFF/PE Dumper Version 14.29.30133.0 Copyright (C) Microsoft Corporation. All rights reserved. Dump of file current.dll File Type: DLL Section contains the following exports for current.dll characteristics 0 time date stamp 0.00 version 0 ordinal base 3 number of functions 2 number of names ordinal hint RVA name 10 3038 _D7current12__ModuleInfoZ 21 10A0 test ```
LDC 1.30.0-beta1
Glad to announce the first beta for LDC 1.30. Major changes: * Based on D 2.100.0. * LLVM for prebuilt packages bumped to v14.0.3. All target architectures supported by LLVM are enabled now. * Dropped LDC ltsmaster (v0.17.x) as supported host compiler. Like DMD, the min D version for bootstrapping is v2.079 (or GDC v9.x) now. * Dropped support for LLVM < 9. * New prebuilt **universal** macOS package, runnable on both x86_64 and arm64, and enabling x86_64/arm64 macOS/iOS cross-compilation targets out of the box. **Note**: avoid using an x86_64-only dub and use the bundled dub executable instead. Full release log and downloads: https://github.com/ldc-developers/ldc/releases/tag/v1.30.0-beta1 Please help test, and thanks to all contributors & sponsors!
Re: Library associative array project v0.0.1
On Wednesday, 11 May 2022 at 15:31:02 UTC, Steven Schveighoffer wrote: I just spent a couple hours making a library AA solution that is binary compatible with druntime's builtin AA. The benefits: [...] Much appreciated, thanks!
Re: D Language Foundation April Quarterly Meeting and Server Meeting Summaries
On Thursday, 5 May 2022 at 13:52:14 UTC, FeepingCreature wrote: My favorite recent one is https://issues.dlang.org/show_bug.cgi?id=22949 [...] Then you get an "Error: Unknown." lol, made my day. --- Thx Mike for the write-up!
LDC 1.29.0
Glad to announce LDC 1.29.0. Major changes: * Based on D 2.099.1. * Support for LLVM 13 and 14. The prebuilt packages use v13.0.1. * On Linux, LDC doesn't default to the `ld.gold` linker anymore. lld is recommended (related LTO issues have been fixed). * Less aggressive `-linkonce-templates`, considered production-ready now. * Breaking `extern(D)` ABI change for all targets: formal parameters of non-variadic functions aren't reversed anymore. Naked DMD-style inline assembly might need to be adapted. Full release log and downloads: https://github.com/ldc-developers/ldc/releases/tag/v1.29.0 Thanks to all contributors & sponsors!
LDC 1.29.0-beta1
Glad to announce the first beta for LDC 1.29. Major changes: * Based on D 2.099.0+. * Support for LLVM 13. The prebuilt packages use v13.0.1. * On Linux, LDC doesn't default to the `ld.gold` linker anymore. lld is recommended (related LTO issues have been fixed). * Breaking `extern(D)` ABI change for all targets: formal parameters of non-variadic functions aren't reversed anymore. Naked DMD-style inline assembly might need to be adapted. Full release log and downloads: https://github.com/ldc-developers/ldc/releases/tag/v1.29.0-beta1 Please help test, and thanks to all contributors & sponsors!
Re: Our New Pull-Request and Issue Manager
On Thursday, 24 February 2022 at 13:05:33 UTC, Mike Parker wrote: [...] Awesome, thanks and congratz Dennis! Thanks again to Symmetry for sponsoring this position and helping us to fill it. +1.
Re: LDC 1.28.1
On Wednesday, 19 January 2022 at 13:55:56 UTC, workman wrote: Thanks for the kind reply. This azure download link work for me very well, with LTO or without LTO, the project build and run without problem. Glad to hear that, thanks for the feedback!
Re: LDC 1.28.1
On Wednesday, 19 January 2022 at 09:17:11 UTC, workman wrote: Hi kinke, Thanks for the great work. I has some link problem with lld-12 if use with "--gc-sections -s", confirm on x86-64 and aarch64. (build with betterC) upgrade to lld-13(or NDK lld-14) no such problem. The lld-12 link as expect, but when start binary the quickjs promise stop work after one async call, remove "--gc-sections -s" fix the problem but generate huge binary. I has problem with cross llvm-version LTO, so I want to use same llvm version and upgrade to llvm-13. I want to know if I build ldc with llvm13 myself, will it work for betterC project ? Hi; LTO with lld for ELF targets has just been fixed in master, after v1.28.1. Without `-betterC` at least, not sure if `-betterC` was affected too in some way. Bumping LLVM to v13 wasn't trivial this time. There's https://github.com/ldc-developers/ldc/pull/3842 using an LLVM v13.0.1-rc2+, which fixed serious issues we've had with the gold linker (lld v13 was fine). You can download that CI artifact (with enabled assertions) and give it a try to see if it works for you: https://dev.azure.com/ldc-developers/ldc/_build/results?buildId=3243&view=artifacts&pathAsName=false&type=publishedArtifacts
LDC 1.28.1
A new patch version was just released: * Based on D 2.098.1+ (stable from 2 days ago). * Linux x86[_64]: Important fix with statically linked druntime and lld/bfd linkers. [lld 13 came with a deadly breaking change and doesn't work, older versions do - stay tuned for LDC v1.29 for further improved linker support.] * New UDAs: `@hidden` and `@noSanitize`. * Ability to access magic linker symbols on Mac via special mangle prefix. * WebAssembly: Tweaked default lld linker flags for less trouble wrt. stack overflows. Thanks @ryuukk! * Support `rdtscp` in DMD-style inline assembly. Thanks Max! Full release log and downloads: https://github.com/ldc-developers/ldc/releases/tag/v1.28.1 Thanks to all contributors & sponsors! PS: The original plan was to release this just before Christmas vacation, but a high-impact Nullable regression in Phobos v2.098.1 prevented that.
Re: [Semi-OT] Cross-Platform GitHub Action 0.3.0 - NetBSD
On Wednesday, 17 November 2021 at 15:43:55 UTC, Imperatorn wrote: On Wednesday, 17 November 2021 at 09:03:09 UTC, Jacob Carlborg wrote: On Tuesday, 16 November 2021 at 14:04:12 UTC, Imperatorn wrote: Oh, nice to see support for FreeBSD. I just added a version for it in druntime 4 days ago. Now maybe we can test it lol I can add older versions of FreeBSD (currently 12.2 and 13 are supported) if there's a need for that. /Jacob Carlborg Thanks, currently I think it's enough with 12 and 13 tho, but ideally someone actively using FreeBSD (I'm not) could chime in on it. FreeBSD has been CI-tested for years, if not decades; not just by autotester, but also by Cirrus CI, which provides 'native' FreeBSD VMs (with 4 CPU cores), incl. v11/12/13/14 images, see https://cirrus-ci.org/guide/FreeBSD/.
Re: OpenBSD LDC package
On Thursday, 21 October 2021 at 01:59:11 UTC, Brian wrote: With the already shipping GDC and DMD packages, all 3 D compilers are now easily available to OpenBSD users. Thanks for your efforts, much appreciated! And be sure to upstream the few needed modifications for less hassle with the next versions.
LDC 1.28.0
Glad to announce LDC 1.28 - some highlights: * Based on D 2.098.0+ (yesterday's stable). * Dynamic casts across binary boundaries (DLLs etc.) now work. * Windows: `-dllimport=defaultLibsOnly` doesn't require `-linkonce-templates` anymore. * dcompute: Basic support for OpenCL image I/O. Full release log and downloads: https://github.com/ldc-developers/ldc/releases/tag/v1.28.0 Thanks to all contributors & sponsors!
Re: Beta 2.098.0
On Wednesday, 29 September 2021 at 20:53:53 UTC, Martin Nowak wrote: [...] and some personal lack of time. Thanks for your time! - Tests with latest beta3 are looking good for the Symmetry code base, incl. significant RAM reductions when building huge static libs (saving ~3 GB in one case).
LDC 1.28.0-beta1
Glad to announce the first beta for LDC 1.28 - some highlights: * Based on D 2.098.0-beta.2+ (today's stable). * Dynamic casts across binary boundaries (DLLs etc.) now work. * Windows: `-dllimport=defaultLibsOnly` doesn't require `-linkonce-templates` anymore. Full release log and downloads: https://github.com/ldc-developers/ldc/releases/tag/v1.28.0-beta1 Please help test, and thanks to all contributors & sponsors!
LDC 1.27.1
A new minor version was just released: * Based on D 2.097.2 (very few fixes over v1.27.0). * Improved `-ftime-trace` implementation for compiler profiling/tracing, now excluding LLVM-internal traces, adding frontend memory tracing, source file location infos etc. * An official prebuilt package for Linux AArch64 is available again. Full release log and downloads: https://github.com/ldc-developers/ldc/releases/tag/v1.27.1 Thanks to all contributors & sponsors!
Re: Beta 2.097.2
On Thursday, 12 August 2021 at 08:43:59 UTC, FeepingCreature wrote: On Wednesday, 11 August 2021 at 17:21:40 UTC, kinke wrote: On Wednesday, 11 August 2021 at 13:06:24 UTC, FeepingCreature wrote: Seems to work here too :) Just waiting for ldc now. I don't plan to release any LDC v1.27.1 for the very few minor fixes that made it into v2.097.2 compared to v1.27.0. :( Any chance I can convince you otherwise? The Nullable opAssign regression breaks literally *all* our code, and we use ldc for release builds. Who's 'we'? - It wouldn't be a big deal, but there were 3 betas and a beta period of almost 2 months to check for problems and regressions. And we're literally talking about a single compiler diagnostics improvement, that one Phobos fix you're after, and 5 minor druntime fixes.
Re: Beta 2.097.2
On Wednesday, 11 August 2021 at 13:06:24 UTC, FeepingCreature wrote: Seems to work here too :) Just waiting for ldc now. I don't plan to release any LDC v1.27.1 for the very few minor fixes that made it into v2.097.2 compared to v1.27.0.
Re: D and C++ renderer side by side demonstration
On Saturday, 7 August 2021 at 03:15:30 UTC, Ki Rill wrote: I was watching Timur Gafarov’s videos on Dagon Engine and stumbled upon a video that demonstrated a C++ Renderer Engine using the same Sponza scene. I thought it would be a great idea to show them side by side. This is not a “X vs Y” video! It just demonstrates the capabilities of D and C++ side by side. Sorry, but it just demonstrates the capabilities of 2 seemingly totally unrelated rendering engines and might easily mislead beginners, not helping D at all. What makes you think the used programming language would have any effect on the capabilities of a rendering engine? Some old Quake engine was ported from C or C++ to Emscripten (JavaScript) via WebGL by Carmack himself IIRC some years ago, and the visual results were unsurprisingly identical. There might be differences in efficiency, especially for JavaScript vs. a system programming language, but most modern graphics are GPU-bound anyway.
Re: Beta 2.097.2
On Wednesday, 4 August 2021 at 17:34:32 UTC, Martin Nowak wrote: Glad to announce the first beta for the 2.097.2 point release, Thanks Martin, much appreciated. Test results at Symmetry are looking good.
LDC 1.27.0
Glad to announce LDC 1.27 - some highlights: * Based on D 2.097.1+. * LLVM for prebuilt packages bumped to v12.0.1. * Prebuilt packages now bundle reggae for faster building of dub projects. * Greatly improved DLL support on Windows, including bundled druntime and Phobos DLLs, making it almost as easy as on Posix. * Prebuilt Linux and Mac packages can show significant compiler performance increases due to newly employing the mimalloc allocator. * Important fixes for `-linkonce-templates`, DWARF v5 (e.g. with linked-in C[++] parts compiled with gcc 11) and bundled dub supporting somewhat longer paths on Windows. Full release log and downloads: https://github.com/ldc-developers/ldc/releases/tag/v1.27.0 Thanks to all contributors & sponsors!
Re: LDC 1.27.0-beta3
On Thursday, 15 July 2021 at 13:45:32 UTC, evilrat wrote: And there is also DLL export limit on Windows which 65k symbols, yay. Yep, I've already run into it during testing. ;) - For reference: https://developercommunity.visualstudio.com/t/fix-msvc-65535-symbol-limit-in-lib-files-lnk1189/220174
Re: LDC 1.27.0-beta3
On Thursday, 15 July 2021 at 11:38:10 UTC, Adam D Ruppe wrote: On Thursday, 15 July 2021 at 02:54:14 UTC, rikki cattermole wrote: If yes, it might be worth it to get rid of export as a keyword out right in a DIP (as it introduces the possibility of linker errors that would otherwise not need to exist). No, that's a bad idea. I fully agree; it's still very useful with `-fvisibility=hidden` to only export what you really want (e.g., in order to quite likely shrink the final size of executables and plugin libs considerably) without the blunt export-everything method (which is nice for libraries like druntime and Phobos).
LDC 1.27.0-beta3
Glad to announce the third beta for LDC 1.27. Some noteworthy changes since beta2: * Frontend and druntime/Phobos upgraded to todays's DMD stable. * LLVM for prebuilt packages bumped to v12.0.1. * New LDC-specific language addition: `__traits(initSymbol, )` * Fix missed RVO opportunity. Full release log and downloads: https://github.com/ldc-developers/ldc/releases/tag/v1.27.0-beta3 Please help test, and thanks to all contributors & sponsors!
Re: LDC 1.27.0-beta2
On Saturday, 26 June 2021 at 08:43:24 UTC, doruk wrote: is planned a linux aarc64 release, like 1.26 ? Unfortunately, the CI service we've been using for Linux AArch64 (Shippable), incl. generating the prebuilt package automatically, was shut down. Travis *might* be a successor, but they'd probably need to offer better performance or raise the time-out before that can happen. I could set up a cross-compilation build, but I'm reluctant as testing would be very limited and regressions quite inevitable in the long run. So I'm currently leaning towards waiting for a bit and see if another alternative pops up.
Re: LDC 1.27.0-beta2
On Saturday, 26 June 2021 at 05:36:51 UTC, workman wrote: undefined symbol __fieldPostblit and __postblit cause link error only with LTO enabled for windows mingw target. There is more undefined symbols for LDC 1.27 compare to 1.26. My code not changed and they used to work with old version ldc. without LTO all work fine, old LDC link with -flto and -O fix the missing symbol, but 1.26 && 1.27 not work anymore. Sorry to hear about your LTO troubles; the -O requirement seems to be some MSVC specificum of LLD (see https://github.com/ldc-developers/ldc/issues/3500), but LTO without -O doesn't make a lot of sense anyway. It might have gotten worse with more recent LLVM versions if it used to work with older LDC versions; I seem to recall that recent LLD got a MinGW driver, so you may want to give that one a try via -linker. For something actionable, please file an issue with according reproducible test case. Note that MinGW targets aren't officially supported and totally untested, so if it's been working for you, that's either sheer luck or insufficient test coverage. ;)
LDC 1.27.0-beta2
Glad to announce the second beta for LDC 1.27. Some noteworthy changes since beta1: * Frontend and druntime/Phobos upgraded to yesterday's DMD stable. * Windows DLL support: some fixes/tweaks and a new -dllimport option for greater flexibility. * Prebuilt Linux and Mac packages can show significant compiler performance increases due to newly employing the mimalloc allocator. * Important fixes for -linkonce-templates, DWARF v5 (e.g. with linked-in C[++] parts compiled with gcc 11) and bundled dub supporting somewhat longer paths on Windows. Full release log and downloads: https://github.com/ldc-developers/ldc/releases/tag/v1.27.0-beta2 Please help test, and thanks to all contributors & sponsors!
Re: [Semi-OT] Cross-Platform GitHub Action
Thx for sharing! Interesting; I've recently worked on something similar, but on Linux hosts and using a kvm/qemu/libvirt stack for running CI jobs in Windows VMs.
LDC 1.27.0-beta1
Glad to announce the first beta for LDC 1.27 - some highlights: - Based on D 2.097.0. - LLVM for prebuilt packages bumped to v12.0.0. - Prebuilt packages now bundle reggae for faster building of dub projects. - Greatly improved DLL support on Windows, including bundled druntime and Phobos DLLs, making it almost as easy as on Posix. Full release log and downloads: https://github.com/ldc-developers/ldc/releases/tag/v1.27.0-beta1 Please help test, and thanks to all contributors & sponsors!
Re: Til, a command language written in D
On Friday, 14 May 2021 at 22:10:38 UTC, Cléber Zavadniak wrote: 1- Should I compile a `libphobos2.so` "by hand"? Should I use `libphobos2-ldc-shared.so`??? With LDC, -link-defaultlib-shared links the binary against shared druntime/Phobos. It's the default setting when creating a shared library with -shared; use it explicitly when creating an executable. This way, the executable and all .so libs share the same druntime/Phobos, incl. a single GC, default std.parallelism thread pool etc.
LDC 1.26.0
Glad to announce LDC 1.26: * Based on D 2.096.1+. * Fixes a v1.25 regression wrt. corrupt `TypeInfo_Interface.info`. * Some more fixes and dcompute improvements. Full release log and downloads: https://github.com/ldc-developers/ldc/releases/tag/v1.26.0 Thanks to all contributors & sponsors!
LDC 1.26.0-beta1
Glad to announce the first beta for LDC 1.26 - a bit late this time: - Based on D 2.096.0+ (today's stable). - Fixes a v1.25 regression wrt. corrupt TypeInfo_Interface.info. - Some more fixes and dcompute improvements. Full release log and downloads: https://github.com/ldc-developers/ldc/releases/tag/v1.26.0-beta1 Please help test, and thanks to all contributors & sponsors!
Re: Cross-compiler targeting macOS
Thanks Jacob, I'm sure this was quite a bit of work, and opening up proprietary SDKs for non-native systems is always welcome. Thumbs up!
Re: Visual D 1.1.0 released
Thx Rainer, always much appreciated. On Tuesday, 2 March 2021 at 08:58:15 UTC, Rainer Schuetze wrote: See https://rainers.github.io/visuald/visuald/images/parameterstorage.png for some examples. Very cool.
LDC 1.25.1 patch release
Hey there; a patch release was unfortunately necessary to fix a severe druntime regression on non-Windows (segfault during backtrace generation in case the executable file cannot be opened for the DWARF file/line infos; e.g., after changing the working dir due to https://issues.dlang.org/show_bug.cgi?id=21656). Downloads: https://github.com/ldc-developers/ldc/releases/tag/v1.25.1
Re: LDC 1.25.0
On Tuesday, 23 February 2021 at 18:19:09 UTC, H. S. Teoh wrote: Tested this on one of my projects yesterday. For -O3, it reduced compile time by about ~26%. For -O, it reduced compile time by about 24%. Not as much as I'd hoped, but still pretty big reductions. Thx for some numbers. [Note that -O == -O3 == -O4 == -O5, they are all the same (at least for now), contrary to what you might read somewhere.] A reduction by 25%, i.e., a 1.33x speed-up, for code that is guaranteed to be at least as fast as before (higher cross-module inlining potential) isn't too bad, aye? :) For non-optimized builds, it reduced compile times by only 1-2% (pretty insignificant). I find it rather interesting that it isn't any slower. Compiling debug Phobos all-at-once took 67% longer on my box (and increased the static lib size by 76%). Without -O, I've only seen some improvements with `-unittest`. Some more numbers on my box: https://github.com/ldc-developers/ldc/pull/3600#issuecomment-729116599 https://github.com/ldc-developers/ldc/pull/3422#issuecomment-661386233
Re: LDC 1.25.0
On Monday, 22 February 2021 at 02:32:22 UTC, Steven Schveighoffer wrote: This is cool! Can you describe what it means? The option name isn't telling me anything obvious. Please see the changelog for more details. That's a first -- I haven't seen a 2.095.1 announcement yet (just the beta) Hmm, maybe Martin forgot the announcement or hasn't gotten to it yet; it's available on dlang.org.
Re: LDC 1.25.0
On Sunday, 21 February 2021 at 21:58:48 UTC, Dennis wrote: On Sunday, 21 February 2021 at 18:26:38 UTC, kinke wrote: - Profile/trace LDC invocations via --ftime-trace. Is there more info on this? I tried it on a simple file, it generates a large json file. Can this be inspected to reduce compile times? The changelog and pull request do not reveal much info on how to use it for the uninformed. See Johan's comment here: https://forum.dlang.org/post/usyrbgwzzwxnzzhqe...@forum.dlang.org
LDC 1.25.0
Glad to announce LDC 1.25 - some highlights: - Based on D 2.095.1. - LLVM for prebuilt packages bumped to v11.0.1; support added for LLVM 11.1 and upcoming 12.0. - Profile/trace LDC invocations via --ftime-trace. - New Windows installer and native 'Apple silicon' package. - New experimental template emission scheme for -linkonce-templates. This option can significantly accelerate compilation times for optimized builds (e.g., 56% faster on my box when compiling the optimized Phobos unittests). Full release log and downloads: https://github.com/ldc-developers/ldc/releases/tag/v1.25.0 Thanks to all contributors & sponsors!
LDC 1.25.0-beta1
Glad to announce the first beta for LDC 1.25 - some highlights: - Based on D 2.095.0+. - LLVM for prebuilt packages bumped to v11.0.1. - Profile/trace LDC invocations via --ftime-trace. - New Windows installer. - New experimental template emission scheme for -linkonce-templates. This option can significantly accelerate compilation times for optimized builds (e.g., 56% faster on my box when compiling the optimized Phobos unittests). Full release log and downloads: https://github.com/ldc-developers/ldc/releases/tag/v1.25.0-beta1 Please help test, and thanks to all contributors & sponsors!
Re: LDC 1.24.0
On Sunday, 13 December 2020 at 08:12:37 UTC, Jarrett Tierney wrote: I know this is rather late to post the thank you, but wanted to let you know using your experimental support for targeting macOS on arm, I was actually able to build a native ldc for Mac m1. Much appreciated, thanks for letting us know.
LDC 1.24.0
Glad to announce LDC 1.24 - some highlights: - Based on D 2.094.1+. - Support for LLVM 11. The prebuilt packages use v11.0.0, and the x86 packages newly include the LLVM backend for AMD GPUs. - Experimental support for targeting macOS on 64-bit ARM. The macOS package includes prebuilt druntime/Phobos libraries for cross-compilation via `-mtriple=arm64-apple-macos`. Full release log and downloads: https://github.com/ldc-developers/ldc/releases/tag/v1.24.0 Thanks to all contributors & sponsors!
Re: LDC 1.24.0-beta1
On Tuesday, 20 October 2020 at 16:08:47 UTC, aberba wrote: It's an option but doesn't fill the need for an installer. Not sure why its hasn't been done. See https://github.com/ldc-developers/ldc/issues/1754. I personally never download the DMD installers, only the .7z. I also don't use a global PATH set up to point to a particular LDC installation. I expect the vast majority of Windows *devs* to prefer a simple download&unpack over some installer. Those wanting to click through setup steps can use the VisualD installer with bundled LDC.
Re: Release D 2.094.0
On Thursday, 1 October 2020 at 18:29:14 UTC, Meta wrote: If W or A did approve it and I just wasn't aware, then I apologize and retract my objection. https://github.com/dlang/dmd/pull/11000#issuecomment-675605193
LDC 1.24.0-beta1
Glad to announce the first beta for LDC 1.24: - Based on D 2.094.0+. - Support for LLVM 11. The prebuilt packages use v11.0.0-rc4+, and the x86 packages newly include the LLVM backend for AMD GPUs. Full release log and downloads: https://github.com/ldc-developers/ldc/releases/tag/v1.24.0-beta1 Please help test, and thanks to all contributors & sponsors!
Re: Beta 2.094.0
On Saturday, 12 September 2020 at 11:36:42 UTC, MoonlightSentinel wrote: On Saturday, 12 September 2020 at 09:07:18 UTC, kinke wrote: On Saturday, 12 September 2020 at 00:52:43 UTC, Andrej Mitrovic Does anyone know when -preview=fieldwise will become the default? FWIW, druntime and Phobos are compiled with it since v2.094. I think you mean -preview=dtorfields, not fieldwise. Absolutely, thx for the correction.
Re: Beta 2.094.0
On Saturday, 12 September 2020 at 00:52:43 UTC, Andrej Mitrovic wrote: "Equality of arrays of structs is consistent again, as before v2.078" Not a big fan of this. I think it's super dangerous to change this behavior again. Looks like hardly anyone is affected, as the quite obviously unsound breaking change in semantics would have been detected and fixed way earlier in that case. Does anyone know when -preview=fieldwise will become the default? FWIW, druntime and Phobos are compiled with it since v2.094.
Re: Visual D 1.0.1 released
Thx Rainer, much appreciated.
Re: LDC 1.23.0
On Wednesday, 19 August 2020 at 23:30:30 UTC, Basile B. wrote: gdwarf really ? this is possible ? Not that this is not a great news but you told me once this was not quite possible (https://forum.dlang.org/post/ttblgcwiwmdhyukzp...@forum.dlang.org). I said that LDC/LLVM generate CodeView, but knew that clang can emit it. Shortly after your post, another guy asked for DWARF on Windows, so I did a little bit of digging. I haven't properly tested it (no working gdb/lldb on my Windows box), so feedback is appreciated.
LDC 1.23.0
Glad to announce LDC 1.23 - some highlights: - Based on D 2.093.1+. - LLVM for prebuilt packages bumped to v10.0.1; min version raised to 6.0. - Cross-compiling to the iOS/x86_64 simulator now works out-of-the-box with the prebuilt Mac package. - Windows: New -gdwarf command-line option for debugging with gdb/lldb. - Fix linker errors for -betterC wrt. cleanups (structs with dtor, `scope(exit)`). Full release log and downloads: https://github.com/ldc-developers/ldc/releases/tag/v1.23.0 Thanks to all contributors!
LDC 1.23.0-beta1
Glad to announce the first beta for LDC 1.23 - some highlights: - Based on D 2.093.0+. - Min required LLVM version raised to 6.0. - Cross-compiling to the iOS/x86_64 simulator now works out-of-the-box with the prebuilt Mac package. - Fix linker errors for -betterC wrt. cleanups (structs with dtor, `scope(exit)`). Full release log and downloads: https://github.com/ldc-developers/ldc/releases/tag/v1.23.0-beta1 Please help test, and thanks to all contributors!
Re: Decimal string to floating point conversion with correct half-to-even rounding
On Tuesday, 7 July 2020 at 23:52:05 UTC, 9il wrote: On Tuesday, 7 July 2020 at 16:38:39 UTC, kinke wrote: So wouldn't the trivial 'fix' be using `strtod` for double literals and `strtof` for floats? [For LDC, we wouldn't rely on the host C runtime or a mir implementation, but use LLVM facilities anyway.] This should work if the C runtime handles the values correctly. I've just opened a PR for DMD (and LDC too): https://github.com/dlang/dmd/pull/11387 Does this actually mean DMD wouldn't be able to compile itself with DigigtalMars C runtime? Sorry, I don't understand. - I think this excess precision was at some point considered a feature (but probably only for D, not for DigitalMars C), there's even a test making sure 0.9L and 0.9 are parsed to the same compile-time value.
Re: Decimal string to floating point conversion with correct half-to-even rounding
On Saturday, 4 July 2020 at 20:35:48 UTC, Walter Bright wrote: On 6/21/2020 8:24 AM, 9il wrote: So excited to finally announce we can correctly parse floating-point numbers according to IEEE round half-to-even (bankers) rule like in C/C++, Rust, and others. Great work! Would you like to add it to dmd? AFAIU, the 'problem' is that *all* floating-point literals are parsed as real_t values, which for DMD is x87 real (usually using the host C runtime's `strtold`). When emitting them as double or float literals, the compiler converts these values to a lower precision, where the increased intermediate precision might break the 'banker's rule'. So wouldn't the trivial 'fix' be using `strtod` for double literals and `strtof` for floats? [For LDC, we wouldn't rely on the host C runtime or a mir implementation, but use LLVM facilities anyway.]
Re: Visual D 1.0.0 released
Thanks a lot, Rainer!
LDC 1.22.0
Glad to announce LDC 1.22 - some highlights: - Based on D 2.092.1+. - AArch64: C(++) interop should now be on par with x86_64, and variadics usable with core.{vararg,stdc.stdarg}. - Windows hosts: Auto-detection & setup of installed Visual C++ toolchains revamped and newly enabled by default. - Complete FreeBSD x86_64 support, incl. CI and prebuilt package. - @weak functions emulation for Windows targets (and fix for ELF targets); no COMDATs emission for ELF anymore. - `pragma(inline, true)` fix when emitting multiple object files in a single cmdline. This may have a significant impact on performance (incl. druntime/Phobos) when not using LTO. - Android: Fix TLS initialization regression (introduced in v1.21) and potential alignment issues. Now defaulting to `-linker=bfd`. Full release log and downloads: https://github.com/ldc-developers/ldc/releases/tag/v1.22.0 Thanks to all contributors!
Re: LDC 1.22.0-beta2
On Monday, 1 June 2020 at 20:29:07 UTC, Petar Kirov [ZombineDev] wrote: Awesome progress, thank you @kinke and everyone else involved! Which FreeBSD version(s) are supported/have you tested with? Thanks - tested FreeBSD is current stable, 12.1. For things to work out smoothly, LLD 9+ is required (otherwise linking druntime statically requires an extra `-L-lexecinfo`).
LDC 1.22.0-beta2
Glad to announce the second beta with the following main additions: - Based on DMD/druntime/Phobos stable from a couple of days ago. - `pragma(inline, true)` fix when emitting multiple object files in a single cmdline. This may have a significant impact on performance (incl. druntime/Phobos) when not using LTO. - Complete FreeBSD x86_64 support, incl. CI. - iOS/arm64 CI, running the debug druntime & Phobos unittests on an iPhone 6S. - core.math.ldexp 6-14x faster (Linux/Windows) on my i5-3550. Full release log and downloads: https://github.com/ldc-developers/ldc/releases/tag/v1.22.0-beta2 Please help test to ensure a smooth final release, and thanks to all contributors!
LDC 1.22.0-beta1
Glad to announce the first beta for LDC 1.22: * Based on D 2.092.0+. * AArch64: C(++) interop should now be on par with x86_64, and variadics usable with core.{vararg,stdc.stdarg}. * Windows hosts: Auto-detection & setup of installed Visual C++ toolchains revamped and newly enabled by default. * @weak functions emulation for Windows targets (and fix for ELF targets); no COMDATs emission for ELF anymore. Full release log and downloads: https://github.com/ldc-developers/ldc/releases/tag/v1.22.0-beta1 Please help test, and thanks to all contributors!
Re: On the D Blog: Lomuto's Comeback
On Friday, 15 May 2020 at 10:28:41 UTC, Joseph Rushton Wakeling wrote: One curious question -- unless I've misread things horribly, it looks like the D benchmarks for Lomuto branch-free are consistently slower than for C++. Any idea why that is? I would expect gcc/gdc and clang/ldc to produce effectively identical results for code like this. Wrt. the LDC results, LDC v1.17 was shipped with LLVM 8.0.1, while the used clang is v10 based on LLVM 10, so that might account for some slight diffs.
LDC 1.21.0
Glad to announce an exciting LDC 1.21 release - some highlights: * Based on D 2.091.1+; LLVM upgraded to v10.0.0. * Experimental iOS/arm64 support - all druntime/Phobos unittests pass, thanks Jacob! The prebuilt macOS package supports cross-compilation out of the box, just add `-mtriple=arm64-apple-ios12.0` (ldc2/ldmd2) or `--arch=arm64-apple-ios12.0` (dub). * Initial support for GCC/GDC-style inline assembly syntax, primarily for portability across GDC and LDC (and GCC-style C). * Android improvements, incl. an important fix for x86 architectures, usability of the ld.gold linker, no more D main() requirement and reduced .so sizes. * Important AArch64 bugfix, especially for unoptimized code. Full release log and downloads: https://github.com/ldc-developers/ldc/releases/tag/v1.21.0 Thanks to all contributors!
Re: LDC 1.21.0-beta1
On Sunday, 22 March 2020 at 12:00:58 UTC, Peter Jacobs wrote: I am seeing a linker error with this beta. Same compilation works with 1.20.1. Well, thx for giving it a try, but that's hardly useful (just looks like a `kdtree` module not being compiled) - firstly, try to check whether that's LDC-specific (i.e., doesn't happen with the corresponding DMD version 2.091.0), and if so, please file a GitHub issue with reproduction steps.
LDC 1.21.0-beta1
Glad to announce the first beta for an exciting LDC 1.21 release: * Based on D 2.091.0; LLVM upgraded to v10.0.0-rc4. * Experimental iOS/arm64 support. * Initial support for GCC/GDC-style inline assembly syntax, primarily for portability across GDC and LDC (and GCC-style C). * Android improvements, incl. an important fix for x86 architectures, usability of the ld.gold linker and no more D `main()` requirement. * Important AArch64 bugfix, especially for unoptimized code. Full release log and downloads: https://github.com/ldc-developers/ldc/releases/tag/v1.21.0-beta1 Please help test, and thanks to all contributors!
Re: Tracing D Applications
On Wednesday, 18 March 2020 at 12:27:11 UTC, drug wrote: Is XRay available on macOS now? As I understand it is linux specific too. Some LLVM docs are notoriously outdated. Latest official LDC Mac packages ship with the XRay libs; Windows appears still unsupported though.
Re: Tracing D Applications
On Friday, 13 March 2020 at 19:00:01 UTC, Mike Parker wrote: This post by Alexandr Druzhinin shows three different approaches to tracing, using writef and external tools. Blog: https://dlang.org/blog/2020/03/13/tracing-d-applications/ Reddit: https://www.reddit.com/r/programming/comments/fi4qfw/tracing_d_applications/ Thanks! Another option is to leverage LLVM niceties via LDC's XRay support (https://github.com/ldc-developers/ldc/pull/2465, https://llvm.org/docs/XRay.html).