|
| 1 | +Ddoc |
| 2 | + |
| 3 | +$(CHANGELOG_NAV_INJECT) |
| 4 | + |
| 5 | +$(VERSION Apr 06, 2022, =================================================, |
| 6 | + |
| 7 | +$(CHANGELOG_HEADER_STATISTICS |
| 8 | +$(VER) comes with 2 major changes and 18 fixed Bugzilla issues. |
| 9 | + A huge thanks goes to the |
| 10 | + $(LINK2 #contributors, 11 contributors) |
| 11 | + who made $(VER) possible.) |
| 12 | + |
| 13 | +$(BUGSTITLE_TEXT_HEADER Compiler changes, |
| 14 | + |
| 15 | +$(LI $(RELATIVE_LINK2 TraitsParametersRevised,Special case for `__traits(parameters)` in foreach loops was removed)) |
| 16 | + |
| 17 | +) |
| 18 | + |
| 19 | +$(BUGSTITLE_TEXT_HEADER Library changes, |
| 20 | + |
| 21 | +$(LI $(RELATIVE_LINK2 log_default_info,std.experimental.logger default level changed to `info` instead of `warning`)) |
| 22 | + |
| 23 | +) |
| 24 | + |
| 25 | +$(CHANGELOG_SEP_HEADER_TEXT_NONEMPTY) |
| 26 | + |
| 27 | +$(CHANGELOG_SEP_HEADER_TEXT) |
| 28 | + |
| 29 | +$(BUGSTITLE_TEXT_BODY Compiler changes, |
| 30 | + |
| 31 | +$(LI $(LNAME2 TraitsParametersRevised,Special case for `__traits(parameters)` in foreach loops was removed) |
| 32 | +$(CHANGELOG_SOURCE_FILE dmd, changelog/TraitsParametersRevised.dd) |
| 33 | +$(P |
| 34 | +Previously, when used inside a `foreach` using an overloaded `opApply`, the trait |
| 35 | +would yield the parameters to the delegate and not the function the foreach appears within. |
| 36 | +) |
| 37 | + |
| 38 | +$(P |
| 39 | +This behaviour is unintuitive, especially when the type of the `foreach` aggregate |
| 40 | +depends on a template parameter. Hence `__traits(parameters)` was changed to consistently |
| 41 | +return the parameters of the lexically enclosing function. |
| 42 | +) |
| 43 | + |
| 44 | +--- |
| 45 | +class Tree { |
| 46 | + int opApply(int delegate(size_t, Tree) dg) { |
| 47 | + if (dg(0, this)) return 1; |
| 48 | + return 0; |
| 49 | + } |
| 50 | +} |
| 51 | +void useOpApply(Tree top, int x) |
| 52 | +{ |
| 53 | + foreach(idx; 0..5) |
| 54 | + { |
| 55 | + static assert(is(typeof(__traits(parameters)) == AliasSeq!(Tree, int))); |
| 56 | + } |
| 57 | + |
| 58 | + foreach(idx, elem; top) |
| 59 | + { |
| 60 | + // Previously: |
| 61 | + // static assert(is(typeof(__traits(parameters)) == AliasSeq!(size_t, Tree))); |
| 62 | + |
| 63 | + // Now: |
| 64 | + static assert(is(typeof(__traits(parameters)) == AliasSeq!(Tree, int))); |
| 65 | + } |
| 66 | +} |
| 67 | +--- |
| 68 | +) |
| 69 | + |
| 70 | + |
| 71 | +) |
| 72 | + |
| 73 | +$(BUGSTITLE_TEXT_BODY Library changes, |
| 74 | + |
| 75 | +$(LI $(LNAME2 log_default_info,std.experimental.logger default level changed to `info` instead of `warning`) |
| 76 | +$(CHANGELOG_SOURCE_FILE phobos, changelog/log_default_info.dd) |
| 77 | +$(P |
| 78 | +In the 2.099.0 release, the default log level $(LINK2 https://dlang.org/changelog/2.099.0.html#logger_default_warning, was changed to warning). |
| 79 | +) |
| 80 | + |
| 81 | +$(P |
| 82 | +However, this was erroneously assumed to include `info` (informational) logs as well. Now it does include `info` log messages. |
| 83 | +) |
| 84 | +) |
| 85 | + |
| 86 | + |
| 87 | +) |
| 88 | + |
| 89 | +$(CHANGELOG_SEP_TEXT_BUGZILLA) |
| 90 | + |
| 91 | +$(BUGSTITLE_BUGZILLA DMD Compiler regression fixes, |
| 92 | + |
| 93 | +$(LI $(BUGZILLA 20015): [REG 2.086] Deprecated -preview, -revert, and -transition options not documented) |
| 94 | +$(LI $(BUGZILLA 20717): Unsilenced bogus "undefined identifier" error from speculative collision) |
| 95 | +$(LI $(BUGZILLA 21285): Delegate covariance broken between 2.092 and 2.094 $(LPAREN)git master$(RPAREN).) |
| 96 | +$(LI $(BUGZILLA 22175): assert fail when struct assignment value is desired and struct size is odd) |
| 97 | +$(LI $(BUGZILLA 22639): Copy constructors with default arguments not getting called) |
| 98 | +$(LI $(BUGZILLA 22858): [REG2.099] Incorrect alignment of void*[0]) |
| 99 | +$(LI $(BUGZILLA 22859): Error: forward reference of variable `isAssignable` for mutually recursed `allSatisfy`) |
| 100 | +$(LI $(BUGZILLA 22860): `Error: unknown` with mutually recursive and nested SumType) |
| 101 | +$(LI $(BUGZILLA 22863): [REG2.099] -main doesn't work anymore when used for linking only $(LPAREN)without source modules$(RPAREN)) |
| 102 | +) |
| 103 | +$(BUGSTITLE_BUGZILLA DMD Compiler bug fixes, |
| 104 | + |
| 105 | +$(LI $(BUGZILLA 22852): importC: Lexer allows invalid wysiwyg and hex strings) |
| 106 | +$(LI $(BUGZILLA 22853): importC: Lexer allows nesting block comments) |
| 107 | +$(LI $(BUGZILLA 22868): __traits$(LPAREN)parameters$(RPAREN) returns parameters of delegate instead of function) |
| 108 | +$(LI $(BUGZILLA 22871): Using an alias to `__traits$(LPAREN)parameters$(RPAREN)` causes unknown error) |
| 109 | +$(LI $(BUGZILLA 22939): bad error message: Error: no property `msg` for type `string`) |
| 110 | +$(LI $(BUGZILLA 22942): Invalid section type / offset for newer XCode versions) |
| 111 | +) |
| 112 | +$(BUGSTITLE_BUGZILLA Druntime regression fixes, |
| 113 | + |
| 114 | +$(LI $(BUGZILLA 20778): exception messages with nulls within are treated inconsistently) |
| 115 | +) |
| 116 | +$(BUGSTITLE_BUGZILLA Druntime enhancements, |
| 117 | + |
| 118 | +$(LI $(BUGZILLA 22908): OpenBSD: Add getpwnam_shadow and getpwuid_shadow function prototypes) |
| 119 | +) |
| 120 | +$(BUGSTITLE_BUGZILLA dlang.org bug fixes, |
| 121 | + |
| 122 | +$(LI $(BUGZILLA 21086): Wrong source link for core.thread.context) |
| 123 | +) |
| 124 | +) |
| 125 | +$(D_CONTRIBUTORS_HEADER 11) |
| 126 | +$(D_CONTRIBUTORS |
| 127 | + $(D_CONTRIBUTOR Brian Callahan) |
| 128 | + $(D_CONTRIBUTOR Dennis) |
| 129 | + $(D_CONTRIBUTOR Dennis Korpel) |
| 130 | + $(D_CONTRIBUTOR dkorpel) |
| 131 | + $(D_CONTRIBUTOR Florian) |
| 132 | + $(D_CONTRIBUTOR Iain Buclaw) |
| 133 | + $(D_CONTRIBUTOR Martin Nowak) |
| 134 | + $(D_CONTRIBUTOR MoonlightSentinel) |
| 135 | + $(D_CONTRIBUTOR Razvan Nitu) |
| 136 | + $(D_CONTRIBUTOR Steven Schveighoffer) |
| 137 | + $(D_CONTRIBUTOR Walter Bright) |
| 138 | +) |
| 139 | +$(D_CONTRIBUTORS_FOOTER) |
| 140 | +$(CHANGELOG_NAV_INJECT) |
| 141 | + |
| 142 | +Macros: |
| 143 | + VER=2.099.1 |
| 144 | + TITLE=Change Log: $(VER) |
0 commit comments