<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="">Hi Pushkar,<div class=""><br class=""><div><blockquote type="cite" class=""><div class="">On Nov 30, 2016, at 6:39 AM, Pushkar N Kulkarni <<a href="mailto:pushkar.nk@in.ibm.com" class="">pushkar.nk@in.ibm.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><font face="Verdana,Arial,Helvetica,sans-serif" size="2" class=""><div style="font-size: small; font-family: Verdana, Arial, Helvetica, sans-serif;" class="">Thanks Tony, for the detailed explanation! </div><div style="font-size: small; font-family: Verdana, Arial, Helvetica, sans-serif;" class=""><br class=""></div><div style="font-size: small; font-family: Verdana, Arial, Helvetica, sans-serif;" class=""> I think I need a bit more clarification though :)</div><div style="font-size: small; font-family: Verdana, Arial, Helvetica, sans-serif;" class=""><br class=""></div><div style="font-size: small; font-family: Verdana, Arial, Helvetica, sans-serif;" class=""><span style="font-family: 'Default Sans Serif', Verdana, Arial, Helvetica, sans-serif;" class="">>>><i class=""> Now, nothing in the value type contract says that you cannot have computed properties on a value type. Also, value types are not necessarily “pure”, in the sense that they ignore all external input. What this means for time zone is that its identifier can change depending on user preferences, if its value is “autoupdating". If you set its value to a specific time zone instead, then it does not have the value of “autoupdating" and its computed properties do not behave that way.</i></span></div><div style="font-size: small;" class=""><font face="Default Sans Serif, Verdana, Arial, Helvetica, sans-serif" class=""><i class=""><br class=""></i></font></div><div class=""><font class=""><font face="Default Sans Serif, Verdana, Arial, Helvetica, sans-serif" size="2" class=""><font face="Sans Serif, Verdana, Arial, Helvetica, sans-serif" class="">Please c</font>orrect me if I am wrong<font face="Sans Serif, Verdana, Arial, Helvetica, sans-serif" class=""> in deriving these from the above:</font></font></font></div><div style="font-size: small;" class=""><font face="Default Sans Serif, Verdana, Arial, Helvetica, sans-serif" class="">1. `NSTimezone.local` will be a computed type property, which when invoked can return different values (based on user preferences - an external factor) at different points in application's lifetime.</font></div><div style="font-size: small;" class=""><font face="Default Sans Serif, Verdana, Arial, Helvetica, sans-serif" class="">2. If NSTimezone.default is explicitly set to a time zone, NSTimezone.local will not reflect that change.</font></div><div class=""><font class=""><font face="Sans Serif, Verdana, Arial, Helvetica, sans-serif" size="2" class="">3. E</font><font face="Sans Serif, Verdana, Arial, Helvetica, sans-serif" size="2" class="">xisting copies of 'NSTimezone.local' (referring to the example in my question) will also not reflect the change.</font><br class=""></font><font face="Verdana,Arial,Helvetica,sans-serif" size="2" style="font-size: small; font-family: Verdana, Arial, Helvetica, sans-serif;" class=""><font class=""><font class=""><div class="socmaildefaultfont" dir="ltr"><div class="socmaildefaultfont" dir="ltr"><div class="socmaildefaultfont" dir="ltr"><div dir="ltr" style="font-style: normal;" class=""><br class=""></div></div></div></div></font></font></font></div></font></div></blockquote><div><br class=""></div><div>Swift clients should really use struct TimeZone instead of class NSTimeZone. I updated struct TimeZone’s naming and static functions to be a lot more clear:</div><div><br class=""></div><div><div style="margin: 0px; font-size: 14px; line-height: normal; font-family: Menlo; color: rgb(0, 132, 0);" class=""><span style="font-variant-ligatures: no-common-ligatures; color: #000000" class=""> </span><span style="font-variant-ligatures: no-common-ligatures" class="">/// The time zone currently used by the system.</span></div><div style="margin: 0px; font-size: 14px; line-height: normal; font-family: Menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures" class=""> </span><span style="font-variant-ligatures: no-common-ligatures; color: #ba2da2" class="">public</span><span style="font-variant-ligatures: no-common-ligatures" class=""> </span><span style="font-variant-ligatures: no-common-ligatures; color: #ba2da2" class="">static</span><span style="font-variant-ligatures: no-common-ligatures" class=""> </span><span style="font-variant-ligatures: no-common-ligatures; color: #ba2da2" class="">var</span><span style="font-variant-ligatures: no-common-ligatures" class=""> current : </span><span style="font-variant-ligatures: no-common-ligatures; color: #703daa" class="">TimeZone</span></div><div class=""><span style="font-variant-ligatures: no-common-ligatures" class=""><br class=""></span></div><div class=""><span style="font-variant-ligatures: no-common-ligatures" class=""><br class=""></span></div><div class=""><span style="font-variant-ligatures: no-common-ligatures" class=""><div style="margin: 0px; font-size: 14px; line-height: normal; font-family: Menlo; color: rgb(0, 132, 0);" class=""><span style="font-variant-ligatures: no-common-ligatures; color: #000000" class=""> </span><span style="font-variant-ligatures: no-common-ligatures" class="">/// The time zone currently used by the system, automatically updating to the user's current preference.</span></div><div style="margin: 0px; font-size: 14px; line-height: normal; font-family: Menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures" class=""> </span><span style="font-variant-ligatures: no-common-ligatures; color: #008400" class="">///</span></div><div style="margin: 0px; font-size: 14px; line-height: normal; font-family: Menlo; color: rgb(0, 132, 0);" class=""><span style="font-variant-ligatures: no-common-ligatures; color: #000000" class=""> </span><span style="font-variant-ligatures: no-common-ligatures" class="">/// If this time zone is mutated, then it no longer tracks the application time zone.</span></div><div style="margin: 0px; font-size: 14px; line-height: normal; font-family: Menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures" class=""> </span><span style="font-variant-ligatures: no-common-ligatures; color: #008400" class="">///</span></div><div style="margin: 0px; font-size: 14px; line-height: normal; font-family: Menlo; color: rgb(0, 132, 0);" class=""><span style="font-variant-ligatures: no-common-ligatures; color: #000000" class=""> </span><span style="font-variant-ligatures: no-common-ligatures" class="">/// The autoupdating time zone only compares equal to itself.</span></div><div style="margin: 0px; font-size: 14px; line-height: normal; font-family: Menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures" class=""> </span><span style="font-variant-ligatures: no-common-ligatures; color: #ba2da2" class="">public</span><span style="font-variant-ligatures: no-common-ligatures" class=""> </span><span style="font-variant-ligatures: no-common-ligatures; color: #ba2da2" class="">static</span><span style="font-variant-ligatures: no-common-ligatures" class=""> </span><span style="font-variant-ligatures: no-common-ligatures; color: #ba2da2" class="">var</span><span style="font-variant-ligatures: no-common-ligatures" class=""> autoupdatingCurrent : </span><span style="font-variant-ligatures: no-common-ligatures; color: #703daa" class="">TimeZone</span></div><div class=""><span style="font-variant-ligatures: no-common-ligatures" class=""><br class=""></span></div><div class=""><span style="font-variant-ligatures: no-common-ligatures" class="">The ‘current’ struct TimeZone is the ‘system’ NSTimeZone. The ‘autoupdatingCurrent’ struct TimeZone is the ‘autoupdatingCurrent’ NSTimeZone. The ‘default’ NSTimeZone is an awful pattern that nobody should use, because it’s likely to be an unexpected value*. I did not include it in struct TimeZone.</span></div><div class=""><span style="font-variant-ligatures: no-common-ligatures" class=""><br class=""></span></div><div class=""><span style="font-variant-ligatures: no-common-ligatures" class="">The result of calling ‘current’ will change depending on external factors (user prefs), but the result from calling it will stay whatever value it was when you retrieved it.</span></div><div class=""><span style="font-variant-ligatures: no-common-ligatures" class=""><br class=""></span></div><div class=""><span style="font-variant-ligatures: no-common-ligatures" class="">The result of calling ‘autoupdatingCurrent’ will always be an autoupdating time zone, which will reflect user preferences on its properties when called.</span></div><div class=""><span style="font-variant-ligatures: no-common-ligatures" class=""><br class=""></span></div><div class=""><span style="font-variant-ligatures: no-common-ligatures" class="">Hope that helps,</span></div><div class=""><span style="font-variant-ligatures: no-common-ligatures" class="">- Tony</span></div><div class=""><span style="font-variant-ligatures: no-common-ligatures" class=""><br class=""></span></div><div class=""><span style="font-variant-ligatures: no-common-ligatures" class="">* details: Anyone can set the default time zone, but once it’s retrieved using that class method then your copy no longer updates. So you may think you’re setting the default time zone for your app, but in reality if some piece of code sets it after some other piece of code gets it, you’re just using two different time zones in your app. All of the problems of shared global state.</span></div></span></div></div><br class=""><blockquote type="cite" class=""><div class=""><font face="Verdana,Arial,Helvetica,sans-serif" size="2" class=""><div class=""><font face="Verdana,Arial,Helvetica,sans-serif" size="2" style="font-size: small; font-family: Verdana, Arial, Helvetica, sans-serif;" class=""><font class=""><font class=""><div class="socmaildefaultfont" dir="ltr"><div class="socmaildefaultfont" dir="ltr"><div class="socmaildefaultfont" dir="ltr"><div dir="ltr" style="font-style: normal;" class=""><br class=""><font face="Sans Serif, Verdana, Arial, Helvetica, sans-serif" class="">Pushkar N Kulkarni,</font></div>
<div dir="ltr" style="font-style: normal;" class=""><font face="Sans Serif, Verdana, Arial, Helvetica, sans-serif" class="">IBM Runtimes</font></div><div dir="ltr" style="font-style: normal;" class=""><font face="Sans Serif, Verdana, Arial, Helvetica, sans-serif" class=""><br class=""></font></div><div dir="ltr" class=""><font face="serif, Times New Roman, Times, serif" class=""><i class="">Simplicity is prerequisite for reliability - Edsger W. Dijkstra</i></font></div>
<div dir="ltr" style="font-style: normal; font-size: 10.5pt; font-family: Arial;" class=""><br class=""></div></div></div></div></font></font></font></div><br class=""><br class=""><font face="Default Sans Serif,Verdana,Arial,Helvetica,sans-serif" size="2" style="font-size: small; font-family: Verdana, Arial, Helvetica, sans-serif;" class=""><font color="#990099" class=""><a href="mailto:-----anthony.parker@apple.com" target="_blank" class="">-----anthony.parker@apple.com</a> wrote: -----</font><div class="iNotesHistory" style="padding-left:5px;"><div style="padding-right:0px;padding-left:5px;border-left:solid black 2px;" class="">To: Pushkar N Kulkarni/India/IBM@IBMIN<br class="">From: Tony Parker <anthony.parker@apple.com class=""><br class="">Sent by: <a href="mailto:anthony.parker@apple.com" target="_blank" class="">anthony.parker@apple.com</a><br class="">Date: 11/30/2016 01:39PM<br class="">Cc: swift-corelibs-dev <<a href="mailto:swift-corelibs-dev@swift.org" target="_blank" class="">swift-corelibs-dev@swift.org</a>><br class="">Subject: Re: [swift-corelibs-dev] Autoupdating type properties<br class=""><br class=""><!--Notes ACF
<meta http-equiv="Content-Type" content="text/html charset=utf8">-->Hi Pushkar,<div class=""><br class=""><div class=""><blockquote type="cite" class=""><div class="">On Nov 29, 2016, at 4:12 AM, Pushkar N Kulkarni via swift-corelibs-dev <<a href="mailto:swift-corelibs-dev@swift.org" class="">swift-corelibs-dev@swift.org</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><font face="Verdana,Arial,Helvetica,sans-serif" size="2" class=""><div class="">Hi there, </div><div class=""><br class=""></div><div class="">I am curious about how an autoupdating type property like `NSTimeZone.local` could be implemented, given that it is a <b class="">value</b> (the type is TimeZone). The requirement essentially is that if the default timezone is changed, the change should reflect in all copies of this value.</div><div class=""><br class=""></div><div class=""><p style="font-size: 14px; line-height: normal; font-family: Menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures;" class=""><font color="#bb2ca2" class="">import</font></span><span style="font-variant-ligatures: no-common-ligatures" class=""> Foundation</span></p><p style="font-size: 14px; line-height: normal; font-family: Menlo; min-height: 16px;" class=""><span style="font-variant-ligatures: no-common-ligatures" class=""></span><br class=""></p><p style="font-size: 14px; line-height: normal; font-family: Menlo;" class=""><font color="#703daa" class=""><span style="font-variant-ligatures: no-common-ligatures;" class=""><font color="#bb2ca2" class="">let</font></span><span style="font-variant-ligatures: no-common-ligatures;" class=""><font class=""> local = </font></span><span style="font-variant-ligatures: no-common-ligatures" class="">NSTimeZone</span><span style="font-variant-ligatures: no-common-ligatures;" class=""><font class="">.</font></span><span style="font-variant-ligatures: no-common-ligatures" class="">local</span></font></p><p style="font-size: 14px; line-height: normal; font-family: Menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures;" class=""><font color="#bb2ca2" class="">let</font></span><span style="font-variant-ligatures: no-common-ligatures" class=""> local1 = </span><span style="font-variant-ligatures: no-common-ligatures;" class=""><font color="#4f8187" class="">local</font></span></p><p style="font-size: 14px; line-height: normal; font-family: Menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures;" class=""><font color="#4f8187" class=""><span style="font-variant-ligatures: no-common-ligatures;" class=""><font color="#3d1d81" class="">print</font></span><span style="font-variant-ligatures: no-common-ligatures;" class=""><font class="">(</font></span><span style="font-variant-ligatures: no-common-ligatures;" class="">local</span><span style="font-variant-ligatures: no-common-ligatures;" class=""><font class="">) //prints the default TimeZone</font></span><br class=""></font></span></p><p style="font-size: 14px; line-height: normal; font-family: Menlo;" class=""><font color="#4f8187" class=""><span style="font-variant-ligatures: no-common-ligatures;" class=""><font color="#3d1d81" class="">print</font></span><span style="font-variant-ligatures: no-common-ligatures;" class=""><font class="">(</font></span><span style="font-variant-ligatures: no-common-ligatures" class="">local1</span><span style="font-variant-ligatures: no-common-ligatures;" class=""><font class="">) //prints the default TimeZone</font></span></font></p><p style="font-size: 14px; line-height: normal; font-family: Menlo;" class=""><font color="#4f8187" class=""><br class=""></font></p><p style="font-size: 14px; line-height: normal; font-family: Menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures;" class=""><font color="#bb2ca2" class="">let</font></span><span style="font-variant-ligatures: no-common-ligatures" class=""> t = </span><span style="font-variant-ligatures: no-common-ligatures;" class=""><font color="#703daa" class="">TimeZone</font></span><span style="font-variant-ligatures: no-common-ligatures" class="">(identifier: </span><span style="font-variant-ligatures: no-common-ligatures;" class=""><font color="#d12f1b" class="">"America/Chicago"</font></span><span style="font-variant-ligatures: no-common-ligatures" class="">)!</span></p><p style="font-size: 14px; line-height: normal; font-family: Menlo;" class=""><font color="#703daa" class=""><span style="font-variant-ligatures: no-common-ligatures" class="">NSTimeZone</span><span style="font-variant-ligatures: no-common-ligatures;" class=""><font class="">.</font></span><span style="font-variant-ligatures: no-common-ligatures" class="">default</span><span style="font-variant-ligatures: no-common-ligatures;" class=""><font class=""> = </font></span><span style="font-variant-ligatures: no-common-ligatures;" class=""><font color="#4f8187" class="">t</font></span></font></p><p style="font-size: 14px; line-height: normal; font-family: Menlo; min-height: 16px;" class=""><span style="font-variant-ligatures: no-common-ligatures" class=""></span><br class=""></p><p style="font-size: 14px; line-height: normal; font-family: Menlo;" class=""><font color="#3d1d81" class=""><span style="font-variant-ligatures: no-common-ligatures" class="">print</span><span style="font-variant-ligatures: no-common-ligatures;" class=""><font class="">(</font></span><span style="font-variant-ligatures: no-common-ligatures;" class=""><font color="#4f8187" class="">local</font></span><span style="font-variant-ligatures: no-common-ligatures;" class=""><font class="">) //prints "America/Chicago (autoupdatingCurrent)</font></span></font></p><p style="font-size: 14px; line-height: normal; font-family: Menlo;" class=""><font color="#4f8187" class=""><span style="font-variant-ligatures: no-common-ligatures;" class=""><font color="#3d1d81" class="">print</font></span><span style="font-variant-ligatures: no-common-ligatures;" class=""><font class="">(</font></span><span style="font-variant-ligatures: no-common-ligatures" class="">local1) </span>//prints "America/Chicago (autoupdatingCurrent)</font></p></div><div class=""><font face="Verdana,Arial,Helvetica,sans-serif" size="2" class=""><font class=""><font class=""><div class="socmaildefaultfont" dir="ltr"><div class="socmaildefaultfont" dir="ltr"><div class="socmaildefaultfont" dir="ltr"><div dir="ltr" style="font-style: normal;" class=""><font face="Sans Serif, Verdana, Arial, Helvetica, sans-serif" class=""><br class=""></font></div><div dir="ltr" style="font-style: normal;" class=""><br class=""></div><div dir="ltr" style="font-style: normal;" class="">What makes it complicated is that TimeZone is a value type. I hope I am not missing something fundamental here!</div><div dir="ltr" style="font-style: normal;" class=""><br class=""></div><div dir="ltr" style="font-style: normal;" class="">Any ideas or information will be highly appreciated. Thanks!</div></div></div></div></font></font></font></div></font></div></blockquote><div class=""><br class=""></div><div class="">You’re not missing anything fundamental. We considered this case very carefully before proposing these types as value types. I agree that it’s on the borderline, but in the end having it as a value type was too valuable (no pun intended).</div><div class=""><br class=""></div><div class="">What we decided is essentially this: the value of the time zone is not its identifier. Instead, abstract it one level. That means that “Autoupdating” can be the actual value. Like an open enumeration.</div><div class=""><br class=""></div><div class="">Now, nothing in the value type contract says that you cannot have computed properties on a value type. Also, value types are not necessarily “pure”, in the sense that they ignore all external input. What this means for time zone is that its identifier can change depending on user preferences, if its value is “autoupdating". If you set its value to a specific time zone instead, then it does not have the value of “autoupdating" and its computed properties do not behave that way.</div><div class=""><br class=""></div><div class="">I reflected this contract in the == method as well. Autoupdating time zones are equal to other autoupdating time zones. However, the autoupdating time zone is not equal to America/Chicago, even if the current time zone is America/Chicago. </div><div class=""><br class=""></div><div class=""><div style="margin: 0px; font-size: 14px; line-height: normal; font-family: Menlo;" class=""><font color="#d12f1b" class=""><span style="font-variant-ligatures: no-common-ligatures;" class=""><font color="#ba2da2" class="">let</font></span><span style="font-variant-ligatures: no-common-ligatures;" class=""><font class=""> la = </font></span><span style="font-variant-ligatures: no-common-ligatures;" class=""><font color="#703daa" class="">TimeZone</font></span><span style="font-variant-ligatures: no-common-ligatures;" class=""><font class="">(identifier: </font></span><span style="font-variant-ligatures: no-common-ligatures" class="">"America/Los_Angeles”</span><span style="font-variant-ligatures: no-common-ligatures;" class=""><font class="">) // America/Los_Angeles (current)</font></span></font></div><div style="margin: 0px; font-size: 14px; line-height: normal; font-family: Menlo;" class=""><font color="#703daa" class=""><span style="font-variant-ligatures: no-common-ligatures;" class=""><font color="#ba2da2" class="">let</font></span><span style="font-variant-ligatures: no-common-ligatures;" class=""><font class=""> tz = </font></span><span style="font-variant-ligatures: no-common-ligatures" class="">TimeZone</span><span style="font-variant-ligatures: no-common-ligatures;" class=""><font class="">.</font></span><span style="font-variant-ligatures: no-common-ligatures" class="">autoupdatingCurrent // America/Los_Angeles (autoupdatingCurrent)</span></font></div><div style="margin: 0px; font-size: 14px; line-height: normal; font-family: Menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures;" class=""><font color="#4f8187" class="">la</font></span><span style="font-variant-ligatures: no-common-ligatures" class=""> == </span><span style="font-variant-ligatures: no-common-ligatures;" class=""><font color="#4f8187" class="">tz // false</font></span></div><div class=""><span style="font-variant-ligatures: no-common-ligatures;" class=""><font color="#4f8187" class=""><div style="margin: 0px; font-size: 14px; line-height: normal; font-family: Menlo;" class=""><font color="#703daa" class=""><span style="font-variant-ligatures: no-common-ligatures;" class=""><font color="#ba2da2" class="">let</font></span><span style="font-variant-ligatures: no-common-ligatures;" class=""><font class=""> tz2 = </font></span><span style="font-variant-ligatures: no-common-ligatures" class="">TimeZone</span><span style="font-variant-ligatures: no-common-ligatures;" class=""><font class="">.</font></span><span style="font-variant-ligatures: no-common-ligatures" class="">autoupdatingCurrent // </span>America/Los_Angeles (autoupdatingCurrent)</font></div><div style="margin: 0px; font-size: 14px; line-height: normal; font-family: Menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures" class="">tz</span><span style="font-variant-ligatures: no-common-ligatures;" class=""><font class=""> </font></span><span style="font-variant-ligatures: no-common-ligatures;" class=""><font color="#3e1e81" class="">==</font></span><span style="font-variant-ligatures: no-common-ligatures;" class=""><font class=""> </font></span><span style="font-variant-ligatures: no-common-ligatures" class="">tz2 // true</span></div><div style="margin: 0px; font-size: 14px; line-height: normal; font-family: Menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures" class=""><br class=""></span></div></font></span></div></div><div class="">In the case of Calendar, if you mutate it then it is no longer autoupdating — you have changed its value.</div><div class=""><br class=""></div><div class="">I’m sure reasonable people could disagree on the direction we chose here, and if we were reinventing the world from scratch I probably would not have added this complication to the API. However, the existing autoupdating concept is used pervasively and I needed a way to fit it into the new system.</div><div class=""><br class=""></div>- Tony</div><div class=""><br class=""><blockquote type="cite" class=""><div class=""><font face="Verdana,Arial,Helvetica,sans-serif" size="2" class=""><div class=""><font face="Verdana,Arial,Helvetica,sans-serif" size="2" class=""><font class=""><font class=""><div class="socmaildefaultfont" dir="ltr"><div class="socmaildefaultfont" dir="ltr"><div class="socmaildefaultfont" dir="ltr"><div dir="ltr" style="font-style: normal;" class=""><br class=""></div><div dir="ltr" style="font-style: normal;" class=""><span style="font-family: 'Sans Serif', Verdana, Arial, Helvetica, sans-serif;" class="">Pushkar N Kulkarni,</span><br class=""></div><div dir="ltr" style="font-style: normal;" class=""><font face="Sans Serif, Verdana, Arial, Helvetica, sans-serif" class="">IBM Runtimes</font></div><div dir="ltr" style="font-style: normal;" class=""><font face="Sans Serif, Verdana, Arial, Helvetica, sans-serif" class=""><br class=""></font></div><div dir="ltr" class=""><font face="serif, Times New Roman, Times, serif" class=""><i class="">Simplicity is prerequisite for reliability - Edsger W. Dijkstra</i></font></div><div dir="ltr" style="font-style: normal; font-size: 10.5pt; font-family: Arial;" class=""><br class=""></div></div></div></div></font></font></font></div></font><br class="">
_______________________________________________<br class="">swift-corelibs-dev mailing list<br class=""><a href="mailto:swift-corelibs-dev@swift.org" class="">swift-corelibs-dev@swift.org</a><br class=""><a href="https://lists.swift.org/mailman/listinfo/swift-corelibs-dev" target="_blank" class="">https://lists.swift.org/mailman/listinfo/swift-corelibs-dev</a><br class=""></div></blockquote></div><br class=""></div></anthony.parker@apple.com></div></div></font></font><br class="">
</div></blockquote></div><br class=""></div></body></html>