[swift-evolution] ABI in Layman's terms?

Charlie Monroe charlie at charliemonroe.net
Thu Aug 11 06:41:05 CDT 2016

This article has helped me a lot:

https://github.com/apple/swift/blob/master/docs/ABI.rst <https://github.com/apple/swift/blob/master/docs/ABI.rst>

And generally all the documents in the docs folder will paint a nice picture of what to expect. Not that I would say that I fully understand the ABI, but I think that after reading all the docs I will have a better way of understanding what to expect.

> On Aug 11, 2016, at 1:33 PM, Jonathan Hull via swift-evolution <swift-evolution at swift.org> wrote:
> Right, I understand that part.  ABI stability means that we can run past binaries without recompiling.
> What I want to know is what sorts of things affect this stability and which things don’t.  I guess I want heuristics for knowing whether an idea will affect the ABI, and thus needs to be talked about now.  I don’t want to distract from the process by proposing features which can be tackled later, but at the same time I REALLY don’t want to wait until phase 2 and then be told the feature can never be added because it would break the ABI (and I should have proposed it during phase 1).
> Thanks,
> Jon
>> On Aug 11, 2016, at 4:24 AM, Anton Zhilin <antonyzhilin at gmail.com <mailto:antonyzhilin at gmail.com>> wrote:
>> 2016-08-11 11:52 GMT+03:00 Jonathan Hull via swift-evolution <swift-evolution at swift.org <mailto:swift-evolution at swift.org>>:
>> Could someone explain in simple terms what the ABI is and what sorts of things might affect it?
>> I had thought it was the layout in memory of structs/classes/etc… and how the program knows where to go to find a particular field.  This seems to be incorrect though, as I have seen many features that I would assume have some affect on this layout ruled “out of scope for phase 1”.  For example, I would think that many generics features would have an impact on the ABI, or the idea of COW (via secret boxing) for structs, or even union types.
>> At the very least, I would think that mix-ins would have a fairly significant effect.
>> ABI stability means that changes will have to be backwards compatible after a certain stage. If we can add mixins feature without modifying old code (and its SIL and IR and whatever), then we are fine. 
> _______________________________________________
> swift-evolution mailing list
> swift-evolution at swift.org
> https://lists.swift.org/mailman/listinfo/swift-evolution

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20160811/e8ae9c31/attachment.html>

More information about the swift-evolution mailing list