digitalmars.D.bugs - [Issue 19579] New: `-HC` option to emit C/C++ headers
- d-bugmail puremagic.com (36/36) Jan 12 2019 https://issues.dlang.org/show_bug.cgi?id=19579
https://issues.dlang.org/show_bug.cgi?id=19579 Issue ID: 19579 Summary: `-HC` option to emit C/C++ headers Product: D Version: D2 Hardware: All OS: All Status: NEW Severity: enhancement Priority: P1 Component: dmd Assignee: nobody puremagic.com Reporter: turkeyman gmail.com We have the `-H` option to emit a .di file from compilation, which contains modules reduced down to declarations. I would get a lot more value out of a feature that worked the same way, but emit a `.h` file containing only `extern(C)` and `extern(C++)` declarations. This would enable us to conveniently write code in D as primary, and link C++ as secondary. The current tendency, which is "write C++ code first, and then bind/link D as secondary", involves manually writing and maintaining D bindings against existing C++ code. If there was an option built into the D compiler to emit C headers from D compilation, then the binding effort disappears and creates a pressure to write your code in D first, since the binding effort becomes automated and resolved for you. This is one such subtle, yet quite substantial opportunity to remove some painful sources of friction, and help nudge people into making the switch; people can measure a tangible value in writing their D code first, because the binding is automated when approached from that direction. We need as many of these sources of gravity as we can muster. People who write D-first will also have a massive advantage in their binding success rate, in that they will not run into typical extern(C++) binding pain-points, like head-const pointers, or templating on class instance rather than class pointer, which are awkward cases that D has no expressions for. --
Jan 12 2019