2
2
3
3
$(CHANGELOG_NAV_INJECT)
4
4
5
- $(VERSION Sep 15 , 2021, =================================================,
5
+ $(VERSION Oct 10 , 2021, =================================================,
6
6
7
7
$(CHANGELOG_HEADER_STATISTICS
8
- $(VER) comes with 8 major changes and 135 fixed Bugzilla issues.
8
+ $(VER) comes with 9 major changes and 152 fixed Bugzilla issues.
9
9
A huge thanks goes to the
10
10
$(LINK2 #contributors, 62 contributors)
11
11
who made $(VER) possible.)
@@ -21,6 +21,7 @@ $(LI $(RELATIVE_LINK2 remove_alloc,Class allocators have been removed from the l
21
21
22
22
$(BUGSTITLE_TEXT_HEADER Runtime changes,
23
23
24
+ $(LI $(RELATIVE_LINK2 UniqueTypeInfoNames,TypeInfo names for aggregates are fully qualified and hence unique now))
24
25
$(LI $(RELATIVE_LINK2 forkgc,A concurrent GC for Posix systems))
25
26
$(LI $(RELATIVE_LINK2 improve_posix_imports,Improve POSIX imports))
26
27
@@ -179,6 +180,28 @@ for more information.
179
180
180
181
$(BUGSTITLE_TEXT_BODY Runtime changes,
181
182
183
+ $(LI $(LNAME2 UniqueTypeInfoNames,TypeInfo names for aggregates are fully qualified and hence unique now)
184
+ $(CHANGELOG_SOURCE_FILE druntime, changelog/UniqueTypeInfoNames.dd)
185
+ $(P
186
+ Previously, template arguments weren't fully qualified; they now are,
187
+ implying longer names in that case.
188
+ )
189
+
190
+ $(P
191
+ `TypeInfo_Struct` instances now store the (potentially significantly shorter)
192
+ mangled name only and demangle it lazily on the first `name` or `toString()`
193
+ call (with a per-thread cache). So if you only need a unique string per
194
+ struct TypeInfo, prefer `mangledName` over computed `name` (non-`@nogc` and
195
+ non-`pure`).
196
+ )
197
+
198
+ $(P
199
+ **Related breaking change**: `TypeInfo.toString()` isn't `pure` anymore to
200
+ account for the `TypeInfo_Struct` demangled name cache.
201
+ `TypeInfo_Class.toString()` and others are still `pure`.
202
+ )
203
+ )
204
+
182
205
$(LI $(LNAME2 forkgc,A concurrent GC for Posix systems)
183
206
$(CHANGELOG_SOURCE_FILE druntime, changelog/forkgc.dd)
184
207
$(P
@@ -293,6 +316,7 @@ $(LI $(BUGZILLA 22118): Const union causes false multiple-initialization error i
293
316
$(LI $(BUGZILLA 22121): [REG 2.097][ICE] Segmentation fault in in dmd.dsymbol.ScopeDsymbol.addAccessiblePackage)
294
317
$(LI $(BUGZILLA 22122): [REG 2.097][ICE] Segmentation fault in in dmd.access.hasPackageAccess)
295
318
$(LI $(BUGZILLA 22196): importC: Error: found `const` when expecting `$(RPAREN)`in __attribute__)
319
+ $(LI $(BUGZILLA 22205): catch$(LPAREN)Exception$(RPAREN) not longer working in debug blocks)
296
320
$(LI $(BUGZILLA 22214): Regression 2.097.0: __traits$(LPAREN)compiles$(RPAREN) doesn't notice invalid getMember that yields type)
297
321
$(LI $(BUGZILLA 22224): [REG 2.097.0] compiler segfaults with -profile)
298
322
$(LI $(BUGZILLA 22228): [CTFE] taking address of immutable in frame function causes ICE on Unix platforms)
@@ -366,9 +390,25 @@ $(LI $(BUGZILLA 22160): importC: Error: redeclaring `module test` as `struct tes
366
390
$(LI $(BUGZILLA 22180): .alignof not working for globals)
367
391
$(LI $(BUGZILLA 22182): importC: Error: expression expected, not `$(RPAREN)` when casting pointer with redundant parens.)
368
392
$(LI $(BUGZILLA 22209): NRVO variable detection ignoring `alias this` conversion => segfaults)
393
+ $(LI $(BUGZILLA 22246): importC: C11 does not allow _Alignof $(LPAREN)expression$(RPAREN))
394
+ $(LI $(BUGZILLA 22250): ImportC: Array subscripts do not comply with C standard.)
369
395
$(LI $(BUGZILLA 22252): ImportC: Array, Function parameter types should be converted to pointers)
396
+ $(LI $(BUGZILLA 22253): ImportC expressions inadvertently supporting D properties)
370
397
$(LI $(BUGZILLA 22262): importC: Error: incompatible types for '$(LPAREN)buf$(RPAREN) is $(LPAREN)0$(RPAREN)': 'ubyte*' and 'int')
398
+ $(LI $(BUGZILLA 22263): ImportC: function and variable re-declarations should be allowed)
399
+ $(LI $(BUGZILLA 22264): importC: Error: '=', ';' or ',' expected using K&R function syntax)
371
400
$(LI $(BUGZILLA 22274): importC: [ICE]: 4 identifiers does not match 3 declarations using K&R syntax)
401
+ $(LI $(BUGZILLA 22275): importC: Error: incompatible types for $(LPAREN)dest$(RPAREN) !is $(LPAREN)buf$(RPAREN): char* and char[1])
402
+ $(LI $(BUGZILLA 22286): importC: $(LPAREN)identifier$(RPAREN)$(LPAREN)other_identifier$(RPAREN) incorrectly parsed as a cast-expression)
403
+ $(LI $(BUGZILLA 22294): importC: enums aren’t placed in surrounding namespace.)
404
+ $(LI $(BUGZILLA 22303): ImportC: pragma directives should be ignored)
405
+ $(LI $(BUGZILLA 22304): importC: parsing gnu-style attributes fails if return type is pointer)
406
+ $(LI $(BUGZILLA 22312): importC: redundant typedefs are rejected)
407
+ $(LI $(BUGZILLA 22313): ImportC: account for $(LPAREN) $(RPAREN) when doing lookahead on assignment-expressions)
408
+ $(LI $(BUGZILLA 22314): ImportC: fails to parse gnu attributes on enum members)
409
+ $(LI $(BUGZILLA 22322): ImportC: struct with floating point members causes problems with generated toHash$(LPAREN)$(RPAREN) function)
410
+ $(LI $(BUGZILLA 22326): ImportC: struct with flexible array member is incorrectly handled)
411
+ $(LI $(BUGZILLA 22333): ImportC: fails to parse enumerators with = and gnu attributes)
372
412
)
373
413
$(BUGSTITLE_BUGZILLA DMD Compiler enhancements,
374
414
0 commit comments