> On Oct 2, 2017, at 10:58 PM, Chris Lattner via swift-evolution 
> <swift-evolution@swift.org> wrote:
> 
>> We have discussed adding a "versioned @inlinable" variant that preserves the 
>> public entry point for older clients, while making the declaration inlinable 
>> for newer clients. This will likely be a separate proposal and discussion.
>> 
> 5) It eliminates this complexity.

It wouldn't avoid the complexity, because we want the "non-ABI, 
always-emit-into-client" behavior for the standard library. For the 
soon-to-be-ABI-stable libraries where @inlinable even matters, such as the 
standard library and Apple SDK overlays, there's pretty much perfect overlap 
between things we want to inline and things we don't want to take up binary 
space and ABI surface in binaries, so the behavior Slava proposes seems like 
the right default. With these semantics, the only time an inlinable declaration 
needs an exported symbol is for backward deployment, and we're inevitably going 
to need "versioned" as a general backward deployment concept for other things.

-Joe

_______________________________________________
swift-evolution mailing list
swift-evolution@swift.org
https://lists.swift.org/mailman/listinfo/swift-evolution

Reply via email to