Incorporating D

Adam D. Ruppe destructionator at gmail.com
Fri Jan 25 13:01:46 PST 2013


On Friday, 25 January 2013 at 20:45:22 UTC, Szymon wrote:
> 1) Is D2 really ready for production code?

I use it and very rarely hit compiler bugs. Really depends what 
combination of features you use: I tend to stick to more 
conservative parts of the language, and have very few problems. 
Other people can't write ten lines without something going wrong 
though.

> Is it true that D has GC problems?

It is slow. If speed is a worry, you'll want to keep away. If 
not, it gets the job done well enough.

> 2) Is there a way to start adding D code to a C++ projects?

Yes. You'll need to expose parts of the D code as extern(C) or 
extern(C++) to interface with it, and remember to initialize the 
D  runtime.

This is something I did for a different thing (on Linux too, 
haven't tried on Windows) and it isn't really documented, but if 
you grab this zip:

http://arsdnet.net/dcode/dtocpp.zip

And check out testcpp.d and test.cpp, you can see some 
interaction. Notice that the main() function is in C++, and they 
are statically linked together. Functions, data, and even some 
classes (notice the extern(C++) interface in testcpp.d, which is 
inherited froma D class: Cat, and a C++ class, Dog) can interact 
between the two languages.

Indeed, in that zip is also a program called dtoh, which reads a 
json file generated by dmd, and outputs a C++ interface for it. 
The Makefile shows the commands, albeit assuming Linux.



Statically linking C++ and D on Windows 32 bit is a pain in the 
ass. You probably want to avoid that entirely. But doing a DLL 
isn't as bad... I've used C++ dlls from D exes before, but not 
the other way around. Still though, it should be doable and not 
terribly much different than the static example.

> 3) Is it possible to use D on iOS?

Not at this time.


More information about the Digitalmars-d mailing list