On Monday, 10 April 2017 at 23:27:35 UTC, Walter Bright wrote:
The next problem is that dmd occasionally changes the interface
to the D runtime. […] I also do not know how the gdc/lds
druntime
interfaces differ.
Just to make this very clear to everybody reading this thread:
It's not even just that, but also the fact that we guarantee
API-, but not ABI-stability for Phobos. Every time we continue to
improve the pure/nothrow/@nogc situation by marking up some more
code, we are breaking the ABI, because the mangled names of the
involved symbols change. The ongoing work on `scope` also breaks
the ABI when enabled.
Yes, there are also some differences between the DMD/GDC/LDC
runtime interfaces, but this is a comparatively very minor issue
that doesn't make sense worrying too much about as long as ABI
compatibility between releases isn't going to happen for other
reasons such as the above. [1]
— David
[1] In fact, it looks like – for example with DMD moving to
libunwind-based EH as well – the issue is slowly resolving itself
anyway and at some point we'll merely have to sit down for a week
and iron out the last few kinks.