2013-08-16 9 views
13

私はDを試してみたいと思いますが、私はそれにどのコンパイラを使用するのかよく分かりません。トピックに関するいくつかの記事やSOの質問を見つけましたが、最新のものは見つかりませんでした。どのDコンパイラを使用しますか?

各コンパイラのメリットは何ですか?その欠点は何ですか?今はDMDコンパイラが私にとっては最高のようですが、私は時代遅れの情報に惑わされるかもしれません。

+1

も参照してください[GDCとDMDの選択](http://stackoverflow.com/questions/14199676/choosing-between-gdc-and-dmd) –

+0

関連項目[DMD vs. GDC vs. LDC](http: //stackoverflow.com/questions/6767065/dmd-vs-gdc-vs-ldc) –

答えて

19

メインのDコンパイラ(dmd、gdc、ldc)はすべて同じフロントエンドを使用しますが、dmdは一般に参照コンパイラよりも少し先にあります。また、他の2人が(WindowsやOS X IIRCを中心に)まだいくつかの機能を実装していないケースがあると思いますが、一般的にうまく機能します。 gdcやldcの主な利点は、より速いコードを生成できることです(ただし、コードに依存する速さは異なります)。しかし、コードをコンパイルするのにさらに時間がかかります。

あなたがちょうど始めているのであれば、私はdmdを使って心配しないことをお勧めします。それは、最新のコンパイラであることが保証されており、私はそれがほとんどの人々が使用していると信じています。主な欠点は、生成するコードがあまり速くないということですが、後で他のコンパイラを実際に気にかけていれば、後で調べることができます。

生産コードについては、私が一般的に取るアプローチは、dmdを使用して開発し、gdcまたはldcのいずれかを使用してプロダクションコードを生成することです。そうすれば、コードを開発するときにはコンパイル時間が短縮されますが、より高速なバイナリを生産することができます。

8

ジョナサンの答えに追加:

あなたの選択はまた、あなたが使用しているOSによって制約されます。 Linuxでは、3つのすべて(DMD、GDC、LDC)が利用可能です。 Windowsの場合、特にVisual Studio(Visual Dアドオンの取得)に慣れている場合は、DMDが唯一の選択肢です。 WindowsでのGDCまたはLDCの使用には様々な程度の痛みが伴います(this discussion参照)。

SIMDで再生したい場合は、DMDを使用します。他のコンパイラには、(DConf 2013の協議に基づいて)実装が不完全または欠落しています。

関連する問題