I'd also like to understand this more and this answer does not completely satisfy me. I understand backwards compatibility, especially in terms of source breaking changes.
I have more difficulties understanding what breaks or not the ABI and how to make educated guesses about what features will require breaking it. > On 11 Aug 2016, at 13:24, Anton Zhilin via swift-evolution > <swift-evolution@swift.org> wrote: > > 2016-08-11 11:52 GMT+03:00 Jonathan Hull via swift-evolution > <swift-evolution@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@swift.org > https://lists.swift.org/mailman/listinfo/swift-evolution
_______________________________________________ swift-evolution mailing list swift-evolution@swift.org https://lists.swift.org/mailman/listinfo/swift-evolution