www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - No D->C++, right?

reply Nick Sabalausky <SeeWebsiteToContactMe semitwist.com> writes:
Am I correct in my understanding that we still don't have a reliable
tool to translate a D source to C or C++? Can LDC/GDC do anything like
that? (Doesn't LLVM have a C-outputting backend?)
Jul 13 2012
next sibling parent reply Kevin Cox <kevincox.ca gmail.com> writes:
--e89a8f839d3376db5904c4bb5660
Content-Type: text/plain; charset=UTF-8

On Jul 13, 2012 3:45 PM, "Nick Sabalausky" <
SeeWebsiteToContactMe semitwist.com> wrote:
 Am I correct in my understanding that we still don't have a reliable
 tool to translate a D source to C or C++? Can LDC/GDC do anything like
 that? (Doesn't LLVM have a C-outputting backend?)

Yes LLVM does. I think GCC can do something like that too. AFAIK this is the only way to do it. --e89a8f839d3376db5904c4bb5660 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable <p><br> On Jul 13, 2012 3:45 PM, &quot;Nick Sabalausky&quot; &lt;<a href=3D"mailto:= SeeWebsiteToContactMe semitwist.com">SeeWebsiteToContactMe semitwist.com</a=
&gt; wrote:<br>

&gt; Am I correct in my understanding that we still don&#39;t have a reliab= le<br> &gt; tool to translate a D source to C or C++? Can LDC/GDC do anything like= <br> &gt; that? (Doesn&#39;t LLVM have a C-outputting backend?)<br> &gt;</p> <p>Yes LLVM does.=C2=A0 I think GCC can do something like that too.=C2=A0 A= FAIK this is the only way to do it.<br> </p> --e89a8f839d3376db5904c4bb5660--
Jul 13 2012
parent reply =?UTF-8?B?QWxleCBSw7hubmUgUGV0ZXJzZW4=?= <alex lycus.org> writes:
On 13-07-2012 21:46, Kevin Cox wrote:
 On Jul 13, 2012 3:45 PM, "Nick Sabalausky"
 <SeeWebsiteToContactMe semitwist.com
 <mailto:SeeWebsiteToContactMe semitwist.com>> wrote:
  >
  > Am I correct in my understanding that we still don't have a reliable
  > tool to translate a D source to C or C++? Can LDC/GDC do anything like
  > that? (Doesn't LLVM have a C-outputting backend?)
  >

 Yes LLVM does.  I think GCC can do something like that too.  AFAIK this
 is the only way to do it.

LLVM's C back end is deprecated since nobody used/maintained it. Anyway, translating a D AST to C should be relatively trivial. Maybe you can base it on this: https://github.com/adamdruppe/dmd/tree/dtojs -- Alex Rønne Petersen alex lycus.org http://lycus.org
Jul 13 2012
parent "Daniel Murphy" <yebblies nospamgmail.com> writes:
"Alex Rønne Petersen" <alex lycus.org> wrote in message 
news:jtq05i$26hh$1 digitalmars.com...
 On 13-07-2012 21:46, Kevin Cox wrote:

Anyway, translating a D AST to C should be relatively trivial. Maybe you can base it on this: https://github.com/adamdruppe/dmd/tree/dtojs

Or base it off the c-generating fork that that's based on. https://github.com/yebblies/dmd/tree/microd No classes though (or much at all really)
Jul 13 2012
prev sibling parent Nick Sabalausky <SeeWebsiteToContactMe semitwist.com> writes:
On Fri, 13 Jul 2012 15:46:35 -0400
Kevin Cox <kevincox.ca gmail.com> wrote:

 On Jul 13, 2012 3:45 PM, "Nick Sabalausky" <
 SeeWebsiteToContactMe semitwist.com> wrote:
 Am I correct in my understanding that we still don't have a reliable
 tool to translate a D source to C or C++? Can LDC/GDC do anything
 like that? (Doesn't LLVM have a C-outputting backend?)

Yes LLVM does. I think GCC can do something like that too. AFAIK this is the only way to do it.

Oh cool. Anyone know anything about the state of it? Ie, this is the use-case I had in mind: Currently using Marmalade (a C++-based system, uses basic classes/inheritance, but nothing too fancy) on Windows to develop iOS/Android stuff. Everything needs to be C/C++ (Marm's build system is unfortunately closed-source and tied to a specific set of C/C++ compilers). Ideally, it'd be fantastic if I could write my derived classes and such in D and just machine translate to C++ as a pre-build step. Although I suspect that's hoping for too much. So even just implementing certain non-class functions in D, translated to plain C, could be helpful. Any idea if it's up to this yet, or if not, what shortcomings there would be? Or staring points? (I haven't even used LDC or LLVM yet.) I'm sure anything using GC would be out of the question, of course. (Apologies, it's occurring to me know I probably should have put this whole thread in D.learn...)
Jul 13 2012