<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body dir="auto"><div>This is very close to my priority list. That said, I think that all of these are out of scope for swift 3 sadly. </div><div id="AppleMailSignature"><br></div><div id="AppleMailSignature">After Swift 3, the priority list will be driven by what the standard library needs to get its APIs realized in their ideal form (eg without any of the _ protocol hacks). Conditional conformances certainly top the list, but we will have to carefully and ruthlessly prioritize things in order to get to ABI stability.</div><div id="AppleMailSignature"><br><div>-Chris</div></div><div><br>On May 31, 2016, at 2:16 PM, Matthew Johnson <<a href="mailto:matthew@anandabits.com">matthew@anandabits.com</a>> wrote:<br><br></div><blockquote type="cite"><div><meta http-equiv="Content-Type" content="text/html charset=utf-8"><br class=""><div><blockquote type="cite" class=""><div class="">On May 31, 2016, at 2:56 PM, Austin Zheng via swift-evolution <<a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" class="">This is pretty much where my thinking about the topic has led me as well. I'll resign this topic to pursue some other, hopefully more relevant work, although anyone who wants to continue the discussion is welcome to.</div></div></blockquote><div><br class=""></div><div>Seems reasonable to wait until we can at least evaluate the macro approach properly.</div><div><br class=""></div><div>Are you planning to continue work on generics? FWIW, my top priority list for items without proposals is roughly:</div><div><br class=""></div><div>1. Conditional conformance (<a href="https://github.com/apple/swift/blob/master/docs/GenericsManifesto.md#conditional-conformances-" class="">https://github.com/apple/swift/blob/master/docs/GenericsManifesto.md#conditional-conformances-</a>)</div><div>2. Parameterized extensions (<a href="https://github.com/apple/swift/blob/master/docs/GenericsManifesto.md#parameterized-extensions" class="">https://github.com/apple/swift/blob/master/docs/GenericsManifesto.md#parameterized-extensions</a>)</div><div>3. Generic subscripts (<a href="https://github.com/apple/swift/blob/master/docs/GenericsManifesto.md#generic-subscripts" class="">https://github.com/apple/swift/blob/master/docs/GenericsManifesto.md#generic-subscripts</a>)</div><div>4. Recursive protocol constraints (<a href="https://github.com/apple/swift/blob/master/docs/GenericsManifesto.md#nested-generics" class="">https://github.com/apple/swift/blob/master/docs/GenericsManifesto.md#nested-generics</a>)</div><div>5. Nested generics (<a href="https://github.com/apple/swift/blob/master/docs/GenericsManifesto.md#nested-generics" class="">https://github.com/apple/swift/blob/master/docs/GenericsManifesto.md#nested-generics</a>)</div><div>6. Default generic arguments (<a href="https://github.com/apple/swift/blob/master/docs/GenericsManifesto.md#default-generic-arguments" class="">https://github.com/apple/swift/blob/master/docs/GenericsManifesto.md#default-generic-arguments</a>)</div><div>7. Extensions of structural types (<a href="https://github.com/apple/swift/blob/master/docs/GenericsManifesto.md#extensions-of-structural-types" class="">https://github.com/apple/swift/blob/master/docs/GenericsManifesto.md#extensions-of-structural-types</a>)</div><div><br class=""></div><div>And this one seems like low hanging fruit:</div><div><br class=""></div><div>Default implementations in protocols (<a href="https://github.com/apple/swift/blob/master/docs/GenericsManifesto.md#default-implementations-in-protocols-" class="">https://github.com/apple/swift/blob/master/docs/GenericsManifesto.md#default-implementations-in-protocols-</a>)</div><div><br class=""></div><div>How does this compare to your priorities for generics?</div><div><br class=""></div><blockquote type="cite" class=""><div class=""><div class="gmail_extra"><br class=""><div class="gmail_quote">On Tue, May 31, 2016 at 12:49 PM, Chris Lattner <span dir="ltr" class=""><<a href="mailto:clattner@apple.com" target="_blank" class="">clattner@apple.com</a>></span> wrote:<br class=""><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word" class=""><br class=""><div class=""><span class=""><blockquote type="cite" class=""><div class="">On May 31, 2016, at 12:17 PM, L Mihalkovic via swift-evolution <<a href="mailto:swift-evolution@swift.org" target="_blank" class="">swift-evolution@swift.org</a>> wrote:</div><br class=""><div class=""><div style="word-wrap:break-word" class=""><div class="">well there is no macro system, and for the moment a clear statement from chris that this is not on the table in the short term. the code in the example looked like run-of-the-mill swift, except for the “…". so that leaves us with swift looking code that would be executed by the compiler, but with nothing particular to tell which parts to and which not. just a thought.</div></div></div></blockquote><div class=""><br class=""></div></span>Lets be clear though: variadic generics are not in scope for Swift 3 either. </div><div class=""><br class=""></div><div class="">I definitely don’t speak for the rest of the core team, nor have I discussed it with them… but IMO, this whole feature seems like a better fit for a macro system than it does to complicate the generics system. Unlike C++’s template system, our generics system inherently has runtime / dynamic dispatch properties, and I don’t think that shoehorning variadics into it is going to work out well.</div><span class="HOEnZb"><font color="#888888" class=""><div class=""><br class=""></div><div class="">-Chris</div></font></span><div class=""><br class=""><blockquote type="cite" class=""><div class=""><span class=""><div style="word-wrap:break-word" class=""><div class=""><br class=""></div><br class=""><div class=""><blockquote type="cite" class=""><div class="">On May 31, 2016, at 7:59 PM, Austin Zheng <<a href="mailto:austinzheng@gmail.com" target="_blank" class="">austinzheng@gmail.com</a>> wrote:</div><br class=""><div class=""><div dir="ltr" class="">How so? I'm interested in anything that can get us away from having to generating code at compile-time.<div class=""><div class="gmail_extra"><br class=""><div class="gmail_quote">On Tue, May 31, 2016 at 10:04 AM, L. Mihalkovic <span dir="ltr" class=""><<a href="mailto:laurent.mihalkovic@gmail.com" target="_blank" class="">laurent.mihalkovic@gmail.com</a>></span> wrote:<br class=""><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="auto" class=""><span class=""><div class=""><br class=""></div><div class="">What's interesting about the code in the manifesto is that it looks very much like "..." is a runtime construct, as opposed to trying the get the compiler to do the heavy lifting.<br class=""></div></span></div></blockquote><div class=""><br class=""></div></div></div></div></div>
</div></blockquote></div><br class=""></div></span><span class="">_______________________________________________<br class="">swift-evolution mailing list<br class=""><a href="mailto:swift-evolution@swift.org" target="_blank" class="">swift-evolution@swift.org</a><br class=""><a href="https://lists.swift.org/mailman/listinfo/swift-evolution" target="_blank" class="">https://lists.swift.org/mailman/listinfo/swift-evolution</a><br class=""></span></div></blockquote></div><br class=""></div></blockquote></div><br class=""></div>
_______________________________________________<br class="">swift-evolution mailing list<br class=""><a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a><br class=""><a href="https://lists.swift.org/mailman/listinfo/swift-evolution">https://lists.swift.org/mailman/listinfo/swift-evolution</a><br class=""></div></blockquote></div><br class=""></div></blockquote></body></html>