Difference between revisions of "LDC"

From D Wiki
Jump to: navigation, search
(Guides)
(x86-64 Windows using MSVC)
Line 16: Line 16:
  
 
* LDC/LDC2 from master branch compiles without patches.
 
* LDC/LDC2 from master branch compiles without patches.
* See [[Building-and-hacking-LDC-on-Windows-using-MSVC|Building and Hacking]] for detailed instructions.
+
* See [[Building and hacking LDC on Windows using MSVC]] for detailed instructions.
 
* LLVM 3.1 is required (3.0 does not work because of missing TLS support); LLVM 3.2 is supported, too.
 
* LLVM 3.1 is required (3.0 does not work because of missing TLS support); LLVM 3.2 is supported, too.
* Druntime and phobos compile but linker errors are still possible.
+
* druntime and Phobos compile but linker errors are still possible.
* exception handling still needs work (see here for a first [http://article.gmane.org/gmane.comp.compilers.llvm.cvs/120422 patch]; the llvm-objdump part of the patch is [http://article.gmane.org/gmane.comp.compilers.llvm.cvs/128883 here] and was commited in LLVM 3.3)
+
* Exception handling still needs work (see here for a first [http://article.gmane.org/gmane.comp.compilers.llvm.cvs/120422 patch]; the llvm-objdump part of the patch is [http://article.gmane.org/gmane.comp.compilers.llvm.cvs/128883 here] and was commited in LLVM 3.3)
* contact: kai@redstar.de
+
* Contact: kai@redstar.de
  
 
=== ARM ===
 
=== ARM ===

Revision as of 22:53, 12 December 2012

Compilers: OverviewDMDGDCLDC

LDC uses the LLVM backend for code generation. LDC typically generates substantially faster binaries than DMD.

Guides

Project status

In general, LDC should work fine on most x86/x86-64 Unix-like systems, including Linux, OS X 10.7+ and most BSD flavors. Code generation should work for other platforms supported by the LLVM MC codegen infrastructure (for example ARM), but druntime/Phobos support will most likely be lacking.

OS X version prior to 10.7 (Lion) are currently not supported by the D2 compiler, because LLVM's support for thread-local storage depends on functionality which first appeared in 10.7.

x86-64 Windows using MSVC

  • LDC/LDC2 from master branch compiles without patches.
  • See Building and hacking LDC on Windows using MSVC for detailed instructions.
  • LLVM 3.1 is required (3.0 does not work because of missing TLS support); LLVM 3.2 is supported, too.
  • druntime and Phobos compile but linker errors are still possible.
  • Exception handling still needs work (see here for a first patch; the llvm-objdump part of the patch is here and was commited in LLVM 3.3)
  • Contact: kai@redstar.de

ARM

  • Code generation is known to work.
  • Some initial work has been done on druntime, but support is not yet complete – see issue #116.

Useful Links