本次更新主要是针对上个月发布的 2.085.0 大版本进行更新,修复了 20+ 处问题。
详细更新列表如下:
DMD 编译器回归改进
- Bugzilla 19655: DMD generates wrong code for some circular dependencies
- Bugzilla 19656: D compiler fails to resolve circular module dependency when modules are compiled separately
- Bugzilla 19657: D compiler fails to resolve circular module dependency when modules are compiled together
- Bugzilla 19691: ICE on null default value for struct parameter in constructor
- Bugzilla 19718: DMD 2.085 changes to gsroa make DCD crashing
- Bugzilla 19724: Regression: wrong order of linker arguments, again: -L-l before -L--start-group
- Bugzilla 19730: if (auto x) {} isn't properly rejected
- Bugzilla 19746: DMD fails to compile some circular dependencies spiced with is (T == super) condition
- Bugzilla 19750: [Reg v2.070.2] DMD fails with some circular module refs with Template/Mixin instances
DMD 编译器 BUG 修复
- Bugzilla 13285: wrong codegen for destructor call of unnamed struct instance on 64 bit environments
- Bugzilla 15875: case of undetected circular reference in function parameter
- Bugzilla 17259: ICE with multiple mixin templates containing conflicting ctor declarations
- Bugzilla 17285: Segfault when types are used in array literals
- Bugzilla 17290: DMD crash due to circular reference in function return type
- Bugzilla 19635: -checkaction=context not working with attributes
- Bugzilla 19700: [2.085.0-beta.2] Obj-C wrong code overloading selectors and extern(D)
- Bugzilla 19717: case of segfault due to undetected forward reference
- Bugzilla 19755: Compiler crash
- Bugzilla 19757: crash on invalid initializer at CTFE
- Bugzilla 19762: ICE on invalid code
Phobos 标准库回归改进
- Bugzilla 18818: VariantN has unittests that are compiled into user modules
Phobos 标准库 BUG 修复
- Bugzilla 19765: std.algorithm.searching.findAmong doesn't save like it should
DRuntime 运行时修复
- Bugzilla 19723: wrong time values in GC.profileStats