I think the best solution is Chris Lattner’s suggestion (responding to 
DictionaryLiteral) to split the shaky stuff into an overlay for Swift standard 
library to maintain compatibility.

> On Jan 10, 2018, at 2:12 PM, Greg Parker via swift-evolution 
> <swift-evolution@swift.org> wrote:
> 
> 
>> On Jan 9, 2018, at 6:50 PM, Jon Hull via swift-evolution 
>> <swift-evolution@swift.org <mailto:swift-evolution@swift.org>> wrote:
>> 
>>> On Jan 9, 2018, at 6:30 PM, Nevin Brackett-Rozinsky via swift-evolution 
>>> <swift-evolution@swift.org <mailto:swift-evolution@swift.org>> wrote:
>>> 
>>> I’m just spitballing here, and I’m not an expert on matters of ABI, however 
>>> the thought occurs to me that the current all-or-nothing approach might 
>>> lead to suboptimal results.
>>> 
>>> In particular, some recent discussions on this list have mentioned that 
>>> certain parts of the standard library, such as Mirror, really ought to be 
>>> redesigned. But their current shape is on track to be baked into the 
>>> permanent ABI, even though we know right now that we can do better.
>>> 
>>> Has any consideration been given to the possibility of carving out specific 
>>> exemptions to ABI stability for Swift 5, and saying something like, “The 
>>> entire ABI will be stabilized, except for Mirror (and possibly a small 
>>> number of other things)”?
>>> 
>>> That way we can nail down almost all of the ABI, while still being able to 
>>> fix the parts that we can already see need fixing. Perhaps I am being naive 
>>> here, and I’m sure there are major aspects I am unaware of, but from my 
>>> layperson’s perspective it seems rather silly to tie ourselves to a legacy 
>>> implementation that we want to redesign.
>> 
> 
>> I would like to be even more conservative, only locking down the things we 
>> know we have received actual human attention of some sort. The 
>> all-or-nothing approach is actively harmful in my mind.
> 
> This model is unlikely to work well. 
> 
> Any feature that lacks stable ABI is equivalent to saying "if you use this 
> feature in your app then your app will crash or worse on some future OS 
> version". That in turn leads to two likely outcomes:
> 1. Apps use the feature. In some future OS version we break them and they 
> crash. Users are unhappy.
> 2. Apps use the feature. In some future OS version we decide that we can't 
> afford to break them. The "unstable" ABI becomes locked down anyway.
> 
> I think we're more likely to simply delete a feature with no replacement than 
> to do the above.
> 
> 
> -- 
> Greg Parker     gpar...@apple.com <mailto:gpar...@apple.com>     Runtime 
> Wrangler
> 
> 
> _______________________________________________
> 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