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)
0 commit comments