<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">2016-08-11 11:52 GMT+03:00 Jonathan Hull via swift-evolution <span dir="ltr">&lt;<a href="mailto:swift-evolution@swift.org" target="_blank">swift-evolution@swift.org</a>&gt;</span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Could someone explain in simple terms what the ABI is and what sorts of things might affect it?<br>
<br>
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.<br>
<br>
At the very least, I would think that mix-ins would have a fairly significant effect.</blockquote><div><br></div><div>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. </div></div></div></div>