Skip to content

Commit 72535b1

Browse files
authored
Prepare for v1.25.0 final: Bump dlang-tools & dub and add changelog (#3674)
1 parent 3a5ccf6 commit 72535b1

File tree

3 files changed

+45
-2
lines changed

3 files changed

+45
-2
lines changed

CHANGELOG.md

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,46 @@
1+
# LDC 1.25.0 (2021-02-21)
2+
3+
#### Big news
4+
- Frontend, druntime and Phobos are at version [2.095.1](https://dlang.org/changelog/2.095.0.html), incl. new command-line option `-makedeps`. (#3620, #3658, #3668)
5+
- Support for **LLVM 12** and LLVM 11.1. (#3663, ldc-developers/druntime#195)
6+
- LLVM for prebuilt packages bumped to v11.0.1. (#3639)
7+
- New prebuilt package for **native macOS/arm64** ('Apple silicon'). (#3666)
8+
- LDC invocations can now be nicely profiled via `--ftime-trace`. (#3624)
9+
- Struct TypeInfos are emitted into *referencing* object files only, and special TypeInfo member functions into the owning object file only. (#3491)
10+
- Windows:
11+
- New CI-automated [Windows installer](https://github.com/ldc-developers/ldc/releases/download/v1.25.0/ldc2-1.25.0-windows-multilib.exe) corresponding to the multilib package. (#3601)
12+
- Bundled MinGW-based libs bumped to MinGW-w64 v8.0.0. (#3605)
13+
- Bundled libcurl upgraded to v7.74.0. (#3638)
14+
- Breaking ABI changes:
15+
- `extern(D)`: Pass non-PODs by ref to temporary. (#3612)
16+
- Win64: Pass/return delegates like slices - in (up to) 2 GP registers. (#3609)
17+
- Win64 `extern(D)`: Pass/return Homogeneous Vector Aggregates in SIMD registers. (#3610)
18+
- `-linkonce-templates` comes with a new experimental template emission scheme and is now suited for projects consisting of multiple object files too. It's similar to C++, emitting templated symbols into *each* referencing compilation unit with optimizer-discardable `linkonce_odr` linkage. The consequences are manifold - each object file is self-sufficient wrt. templated symbols, naturally working around any template-culling bugs and also meaning increased opportunity for inlining and less need for LTO.
19+
The probably biggest advantage is that the optimizer can discard unused `linkonce_odr` symbols early instead of optimizing and forwarding to the assembler. So this is especially useful to **decrease compilation times with `-O`** and can at least in some scenarios greatly outweigh the (potentially very much) higher number of symbols defined by the glue layer - on my box, building optimized dub (all-at-once) is 28% faster with `-linkonce-templates`, and building the optimized Phobos unittests (per module) 56% faster.
20+
Libraries compiled with `-linkonce-templates` can generally *not* be linked against dependent code compiled without `-linkonce-templates`; the other way around works. (#3600)
21+
- Emit function/delegate literals as `linkonce_odr`, as they are emitted into each referencing compilation unit too. (#3650)
22+
- Exploit ABI specifics with `-preview=in`. (#3578)
23+
- Musl: Switch to cherry-picked libunwind-based backtrace alternative. (#3641, ldc-developers/druntime#192)
24+
25+
#### Platform support
26+
- Supports LLVM 6.0 - 12.0.
27+
28+
#### Bug fixes
29+
- Fix LTO with `-link-internally`. The prebuilt Windows packages don't bundle an external `lld-link.exe` LLD linker anymore. (#2657, #3604)
30+
- Add source location information for `TypeInfo` diagnostics with `-betterC`. (#3631, #3632)
31+
- 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. (#3599)
32+
- Windows: Fix colliding EH TypeDescriptors for exceptions with the same `TypeInfo_Class` name. (#3501, #3614)
33+
- Predefine version `FreeStanding` when targeting bare-metal. (#3607, #3608)
34+
- druntime: Define `rt.aaA.AA` as naked pointer, no struct wrapper. (#3613)
35+
- Misc. fixes and improvements for the CMake scripts, incl. new defaults for `LDC_INSTALL_{LTOPLUGIN,LLVM_RUNTIME_LIBS}`. (#3647, #3655, #3654, #3673)
36+
- `-cleanup-obj`: Put object files into unique temporary directory by default. (#3643, #3660)
37+
- druntime: Add missing `core.atomic.atomicFetch{Add,Sub}`. (#3646, ldc-developers/druntime#193)
38+
- Fix regression wrt. non-deleted temporary `-run` executable. (#3636)
39+
40+
#### Internals
41+
- Ignore `-enable-cross-module-inlining` if inlining is generally disabled. (#3664)
42+
- Travis CI ported to GitHub Actions (excl. Linux/AArch64). (#3661, #3662)
43+
144
# LDC 1.24.0 (2020-10-24)
245

346
#### Big news

packaging/dlang-tools_version

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
v2.095.0
1+
v2.095.1

packaging/dub_version

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
v1.24.0
1+
v1.24.1

0 commit comments

Comments
 (0)