Am 24.04.2012 10:42, schrieb Alex Rønne Petersen: > Writing portable code is hard enough as it is. Why do we have to have > some random, D-specialized calling convention (only on Win32 and only in > DMD)? The result of the current state of things is that extern(D) is > essentially useless - it has completely different meanings across > compilers. You cannot rely on it at all. If memory serves me right, both > LDC and GDC just alias it to extern(C), but DMD insists on using this > magical D calling convention on Win32. > > I'm not attacking the D ABI (name mangling) here, but I do think this > calling convention needs to either go away, or be optional (i.e. as some > extern() argument). We *have* to make extern(D) consistent across > compilers, or we'll be no better than the mess that is C and C++; we're > advertising a standard inline assembler with support for naked > functions, but that support is useless if we don't have a consistent > default calling convention. >
Introducing a commen calling convention would be one approach. The other would be to templatize D's inline assembler?
