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

Reply via email to