Difference between revisions of "Compilers"
(→DMD ») |
(update versions) |
||
Line 142: | Line 142: | ||
!Windows | !Windows | ||
| | | | ||
− | *[http://dlang.org/download.html Manual download] (2. | + | *[http://dlang.org/download.html Manual download] (2.068.0) |
− | *[https://chocolatey.org Chocolatey] ( | + | *[https://chocolatey.org Chocolatey] (2.067.0 available awaiting moderation) |
| | | | ||
*[http://gdcproject.org/downloads Manual download] (4.9.2) | *[http://gdcproject.org/downloads Manual download] (4.9.2) | ||
| | | | ||
− | *[https://github.com/ldc-developers/ldc/releases Manual download] (0.15.1, 0.15.2- | + | *[https://github.com/ldc-developers/ldc/releases Manual download] (0.15.1, 0.15.2-beta2) |
|--- | |--- | ||
!OS X | !OS X | ||
| | | | ||
− | *[http://brew.sh Homebrew] (2. | + | *[http://brew.sh Homebrew] (2.068.0) |
*[https://www.macports.org MacPorts] (2.067.0) | *[https://www.macports.org MacPorts] (2.067.0) | ||
− | *[http://dlang.org/download.html Manual download] (2. | + | *[http://dlang.org/download.html Manual download] (2.068.0) |
| | | | ||
| | | | ||
− | *[http://brew.sh Homebrew] (0.15.1, 0.15.2- | + | *[http://brew.sh Homebrew] (0.15.1, 0.15.2-beta2) |
− | *[https://github.com/ldc-developers/ldc/releases Manual download] (0.15.1, 0.15.2- | + | *[https://github.com/ldc-developers/ldc/releases Manual download] (0.15.1, 0.15.2-beta2) |
|--- | |--- | ||
!Linux (generic) | !Linux (generic) | ||
| | | | ||
− | *[http://dlang.org/download.html Manual download] (2. | + | *[http://dlang.org/download.html Manual download] (2.068.0) |
| | | | ||
*[http://gdcproject.org/downloads Manual download] (4.9.2) | *[http://gdcproject.org/downloads Manual download] (4.9.2) | ||
| | | | ||
− | *[https://github.com/ldc-developers/ldc/releases Manual download] (0.15.1, 0.15.2- | + | *[https://github.com/ldc-developers/ldc/releases Manual download] (0.15.1, 0.15.2-beta2) |
|--- | |--- | ||
!Cross-platform | !Cross-platform |
Revision as of 09:01, 11 August 2015
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 |
|
|
|
Distribution | Source, multi-platform source/binary archive, multi-platform installer (DVM),Windows installer, packages for OS X (.dmg), Debian/Ubuntu (.deb), Fedora (.rpm), OpenSUSE (.rpm), Debian/Ubuntu repository via http://d-apt.sourceforge.net, OS-X homebrew and macports repositories. | Source, Windows binary archive, Debian/Ubuntu repository | Source, Linux / OS X binary archive, Debian/Ubuntu repository, Fedora repository, Gentoo repository |
Backend | DMD (DMC fork) | 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 | Mach-O | Mach-O | Mach-O |
Windows specific | |||
Object file format | OMF (32) / COFF (64) | COFF | COFF |
Package and/or binary availability, by platform and compiler
Version number is given in brackets. Many of the manual download links have 10s of versions available, only the most recent few are listed here.
Some unofficial repositories and downloads are listed here, but of course many more do exist. With a little searching, you may be able to find something more up to date for your chosen OS.
Very old compilers are (mostly) omitted, as they are unlikely to be of interest to users.
Platform |
Compiler | ||
---|---|---|---|
DMD | GDC | LDC | |
Windows |
|
|
|
OS X |
|
| |
Linux (generic) |
|
|
|
Cross-platform |
|
||
Distribution-specific packages | |||
Debian |
|
|
|
Ubuntu |
|
|
|
Fedora |
|
| |
OpenSuse |
|
| |
CentOS |
|
||
Arch Linux |
|
|
|
Gentoo | see https://wiki.gentoo.org/wiki/Dlang | ||
FreeBSD |
|