Re: [swift-evolution] [Accepted] SE-0191: Eliminate IndexDistance from Collection

2017-12-04 Thread Ben Cohen via swift-evolution

> On Dec 4, 2017, at 10:53, Karl Wagner  wrote:
> 
> But you noted in that thread that "(Int.min.. you can fit in an Int, and causes a crash today. If we remove IndexDistance, 
> that behaviour is locked-in, is it not?
> 

That behavior is going to be locked in whether we like it or not when we 
declare ABI stability of the Range type, irrespective of the presence of an 
IndexDistance associated type. An alternative design for Range would require 
reworking Int.Stride to be of size > Int, something that is probably not 
realistic even if resolving this issue merited it (which, IMO, it does not).

There are always going to be edge cases and unfortunate limitations. What we 
must guard against, when trying to reconcile them, is solutions that result in 
complexity (and often more edge cases…) far worse than the original problem. I 
see this as clearly the case here. IndexDistance is already too complex: 
confusing for beginners and annoying for experienced users. Increasing the 
complexity not just of Collection, but of Int’s conformance to Strideable, and 
of some of the most commonly used concrete types, in order to provide a 
marginal benefit, falls firmly on the wrong side of the cost/benefit analysis. 
This is, of course, a subjective judgement. But we mustn’t let this 
subjectivity paralyze us into resisting improvements in the hope of finding the 
perfect solution that everyone can agree is free of tradeoffs. Such solutions 
rarely exist.

> I would love to make generic programming against Collection more convenient, 
> but that seems like quite a large cost which wasn’t made clear in the 
> proposal. I also note that people only expressed support for the proposal 
> before Xiaodi pointed it out, and not afterwards (although its possible my 
> email program missed/misplaced some messages, it does happen...).
> 

The review ran through December 3rd. Xiaodi’s comment about range distances was 
on November 30th. There was plenty of time left in the review after it for 
further comment, and for those who originally endorsed but then realized this 
edge case changed matters to rescind their endorsement.

> - Karl
> 
>> On 4. Dec 2017, at 19:39, Ben Cohen via swift-evolution 
>> > wrote:
>> 
>> They will continue to conform to Collection just as they do today. 
>> Range.IndexDistance is already an Int.
>> 
>>> On Dec 4, 2017, at 10:35, Karl Wagner via swift-evolution 
>>> > wrote:
>>> 
>>> What does this mean for ranges of integers, as Xiaodi mentioned in the 
>>> review thread? Can they still conform to Collection? 
>>> 
>>> I think we really need clarification on that aspect. Personally, I would 
>>> consider it a deal-breaker.
>>> 
>>> - Karl
>>> 
 On 4. Dec 2017, at 18:57, Douglas Gregor via swift-evolution 
 > wrote:
 
 Proposal Link: 
 https://github.com/apple/swift-evolution/blob/master/proposals/0191-eliminate-indexdistance.md
  
 
 
 Hello Swift Community,
 
 The review of SE-0191 "Eliminate IndexDistance from Collection” ran from 
 November 27…December 3, 2017. The proposal is accepted. Feedback for this 
 simplification to the Collection protocols was positive.
 
 Thank you to everyone who participated in the review!
 
Doug Gregor
Review Manager
 ___
 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 
>>> 
>> 
>> ___
>> 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


Re: [swift-evolution] [Accepted] SE-0191: Eliminate IndexDistance from Collection

2017-12-04 Thread Karl Wagner via swift-evolution
But you noted in that thread that "(Int.min.. On 4. Dec 2017, at 19:39, Ben Cohen via swift-evolution 
>  wrote:
> 
> They will continue to conform to Collection just as they do today. 
> Range.IndexDistance is already an Int.
> 
>> On Dec 4, 2017, at 10:35, Karl Wagner via swift-evolution 
>> > wrote:
>> 
>> What does this mean for ranges of integers, as Xiaodi mentioned in the 
>> review thread? Can they still conform to Collection? 
>> 
>> I think we really need clarification on that aspect. Personally, I would 
>> consider it a deal-breaker.
>> 
>> - Karl
>> 
>>> On 4. Dec 2017, at 18:57, Douglas Gregor via swift-evolution 
>>> > wrote:
>>> 
>>> Proposal Link: 
>>> https://github.com/apple/swift-evolution/blob/master/proposals/0191-eliminate-indexdistance.md
>>>  
>>> 
>>> 
>>> Hello Swift Community,
>>> 
>>> The review of SE-0191 "Eliminate IndexDistance from Collection” ran from 
>>> November 27…December 3, 2017. The proposal is accepted. Feedback for this 
>>> simplification to the Collection protocols was positive.
>>> 
>>> Thank you to everyone who participated in the review!
>>> 
>>> Doug Gregor
>>> Review Manager
>>> ___
>>> 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
> 
> ___
> 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


Re: [swift-evolution] [Accepted] SE-0191: Eliminate IndexDistance from Collection

2017-12-04 Thread Ben Cohen via swift-evolution
They will continue to conform to Collection just as they do today. 
Range.IndexDistance is already an Int.

> On Dec 4, 2017, at 10:35, Karl Wagner via swift-evolution 
>  wrote:
> 
> What does this mean for ranges of integers, as Xiaodi mentioned in the review 
> thread? Can they still conform to Collection? 
> 
> I think we really need clarification on that aspect. Personally, I would 
> consider it a deal-breaker.
> 
> - Karl
> 
>> On 4. Dec 2017, at 18:57, Douglas Gregor via swift-evolution 
>> > wrote:
>> 
>> Proposal Link: 
>> https://github.com/apple/swift-evolution/blob/master/proposals/0191-eliminate-indexdistance.md
>>  
>> 
>> 
>> Hello Swift Community,
>> 
>> The review of SE-0191 "Eliminate IndexDistance from Collection” ran from 
>> November 27…December 3, 2017. The proposal is accepted. Feedback for this 
>> simplification to the Collection protocols was positive.
>> 
>> Thank you to everyone who participated in the review!
>> 
>>  Doug Gregor
>>  Review Manager
>> ___
>> 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

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


Re: [swift-evolution] [Accepted] SE-0191: Eliminate IndexDistance from Collection

2017-12-04 Thread Karl Wagner via swift-evolution
What does this mean for ranges of integers, as Xiaodi mentioned in the review 
thread? Can they still conform to Collection? 

I think we really need clarification on that aspect. Personally, I would 
consider it a deal-breaker.

- Karl

> On 4. Dec 2017, at 18:57, Douglas Gregor via swift-evolution 
>  wrote:
> 
> Proposal Link: 
> https://github.com/apple/swift-evolution/blob/master/proposals/0191-eliminate-indexdistance.md
>  
> 
> 
> Hello Swift Community,
> 
> The review of SE-0191 "Eliminate IndexDistance from Collection” ran from 
> November 27…December 3, 2017. The proposal is accepted. Feedback for this 
> simplification to the Collection protocols was positive.
> 
> Thank you to everyone who participated in the review!
> 
>   Doug Gregor
>   Review Manager
> ___
> 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