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

Reply via email to