LDC 1.14.0 发布,高性能 dlang 编译器

冰力
 冰力
发布于 2019年02月22日
收藏 5

LDC 是一个高性能的 D 语言编译器。LDC 1.14.0 新版本更新亮点如下:

  • 支持 D 语言最新版本 2.084.1.

  • 增强对 WebAssembly 的兼容性

  • 改进 Windows 32 位系统安装包形式

  • 纤程改进

  • 其他稳定性提升

完整更新日志(英文)

Big news

  • Frontend, druntime and Phobos are at version 2.084.1, incl. new command-line options -mixin , -{enable,disable}-switch-errors and -checkaction . (#2946, #2977, #2999) (new)
    • Options -release , -d-debug and -unittest don't override preceding, more specific options ( -{enable,disable}-{asserts,invariants,preconditions,postconditions,contracts} ) anymore.
  • Linking WebAssembly doesn't require -link-internally (integrated LLD) anymore; an external linker (default: wasm-ld , override with -linker ) can be used as well. (#2951)
  • Prebuilt Windows packages include LTO-able 32-bit druntime/Phobos too (previously: Win64 only).
  • AddressSanitizer support for fibers (requires rebuilding the runtime libraries with CMake option RT_SUPPORT_SANITIZERS=ON ). (#2975, ldc-developers/druntime#152) (new)
  • Support pragma(LDC_extern_weak) for function declarations - if the function isn't available when linking, its address is null. (#2984) (new)

Platform support

  • Supports LLVM 3.9 - 7.0.

Bug fixes

  • Fix C++ mangling regression for functions with multiple real parameters introduced with v1.13, preventing to build DMD. (#2954, dlang/dmd#9129)
  • Fix context of some nested aggregates. (#2960, #2969)
  • Support templated LLVM intrinsics with vector arguments. (#2962, #2971)
  • Avoid crashes with -allinst (fix emission of only speculatively nested functions). (#2932, #2940)
  • Fix XRay support for LLVM 7+. (#2965)
  • AArch64: Fix DMD-style profile measurements. (#2950)
  • Be less picky about placement of pragmas (allow intermediate extern(C) etc.). (#2599)
  • MSVC: Fix real C++ mangling to match Visual C++ long double . (#2974)
  • Fix bad ICE noticed when building protobuf-d. (#2990, #2992) (new)
  • Fix ICE when directly indexing vector return value. (#2988, #2991) (new)
  • Fix identity comparisons of complex numbers. (#2918, #2993) (new)
  • MIPS32 fix for core.stdc.stdarg . (#2989, ldc-developers/druntime#153) (new)
  • Fix core.atomic.cas() for 64-bit floating-point values. (#3000, #3001) (new)
  • beta1 regression: 'Instruction does not dominate all uses' (#2996, #2997) (new)

Known issues

  • Buggy older ld.bfd linker versions may wrongly strip out required symbols, e.g., ModuleInfos (so that e.g. no module ctors/dtors are run). LDC defaults to ld.gold on Linux.
  • LDC does not zero the padding area of a real variable. This may lead to wrong results if the padding area is also considered. See #770. Does not apply to real members inside structs etc.
本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创开源社区。
转载请注明:文章转载自 开源中国社区 [http://www.oschina.net]
本文标题:LDC 1.14.0 发布,高性能 dlang 编译器
加载中

精彩评论

z
zjh6
支持!!D语言还是很有前途的!

最新评论(12

冰力
冰力

引用来自“平原君”的评论

现在dlang的发展加快了么?
@平原君 D语言从 2016 年开始发展加速,编译器层面没两个月都有大版本更新,目前跨平台支持更多,包括 Windows macOS FreeBSD Linux iOS Andorid,社区的框架生态发展也特别好。对 C++ 和 Objective-C 的兼容性提升也非常多。
冰力
冰力

引用来自“zjh6”的评论

支持!!D语言还是很有前途的!
@zjh6 相当有前途了
冰力
冰力

引用来自“Alex-wxlang”的评论

Hunk 框架怎么样了?可以用了吗?
@Alex-wxlang hunt framework 2.0 比较稳定,推荐使用。
冰力
冰力

引用来自“netkiller-”的评论

WebAssembly?? D语言可以给EOS开发合约吗?

引用来自“平原君”的评论

这个是给浏览器运行的字节码

引用来自“netkiller-”的评论

EOS 只能合约就是适用 WebAssembly 实现,目前可以使用 C/C++编写。如果能使用 D语言那就爽很多了。
@netkiller- 应该没问题,但是我们业务都是在 x64 平台下的服务端架构没涉及到 WebAssebly
netkiller-
netkiller-

引用来自“netkiller-”的评论

WebAssembly?? D语言可以给EOS开发合约吗?

引用来自“平原君”的评论

这个是给浏览器运行的字节码
EOS 只能合约就是适用 WebAssembly 实现,目前可以使用 C/C++编写。如果能使用 D语言那就爽很多了。
Alex-wxlang
Alex-wxlang
Hunk 框架怎么样了?可以用了吗?
平原君
平原君

引用来自“netkiller-”的评论

WebAssembly?? D语言可以给EOS开发合约吗?
这个是给浏览器运行的字节码
netkiller-
netkiller-
WebAssembly?? D语言可以给EOS开发合约吗?
平原君
平原君
现在dlang的发展加快了么?
z
zjh6
支持!!D语言还是很有前途的!
返回顶部
顶部