On Wednesday, 8 May 2013 at 19:14:14 UTC, Andrej Mitrovic wrote:
On 5/8/13, Dicebot <m.stras...@gmail.com> wrote:
Well, pardon me, I probably have exceeded my allowed daily rant
limit :)

Don't worry, and I agree with you. But I think it's probably too late to actually change what a linkage specifier does for nested symbols. We might end up getting duplicate symbol definition errors (hello Optlink..) in completely unrelated libraries if mangling changes for
these symbols.

I've undestood, that function mangling is a difficult issue.
But what about extern variables?        
Obviously, when user write ("extern(C) extern int var;"), he want to get extern variable with C mangling. Another way: get second parameter (symbol name) to extern attribute.
E.g.
extern(C, "@FOO@")void FOO(int); //have C linkage and @FOO@ mangling extern(C)void FOO2(int); //have C linkage and C (or D, if FOO2 is local symbol) mangling extern("__FOO__") void FOO(int); //have D or System linkage and "__FOO__" mangling


However, I would like to mangling argument of extern attribute will be evaluatable form any string expression.
enum MANGLING = "@@@M@@@";
extern(D, MANGLING) int boo();

Reply via email to