On 5/8/13, Dicebot <m.stras...@gmail.com> wrote: > Well, that is one of rather inconvenient issues with D handling > of emitting symbols (this one kind of inherited from C++). > extern(X) defines both mangling and calling convention. You can't > have those separately now.
Yeah. I suppose the ideal situation would be to have extern(C) follow strict C mangling and calling convention (meaning no mangling for nested extern(C) symbols), and have a separate linkage(C) feature to be used when we want to set the linkage of a symbol (well, it's probably only useful for functions) but let the compiler mangle it any way it wants to (to avoid any symbol clashes). There's a pull request somewhere which enables setting custom mangle names for symbols, so we'll at least have the flexibility in picking symbol names that we need.