> On 4 Oct 2017, at 07:16, Chris Lattner via swift-evolution 
> <swift-evolution@swift.org> wrote:
> 
> 
>> On Oct 3, 2017, at 10:11 PM, Slava Pestov <spes...@apple.com 
>> <mailto:spes...@apple.com>> wrote:
>> 
>>>> 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.
>>> 
>>> The only argument I can imagine is the “If it gets inlined, you’re 
>>> guaranteed to get the version of the symbol you build against”.  The 
>>> concern is that some instances are inlined and some are not, and if the 
>>> inline and out of line versions diverge then you can have exciting problems.
>>> 
>>> My view on that is that you’ve already lost if you’d done this.  If you 
>>> mark a declaration as fragile (allowing it to be inlined) you’ve 
>>> specifically guaranteed that you’re not going to be changing the observable 
>>> semantics of the function.  Introducing new performance optimizations is 
>>> fine of course.
>> 
>> I understand your reasoning here, but note that in Jordan’s proposal, he’s 
>> adding two new keywords, exhaustive and nonexhaustive. If exhaustive becomes 
>> @fragile, does nonexhaustive still make sense?
> 
> Independently of how exhaustive is spelled, nonexhaustive doesn’t make sense 
> to me.  It should be the default.  Swift doesn’t have keywords to redundantly 
> specify the default unless there is a specific reason to be able to do that.  
> 
> The example often cited is “nonmutating”, but it isn’t there to cover the 
> default: it is specifically required because setters default to mutating so 
> it must exist to be change that default.

Happy to see I’m not the only one with this opinion.

> -Chris
> 
> _______________________________________________
> 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

Reply via email to