Difference between revisions of "LDC"
Klickverbot (talk | contribs) (→Guides) |
Klickverbot (talk | contribs) (→Project status: Added note about pre-Lion OS X) |
||
Line 8: | Line 8: | ||
== Project status == | == 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. | + | 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 === | === x86-64 Windows using MSVC === |
Revision as of 22:29, 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 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 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.