D to C compiler?

Brad Roberts braddr at puremagic.com
Sun Jan 25 12:33:53 PST 2009


Denis Koroskin wrote:
> On Sun, 25 Jan 2009 23:01:49 +0300, Jarrett Billingsley
> <jarrett.billingsley at gmail.com> wrote:
> 
>> On Sun, Jan 25, 2009 at 2:11 PM, dsimcha <dsimcha at yahoo.com> wrote:
>>> == Quote from Nick Sabalausky (a at a.a)'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





More information about the Digitalmars-d mailing list