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.

Reply via email to