I agree with you Zenith, dmd is terrible. GDC, using the dmd implementation, is also...meh...bad on many levels. The source is around, GDC uses it. And yes, where did that guy go who is maintaining it?! This is why we are GTFO'ing to LLVM. (We see GCC as a sinking ship, also, but that's a different story)
LLVM's LDC is the way to go. We are working actively with LDC developers on porting
XOmB (our D exokernel) to use it. Apparently we are a nice test case
They tell us our kernel compiles fine for x86-64 (although LLVM's variadics for x86-64 are nonexistent as of the present). It doesn't produce a valid binary because it needs to be a naked compiler, and it isn't. But hopefully they will step us through that and we can update the wiki.
LDC is great because it marks the true second compiler implementation of the language (remember: gdc uses the dmd codebase).
So LDC should be a viable development tool for OS work. (I've obviously not had a chance to really use it though)
quanganht wrote:Currently I'm working on D cross-compiler and stuffs like linker script and so. Then a D wiki page will appear !
Great! I see you are on our mailing list. Please use it for questions, we would like to help. Mixins are so nice for interrupt handling
I've personally built gdc cross-compilers several times targeting 32-bit and 64-bit machines. One of us has patches that are necessary.
MessiahAndrw wrote:gdc - Wikipedia states it only supports D1.0.
Yep, pretty much. As Zenith points out, the
SOLE maintainer is sorta missing ATM. Also, dmd would be a terrible choice for systems dev...unfortunately. Doesn't target 64 bit machines.. It doesn't like stripping out runtimes and the like. It is difficult, that is. This is much of the reason behind the two runtimes (Tango/Aries vs Phobos) being so incompatible. But, that's why LDC exists.
Zenith wrote:I'm sticking with my C++ foo.
Awwww... (confession: I like me some C++ sometimes
)
Overall, I am very impressed at the response of this thread. I will try and contribute what I can to the wiki.