DMD与GDC与LDC的比较

Fri*_*itz 55 compiler-construction d dmd gdc

不同D编译器的优缺点是什么?性能和标准合规性/ D2如何支持?调试器的支持程度如何?错误消息有多好,IDE集成是什么?64位支持有多好?到目前为止我的想法:

DMD

  • 成熟且维护良好
  • 只有一个平台,64位支持并不好
  • 不是FOSS

GDC

  • 支持各种平台
  • 有非常成熟的优化,所以它很快?
  • 过时的运行时间?
  • GCC这么好的调试器支持?

LDC

  • 支持各种平台
  • LLVM,所以它支持JITing?
  • 有非常成熟的优化,所以它很快?
  • 保养得不是很好?
  • 过时的运行时间?

死了/不工作

  • SDC
  • MiniD - 非常,非常好,但不是D(但从未声称是)

我正在考虑针对ARM,我认为GDC是首选工具,但我不确定.

Tra*_*s3r 23

DMD是参考实现.只有后端是专有的,前端是开源的.
代码生成质量不是那么令人难以置信.x64支持仅仅几个月了.

GDC和LDC都基于DMD前端,因此可能需要一些时间才能合并前端的新版本.
由于它们使用的后端非常成熟,这些编译器的质量很好主要取决于连接的胶水代码前端和后端.

最不发达国家和GDC仍然积极发展,但主要是由少数人.
总而言之,他们可以使用一些人力.


vin*_*nes 8

  1. DMD的重大缺点是共享库缺陷:
  2. 我个人很惊讶GDC支持D2,但他们说它确实:
    • D1:1.067
    • D2:2.053

  3. 肯定看起来很少有LDC:"D2只在x86-32 Linux上运行".对我来说,这是一个显而易见的问题.

  4. 在搜索LDC时,我发现了另外一个编译器(?!):dil.我还没有测试过,但至少目前还在维护.我会尽快研究这个话题.编辑:正如在评论中指出的那样,dil目前还没有接近完全状态 - 它只能解析代码并从源代码生成文档.

  • 不要根据维基评判最不发达国家.开发工作在https://bitbucket.org/lindquist/ldc和forks进行. (2认同)