------------------------------------------------------------------- Tue Apr 12 11:47:22 CEST 2022 - Chris Josten - Update to 1.29.0: * Frontend, druntime and Phobos are at version 2.099.1 * Support for LLVM 13 and LLVM 14 * New @hidden UDA (as counterpart of export). * Support 'raw mangles' via leading \1 in pragma(mangle) strings, e.g., to access magic linker symbols on Mac. * New @noSanitize UDA to selectively disable sanitizer instrumentation of functions. * WebAssembly: Larger default stack size (1 MB) and protection against stack overflow overwriting global memory. * LDC doesn't default to the ld.gold linker anymore. The combination of LLVM 13+ and older gold linkers can apparently cause problems. We recommend using LLD, e.g., via -linker=lld or by setting your default /usr/bin/ld symlink; it's significantly faster too. * -linkonce-templates is less aggressive by default now and IMHO production-ready. * When linking manually (not via LDC) against shared druntime, it is now required to link the bundled lib/ldc_rt.dso.o[bj] object file into each binary. It replaces the previously Windows-specific dso_windows.obj. * Basic compiler support for Newlib targets, i.e., triples like arm-none-newlibeabi. * dcompute: Add support for OpenCL image I/O. * Revamped and improved -ftime-trace implementation for compiler profiling/tracing, now excluding LLVM-internal traces, adding frontend memory tracing, source file location infos etc * Implement core.atomic.pause() for some architectures. * Bug fixes: * Linux: Make LTO work with LLD. * Capture NRVO variable by ref for stack closures. * -ftime-trace: JSON-escape filenames. * RISC-V: Use 128-bit quadruple real. * Linux x86/x64: Fix TLS range with static druntime and bfd/lld linkers. * Support rdtscp in DMD-style inline assembly. * Fix dynamic casts across binary boundaries (DLLs etc.). * Don't silently ignore invalid external tool specifications. * LLVM v11.1: Add missing PGO ldc-profdata tool. * ICE for 64-bit targets with 32-bit pointer size. * Breaking ABI changes: * extern(D): formal parameters of non-variadic functions aren't reversed anymore, in line with the spec. ------------------------------------------------------------------- Mon May 17 13:49:15 UTC 2021 - Ferdinand Thiessen - Update to 1.26.0: * Frontend, druntime and Phobos are at version 2.096.1+ incl. new ldmd2 command-line option -gdwarf= * Supports LLVM 6.0 - 12.0 * LDC invocations can now be nicely profiled via --ftime-trace. * Struct TypeInfos are emitted into referencing object files only, and special TypeInfo member functions into the owning object file only. * Bug fixes: * TypeInfo for interface gives invalid string for name. * dcompute: Don’t reject CUDA versions 7.x - 8.0.0. * Don’t enforce the frame pointer for functions with GCC-style inline asm. * Fix some cases of insufficient alignment for arguments and parameters. * Fix a few issues with LLVM 12. * Add source location information for TypeInfo diagnostics with -betterC. * Keep init symbols of built-in TypeInfo classes mutable just like any other TypeInfo, so that e.g. synchronized() can be used on the implicit monitor. * Predefine version FreeStanding when targeting bare-metal. * druntime: Define rt.aaA.AA as naked pointer, no struct wrapper * Misc. fixes and improvements for the CMake scripts, incl. new defaults for LDC_INSTALL_{LTOPLUGIN,LLVM_RUNTIME_LIBS} * -cleanup-obj: Put object files into unique temporary directory by default. * druntime: Add missing core.atomic.atomicFetch{Add,Sub}. * Fix regression wrt. non-deleted temporary -run executable. * Breaking ABI changes: * extern(D): Pass non-PODs by ref to temporary. * -linkonce-templates comes with a new experimental template emission scheme and is now suited for projects consisting of multiple object files too. - 1.13+ is now required for 1.26+ on 32bit ------------------------------------------------------------------- Mon Dec 28 18:33:03 UTC 2020 - Matthias Eliasson - Update to 1.24.0: Big news * Frontend, druntime and Phobos are at version 2.094.1+, incl. new command-line options -cov=ctfe, -vtemplates=list-instances and -HC= . (#3560, #3582, #3588, #3593) * Support for LLVM 11. The prebuilt packages use v11.0.0; x86 packages newly include the LLVM backend for AMD GPUs. (#3546, #3586) * Experimental support for macOS on 64-bit ARM, thanks Guillaume! All druntime/Phobos unit tests pass. The macOS package includes prebuilt druntime/Phobos; adapt the SDK path in etc/ldc2.conf and then use -mtriple=arm64-apple-macos to cross-compile. If you know how to work around the countless linker warnings, please let us know. (dlang/druntime#3226, #3583) Platform support * Supports LLVM 6.0 - 11.0. Bug fixes * Fix potentially wrong context pointers when calling delegate literals. (#3553, #3554) * Fix alignment issue when casting vector rvalue to static array. (c8889a9) * Make sure lambdas in pragma(inline, true) functions are emitted into each referencing compilation unit. (#3570) * Fix -Xcc=-Wl,... by dropping support for comma-separated list of cc options. (c61b135) * Fix ThreadSanitizer support by not detaching main thread upon program termination. (#3572) * Traverse full chain of nested aggregates when resolving a nested variable. (#3556, #3558) Internals * CI: Linux AArch64 is now also tested by a Travis job, because Shippable has sadly become unreliable. (#3469) * Building LDC with an LDC host compiler might be somewhat faster now (requires -DLDC_LINK_MANUALLY=OFF in the CMake command-line on non-Windows hosts). (#3575) Known issues * When building LDC, old LDC 0.17.*/ltsmaster host compilers miscompile LDC ≥ 1.21, leading to potential segfaults of the built LDC. Ltsmaster can still be used to bootstrap a first compiler and then let that compiler compile itself. (#3354) * Buggy older ld.bfd linker versions may wrongly strip out required symbols, e.g., ModuleInfos (so that e.g. no module ctors/dtors are run). LDC defaults to ld.gold on Linux. * LDC does not zero the padding area of a real variable. This may lead to wrong results if the padding area is also considered. See #770. Does not apply to real members inside structs etc. ------------------------------------------------------------------- Wed Nov 25 15:09:09 UTC 2020 - Guillaume GARDET - Fix aarch64 build: Drop '-mbranch-protection=standard' option as llvm7 does not support it ------------------------------------------------------------------- Thu Oct 1 09:04:59 UTC 2020 - Guillaume GARDET - Update to 1.23.0: Bug news * Frontend, druntime and Phobos are at version 2.093.1+, incl. new command-line option -vtemplates. (#3476, #3538, #3541) * New -platformlib CLI option to override the default linked-with platform libraries, e.g., when targeting bare-metal. (#3374, #3475) Platform support * Supports LLVM 6.0 - 10.0. Bug fixes * Fix regression since v1.22: shared druntime potentially overriding libstdc++ symbols and breaking exceptions in C++ libraries. (#3530, #3537) * Fix naked DMD-style asm emission for non-Mac x86 Darwin targets (e.g., iOS simulators). (#3478) * -betterC: Don't use unsupported EH for handling clean-ups. (#3479, #3482) * dcompute: Fix wrong address space loads and stores. Thx Rob! (#3428) * Fix ICE wrt. missing IR declarations for some forward-declared functions. (#3496, #3503) * Fix ICE wrt. inline IR and empty parameter types tuple. (#3509) * Fix PGO issues. (#3375, #3511, #3512, #3524) * Improve support for LLVM's ThreadSanitizer. (#3522) * Fix linker cmdline length limitation via response files. (#3535, #3536) Internals * Compiler performance wrt. string literals emission has been improved. Thx @looked-at-me! (#3490, #3492) * Link libstdc++ statically for libldc-jit.so of prebuilt Linux packages, to increase portability. (#3473, #3474) * Set up Visual D when using the Visual Studio CMake generator, making LDC compiler development on Windows a smooth out-of-the-box experience. (#3494) Known issues * When building LDC, old LDC 0.17.*/ltsmaster host compilers miscompile LDC ≥ 1.21, leading to potential segfaults of the built LDC. Ltsmaster can still be used to bootstrap a first compiler and then let that compiler compile itself. (#3354) * Buggy older ld.bfd linker versions may wrongly strip out required symbols, e.g., ModuleInfos (so that e.g. no module ctors/dtors are run). LDC defaults to ld.gold on Linux. * LDC does not zero the padding area of a real variable. This may lead to wrong results if the padding area is also considered. See #770. Does not apply to real members inside structs etc. ------------------------------------------------------------------- Sun Aug 9 21:57:52 UTC 2020 - Matthias Eliasson - Update to 1.22.0: Big news * Frontend, druntime and Phobos are at version 2.092.1+. (#3413, #3416, #3429, #3434, #3452, #3467) (new) * AArch64: All known ABI issues have been fixed. C(++) interop should now be on par with x86_64, and variadics usable with core.{vararg,stdc.stdarg}. (#3421) * Windows hosts: DMD's Visual C++ toolchain detection has been adopted. As that's orders of magnitude faster than the previous method involving the MS batch file, auto-detection has been enabled by default, so if you have a non-ancient Visual C++ installation, it will now be used automatically for linking. The environment setup has been reduced to the bare minimum (LIB and PATH). (#3415) * FreeBSD x64: CI with CirrusCI is now fully green and includes automated prebuilt package generation. The package depends on the llvm ports package and should currently work on FreeBSD 11-13. (#3453, #3464) (new) * Link-time overridable @weak functions are now emulated for Windows targets and work properly for ELF platforms. For ELF, LDC doesn't emit any COMDATs anymore. (#3424) * New ldc.gccbuiltins_{amdgcn,nvvm} for AMD GCN and NVIDIA PTX targets. (#3411) * druntime: Significant speed-up for core.math.ldexp. (#3440, #3446) Platform support * Supports LLVM 3.9 - 10.0. Bug fixes * Cross-module inlining (incl. pragma(inline, true)): Enable emission into multiple object files. This may have a significant impact on performance (incl. druntime/Phobos) when not using LTO. (#3126, #3442) * Android: Fix TLS initialization regression (introduced in v1.21) and potential alignment issues. Unfortunately, the ld.bfd linker is required for our custom TLS emulation scheme, unless you're willing to use a custom linker script. So -linker=bfd is the new default for Android targets. (#3462) (new) * Casting (static and dynamic) arrays to vectors now loads the data instead of splatting the first element. (#3418, #3419) * Fix return statements potentially accessing memory from destructed temporaries. (#3426) * Add proper support for -checkaction=halt. (#3430, #3431) * druntime: Include core.stdcpp.* modules. (#3103, #3158) * GCC-style asm: Add support for indirect input operands ("m"). (#3438) * FreeBSD: Fix backtraces for optimized code by switching to external libexecinfo. (#3108, #3453) * FreeBSD: Fix C math related issues (incl. CTFE math issues) by bringing core.stdc.{math,tgmath} up to speed. (dlang/druntime#3119) * Fix ICE for captured parameters not passed on the LLVM level. (#3441) * Convenience fixes for RISC-V and other exotic targets. (#3457, #3460) (new) Internals * When printing compile-time reals to hex strings (mangling, .di headers), LDC now uses LLVM instead of the host C runtime, for proper and consistent results. (#3410) * One limitation for exotic hosts wrt. C long double precision has been lifted. (#3414) * For AVR targets, the compiler now predefines AVR and emits all TLS globals as regular __gshared ones. (#3420) * WebAssembly: New memory grow/size intrinsics. (ldc-developers/druntime#187) (new) * New -fno-plt option to avoid PLT external calls. (#3443) * iOS/arm64 CI, running the debug druntime & Phobos unittests on an iPhone 6S. Thx Jacob for this tedious work! (#3379, #3450) Known issues * When building LDC, old LDC 0.17.*/ltsmaster host compilers miscompile LDC ≥ 1.21, leading to potential segfaults of the built LDC. Ltsmaster can still be used to bootstrap a first compiler and then let that compiler compile itself. (#3354) * Buggy older ld.bfd linker versions may wrongly strip out required symbols, e.g., ModuleInfos (so that e.g. no module ctors/dtors are run). LDC defaults to ld.gold on Linux. * LDC does not zero the padding area of a real variable. This may lead to wrong results if the padding area is also considered. See #770. Does not apply to real members inside structs etc. ------------------------------------------------------------------- Mon Jun 1 09:09:31 UTC 2020 - Max Lin - Switch to llvm7 explicity on Leap 15.2 as the default llvm in Leap 15.2 isn't llvm7 ------------------------------------------------------------------- Sun May 24 22:00:42 UTC 2020 - Matthias Eliasson - Remove groups from specfile since they are not used anymore - Add ldc-jit lib and devel packages - Update to 1.21.0: * Big news - Frontend, druntime and Phobos are at version 2.091.1+, incl. new CLI switches -verror-style and -HC, -HCd, -HCf. (#3333, #3399) - LLVM for prebuilt packages upgraded to v10.0.0. Android NDK version bumped to r21. (#3307, #3387, #3398) - Initial support for GCC/GDC-style inline assembly syntax, besides DMD-style inline asm and LDC-specific __asm, enabling to write inline asm that is portable across GDC/LDC and corresponds to the GCC syntax in C. See ldc-developers/druntime#171 for examples wrt. how to transition from __asm to similar GCC-style asm. (#3304) - Inline assembly diagnostics have been extended by the D source location. (#3339) * Platform support - Supports LLVM 3.9 - 10.0. * Bug fixes - Fixed tail calls in thunks, affecting AArch64 (the debug libraries now work) and possibly other architectures. (#3329, #3332) - Windows: Do not emit any column infos for CodeView by default (like clang) & add -gcolumn-info. (#3102, #3388) - Windows: Do not leak MSVC-environment-setup into -run child processes. A new LDC_VSDIR_FORCE environment variable can be used to enforce MSVC toolchain setup. (#3340, #3341) - Windows: Fix memory leak when throwing exceptions in threads. (#3369, ldc-developers/druntime#181) - Try to use memcmp for (in)equality of non-mutable static arrays and mutable slices. (#3400, #3401) - ldc.gccbuiltins_*: Lift 256-bit vector limit, adding 174 AVX512 builtins for x86; 512-bit vector aliases have been added to core.simd. (#3405, #3406) * Internals - core.bitop.{bts,btr,btc} are now CTFE-able. (ldc-developers/druntime#182) - Do not fallback to host for critical section size of unknown targets. (#3389) - Linux: Possibility to avoid passing -fuse-ld to cc via -linker=. (#3382) - WebAssembly: Switch from legacy linked-list ModuleInfo registry to __minfo section. (#3348) - Windows: Bundled libcurl upgraded to v7.69.1, incl. the option to link it statically. (#3378) - Windows: Switch to wide wmain C entry point in druntime. (#3351) - druntime unittests are now compiled with -checkaction=context. * Known issues - NEW: When building LDC, old LDC 0.17.*/ltsmaster host compilers miscompile LDC ≥ 1.21, leading to potential segfaults of the built LDC. Ltsmaster can still be used to bootstrap a first compiler and then let that compiler compile itself. (#3354) - Buggy older ld.bfd linker versions may wrongly strip out required symbols, e.g., ModuleInfos (so that e.g. no module ctors/dtors are run). LDC defaults to ld.gold on Linux. - LDC does not zero the padding area of a real variable. This may lead to wrong results if the padding area is also considered. See #770. Does not apply to real members inside structs etc. ------------------------------------------------------------------- Tue Jul 9 14:48:29 UTC 2019 - Guillaume GARDET - Switch to llvm7 for Tumbleweed as llvm8 is not able to build bootstrap version 0.17.6 See https://github.com/ldc-developers/ldc/issues/3109 - Disable -flto=4 option as llvm does not recognize this option ------------------------------------------------------------------- Tue Jul 9 12:43:24 UTC 2019 - Guillaume GARDET - Update to 1.16.0: * Big news - Frontend, druntime and Phobos are at version 2.086.1, incl. a DIP1008 fix. (#3062, #3076, #3091) (new) - Non-Windows x86: Faster real versions of std.math.{tan,expi}. (#2855) - dcompute: New __traits(getTargetInfo, "dcomputeTargets"). (#3090) (new) * Platform support - Supports LLVM 3.9 - 8.0 (incl. 7.1). * Bug fixes - Make pragma(LDC_no_typeinfo) actually elide TypeInfo emission for structs, classes and interfaces. (#3068) - Windows: Fix DLL entry point in MinGW-based libs. (ldc-developers/mingw-w64-libs@8d930c1) - WebAssembly: Use --export-dynamic when linking with LLD 8+. (#3023, #3072) - Fix corrupt this in functions nested in in/out contracts. (45460a1) - Fix identity comparisons of integral vectors. (a44c78f) - Improved handling of unsupported vector ops. (a44c78f) - uClibc: Fix C assert calls. (#3078, #3082) (new) - Improved error message on global variable collision. (#3080, #3081) (new) * Known issues - Buggy older ld.bfd linker versions may wrongly strip out required symbols, e.g., ModuleInfos (so that e.g. no module ctors/dtors are run). LDC defaults to ld.gold on Linux. - LDC does not zero the padding area of a real variable. This may lead to wrong results if the padding area is also considered. See #770. Does not apply to real members inside structs etc. ------------------------------------------------------------------- Sat Apr 20 21:04:20 UTC 2019 - Matthias Eliasson - Update to 1.15.0 * Big news - Frontend, druntime and Phobos are at version 2.085.1, incl. new command-line options -preview, -revert, -checkaction=context, -verrors-context and -extern-std. (#3003, #3039, #3053) (new) + The Objective-C improvements from DMD 2.085 are not implemented (#3007) - Support for LLVM 8.0. The prebuilt packages have been upgraded to LLVM 8.0.0 and include the Khronos SPIRV-LLVM-Translator, so that dcompute can now emit OpenCL too. (#3005) - Compiler memory requirements can now be reduced via the new -lowmem switch, which enables the garbage collector for the front-end and sacrifices compile times for less required memory. In some cases, the overall max process memory can be reduced by more than 60%; see #2916 (comment) for some numbers. (#2916) + Note for package maintainers: this feature requires a recent D host compiler (most notably, it doesn't work with ltsmaster), ideally LDC 1.15 itself due to important GC memory overhead improvements in 2.085 druntime. - Support for generic @llvmAttr("name") parameter UDAs, incl. new @restrict with C-like semantics. (#3043) (new) - macOS: 32-bit support was dropped in the sense of not being CI-tested anymore and the prebuilt macOS package now containing x86_64 libraries only. MACOSX_DEPLOYMENT_TARGET for the prebuilt package has been raised from 10.8 to 10.9. - Prebuilt packages don't depend on libtinfo and libedit anymore. (#1827, #3019) - x86: SSSE3 isn't required for the prebuilt packages and generated optimized binaries anymore. (#3045) (new) * Platform support - Supports LLVM 3.9 - 8.0. * Bug fixes - Implicit cross-module-inlining of functions annotated with pragma(inline, true) without explicit -enable-cross-module-inlining has been restored. (#2552, #3014) - Propagate well-known length of newly allocated dynamic arrays for better optimizability. (#3041, #3042) (new) - JIT: Support implicit __chkstk calls for Windows targets, e.g., for large stack allocations. (#3051) (new) - Update so_version to 85 ------------------------------------------------------------------- Fri Jan 25 10:14:01 UTC 2019 - Guillaume GARDET - Requires binutils.gold as ldc uses ld.gold by default since version 1.13.0 ------------------------------------------------------------------- Mon Jan 21 09:31:49 UTC 2019 - Guillaume GARDET - Enable bootstrap again for all flavours, otherwise ldc will require old .so file instead of new one - Use ldc 1.12.0 as intermediate build on 32-bit, due to upstream bug: * https://github.com/ldc-developers/ldc/issues/2947 ------------------------------------------------------------------- Thu Jan 10 14:00:36 UTC 2019 - Guillaume GARDET - Remove wrong requires to 'ldc-utils' as there is no such package ------------------------------------------------------------------- Tue Dec 18 13:19:42 UTC 2018 - Guillaume GARDET - Disable bootstrap in Tumbleweed and Leap 15+ as it is bootstrapped already and to workaround https://github.com/ldc-developers/ldc/issues/2947 ------------------------------------------------------------------- Tue Dec 18 13:01:16 UTC 2018 - Guillaume GARDET - Add bash-completion sub-package ------------------------------------------------------------------- Tue Dec 18 12:11:21 UTC 2018 - Guillaume GARDET - Update to 1.13.0: * Big news - Frontend, druntime and Phobos are at version 2.083.1. (#2878, #2893, #2920, #2933) (new) - The Windows packages are now fully self-sufficient, i.e., a Visual Studio/C++ Build Tools installation isn't required anymore, as we now ship with MinGW-w64-based libraries, similar to DMD. Check out the included README.txt for all relevant details. (dlang/installer#346, #2886, Wiki: Cross-compiling with LDC) - Debug info improvements: - For GDB: printing global and imported symbols, non-member and member function calls. (#2826) - For Visual Studio and mago: names, by-value params, nested variables. (#2895, #2908, #2909, #2912) - Associative arrays now showing up properly (at least with mago), not as opaque void* anymore. (#2869) - -gc now translates D names to C++ ones, e.g., to use the regular Visual Studio debugger (bypassing mago) and as preparation for VS Code debugging with Microsoft's C/C++ plug-in (screenshots). Thanks to Oleksandr for this contribution and the AA fix! (#2869) - New command-line option -fvisibility=hidden to hide functions/globals not marked as export (for non-Windows targets), primarily to reduce the size of shared libraries. Thanks to Andrey for stepping up! (#2894, #2923) - Dropped support for LLVM 3.7 and 3.8. (#2872) - LLVM for prebuilt packages upgraded to v7.0.1. (new) - Linux: now defaulting to ld.gold linker in general, not just with -flto=thin, as buggy older ld.bfd versions may wrongly strip out required symbols (change with -linker). (#2870) - Improved support for Android/x86[_64], musl libc and FreeBSD/AArch64. (#2917, ldc-developers/druntime#146) (new) - LDC-specific druntime: ldc.simd.inlineIR moved/renamed to ldc.llvmasm.__ir (with deprecated legacy alias). (#2931) (new) - New CMake option COMPILE_D_MODULES_SEPARATELY builds D files in the DDMD frontend separately to reduce the time required to build LDC with many CPU cores and/or for iterative development. (#2914) * Platform support - Supports LLVM 3.9 - 7.0. - Alpine linux/x64: built against Musl libc to support Docker images based on the Alpine distro, requires the llvm5-libs, musl-dev, binutils-gold and gcc packages to build and link D apps and the tzdata and curl-dev packages for certain stdlib modules. * Bug fixes - 32-bit Android/ARM regression introduced in v1.12. (#2892) - Non-Windows x86_64 ABI fixes wrt. what's passed in registers, relevant for C[++] interop. (#2864) - Some issues with beta1's newly bundled Windows libraries. (#2900, #2903) - Alignment of scope allocated class instances. (#2919) - Beta2's -fvisibility=hidden causing lots of linker errors. (#2922, #2923) (new) - Update so_version to 83 - Disable ppc64 builds (boo#1113531) ------------------------------------------------------------------- Wed Oct 17 09:54:24 UTC 2018 - Guillaume GARDET - Update to 1.12.0: * Big news - Frontend, druntime and Phobos are at version 2.082.1. (#2818, #2837, #2858, #2873) (new) Significant performance improvements for some transcendental std.math functions in single and double precision, at least for x86. (dlang/phobos#6272 (comment)) - Support for LLVM 7, which is used for the prebuilt packages. Due to an LLVM 7.0.0 regression, the prebuilt x86[_64] LDC binaries require a CPU with SSSE3, and so will your optimized binaries (unless compiling with -mattr=-ssse3). (#2850) - JIT compilation: new ldc.dynamic_compile.bind function with interface similar to C++ std::bind, allowing to generate efficient specialized versions of functions (much like Easy::jit for C++). (#2726) - LTO now working for Win64 too; the prebuilt package includes the required external LLD linker and the optional LTO default libs. Enable as usual with -flto= [-defaultlib=druntime-ldc-lto,phobos2-ldc-lto]. (#2774) - Config file: new lib-dirs array for directories to be searched for libraries, incl. LLVM compiler-rt libraries. (#2790) * Platform support - Supports LLVM 3.7 - 7.0. - Windows: Supports Visual Studio/C++ Build Tools 2015 and 2017. - Alpine linux/x64: built against Musl libc to support Docker images based on the Alpine distro, requires the llvm5-libs, musl-dev, and gcc packages to build and link D apps and the tzdata and libcurl packages for certain stdlib modules. - Android/ARM: This release slightly changes the way emulated TLS is interfaced, but is missing a patch for 32-bit ARM. See the wiki for instructions on patching that file manually before cross-compiling the runtime libraries for 32-bit Android/ARM. * Bug fixes - Fix IR-based PGO on Windows (requires our LLVM fork). (#2539) - Fix C++ class construction with D new on Posix. (#2801) - Android: No more text relocations in Phobos zlib, required for API level 23+. (#2822, #2835) - Declare extern const/immutable globals as IR constants. (#2849, #2852) - Fix issue when emitting both object and textual assembly files at once (-output-o -output-s). (#2847) - Support address of struct member as key/value in AA literal. (#2859, #2860) - Fix ICE when computing addresses relative to functions/labels. (#2865, #2867) (new) - beta2 regression wrt. cross-compiling to Android. (#2863) (new) - Fix so_version to 82 ------------------------------------------------------------------- Mon Aug 27 06:56:16 UTC 2018 - guillaume.gardet@opensuse.org - Fix so_version to 81 ------------------------------------------------------------------- Fri Aug 24 10:24:47 UTC 2018 - guillaume@opensuse.org - Update to 1.11.0: * Big news: - Frontend, druntime and Phobos are at version 2.081.2. (#2752, #2772, #2776, #2791, #2815) (new) - Add some support for classes without TypeInfos, for -betterC and/or a minimal (d)runtime. (#2765) - LLVM for prebuilt packages upgraded to v6.0.1. The x86_64 packages feature some more LLVM targets for cross-compilation (experiments): MIPS, MSP430, RISC-V and WebAssembly. (#2760) - Rudimentary support for compiling & linking directly to WebAssembly. See the dedicated Wiki page for how to get started. (#2766, #2779, #2785) - AArch64 (64-bit ARM) now mostly working on Linux/glibc and Android. Current ltsmaster is able to bootstrap v1.11, which can also bootstrap itself; most tests pass. (Preliminary) CI has been set up. (#2802, #2817, #2813) (new) - LDC on Windows now uses 80-bit compile-time reals. This allows for seamless cross-compilation to other x86(_64) targets, e.g., without real.min underflowing to 0 and real.max overflowing to infinity. (#2752) - New @naked UDA in ldc.attributes & enhanced functionality for @llvmAttr(""). (#2773) * Platform support: - Supports LLVM 3.7 - 6.0. - Windows: Supports Visual Studio/C++ Build Tools 2015 and 2017. - Alpine linux/x64: built against Musl libc to support Docker images based on the Alpine distro, requires the llvm5-libs, musl-dev, and gcc packages to build and link D apps and the tzdata and libcurl packages for certain stdlib modules. * Bug fixes: - extern(C++) on Posix: Pass non-PODs indirectly by value. (#2728) - extern(C++) on Windows/MSVC: Methods return all structs via hidden sret pointer. (#2720, #1935) - Make GC2Stack IR optimization pass work as intended. (#2750) - Work around inline assembly regression with LLVM 6 on Win32. The prebuilt Win32 package is now using LLVM 6.0.1 too. (#2629, #2770) - Fix overzealous check for multiple main() functions. (#2778) (new) - Fix corrupt prefix in integrated LLD's console output. (#2781) (new) - No context ptr for nested non-extern(D) functions. (#2808, #2809) (new) * Known issues: - LDC does not zero the padding area of a real variable. This may lead to wrong results if the padding area is also considered. See #770. Does not apply to real members inside structs etc. - Update bootstrap version to 0.17.6: * Added support for LLVM 6.0 and 7.0. (#2600, #2825) * Backported AArch64 fixes from master; most tests passing on Linux/glibc and Android * Fix generation of debug info. (#2594) * Added support for bootstrapping on DragonFly BSD * Fixed missing definition in std.datetime on Solaris * Fixed std.datetime unittest failure. (ldc-developers/phobos#59) * Fixed tests for PowerPC. (#2634, #2635) * Improvements for MIPS. * Make core.stdc.stdarg.va_* functions nothrow to enable compiling the 2.082 frontend. (#2821) * CI updates. - Remove upstreamed patches: * ldc-0.17.5-add_missing_include.patch * ldc-0.17.5-add_support_to_LLVM6.patch * ldc-0.17.5-backport_pr_2315.patch * ldc-0.17.5-default-to-pic.patch - Enable aarch64 since it can be boostrapped with ldc 0.17.6 - Fix x86_64 build by adding '-fPIC' to C_FLAGS of bootstrap ------------------------------------------------------------------- Mon Jul 30 09:55:27 UTC 2018 - matthias.eliasson@gmail.com - Remove _sysconfdir from phobos-devel filelist and add etc since its a d package name. spec-cleaner was to eager to clean. ------------------------------------------------------------------- Sat Jul 28 14:03:46 UTC 2018 - matthias.eliasson@gmail.com - Update so_ver to 80 for libdruntime-ldc and libphobos2-ldc to match version in 1.10.0 release of ldc. - Run spec-cleaner ------------------------------------------------------------------- Tue Jul 3 06:40:16 UTC 2018 - guillaume.gardet@opensuse.org - Update to 1.10.0: * Big news: - Frontend, druntime and Phobos are at version 2.080.1. (#2665, #2719, #2737) (new) - No support for Objective-C class/static methods yet. (#2670) - Breaking Win64 extern(D) ABI change: Pass vectors directly in registers, analogous to the MS vector calling convention. (#2714) - Config file: For cross-compilation, support additional sections named as regex for specific target triples, e.g., "86(_64)?-.*-linux": { … };; see the comment in etc/ldc2.conf. (#2718) * Platform support: - Supports LLVM 3.7 - 6.0. - Windows: Supports Visual Studio/C++ Build Tools 2015 and 2017. - Alpine linux/x64: built against Musl libc to support Docker images based on the Alpine distro, requires the llvm5-libs, musl-dev, and gcc packages to run and link D apps and the tzdata and libcurl packages for certain stdlib modules. * Bug fixes ------------------------------------------------------------------- Wed Jun 6 11:33:49 UTC 2018 - guillaume.gardet@opensuse.org - Add tests, disabled by default (since we are missing python2-lit) ------------------------------------------------------------------- Wed Jun 6 08:15:36 UTC 2018 - guillaume.gardet@opensuse.org - Add patch to fix ARM builds: * ldc-1.9.0-fix_arm_build.patch ------------------------------------------------------------------- Tue Jun 5 16:08:35 UTC 2018 - guillaume.gardet@opensuse.org - Update to 1.9.0 and use 0.17.5 to bootstrap ------------------------------------------------------------------- Fri Jun 1 12:11:13 UTC 2018 - guillaume.gardet@opensuse.org - Add patch to fix rpmlint error: * ldc-0.17.5-add_missing_include.patch - Add patches to add LLVM6 support: * ldc-0.17.5-add_support_to_LLVM6.patch * ldc-0.17.5-backport_pr_2315.patch - Add patch to be able to use ldc: * ldc-0.17.5-default-to-pic.patch ------------------------------------------------------------------- Thu Mar 22 10:05:09 UTC 2018 - guillaume.gardet@opensuse.org - update to version 0.17.5: * Added LLVM 5.0 support. * druntime: fixes for Android and addition of core.math.yl2x[p1]() for x86(_64) targets. * dmd-testsuite: backported runnable/cppa.d fix for GCC > 5. * CI updates. ------------------------------------------------------------------- Fri Jun 9 08:54:07 UTC 2017 - jengelh@inai.de - Rectify RPM groups ------------------------------------------------------------------- Mon May 29 19:50:03 UTC 2017 - mailaender@opensuse.org - update to version 0.17.4 ------------------------------------------------------------------- Fri May 26 19:56:33 UTC 2017 - mailaender@opensuse.org - update to version 0.17.3 - https://en.opensuse.org/SourceUrls - drop workaround-buggy-llvm-config.patch ------------------------------------------------------------------- Mon Feb 15 15:47:39 UTC 2016 - schuetzm@gmx.net - update to 0.17.0 - based on DMD 2.068.2 - more information here: https://github.com/ldc-developers/ldc/releases/tag/v0.17.0 ------------------------------------------------------------------- Sun Dec 6 20:08:34 UTC 2015 - rpm@fthiessen.de - Build runtime and phobos libraries as shared libraries, therefore refactored spec file: * Basic cleanup * Split lib* packages, see openSUSE shared library policy * Added ldc-rpmlintrc for false positiv. ------------------------------------------------------------------- Wed Oct 28 11:02:24 UTC 2015 - schuetzm@gmx.net - update to 0.16.1 - this is a bugfix only release ------------------------------------------------------------------- Sat Oct 24 11:29:29 UTC 2015 - schuetzm@gmx.net - update 0.16.0 - based on DMD 2.067.1 ------------------------------------------------------------------- Sun Feb 22 16:15:02 UTC 2015 - schuetzm@gmx.net - initial submission based on Duncan Mac-Vicar's work