> On Oct 3, 2017, at 9:56 PM, Chris Lattner <clatt...@nondot.org> wrote:
> 
>> 
>> On Oct 3, 2017, at 9:50 AM, Joe Groff <jgr...@apple.com 
>> <mailto:jgr...@apple.com>> wrote:
>> 
>> 
>> 
>>> On Oct 2, 2017, at 10:58 PM, Chris Lattner via swift-evolution 
>>> <swift-evolution@swift.org <mailto: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. 
> 
> I disagree.  The semantics being proposed perfectly overlap with the 
> transitional plan for overlays (which matters for the next few years), but 
> they are the wrong default for anything other than overlays and the wrong 
> thing for long term API evolution over the next 20 years.

Can you elaborate on this? If inlinable functions have public entry points, the 
version in the framework may or may not be called… because of SIL serialization 
and inlining. Since the existence of the public entry point doesn’t offer much 
of a guarantee, it seems desirable to not have the public entry point. For 
example if the inlinable function is not used elsewhere in the framework, we 
wouldn’t have to emit it at all. This might make the standard library smaller 
for instance.

However I’m still waiting for Dave or Jordan to chime in with the original 
justification for the ‘always emit into client’ behavior. IIRC there was a 
resilience-related argument too, but I don’t remember what it is now.

Slava

> 
> -Chris

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

Reply via email to