Long symbol names (Was: demangle doesn't work with...)

Steven Schveighoffer schveiguy at yahoo.com
Tue May 28 15:26:08 PDT 2013


On Tue, 28 May 2013 17:13:59 -0400, David Nadlinger <see at 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


More information about the Digitalmars-d mailing list