Skip to content

Commit 3b473d2

Browse files
committed
Merge remote-tracking branch 'upstream/stable' into merge_stable
2 parents c369f1f + 16d2cf0 commit 3b473d2

File tree

3 files changed

+61
-5
lines changed

3 files changed

+61
-5
lines changed

changelog/2.110.0_pre.dd

Lines changed: 53 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,18 +2,19 @@ Ddoc
22

33
$(CHANGELOG_NAV_INJECT)
44

5-
$(VERSION Aug 01, 2024, =================================================,
5+
$(VERSION Feb 01, 2025, =================================================,
66

77
$(CHANGELOG_HEADER_STATISTICS
8-
$(VER) comes with 4 major changes and 28 fixed Bugzilla issues.
8+
$(VER) comes with 5 major changes and 54 fixed Bugzilla issues.
99
A huge thanks goes to the
10-
$(LINK2 #contributors, 27 contributors)
10+
$(LINK2 #contributors, 34 contributors)
1111
who made $(VER) possible.)
1212

1313
$(BUGSTITLE_TEXT_HEADER Compiler changes,
1414

1515
$(LI $(RELATIVE_LINK2 dmd.copying-to-void-arrays,Copying from `const(void)[]` to `void[]` is disallowed with `-preview=fixImmutableConv`))
1616
$(LI $(RELATIVE_LINK2 dmd.import-exp-hexstring,Import expressions are now treated as hex strings))
17+
$(LI $(RELATIVE_LINK2 dmd.isCOMClass,New trait isCOMClass to detect if a type is a COM class))
1718
$(LI $(RELATIVE_LINK2 dmd.unsafe-boolean-values,`bool` values other than 0 or 1 are not `@safe`))
1819

1920
)
@@ -67,6 +68,15 @@ immutable ubyte[] iconImg = import("icon.png");
6768
---
6869
)
6970

71+
$(LI $(LNAME2 dmd.isCOMClass,New trait isCOMClass to detect if a type is a COM class)
72+
$(CHANGELOG_SOURCE_FILE dmd, changelog/dmd.isCOMClass.dd)
73+
$(P
74+
A COM class inherits from a possibly user defined interface called ``IUnknown``.
75+
To detect this during compilation use the trait ``__traits(isCOMClass, Type)``.
76+
Or for during runtime use the ``TypeInfo_Class`` flag.
77+
)
78+
)
79+
7080
$(LI $(LNAME2 dmd.unsafe-boolean-values,`bool` values other than 0 or 1 are not `@safe`)
7181
$(CHANGELOG_SOURCE_FILE dmd, changelog/dmd.unsafe-boolean-values.dd)
7282
$(P
@@ -122,11 +132,23 @@ project.
122132

123133
$(CHANGELOG_SEP_TEXT_BUGZILLA)
124134

135+
$(BUGSTITLE_BUGZILLA DMD Compiler regression fixes,
136+
137+
$(LI $(BUGZILLA 24431): dmd -vcg-ast crashes printing failed template instantiation)
138+
$(LI $(BUGZILLA 24599): [REG2.103] Wrongly elided TypeInfo emission leading to undefined symbols at link-time)
139+
$(LI $(BUGZILLA 24687): [REG2.110] Cannot cast string-imports to select overload anymore)
140+
$(LI $(BUGZILLA 24699): [REG2.108] No short-circuit evaluation of mixing template bool argument)
141+
$(LI $(BUGZILLA 24812): [REG 2.106] Incorrect highlighting when diagnosing an empty enum declaration since #15664)
142+
$(LI $(BUGZILLA 24882): COM class is allocated using GC not malloc)
143+
)
125144
$(BUGSTITLE_BUGZILLA DMD Compiler bug fixes,
126145

146+
$(LI $(BUGZILLA 10574): "auto ref" fails to match when IFTI succeeds $(LPAREN)strip to level const$(RPAREN))
127147
$(LI $(BUGZILLA 12885): const union wrongly converts implicitly to mutable)
128148
$(LI $(BUGZILLA 17148): Copying from const$(LPAREN)void$(RPAREN)[] to void[] breaks immutable)
149+
$(LI $(BUGZILLA 23722): Lambdas are mangled incorrectly when using multiple compilation units, resulting in incorrect code)
129150
$(LI $(BUGZILLA 23957): Casting to derived extern$(LPAREN)C++$(RPAREN) class is unsafe)
151+
$(LI $(BUGZILLA 24337): Segfault when printing an int[] cast from a string literal)
130152
$(LI $(BUGZILLA 24534): Having a label on a declaration makes it possible to skip it with goto)
131153
$(LI $(BUGZILLA 24558): C asserts segfault on Glibc)
132154
$(LI $(BUGZILLA 24577): Struct with constructor returned from C++ wrong)
@@ -139,6 +161,13 @@ $(LI $(BUGZILLA 24622): Modify const data with void[] concatenation/append)
139161
$(LI $(BUGZILLA 24630): Casting a bool pointer to a mutable pointer type is unsafe)
140162
$(LI $(BUGZILLA 24631): Pointer cast allows changing @system field in @safe code)
141163
$(LI $(BUGZILLA 24634): Parse error initializing array from expression with StructInitializer)
164+
$(LI $(BUGZILLA 24731): IFTI cannot handle integer expressions)
165+
$(LI $(BUGZILLA 24760): ICE on variadic after default argument)
166+
$(LI $(BUGZILLA 24764): ICE when -vcg-ast prints imported invariant)
167+
$(LI $(BUGZILLA 24790): -vcg-ast ICE on lowered assign exp)
168+
$(LI $(BUGZILLA 24819): Optimizer changes result of float calculations on 32-bit)
169+
$(LI $(BUGZILLA 24832): Segfault in hex string)
170+
$(LI $(BUGZILLA 24884): backend generates wrong 32-bit code after inlining math with double[4])
142171
)
143172
$(BUGSTITLE_BUGZILLA DMD Compiler enhancements,
144173

@@ -147,15 +176,28 @@ $(LI $(BUGZILLA 24135): Eponymous template member overloads not shown as call ca
147176
$(LI $(BUGZILLA 24580): ImportC: Asm label after attributes results in syntax error)
148177
$(LI $(BUGZILLA 24598): OpenBSD: adapt compiler tests)
149178
$(LI $(BUGZILLA 24623): Rename version CppRuntime_Clang/Gcc to CppRuntime_libcxx/libstdcxx.)
179+
$(LI $(BUGZILLA 24841): UTF-16 surrogates when used as an escape of a string should hint on error)
180+
)
181+
$(BUGSTITLE_BUGZILLA Phobos regression fixes,
182+
183+
$(LI $(BUGZILLA 23487): std.experimental.logger assigning FileLogger to sharedLog no longer works)
184+
$(LI $(BUGZILLA 24637): [REG 2.104] Cannot insert const/immutable elements into DList)
185+
$(LI $(BUGZILLA 24686): SumType stopped working on LDC 1.37 with unmatched DeducedParameterType template)
150186
)
151187
$(BUGSTITLE_BUGZILLA Phobos bug fixes,
152188

153189
$(LI $(BUGZILLA 24564): std.file.DirEntry throws Exception instead of FileException)
190+
$(LI $(BUGZILLA 24773): Stable sort$(LPAREN)$(RPAREN) invokes the destructor on uninitialized elements)
191+
$(LI $(BUGZILLA 24809): In some cases, stable sort assigns to unininitialized elements)
192+
$(LI $(BUGZILLA 24824): std.process.browse returns on failure in forked child)
193+
$(LI $(BUGZILLA 24827): maxElement does not correctly handle types with opAssign)
154194
)
155195
$(BUGSTITLE_BUGZILLA Druntime bug fixes,
156196

157197
$(LI $(BUGZILLA 24579): stat_t has wrong size for Android armv7a)
158198
$(LI $(BUGZILLA 24626): hasUDA does not handle multiple UDAs of the same symbol)
199+
$(LI $(BUGZILLA 24846): atomicLoad does not work for class arguments with -preview=nosharedaccess)
200+
$(LI $(BUGZILLA 24872): Assigning non-copyable value to array has no effect)
159201
)
160202
$(BUGSTITLE_BUGZILLA Druntime enhancements,
161203

@@ -172,12 +214,13 @@ $(BUGSTITLE_BUGZILLA Installer bug fixes,
172214
$(LI $(BUGZILLA 24600): DMD nightly builds are outdated)
173215
)
174216
)
175-
$(D_CONTRIBUTORS_HEADER 27)
217+
$(D_CONTRIBUTORS_HEADER 34)
176218
$(D_CONTRIBUTORS
177219
$(D_CONTRIBUTOR 0-v-0)
178220
$(D_CONTRIBUTOR 0v0)
179221
$(D_CONTRIBUTOR Alex Muscar)
180222
$(D_CONTRIBUTOR Andrei Horodniceanu)
223+
$(D_CONTRIBUTOR Bastiaan Veelo)
181224
$(D_CONTRIBUTOR Ben Jones)
182225
$(D_CONTRIBUTOR Brad Roberts)
183226
$(D_CONTRIBUTOR Brian Callahan)
@@ -186,9 +229,11 @@ $(D_CONTRIBUTORS
186229
$(D_CONTRIBUTOR Dennis Korpel)
187230
$(D_CONTRIBUTOR Emmanuel Nyarko)
188231
$(D_CONTRIBUTOR Iain Buclaw)
232+
$(D_CONTRIBUTOR Ilya Yanok)
189233
$(D_CONTRIBUTOR Jeremy Baxter)
190234
$(D_CONTRIBUTOR Johan Engelen)
191235
$(D_CONTRIBUTOR Jonathan M Davis)
236+
$(D_CONTRIBUTOR Luis Ferreira)
192237
$(D_CONTRIBUTOR Martin Kinkelin)
193238
$(D_CONTRIBUTOR Mathias Lang)
194239
$(D_CONTRIBUTOR Nicholas Wilson)
@@ -197,7 +242,11 @@ $(D_CONTRIBUTORS
197242
$(D_CONTRIBUTOR Quirin F. Schroll)
198243
$(D_CONTRIBUTOR Quirin Schroll)
199244
$(D_CONTRIBUTOR Razvan Nitu)
245+
$(D_CONTRIBUTOR Richard (Rikki) Andrew Cattermole)
246+
$(D_CONTRIBUTOR RubyTheRoobster)
200247
$(D_CONTRIBUTOR ryuukk)
248+
$(D_CONTRIBUTOR Steven Schveighoffer)
249+
$(D_CONTRIBUTOR Sönke Ludwig)
201250
$(D_CONTRIBUTOR Tim Schendekehl)
202251
$(D_CONTRIBUTOR Walter Bright)
203252
$(D_CONTRIBUTOR zopsicle)

download.dd

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -229,7 +229,7 @@ Macros:
229229
_=BETA=$(COMMENT $0)
230230
BETA=$0
231231
B_DMDV2=2.110.0
232-
B_SUFFIX=beta.1
232+
B_SUFFIX=rc.1
233233

234234
DEB32=$(DLSITE dmd_$(DMDV2)-0_i386.deb)
235235
DEB64=$(DLSITE dmd_$(DMDV2)-0_amd64.deb)

spec/traits.dd

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ $(GNAME TraitsKeyword):
4949
$(RELATIVE_LINK2 isZeroInit, $(D isZeroInit))
5050
$(RELATIVE_LINK2 isModule, $(D isModule))
5151
$(RELATIVE_LINK2 isPackage, $(D isPackage))
52+
$(RELATIVE_LINK2 isCOMClass, $(D isCOMClass))
5253
$(RELATIVE_LINK2 hasMember, $(D hasMember))
5354
$(RELATIVE_LINK2 hasCopyConstructor, $(D hasCopyConstructor))
5455
$(RELATIVE_LINK2 hasMoveConstructor, $(D hasMoveConstructor))
@@ -1314,6 +1315,12 @@ static assert(!__traits(isPackage, std.algorithm.sorting));
13141315
---
13151316
)
13161317

1318+
$(H3 $(GNAME isCOMClass))
1319+
$(P Takes one argument. If that argument is a symbol that refers to a
1320+
$(DDSUBLINK spec/class, ClassDeclaration, class declaration) and is a COM class then $(D true) is retuned,
1321+
otherwise $(D false).
1322+
)
1323+
13171324
$(H3 $(GNAME hasMember))
13181325

13191326
$(P The first argument is a type that has members, or

0 commit comments

Comments
 (0)