Warning, ABI breakage from 2.074 to 2.075

Joakim via Digitalmars-d digitalmars-d at puremagic.com
Thu May 25 09:40:15 PDT 2017


On Thursday, 25 May 2017 at 16:16:19 UTC, Patrick Schluter wrote:
> On Thursday, 25 May 2017 at 14:36:43 UTC, Jonathan M Davis 
> wrote:
>>[...]
> Could someone please explain why people talk always of ABI 
> compatibilty while what is described would imo better 
> classified as API compatibilty. ABI is the way parameter are 
> passed to functions i.e. which parameters go to which register 
> and is defined by the platform, while the API is the set of 
> signature of a library. I find it a bit disturbing that at each 
> release the ABI would change, while that is generally something 
> which is (should) be extremely stable.
> The only time I have been confronted with an ABI (C) change 
> within a platform was in the transition from Solaris 9 to 
> Solaris 10 where the way structs were returned from functions 
> changed.
> TL;DR is there a confusion between ABI and API or does the 
> calling conventions change at every release?

The calling convention is only one aspect of an ABI:

https://dlang.org/spec/abi.html

For example, David notes in that Debian thread that every time 
attributes are added to druntime functions, their mangling 
changes, ie the ABI changes.


More information about the Digitalmars-d mailing list