DMD 2.096.0 正式发布更新,DMD 是 D语言官方推出的编译器,此版本包含了 17 项主要变更,同时修复 81 个已知bug
。相信过几天 LDC 也会跟进到本次大更新!这个版本有 54 个开发者进行参与,非常感谢他们为 DLang 的发展做出的贡献。
编译器变更
x86_64 Posix
平台下的D ABI
有所更改- 新增类型:
__c_complex_float
、__c_complex_double
和__c_complex_real
- 不再支持构造函数复制和块复制(postblit)
DMD
的JSON
输出现在会包含保护级成员DMD
的JSON
输出现在会区分处理模块的构造方法和析构方法(包含有无shared
的情形)- 局部模板不再支持接收通过别名(
alias
)传入的局部符号 - 增强了
C++
头文件的生成功能 - 新增编译器开关:-gdwarf=<
version
> - 新增
__traits(getVisibility, Sym)
来替代getProtection
- 无参的
synchronized
语句现在会使用运行时分配的互斥量 - 允许使用更短形式的函数实现(单一表达式函数)
运行时变更
- 移除了
druntime
里的参数选项callStructDtorsDuringGC
- 在
mount
模块里,移除了与FreeBSD
相关的statvfs
声明 - 新增体验功能:基于
backtrace
输出的llvm-libunwind
库变更
- 弃用
std.math
模块里的approxEqual
方法
Dub变更
- 支持更多
DMD
的连接器参数 VisualD
的工程里允许使用copyFiles