After re-analyzing the magnitude of the project in light of the rather lukewarm response I've gotten so far, I think that I may indeed have to move to a wrapper system. I'm currently weighing my options:

extern(C++) interfaces: From what I understand, these are not well-supported outside of DMD, so I think that's out.

A C layer: This seems like the most practical option. I'm thinking about using pragma(msg) to generate C code directly from the D sources and just redirect the output into C source files. Hacky, but probably not too difficult to implement.

Using some sort of magic to directly work with the C++ mangling and ABI: Probably the most difficult option, but it would be kind of nifty and would get rid of the overhead of a C layer. Probably not worth the effort right now, especially considering that it would be heavily compiler-specific.

Reply via email to