<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On 16 November 2015 at 09:30, Marco Leise via Digitalmars-d <span dir="ltr"><<a href="mailto:digitalmars-d@puremagic.com" target="_blank">digitalmars-d@puremagic.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Am Mon, 16 Nov 2015 08:49:57 +0100<br>
schrieb Iain Buclaw via Digitalmars-d<br>
<<a href="mailto:digitalmars-d@puremagic.com">digitalmars-d@puremagic.com</a>>:<br>
<span class=""><br>
> There should be ways to catch ABI changes in the build or test process.<br>
> Maybe I'm misremembering something though. :-)<br>
><br>
> There should be a degree of ABI compatibility between releases for plain<br>
> static functions - assuming that we add no more properties to the<br>
> language.  That leaves what breaks the most in moving to a new version are<br>
> template instantiations, no?<br>
<br>
</span>Frankly I have no idea what level of testing is in place. :D<br>
To be practical for package maintainers, we would need some<br>
higher level common D ABI versioning scheme that includes<br>
Phobos. Then I could start grouping libraries by architecture<br>
and this ABI version instead of by compiler/FE version. But<br>
let's take baby steps here and first get DMD to use DWARF EH.<br>
Once we can dynamically link DMD<->GDC, DMD<->LDC, we can<br>
think about a stable Dlang ABI in terms of EH, function<br>
mangling, Phobos etc.<br></blockquote><div><br></div><div>A good litmus test would be to take the C++ ABI tests in the D2 testsuite, and convert the C++ sources to D.  Build one with DMD and the other with GDC.  If something segfaults or goes wrong at runtime, then raise a bug about how DMD doesn't pass parameters correctly. ;-)<br><br></div><div>Besides, I'd worry more about how DMD keeps changing the names of runtime hooks to be able to do things GDC has done for years.  With Dwarf EH thrown into the mix, there's now three functions that handle throwing objects (GDC still only has one).  Not cool man!<br><br></div></div></div></div>