Bill Baxter wrote: > On Mon, Jan 26, 2009 at 5:01 AM, Jarrett Billingsley > <[email protected]> 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. > > I would think a C backend would be converting exceptions into portable > setjmp/longjmp. That's the only way to emulate exceptions in C as far > as I know. Not so? > > --bb
It could, but then it still wouldn't necessarily interact properly with other C++ or D code eh mechanisms which aren't sjlj based. On unix, sjlj exceptions aren't used anymore. I'm not sure about windows. The presentation I saw that went through win64 showed that at least those weren't sjlj but rather closely matched unix, using lookup tables to do the unwinding. Later, Brad
