<div dir="ltr">First I see that Dmitri G. appears to be most involved with this yet in the other thread I see Dmitri H. being copied. So which/both of you involved with this effort? ...or are you one and the same given the similarity of the name? /me hopes he doesn&#39;t look like a total idiot now<div><br></div><div>Second given commit access limits it may make sense for those of us on the &quot;outside&quot; to work in same fork (e.g. added as collaborators)? It may help avoid pull request overhead between us while work is underway? My github identity is &quot;shawnce&quot;. I have a fork created <a href="https://github.com/shawnce/swift">https://github.com/shawnce/swift</a> if so desired to use that as the sandbox (set default branch to swift-3-indexing-model). ...looking for guidance on how best to make things work efficiently.</div><div><div><br></div><div>I am digging into <a href="https://github.com/apple/swift/blob/master/test/Prototypes/CollectionsMoveIndices.swift" rel="noreferrer" target="_blank" style="font-size:13px">https://github.com/apple/swift/blob/master/test/Prototypes/CollectionsMoveIndices.swift</a> to understand the scope of the work involved.</div><div><br></div><div><span><div><span style="font-size:13px">Anyway I am looking at the current state of the code and I see things like the following...</span></div><div><span style="font-size:13px"><div>   @available(*, unavailable, renamed=&quot;MutableCollection&quot;)</div><div>    public typealias MutableCollectionType = MutableCollection</div></span></div><div><span style="font-size:13px"><div>...so it looks like the use of Type is being dropped in the updated naming methodology? So this obviously implies... right?</div><div><div>//     [new]   protocol BidirectionalCollection : Collection {}</div><div>//     [new]   protocol RandomAccessCollection : BidirectionalCollection</div></div><div><br></div><div>I expect additional – hopefully less mundane :) – questions to popup as I dig into things.</div></span></div></span></div><div></div><div><br></div><div>-Shawn</div><div><br></div><div>As reference Dave outlined the following in the other email thread...</div><div>-----</div><div><span><span style="font-size:13px">Okay, I&#39;ve up a branch for you guys: swift-3-indexing-model.</span><br style="font-size:13px"><br style="font-size:13px"><span style="font-size:13px">* You can submit pull requests against that.</span><br style="font-size:13px"><br style="font-size:13px"><span style="font-size:13px">* There are corresponding branches in the swift-llvm and swift-clang</span><br style="font-size:13px"><span style="font-size:13px">  repos that this branch will build/test against.</span><br style="font-size:13px"><br style="font-size:13px"><span style="font-size:13px">* The branch is based on swift-3-api-guidelines, where we&#39;re doing all</span><br style="font-size:13px"><span style="font-size:13px">  the renaming work associated with the new guidelines; we expect to</span><br style="font-size:13px"><span style="font-size:13px">  merge that branch into master in a few days, so basing the indexing model</span><br style="font-size:13px"><span style="font-size:13px">  work on it should reduce conflicts when we merge this work.</span><br style="font-size:13px"><br style="font-size:13px"><span style="font-size:13px">Most of the stdlib team is currently occupied with other fires, but we</span><br style="font-size:13px"><span style="font-size:13px">want to move on to work on this ASAP.  If it&#39;s possible for you guys to</span><br style="font-size:13px"><span style="font-size:13px">get it started in the meantime, that would be truly awesome.</span><br style="font-size:13px"><span style="font-size:13px">Unfortunately the hardest part is right at the beginning.</span><br style="font-size:13px"><br style="font-size:13px"><span style="font-size:13px">The first step is to make the minimal changes required to get the</span><br style="font-size:13px"><span style="font-size:13px">standard library to build after replacing the Collection protocol with</span><br style="font-size:13px"><span style="font-size:13px">the three shown in the prototype.  That step may not be very</span><br style="font-size:13px"><span style="font-size:13px">parallelizable and might require either close coordination or for one of</span><br style="font-size:13px"><span style="font-size:13px">you to do it alone.  Tests will be horribly broken at this point, and</span><br style="font-size:13px"><span style="font-size:13px">you may have even commented out parts of the standard library, so this</span><br style="font-size:13px"><span style="font-size:13px">step requires intestinal fortitude.</span><br style="font-size:13px"><br style="font-size:13px"><span style="font-size:13px">If parts of the library have been disabled in step 1, next you can split</span><br style="font-size:13px"><span style="font-size:13px">up the work of getting the whole library to work.</span><br style="font-size:13px"><br style="font-size:13px"><span style="font-size:13px">At this point you should be able to mark the old Index protocols</span><br style="font-size:13px"><span style="font-size:13px">@unavailable and move on to fixing tests.</span></span><br></div><div><span><span style="font-size:13px">-----</span></span></div><div><span><span style="font-size:13px"><br></span></span></div><div><br></div><div><span><span style="font-size:13px"><span><div></div><div><br></div><div></div></span><br></span></span></div><div><br></div><div><div><div><br><div><br></div><div><br></div></div></div></div></div></div>