> On Oct 5, 2017, at 1:17 PM, Michael Ilseman via swift-evolution
> <[email protected]> wrote:
>
> Another benefit of the always-emit-into-client-and-omit-from-libary-binary is
> cross-call consistency. A function foo could change in a way such that *all*
> calls using either the new or old version is fine, but some interleaving of
> calls to new and old versions is invalid. Having to reason about and test
> interleaving is very difficult. This further extends to groups of functions
> that want to maintain a cross-function-group call consistency (e.g. multiple
> methods on a struct).
This is not true though, because any calls to the inlinable function from
inside its defining module will always use the ‘latest’ definition.
Or imagine if you link multiple frameworks that all inline different versions
of an inlinable function. I don’t think there’s a way to make the guarantee you
described.
Slava
_______________________________________________
swift-evolution mailing list
[email protected]
https://lists.swift.org/mailman/listinfo/swift-evolution