Can we kill the D calling convention already?
Alex Rønne Petersen
xtzgzorex at gmail.com
Tue Apr 24 01:42:48 PDT 2012
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.
--
- Alex
More information about the Digitalmars-d
mailing list