58

さまざまな D コンパイラの長所と短所は何ですか? 性能や規格適合・D2対応はどうですか?デバッガーはどの程度サポートされていますか? エラー メッセージと IDE の統合は適切ですか? 64 ビットのサポートはどの程度優れていますか? これまでの私の考え:

DMD

  • 成熟し、手入れが行き届いている
  • 1 つのプラットフォームのみ、64 ビットのサポートは良くない
  • FOSSではない

GDC

  • さまざまなプラットフォームをサポート
  • 非常に成熟した最適化があるため、高速ですか?
  • ランタイムが古くなっていますか?
  • GCC は良いデバッガーをサポートしていますか?

LDC

  • さまざまなプラットフォームをサポート
  • LLVMなので、JITingをサポートしていますか?
  • 非常に成熟した最適化があるため、高速ですか?
  • あまりよく維持されていませんか?
  • ランタイムが古くなっていますか?

死んでいる/機能していない

  • ダン
  • sdc
  • MiniD - 非常に素晴らしいですが、D ではありません (ただし、D であると主張したことはありません)。

ARM をターゲットにすることを考えていて、GDC が最適なツールだと思いますが、よくわかりません。

4

4 に答える 4

25

DMD はリファレンス実装で、バックエンドとフロントエンドはオープン ソースです。コード生成の品質はそれほど圧倒的ではありません。

GDC と LDC はどちらも DMD フロントエンドに基づいているため、新しいバージョンのフロントエンドがマージされるまでには時間がかかる場合があります
。フロントエンドとバックエンド。

LDC と GDC は今でも活発に開発されていますが、主に少数の開発者によって開発されています。
全体として、彼らはいくらかの人力を使うことができました。

于 2011-07-20T20:06:15.040 に答える
9
  1. DMDの重大な欠点は、共有ライブラリの欠陥です。
  2. 私は個人的にGDCがD2をサポートしていることに驚いていましたが、彼らはそれがサポートしていると言っています:
    • D1:1.067
    • D2:2.053

  3. LDCは間違いなくほとんど維持されていないようです:「D2はx86-32Linuxでのみ動作します」。私にとって、それは目を見張るような問題です。

  4. LDCを検索しているときに、もう1つのコンパイラ(?!)を見つけました:dil。まだテストしていませんが、少なくとも現在は維持されています。このトピックについては、できるだけ早く調査します。編集:コメントで指摘されているようにdil、今のところ完全な状態に近いわけではありません。コードを解析し、ソースからドキュメントを生成することしかできません。
于 2011-07-21T09:40:27.523 に答える
3

2012 年 2 月現在、LDC は実際には使用可能なオプションではないようです (少なくとも Debian では)。

たとえば、D bookの最初のプログラムを考えてみましょう:

import std.stdio;

void main(string[] args)
{
        writeln("Hello, world!");
}

これは、私のシステムでは LDC でコンパイルできません。

hello.d(24): Error: module stdio cannot read file 'std/stdio.d'

同じことがdlang.orgの最初のプログラムにも当てはまります。

import std.stdio;

void main() {
    ulong lines = 0;
    double sumLength = 0;
    foreach (line; stdin.byLine()) {
        ++lines;
        sumLength += line.length;
    }
    writeln("Average line length: ",
        lines ? sumLength / lines : 0);
}

これは、私の LDC がPhobos (現在の D ランタイム ライブラリ)をサポートしていないためです。Phobos を含む LDC の D2 バージョンをビルドすることは可能であるように見えますが、それは少なくとも Debian で出荷される方法ではありません。

GDC、そしてもちろん DMD は、どちらも上記を問題なくコンパイルします。GDC はかなり最新のようです (DMD は 2 か月前に 2.057 をリリースし、GDC は現在それをサポートしています)。

apt-get -V install gdc私にとっては、単純な ' ' が問題なくコンパイラと Phobos ランタイムの両方をもたらした (Debian 不安定版でテスト済み)ため、GDC は明白な選択でした。

于 2012-02-25T00:06:06.173 に答える