You can argue the current status is a bug, but…

Welcome to Apple Swift version 4.0.1 (swiftlang-900.0.67 clang-900.0.38). Type 
:help for assistance.
  1> CountableRange<Int64>.IndexDistance.self
$R0: Int.Type = Int
  2> (Int64.min..<Int64.max).count
Execution interrupted. Enter code to recover and continue.

> On Nov 29, 2017, at 4:04 AM, Xiaodi Wu <xiaodi...@gmail.com> wrote:
> 
> So that we are all clear on the implications of this, if IndexDistance 
> becomes Int, ranges of integers will stop conforming to Collection, because 
> Int.min..<Int.max has Int.max * 2 elements, and Int64.min..<Int64.max has 
> potentially many more.
> 
> This would entail nontrivial source breakage.
> 
> 
> On Mon, Nov 27, 2017 at 22:02 Ben Cohen via swift-evolution 
> <swift-evolution@swift.org <mailto:swift-evolution@swift.org>> wrote:
> My suggestion would be: don’t have your Collection-like type conform to 
> Collection. Give it collection-like methods if you want them, like an 
> indexing and slicing subscript that takes an Int64. It can still conform to 
> Sequence.
> 
> In practice, these “huge” collections will be mostly used concretely, so 
> their Collection conformance doesn’t buy you much. The reality is that very 
> few generic uses on these types will succeed. You get a few things like 
> .first, .last etc. for free. But very few algorithms are written to handle > 
> Int.max lengths (several in the std lib don’t) – it just isn’t practical. And 
> meanwhile, this is a huge burden on many other use cases.
> 
> The existence of the memory mapped file case is hypothetical. I canvassed a 
> bit on twitter for some use cases. The only one I got back was where someone 
> was using IndexDistance to stash other information: but this isn’t really a 
> legal use of IndexDistance, since it must be numerically castable to other 
> integer types when needed which would be a lossy operation so at best, it 
> would just be an optimization.
> 
>> On Nov 27, 2017, at 19:29, Nevin Brackett-Rozinsky via swift-evolution 
>> <swift-evolution@swift.org <mailto:swift-evolution@swift.org>> wrote:
>> 
>> The proposal mentions one reasonable situation where a larger-than-Int type 
>> would be useful, namely a Collection wrapping a memory-mapped file, being 
>> used on 32-bit systems.
>> 
>> Is there a recommended migration strategy for this scenario?
>> 
>> Nevin
>> 
>> 
>> On Mon, Nov 27, 2017 at 8:34 PM, Douglas Gregor via swift-evolution 
>> <swift-evolution@swift.org <mailto:swift-evolution@swift.org>> wrote:
>> Hello Swift community,
>> 
>> The review of SE-0191 "Eliminate IndexDistance from Collection" begins now 
>> and runs through December 3, 2017. The proposal is available here:
>> 
>> https://github.com/apple/swift-evolution/blob/master/proposals/0191-eliminate-indexdistance.md
>>  
>> <https://github.com/apple/swift-evolution/blob/master/proposals/0191-eliminate-indexdistance.md>
>> Reviews are an important part of the Swift evolution process. All reviews 
>> should be sent to the swift-evolution mailing list at
>> 
>> https://lists.swift.org/mailman/listinfo/swift-evolution 
>> <https://lists.swift.org/mailman/listinfo/swift-evolution>
>> or, if you would like to keep your feedback private, directly to the review 
>> manager. When replying, please try to keep the proposal link at the top of 
>> the message:
>> 
>> Proposal link:
>> 
>> https://github.com/apple/swift-evolution/blob/master/proposals/0191-eliminate-indexdistance.md
>>  
>> <https://github.com/apple/swift-evolution/blob/master/proposals/0191-eliminate-indexdistance.md>
>> Reply text
>> Other replies
>>  <https://github.com/apple/swift-evolution#what-goes-into-a-review-1>What 
>> goes into a review?
>> 
>> The goal of the review process is to improve the proposal under review 
>> through constructive criticism and, eventually, determine the direction of 
>> Swift. When writing your review, here are some questions you might want to 
>> answer in your review:
>> 
>> What is your evaluation of the proposal?
>> Is the problem being addressed significant enough to warrant a change to 
>> Swift?
>> Does this proposal fit well with the feel and direction of Swift?
>> If you have used other languages or libraries with a similar feature, how do 
>> you feel that this proposal compares to those?
>> How much effort did you put into your review? A glance, a quick reading, or 
>> an in-depth study?
>> More information about the Swift evolution process is available at
>> 
>> https://github.com/apple/swift-evolution/blob/master/process.md 
>> <https://github.com/apple/swift-evolution/blob/master/process.md>
>> Thank you,
>> 
>> -Doug
>> 
>> Review Manager
>> 
>> 
>> _______________________________________________
>> swift-evolution mailing list
>> swift-evolution@swift.org <mailto:swift-evolution@swift.org>
>> https://lists.swift.org/mailman/listinfo/swift-evolution 
>> <https://lists.swift.org/mailman/listinfo/swift-evolution>
>> 
>> 
>> _______________________________________________
>> swift-evolution mailing list
>> swift-evolution@swift.org <mailto:swift-evolution@swift.org>
>> https://lists.swift.org/mailman/listinfo/swift-evolution 
>> <https://lists.swift.org/mailman/listinfo/swift-evolution>
> 
> _______________________________________________
> swift-evolution mailing list
> swift-evolution@swift.org <mailto:swift-evolution@swift.org>
> https://lists.swift.org/mailman/listinfo/swift-evolution 
> <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