<div>Oh, and to add, the details of hashing may not need to be fully written out, but it would be nice to mention that it will follow existing standard library practice--or, if not, then why, and also any implications related to hash collision security issues. Moreover, it may be worth mentioning that the synthesized method involves mixing the _hashes_ of members and not their memory representation--though it may seem obvious.</div><div><br></div><div><br><div class="gmail_quote"><div>On Mon, May 15, 2017 at 17:21 Tony Allevato via swift-evolution <<a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div>Yes—the PR of the proposal is here: <a href="https://github.com/apple/swift-evolution/pull/706" target="_blank">https://github.com/apple/swift-evolution/pull/706</a><div><br></div><div>It needs to be updated slightly—I'll remove the references to the "multiplicative hash function" recommendation because I ended up using the existing _mixInt and xor, which is how the standard library implements its Collection hashValues. (The proposal probably really doesn't need to state anything about the hash function used, and its entirely an implementation detail.)</div><div><br></div></div><br><div class="gmail_quote"><div>On Mon, May 15, 2017 at 3:18 PM Andrew Bennett <<a href="mailto:cacoyi@gmail.com" target="_blank">cacoyi@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div>Nice work Tony! Is this proposal up for PR on swift-evolution as well?</div></div><div><div><br><div class="gmail_quote"><div>On Tue, 16 May 2017 at 7:30 am, Tony Allevato <<a href="mailto:tony.allevato@gmail.com" target="_blank">tony.allevato@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div>Just to update everyone on the thread—it took a little longer than I'd hoped to get the kinks out, but I finally have the implementation up as a PR: <a href="https://github.com/apple/swift/pull/9619" target="_blank">https://github.com/apple/swift/pull/9619</a><div><br></div><div>Hopefully there's still enough time to get the proposal reviewed, make any changes needed, and get this into Swift 4!</div><div><br></div></div><br><div class="gmail_quote"><div>On Tue, May 9, 2017 at 10:27 PM Brent Royal-Gordon <<a href="mailto:brent@architechies.com" target="_blank">brent@architechies.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word"><div><blockquote type="cite"><div>On May 9, 2017, at 3:53 PM, Tony Allevato via swift-evolution <<a href="mailto:swift-evolution@swift.org" target="_blank">swift-evolution@swift.org</a>> wrote:</div><br class="m_-7634931506526190142m_5760772590623056947m_-3114140352773685947m_5619269197906473925m_-7922117415000113549Apple-interchange-newline"><div><span style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;float:none;display:inline!important">Likewise, proposing a new public addition to the standard library would inspire far more design discussion than I believe we have time for if we want this to make Swift 4. :)</span></div></blockquote></div><div><br></div></div><div style="word-wrap:break-word"><div>Agreed. What I would do here is add an `_combineHashes` function (or `Hashable` extension method, or whatever is most convenient) to the standard library in Swift 4, have your compiler magic feature use it, and defer the name-and-interface discussion until Swift 5.</div></div><div style="word-wrap:break-word"><br><div>
<span class="m_-7634931506526190142m_5760772590623056947m_-3114140352773685947m_5619269197906473925m_-7922117415000113549Apple-style-span" style="border-collapse:separate;color:rgb(0,0,0);font-family:Helvetica;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-align:auto;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px"><div><div style="font-size:12px">-- </div><div style="font-size:12px">Brent Royal-Gordon</div><div style="font-size:12px">Architechies</div></div></span>
</div>
<br></div></blockquote></div>
</blockquote></div></div></div>
</blockquote></div>
_______________________________________________<br>
swift-evolution mailing list<br>
<a href="mailto:swift-evolution@swift.org" target="_blank">swift-evolution@swift.org</a><br>
<a href="https://lists.swift.org/mailman/listinfo/swift-evolution" rel="noreferrer" target="_blank">https://lists.swift.org/mailman/listinfo/swift-evolution</a><br>
</blockquote></div></div>