Difference between revisions of "LDC"

From D Wiki
Jump to: navigation, search
Line 1: Line 1:
<table cellspacing= "10" style="width:100%">
 
<tr>
 
<td style="width:70%; vertical-align:top;">
 
 
LDC uses the LLVM backend for code generation. LDC typically generates substantially faster binaries than DMD.
 
LDC uses the LLVM backend for code generation. LDC typically generates substantially faster binaries than DMD.
  
Line 7: Line 4:
 
* [https://github.com/ldc-developers/ldc/wiki/Installation Installing LDC]
 
* [https://github.com/ldc-developers/ldc/wiki/Installation Installing LDC]
  
</td>
+
== Project status ==
<td style="width:30%; vertical-align:top;">
+
In general, LDC should work fine on most x86/x86-64 Unix-like systems, including Linux, OS X 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.
 +
 
 +
=== x86-64 Windows using MSVC ===
 +
 
 +
* LDC/LDC2 from master branch compiles without patches.
 +
* See [[Building-and-hacking-LDC-on-Windows-using-MSVC|Building and Hacking]] 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 [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
 +
 
 +
=== ARM ===
 +
 
 +
* Code generation is known to work.
 +
* Some initial work has been done on druntime, but support is not yet complete – see [https://github.com/ldc-developers/ldc/issues/116 issue #116].
 +
 
 
== Useful Links ==
 
== Useful Links ==
 
* [https://github.com/ldc-developers/ldc Source code (GitHub)]
 
* [https://github.com/ldc-developers/ldc Source code (GitHub)]
</td>
 
  
 
{{:Compilers_Widget}}
 
{{:Compilers_Widget}}
 
[[Category:LDC]]
 
[[Category:LDC]]

Revision as of 22:23, 12 December 2012

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 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.

x86-64 Windows using MSVC

  • LDC/LDC2 from master branch compiles without patches.
  • See Building and Hacking 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

Compilers: OverviewDMDGDCLDC