Difference between revisions of "Compilers"
(Add licenses, add gdc inline asm info) |
m (→Comparison: Update compiler information) |
||
Line 72: | Line 72: | ||
|--- | |--- | ||
|'''Installation''' | |'''Installation''' | ||
− | | | + | | Source, Archives with binaries, Linux packages |
− | | | + | | Source, Linux packages |
− | | | + | | Source, Archives with binaries, Linux Packages |
|--- | |--- | ||
|'''Backend''' | |'''Backend''' | ||
Line 100: | Line 100: | ||
|--- | |--- | ||
|'''Object file format''' | |'''Object file format''' | ||
− | | | + | | ELF |
− | | | + | | ELF |
− | | | + | | ELF |
|--- | |--- | ||
!colspan="4" align="center"|<br/>'''Mac specific''' | !colspan="4" align="center"|<br/>'''Mac specific''' | ||
|--- | |--- | ||
|'''Object file format''' | |'''Object file format''' | ||
− | | | + | | OMF |
− | | | + | | PE/COFF |
− | | | + | | PE/COFF |
|--- | |--- | ||
!colspan="4" align="center"|<br/>'''Windows specific''' | !colspan="4" align="center"|<br/>'''Windows specific''' |
Revision as of 20:05, 5 July 2013
DMD »Digital Mars D compiler |
GDC »GCC D compiler |
LDC »LLVM D compiler |
Also see: Experimental compilers
Which compiler should I use?
If you're a beginner DMD is the recommended choice, as it is the implementation closest to the D Language Specification. Otherwise it depends on what you need, what platforms you intend to develop for, and your personal preferences. GDC and LDC both generate substantially faster binaries than DMD.
Comparison
DMD | GDC | LDC | |
---|---|---|---|
Platforms |
|
|
|
Architectures |
|
|
|
Installation | Source, Archives with binaries, Linux packages | Source, Linux packages | Source, Archives with binaries, Linux Packages |
Backend | DMD | GCC | LLVM |
License | Frontend: GPL 1 or later / Artistic License
Backend: custom |
GPL 3 or later | LDC-specific code: 3-clause BSD |
Inline assembler | Yes, x86 | Yes, GCC-style only (all targets) | Yes, D-style (x86) and GCC-style (all targets) |
SIMD | Partial (?) | Partial (?) | Partial (?) |
Linux specific | |||
Object file format | ELF | ELF | ELF |
Mac specific | |||
Object file format | OMF | PE/COFF | PE/COFF |
Windows specific | |||
Object file format | ? | ? | ? |