<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div class="">Hello all,</div><div class=""><br class=""></div><div class="">The review of SE-0007 “Remove C-style for-loops with conditions and incrementers” ran from December 7–10, 2015. The proposal has been&nbsp;<b class="">accepted</b>&nbsp;for Swift 3.0.</div><div class=""><br class=""></div><div class="">Thank you to everyone who participated in the review process! We had a lot of discussion around this proposal. For the most part, there was agreement that C-style for loops are quite rare in Swift code, and most of the existing uses would be better written as for-in loops. Much of the debate focused on two particular areas where the removal of C-style for loops could cause problems:</div><div class=""><br class=""></div><div class=""><span class="Apple-tab-span" style="white-space:pre">        </span>* Some loops are awkward to express cleanly with for-in, such as counting down, and there are advanced uses of C-style for loops that are hard to express otherwise. The core team feels that some of the awkwardness for simple loops (e.g., counting down) should be addressed by improvements in the Standard Library, and that the remaining, more advanced uses are not common enough to justify keeping C-style for loops in the language.</div><div class=""><br class=""></div><div class=""><span class="Apple-tab-span" style="white-space:pre">        </span>* Performance of the for-in loop lags behind that of the C-style for loop in some cases. The core team feels that optimizer improvements can close this performance gap, and that ‘while’ loops are an acceptable substitute for performance-critical code where the optimizer isn’t yet eliminating the abstractions used in the for-in loop.</div><div class=""><br class=""></div><div class=""><br class=""></div><div class="">We welcome implementations of this proposal! Because it involves the removal of an existing feature, the implementation will need to be staged across the two upcoming Swift releases:</div><div class=""><br class=""></div><div class=""><span class="Apple-tab-span" style="white-space:pre">        </span>* For Swift 2.2: introduce a warning to tell users that the C-style for loop is going away (covered by <a href="https://bugs.swift.org/browse/SR-226" class="">https://bugs.swift.org/browse/SR-226</a>)</div><div class=""><span class="Apple-tab-span" style="white-space:pre">        </span>* For Swift 3.0 (once we branch 2.2): actually remove C-style for loops (covered by <a href="https://bugs.swift.org/browse/SR-227" class="">https://bugs.swift.org/browse/SR-227</a>)</div><div class=""><br class=""></div><div class=""><div class="">For reference, the proposal document is here:</div><div class=""><div class=""><br class=""></div><div class=""><span class="Apple-tab-span" style="white-space: pre;">        </span>(<a href="https://github.com/apple/swift-evolution/blob/master/proposals/0007-remove-c-style-for-loops.md" class="">https://github.com/apple/swift-evolution/blob/master/proposals/0007-remove-c-style-for-loops.md</a>)</div></div></div><div class=""><br class=""></div><div class=""><span class="Apple-tab-span" style="white-space:pre">        </span>-&nbsp;Doug Gregor, Review Manager</div><div class=""><br class=""></div></body></html>