DMD vs. GDC vs. LDC
Was sind die vor - /Nachteile der verschiedenen D-Compiler? Wie ist die Leistung und der standard compliance/D2-support? Wie gut sind Debugger unterstützt? Wie gut sind die Fehlermeldungen und die IDE-integration? Wie gut ist die 64-bit-Unterstützung? Meine Gedanken bisher:
DMD
- Reif und gut gepflegt
- Nur eine Plattform, 64-bit-Unterstützung ist nicht gut
- Nicht FOSS
GDC
- Unterstützt verschiedene Plattformen
- Sehr Reife Optimierungen, so ist es schnell?
- Out-of-date runtime?
- GCC so einen guten debugger-Unterstützung?
LDC
- Unterstützt verschiedene Plattformen
- LLVM, so dass es unterstützt JIT?
- Sehr Reife Optimierungen, so ist es schnell?
- Nicht sehr gepflegt?
- Out-of-date runtime?
tot ist/nicht funktioniert
- dang
- Deza
- MiniD - sehr, sehr schön, aber nicht D (nie behauptet zu sein, obwohl)
Ich denke über targeting ARM-und ich denke, GDC ist das tool der Wahl, aber ich bin mir nicht sicher.
- DMD ist die Referenz-Implementierung (trotz bugs) und es geht cross-Plattform
- VisualD mit cv2pdb hat sehr gute debugging-Unterstützung für DMD dsource.org/projects/visuald/wiki/Tour/Debugger
Du musst angemeldet sein, um einen Kommentar abzugeben.
DMD ist die Referenz-Implementierung. Nur das backend ist proprietär, das frontend ist open source.
Die code-Generierung, Qualität ist nicht überwältigend. x64-support ist nur ein paar Monate alt.
GDC-und LDC-basieren beide auf dem DMD-frontend, so kann es einige Zeit dauern, bis eine neue version des frontend zusammengeführt werden.
Da die backends, die Sie verwenden, sind sehr ausgereift und gut die Qualität dieser Compiler hängt vor allem mit der glue-code verbindet die frontend-und backend.
LDC und GDC sind immer noch aktiv entwickelt, sondern vor allem durch nur ein paar Jungs.
Alles in allem könnte Sie einige manpower.
dil
ist nicht in der Nähe einer einigermaßen kompletten Zustand für jetzt — ist nur in der Lage, den code zu analysieren und erzeugen-Dokumentation von Quellen.Februar 2012, es scheint, dass die LDC ist nicht wirklich eine brauchbare option (zumindest auf Debian).
Betrachten Sie zum Beispiel das erste Programm in der D-Buch:
Diese werden nicht kompiliert werden, mit LDC auf meinem system:
Das gleiche gilt für das erste Programm bei dlang.org:
Dies ist, weil mein LCD nicht unterstützt Phobos--die aktuelle D-runtime-Bibliothek. Wie es aussieht ist es möglich, erstellen Sie eine D2-version von LDC, einschließlich Phobos, aber das ist nicht die Art, wie es Schiffe, die auf Debian zumindest.
GDC, und natürlich DMD, sowohl kompilieren der oben nur fein. Es sieht aus wie GDC ist ganz up to date (DMD veröffentlicht 2.057 zwei Monaten und GDC unterstützt es jetzt).
Für mich, GDC war die offensichtliche Wahl, da ein einfaches '
apt-get -V install gdc
' brachte in der compiler und die Phobos-Laufzeit ohne Probleme (getestet auf Debian unstable).etc/ldc2.conf
, sitzt meist in/usr/local
). Wenn die Datei vorhanden ist, dann sollte es mindestens 1"-I{PATH}"
- Schalter im inneren, dass es Punkte auf Quellen aus der Bibliothek (phobos2) und die Laufzeit.std/stdio.d
zum Beispiel gehört zu phobos2. Ich bin kein Experte, aber ich habe es geschafft, den LDC-compiler (master auf github zu dieser Zeit) zu kompilieren, die auf OSX Lion 64-bit und diese Konfiguration wurde automatisch mit CMake. NB: gab es Probleme mit einigen runtime Symbole bei Verknüpfungen von Programmen, aber ich werde senden Sie eine patch über Sie.