Upgrade frontend & libs to v2.113#5113
Conversation
Move enum class Edition to globals.h
…value Fix scoping and slice update in Array.reserve
This is a better fix than dlang/dmd#22359 because it is a more direct fix, rather than the rpair test.
For example, structs with mixed named and anonymous bitfields had their bit offset correctly set, but only named fields had their byte offset adjusted, which would incorrectly inform backend targets where in the layout the explicit padding is.
…ted symbol is located at
Check noreturn access for typeid and in condition
Adjust offsets for all nameless fields in anon declaration
…-but-match Improve error message when symbol lookup fails, show where the suggested symbol is located at
…in the build on platforms other than linux selective imports require the requested symbol to be defined, but it is not for mismatched versions
allow including core.sys.linux.net.if_ and core.sys.linux.hdlc.ioctl …
refactor reportSafeError()
ignoring access width is only valid for registers, not for memory
fix dlang/dmd!22381 - out-of-bounds access when masking ushort
… to crash (dlang/dmd!22385)
importC: properly fix dlang/dmd!22153 and dlang/dmd!22365
Break dependency of `dscope` on `doc`
…al types (dlang/dmd!23132)
… "cannot be interpreted at compile time" bad return type for empty keys and values when interpreting. The latter doesn't result in obvious errors because type.nextOf is as expected.
|
On Win64, the first hurdle/regression is pretty wild - the compiler quickly ends up with random garbage alignments (incl. for So any existing LDC miscompiles the new compiler sources on Win64. We can work around this by adding a ctor to the D Edit: Filed #5139. |
|
The next problem on Win64 is that we're hitting #3504 now when compiling Phobos' |
|
On macOS arm64, the single remaining For Linux AArch64, it's the usual annoying x87-centric upstream tests for The other Posix targets are all green. |
…sion with associative array (dlang/dmd!23189) don't evaluate arrExp twice in `arrExp.length++` if non-trivial
…ance in struct .init with -c
A CTFE-evaluated class or struct instance baked into a struct's `.init` needs a
local backing symbol (named "internal", STB_LOCAL) in every object module that
emits the init image. That symbol was cached on the shared AST node
(`cre.value.origin.sym` / `sle.sym`), so when several modules are compiled in one
invocation (`dmd -c a.d b.d`) the symbol created for the first object module leaked
into the later ones, which then emitted only an undefined reference to a local
symbol they never define:
dmd -c a.d b.d
dmd a.o b.o -of=app # undefined reference to `internal'
Track the literals that cache a backing symbol in the current object module and
clear those caches at each object-module boundary (resetCtfeSymbolCache, called
from obj_start, alongside the existing per-object resets), so every object module
re-creates and emits its own self-contained local copy. This matches the
array-literal path (DtBuilder.dtoff) and the separate-compilation behavior, and
keeps intra-module dedup intact. Also fixes the `-lib` variant (dlang/dmd!19439).
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
…ys is handled unflexibly for backward compatibility allow implicit conversion of `const(char[])` to `string` for AA keys, too.
|
We can work around (some/most instances of) #3504 for now by defaulting to new |
Sounds good to me. I have yet to understand why cleanup in case of Errors is suddenly necessary, while it was never guaranteed before (and only happened to work partially). Conflating Exceptions and Errors was a questionable decision anyway. |
|
@ibuclaw: Have you already selected a CLI option name for DMD's |
That's the only remaining blocker. If you have such a device, a diagnosis/fix would be appreciated, as doing that via CI would be a pain. |
No. There's no tests for it, and I'm not sure when it might be prefers behaviour. |
No description provided.