On Tue, 28 May 2013 17:13:59 -0400, David Nadlinger <s...@klickverbot.at>
wrote:
On Tuesday, 28 May 2013 at 19:01:00 UTC, Steven Schveighoffer wrote:
Nothing is breakage before shared library support is ready. And it's
almost ready...
This comment makes me slightly nervous, as I think even then, we
shouldn't be too quick to commit to ABI stability. Quite on the
contrary, we need to make sure to aggressively tell users that they
can't expect two pieces D code that were not compiled with the exact
same compiler version to interoperate.
Like it or not, dynamic library support means we need to pay more
attention to ABI breakage. People will complain about what largely is not
really a problem (since code is statically compiled, you essentially build
it every time anyway).
This isn't to say we can't put a big fat warning, but we will have to
resist a new onslaught of "please don't release this compiler, it breaks
all my customer's installations!" complaints.
One of the reasons is that we keep breaking ABI compatibility in Phobos
with just about every single release.
Again, this isn't a huge issue when everything is static. When things are
dynamic, you can't even be sure what the target system HAS on it,
stability is really important.
And the more important and fundamental one is that we don't actually
have a well-defined ABI right now (i.e. that is actually documented in
the spec), which would also need to be actually implementable by all of
DMD, GDC and LDC. Not to mention the many quirks and bugs in the current
implementation.
That has to be resolved too, but it may not be as interesting to someone
who wants to fix mangling. We can accept both fixes simultaneously :)
-Steve