<div dir="ltr">On Fri, Mar 24, 2017 at 10:47 PM, Xiaodi Wu <span dir="ltr">&lt;<a href="mailto:xiaodi.wu@gmail.com" target="_blank">xiaodi.wu@gmail.com</a>&gt;</span> wrote:<br><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">As Chris has said in the past, the core team is willing to endure a substantial amount of implementation pain to present a superior experience for the end user. In any case, I expect that the work needed to roll back SE-0025 in the core libraries will likely be comparable if not less than the remaining ongoing work needed in the compiler to make SE-0025 work fully. Certainly, hundreds of hours would not be required to roll back corelibs-foundation alone. The exact effort required is knowable, too, as one can fork and migrate all uses of private to fileprivate right now and see how long it takes.<br></blockquote><div><br></div><div>Update: with the caveat that corelibs-foundation tests are incomplete, it took me about 15 mins to migrate all uses of private to fileprivate. The tricky thing is that one has to do case-sensitive find-and-replace, and to replace all instances of &quot;filefileprivate&quot; in a second round. It does not appear that corelibs-foundation actually uses new `private` in a way that migrating to `fileprivate` results in invalid redeclarations anywhere.</div><div><br></div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="gmail_quote"><div><div class="h5"><div dir="ltr">On Fri, Mar 24, 2017 at 22:38 Drew Crawford via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org" target="_blank">swift-evolution@swift.org</a>&gt; wrote:<br></div></div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div class="h5"><div style="word-wrap:break-word" class="m_337097034509218897gmail_msg"><div id="m_337097034509218897m_853404948616757464bloop_customfont" style="font-family:Helvetica,Arial;font-size:13px;color:rgba(0,0,0,1.0);margin:0px;line-height:auto" class="m_337097034509218897gmail_msg"><br class="m_337097034509218897gmail_msg"></div> <br class="m_337097034509218897gmail_msg"> <div id="m_337097034509218897m_853404948616757464bloop_sign_1490412326109204992" class="m_337097034509218897m_853404948616757464bloop_sign m_337097034509218897gmail_msg"></div> <br class="m_337097034509218897gmail_msg"><p class="m_337097034509218897m_853404948616757464airmail_on m_337097034509218897gmail_msg">On March 24, 2017 at 10:21:17 PM, Jonathan Hull (<a href="mailto:jhull@gbis.com" class="m_337097034509218897gmail_msg" target="_blank">jhull@gbis.com</a>) wrote:</p> <blockquote type="cite" class="m_337097034509218897m_853404948616757464clean_bq m_337097034509218897gmail_msg"><span class="m_337097034509218897gmail_msg"><div class="m_337097034509218897gmail_msg"><div style="color:rgb(0,0,0);font-family:&#39;helvetica Neue&#39;,helvetica;font-size:14px;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" class="m_337097034509218897gmail_msg">This is exactly the problem. Both for access controls and dispatch.</div><br class="m_337097034509218897m_853404948616757464Apple-interchange-newline m_337097034509218897gmail_msg"></div></span></blockquote><br class="m_337097034509218897gmail_msg"></div><div style="word-wrap:break-word" class="m_337097034509218897gmail_msg"><div class="m_337097034509218897gmail_msg">How would you respond to clattner&#39;s <a href="https://lists.swift.org/pipermail/swift-evolution/Week-of-Mon-20151207/001948.html" class="m_337097034509218897gmail_msg" target="_blank">position piece</a> on this?  He disputes this point directly:</div><div class="m_337097034509218897gmail_msg"><br class="m_337097034509218897gmail_msg"></div><div class="m_337097034509218897gmail_msg"><div class="m_337097034509218897gmail_msg"><blockquote type="cite" style="font-family:Helvetica,Arial;font-size:13px;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;border-top-width:1px;border-right-width:1px;border-bottom-width:1px;padding-left:5px;border-left-width:1px!important;border-left-color:rgb(0,64,128)!important" class="m_337097034509218897gmail_msg"></blockquote></div></div></div><div style="word-wrap:break-word" class="m_337097034509218897gmail_msg"><div class="m_337097034509218897gmail_msg"><div class="m_337097034509218897gmail_msg"><blockquote type="cite" style="font-family:Helvetica,Arial;font-size:13px;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;border-top-width:1px;border-right-width:1px;border-bottom-width:1px;padding-left:5px;border-left-width:1px!important;border-left-color:rgb(0,64,128)!important" class="m_337097034509218897gmail_msg"><div class="m_337097034509218897gmail_msg">Swift is another case of a hybrid model: its semantics provide predictability between obviously static (structs, enums, and global funcs) and obviously dynamic (classes, protocols, and closures) constructs.  A focus of Swift (like Java and Javascript) is to provide an apparently simple programming model.  However, Swift also intentionally &quot;cheats&quot; in its global design by mixing in a few tricks to make the dynamic parts of the language optimizable by a static compiler in many common cases...</div></blockquote></div></div></div><div style="word-wrap:break-word" class="m_337097034509218897gmail_msg"><div class="m_337097034509218897gmail_msg"><div class="m_337097034509218897gmail_msg"><blockquote type="cite" style="font-family:Helvetica,Arial;font-size:13px;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;border-top-width:1px;border-right-width:1px;border-bottom-width:1px;padding-left:5px;border-left-width:1px!important;border-left-color:rgb(0,64,128)!important" class="m_337097034509218897gmail_msg"><div class="m_337097034509218897gmail_msg">The upshot of this is that Swift isn’t squarely in either of the static or dynamic camps: it aims to provide a very predictable performance model (someone writing a bootloader or firmware can stick to using Swift structs and have a simple guarantee of no dynamic overhead or runtime dependence) while also providing an expressive and clean high level programming model - simplifying learning and the common case where programmers don’t care to count cycles.</div></blockquote></div></div></div><div style="word-wrap:break-word" class="m_337097034509218897gmail_msg"><div class="m_337097034509218897gmail_msg"><blockquote type="cite" style="border-top-width:1px;border-right-width:1px;border-bottom-width:1px;padding-left:5px;border-left-width:1px!important;border-left-color:rgb(0,64,128)!important" class="m_337097034509218897gmail_msg"><p class="m_337097034509218897gmail_msg">Is it?  Can you point to an instance where a member of the core team said they are aiming for “plenty of overlap”?</p></blockquote></div></div><div style="word-wrap:break-word" class="m_337097034509218897gmail_msg"><div class="m_337097034509218897gmail_msg"><div class="m_337097034509218897gmail_msg"><p class="m_337097034509218897gmail_msg">See above</p></div></div></div><div style="word-wrap:break-word" class="m_337097034509218897gmail_msg"><div class="m_337097034509218897gmail_msg"><div class="m_337097034509218897gmail_msg"><div class="m_337097034509218897gmail_msg"><blockquote type="cite" style="font-family:Helvetica,Arial;font-size:13px;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;border-top-width:1px;border-right-width:1px;border-bottom-width:1px;padding-left:5px;border-left-width:1px!important;border-left-color:rgb(0,64,128)!important" class="m_337097034509218897gmail_msg">Honestly, most of your examples could just be split into multiple files.</blockquote></div></div></div></div><div style="word-wrap:break-word" class="m_337097034509218897gmail_msg"><div class="m_337097034509218897gmail_msg"><div class="m_337097034509218897gmail_msg"><p class="m_337097034509218897gmail_msg">Specific arguments were advanced in those examples that they cannot.  Can you refute them?</p></div></div></div><div style="word-wrap:break-word" class="m_337097034509218897gmail_msg"><div class="m_337097034509218897gmail_msg"><div class="m_337097034509218897gmail_msg"><div class="m_337097034509218897gmail_msg"><blockquote type="cite" style="font-family:Helvetica,Arial;font-size:13px;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;border-top-width:1px;border-right-width:1px;border-bottom-width:1px;padding-left:5px;border-left-width:1px!important;border-left-color:rgb(0,64,128)!important" class="m_337097034509218897gmail_msg">You are conflating effort by the swift design and implementation community with your personal effort around migration.</blockquote></div></div></div></div><div style="word-wrap:break-word" class="m_337097034509218897gmail_msg"><div class="m_337097034509218897gmail_msg"><div class="m_337097034509218897gmail_msg"><p class="m_337097034509218897gmail_msg">No, I am referencing a Swift@IBM developer who reported that </p><blockquote type="cite" style="border-top-width:1px;border-right-width:1px;border-bottom-width:1px;padding-left:5px;border-left-width:1px!important;border-left-color:rgb(0,64,128)!important" class="m_337097034509218897gmail_msg">the open-source version of Foundation still has a long way to go to get the level of quality of the existing Objective-C frameworks, and we already have enough work to do without having to go make a bunch of arbitrary changes and risk a bunch of regressions because someone doesn&#39;t like a keyword... Accepting this proposal would waste hundreds of person-hours of work...</blockquote><div class="m_337097034509218897gmail_msg"></div><div class="m_337097034509218897gmail_msg"></div></div><div class="m_337097034509218897gmail_msg"></div></div></div></div></div>______________________________<wbr>_________________<span class=""><br class="m_337097034509218897gmail_msg">
swift-evolution mailing list<br class="m_337097034509218897gmail_msg">
<a href="mailto:swift-evolution@swift.org" class="m_337097034509218897gmail_msg" target="_blank">swift-evolution@swift.org</a><br class="m_337097034509218897gmail_msg">
<a href="https://lists.swift.org/mailman/listinfo/swift-evolution" rel="noreferrer" class="m_337097034509218897gmail_msg" target="_blank">https://lists.swift.org/<wbr>mailman/listinfo/swift-<wbr>evolution</a><br class="m_337097034509218897gmail_msg">
</span></blockquote></div></blockquote></div><br></div></div>