Denis Koroskin wrote: > On Sun, 25 Jan 2009 23:01:49 +0300, 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. > > Err... Isn't generated C code cross-platform? Code generated for Linux > could be used to compile code for Windows, no?
That presumes that the interfaces are cross-platform, but they're not. The win32 api's are win32 specific. Exception handling specifications are different between windows and unix (nearly all unix os' use the exact same eh specs for the last 10 years or so). Within the unix world, the lowest level syscalls aren't the same across the various flavors. That's why specifications like posix were created. Those interfaces are specifically designed to insulate applications from the lowest level details of cross-system differences. Anyway, if only it was that simple.. :) Later, Brad
