Jarrett Billingsley Wrote: > On Sun, Jan 25, 2009 at 2:11 PM, dsimcha <[email protected]> wrote: > > == Quote from Nick Sabalausky ([email protected])'s article > >> - Like Denis said, I've heard LLVM is supposed to have a plain-C backend, > >> but I don't know how far along that is or if it's working with LDC (and > >> from > >> what I hear, even LDC itself isn't quite production-ready just yet, but it > >> is movng along quickly). > > > > This is true. I've played around w/ this C back end w/ some toy programs > > and and > > it works reasonably well, but I forgot about it. At any rate, could this > > be used > > as a temporary kludge to get LDC "working" on unsupported platforms like > > Windows > > until it works natively? Basically, LDC for Windows and other unsupported > > platforms would compile the D code to C, and then compile the C code w/ the > > native > > C compiler for the platform. > > The problem with LDC on Windows is not that LLVM doesn't have a > backend for Windows; it does. It's just that LLVM doesn't yet support > Windows exception handling. Using the C backend wouldn't help there.
Reviving a slightly dated thread here: The exception problem and C could be sidestepped altogether by compiling to C++ instead of pure C. All the major console SDKs at least will compile C++. This doesn't mean we would need to use any more C++ features like classes or templates, the result could be pretty much "C with exceptions". An added benefit would be automatic eh compatibility with existing C++ code, on all platforms. As a side note, compiling D->C++ could probably be done at a higher level than using C-as-assembler-output, which I suspect is what LLVM will end up doing. This isn't a high priority though. Nico
