<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="">They’re still in Swift 3. Did something go wrong, or will they simply not show up in the final Swift 3.0?</div><br class=""><div><blockquote type="cite" class=""><div class="">On 10 Aug 2016, at 22:28, Dave Abrahams &lt;<a href="mailto:dabrahams@apple.com" class="">dabrahams@apple.com</a>&gt; wrote:</div><br class="Apple-interchange-newline"><div class=""><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><span style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">on Wed Aug 10 2016, Tim Vermeulen &lt;</span><a href="http://tvermeulen-at-me.com/" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;" class="">tvermeulen-AT-me.com</a><span style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">&gt; wrote:</span><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><blockquote type="cite" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;" class="">Some protocols of SE-0104 seem to be part of the latest Swift 3<br class="">snapshots (Arithmetic, FixedWidthInteger, etc) - was this a mistake<br class="">then, if they won’t be in Swift 3.0?<br class=""></blockquote><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><span style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">Yes, they've been pulled out of the release branch:</span><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><a href="https://github.com/apple/swift/pull/4112#issuecomment-238451509" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;" class="">https://github.com/apple/swift/pull/4112#issuecomment-238451509</a><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><blockquote type="cite" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;" class=""><br class=""><br class=""><blockquote type="cite" class="">on Wed Aug 10 2016, Ben Rimmington&lt;<a href="http://me-AT-benrimmington.com" class="">me-AT-benrimmington.com</a>&gt;wrote:<br class=""><br class=""><blockquote type="cite" class=""><blockquote type="cite" class="">On 10 Aug 2016, at 00:36, Dave Abrahams wrote:<br class=""><br class=""><blockquote type="cite" class="">on Tue Aug 09 2016, Ben Rimmington wrote:<br class=""><br class=""><blockquote type="cite" class="">On 9 Aug 2016, at 20:09, Dave Abrahams wrote:<br class=""></blockquote></blockquote></blockquote><br class=""><blockquote type="cite" class=""><blockquote type="cite" class=""><blockquote type="cite" class=""><br class="">Hi Everybody,<br class=""><br class="">With another round of apologies for taking late action, we propose to<br class="">make some deprecations, moves, and renames. The background for these<br class="">moves is as follows:<br class=""><br class="">We've always known that when Swift reached ABI stability<br class="">(now slated for<br class="">Swift 4), we would be committed to supporting many of the standard<br class="">library's design decisions for years to come. What we only realized<br class="">very recently is that, although Swift 3.0 is *not* shipping with a<br class="">stable ABI, the promise that Swift 3.0 code will work with Swift 4.0<br class="">code creates similar implications when it comes to certain protocols,<br class="">today. Especially where these protocols show up in refinement<br class="">hierarchies, we can't keep Swift 3 code working in the future without<br class="">carrying them forward into future libraries.<br class=""><br class="">The proposed changes are as follows:<br class=""><br class="">* Move `CustomPlaygroundQuickLookable` to the<br class="">PlaygroundSupport module.<br class="">This component is really only useful for playgrounds, and doesn't<br class="">belong in the standard library.<br class=""></blockquote><br class="">I didn't think it was possible to `import PlaygroundSupport` unless the<br class="">current file is within a playground. If so, how can corelibs-foundation<br class="">or third-party modules add `CustomPlaygroundQuickLookable`<br class="">conformance?<br class=""></blockquote><br class="">Ahhh... yeah, I didn't realize that, and we don't have time to change<br class="">that restriction for Swift 3. It's not a problem for<br class="">corelibs-foundation but it would be for 3rd-party libraries.<br class=""><br class="">OK, Dmitri and I just figured out how we can change the home of these<br class="">types for Swift 4 without breaking Swift 3 code (mirrors to the rescue!)<br class="">So I'm going to withdraw this part of the proposal.<br class=""></blockquote><br class="">Will the following need to be reverted?<br class=""><br class="">&lt;<a href="https://github.com/apple/swift/pull/4089" class="">https://github.com/apple/swift/pull/4089</a>&gt;<br class=""><br class="">&lt;<a href="https://github.com/apple/swift-xcode-playground-support/commit/aab7af4" class="">https://github.com/apple/swift-xcode-playground-support/commit/aab7af4</a>&gt;<br class="">&lt;<a href="https://github.com/apple/swift-xcode-playground-support/commit/865fd0c" class="">https://github.com/apple/swift-xcode-playground-support/commit/865fd0c</a>&gt;<br class="">&lt;<a href="https://github.com/apple/swift-xcode-playground-support/commit/ab605ef" class="">https://github.com/apple/swift-xcode-playground-support/commit/ab605ef</a>&gt;<br class="">&lt;<a href="https://github.com/apple/swift-xcode-playground-support/commit/4bd6575" class="">https://github.com/apple/swift-xcode-playground-support/commit/4bd6575</a>&gt;<br class="">&lt;<a href="https://github.com/apple/swift-xcode-playground-support/commit/acee2e1" class="">https://github.com/apple/swift-xcode-playground-support/commit/acee2e1</a>&gt;<br class=""></blockquote>Technically, no, because typealiases make it unnecessary, but yes, we<br class="">plan to do that.<br class=""><br class=""><blockquote type="cite" class=""><blockquote type="cite" class=""><blockquote type="cite" class=""><blockquote type="cite" class="">* Deprecate the Indexable protocols with a message<br class="">indicating that they<br class="">will be gone in Swift 4. These protocols are implementation details<br class="">of the standard library designed to work around language limitations<br class="">that we expect to be gone in Swift 4. There's no reason for anyone to<br class="">ever touch these; users should always use a corresponding Collection<br class="">protocol (e.g. instead of MutableIndexable, use MutableCollection).<br class=""><br class="">* Deprecate the ExpressibleByStringInterpolation protocol with a<br class="">message indicating that its design is expected to change. We know<br class="">this protocol to be mis-designed<br class="">(<a href="https://bugs.swift.org/browse/SR-1260" class="">https://bugs.swift.org/browse/SR-1260</a>) and limited<br class="">(<a href="https://bugs.swift.org/browse/SR-2303" class="">https://bugs.swift.org/browse/SR-2303</a>), but there's no time<br class="">to fix it<br class="">for Swift 3. If we knew what the new design should look like, we<br class="">might be able to calculate that the current API is supportable in a<br class="">forward-compatible way (as we do for Comparable). Unfortunately, we<br class="">do not.<br class=""><br class="">* Rename Streamable to TextOutputStreamable and add a deprecated<br class="">Streamable typealias for it. Now that OutputStream been renamed to<br class="">TextOutputStream, we should also move Streamable out of the way.<br class=""></blockquote></blockquote></blockquote><br class="">In apple/swift#4131, these lines have overrun the 80 column limit:<br class=""><br class="">&lt;<a href="https://github.com/apple/swift/blob/f2443f4/stdlib/public/core/Mirror.swift#L843" class="">https://github.com/apple/swift/blob/f2443f4/stdlib/public/core/Mirror.swift#L843</a>&gt;<br class="">&lt;<a href="https://github.com/apple/swift/blob/f2443f4/stdlib/public/core/Mirror.swift#L893" class="">https://github.com/apple/swift/blob/f2443f4/stdlib/public/core/Mirror.swift#L893</a>&gt;<br class=""><br class="">&lt;<a href="https://github.com/apple/swift/blob/f2443f4/stdlib/public/core/Print.swift#L177" class="">https://github.com/apple/swift/blob/f2443f4/stdlib/public/core/Print.swift#L177</a>&gt;<br class="">&lt;<a href="https://github.com/apple/swift/blob/f2443f4/stdlib/public/core/Print.swift#L228" class="">https://github.com/apple/swift/blob/f2443f4/stdlib/public/core/Print.swift#L228</a>&gt;<br class=""><br class="">TextFormatting.rst also needs `Streamable` =&gt;`TextOutputStreamable`:<br class=""><br class="">&lt;<a href="https://github.com/apple/swift/blob/master/docs/TextFormatting.rst" class="">https://github.com/apple/swift/blob/master/docs/TextFormatting.rst</a>&gt;<br class=""></blockquote>Pull requests gratefully accepted for all of these corrections<br class=""><br class=""><blockquote type="cite" class=""><blockquote type="cite" class=""><blockquote type="cite" class=""><blockquote type="cite" class="">Deprecation is being proposed instead of underscoring or renaming<br class="">because it allows existing code to keep working (with warnings). At<br class="">this late stage, it would be bad to actually break anything.<br class=""></blockquote><br class="">If the SE-0104 (protocol-oriented integers) proposal has been deferred,<br class="">should any protocols (e.g. SignedNumber) be deprecated?<br class=""></blockquote></blockquote><br class="">Will the SE-0104 proposal be accepted for Swift 4.0?<br class=""></blockquote>It is expected to be. We may even be able to get it into a Swift 3<br class="">point-release (e.g. 3.1)<br class=""><br class="">--<br class="">Dave<br class=""><br class=""><br class=""><br class=""></blockquote></blockquote><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><span style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">--<span class="Apple-converted-space">&nbsp;</span></span><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><span style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">-Dave</span></div></blockquote></div><br class=""></body></html>