<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body dir="auto"><div><blockquote type="cite"><div class=""><p class="" style="-webkit-print-color-adjust: exact; margin: 15px 0px;"><font color="#000000"><span style="background-color: rgba(255, 255, 255, 0);"><span class="">review of SE-0176: "</span><font class="">Enforce Exclusive Access to Memory"</font></span></font></p><div class=""><ul class="" style="-webkit-print-color-adjust: exact; margin: 15px 0px; padding-left: 30px;"><li class="" style="-webkit-print-color-adjust: exact; margin: 0px;"><font color="#000000"><span style="background-color: rgba(255, 255, 255, 0);">What is your evaluation of the proposal?</span></font></li></ul></div></div></blockquote><div id="AppleMailSignature"><br></div>+1, not only will the code be better optimised but also the code will be easier to understand. It is also nice that there is formal clarity about what the compiler should do. Proposal should probably be expanded to require an annotation to mark when part of a value is aliased, e.g. a method that returns a slice of an array should be annotated to mark that an access to the returned slice will add exclusivity to the original array as well as the slice itself. <br><blockquote type="cite"><div class=""><div class=""><ul class="" style="-webkit-print-color-adjust: exact; margin: 15px 0px; padding-left: 30px;"><li class="" style="-webkit-print-color-adjust: exact; margin: 0px;"><font color="#000000"><span style="background-color: rgba(255, 255, 255, 0);">Is the problem being addressed significant enough to warrant a change to Swift?</span></font></li></ul></div></div></blockquote><div id="AppleMailSignature"><br></div>Yes, Swift is meant to be an easy to use and safe language with good performance. These changes improve all these aspects. <br><blockquote type="cite"><div class=""><div class=""><ul class="" style="-webkit-print-color-adjust: exact; margin: 15px 0px; padding-left: 30px;"><li class="" style="-webkit-print-color-adjust: exact; margin: 0px;"><font color="#000000"><span style="background-color: rgba(255, 255, 255, 0);">Does this proposal fit well with the feel and direction of Swift?</span></font></li></ul></div></div></blockquote><div id="AppleMailSignature"><br></div>Yes, brings clarity and sets Swift up well for the future. <br><blockquote type="cite"><div class=""><div class=""><ul class="" style="-webkit-print-color-adjust: exact; margin: 15px 0px; padding-left: 30px;"><li class="" style="-webkit-print-color-adjust: exact; margin: 0px;"><font color="#000000"><span style="background-color: rgba(255, 255, 255, 0);">If you have used other languages or libraries with a similar feature, how do you feel that this proposal compares to those?</span></font></li></ul></div></div></blockquote><div id="AppleMailSignature"><br></div>Not exactly and not as strong as these guarantees at the compiler level. Other languages with a runtime VM do offer such guarantees dynamically, e.g. Java. The java compiler codes conservative code and then the JVM will optimise that code once running and it can be proved to be safe. Obviously in Swift with optimisation happening at compile time this isn't possible.<br><blockquote type="cite"><div class=""><div class=""><ul class="" style="-webkit-print-color-adjust: exact; margin: 15px 0px; padding-left: 30px;"><li class="" style="-webkit-print-color-adjust: exact; margin: 0px;"><font color="#000000"><span style="background-color: rgba(255, 255, 255, 0);">How much effort did you put into your review? A glance, a quick reading, or an in-depth study?</span></font></li></ul></div></div></blockquote><div id="AppleMailSignature"><br></div>Have had problems with accessing sub-sections of arrays, which whilst safe was very slow, presumable because of conservative coding by the compiler. <br><br>-- Howard.</div><div><br>On 3 May 2017, at 6:07 am, Ben Cohen <<a href="mailto:ben_cohen@apple.com">ben_cohen@apple.com</a>> wrote:<br><br></div><blockquote type="cite"><div><meta http-equiv="Content-Type" content="text/html charset=us-ascii"><p class="" style="-webkit-print-color-adjust: exact; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; font-family: -apple-system-body, Helvetica, arial, sans-serif; background-color: rgb(255, 255, 255); margin-top: 0px !important;">Hello Swift community,</p><p class="" style="-webkit-print-color-adjust: exact; margin: 15px 0px; background-color: rgb(255, 255, 255);"><span style="font-family: -apple-system-body, Helvetica, arial, sans-serif;" class="">The review of SE-0176: "</span><font face="-apple-system-body, Helvetica, arial, sans-serif" class="">Enforce Exclusive Access to Memory"</font><span style="font-family: -apple-system-body, Helvetica, arial, sans-serif;" class=""> begins now and runs through May 8, 2017.</span></p><div class=""><p class="" style="-webkit-print-color-adjust: exact; margin: 15px 0px; font-family: -apple-system-body, Helvetica, arial, sans-serif; background-color: rgb(255, 255, 255);">The proposal is available here:</p><div class=""><a href="https://github.com/apple/swift-evolution/blob/master/proposals/0176-enforce-exclusive-access-to-memory.md" class="">https://github.com/apple/swift-evolution/blob/master/proposals/0176-enforce-exclusive-access-to-memory.md</a></div></div><div class=""><p class="" style="-webkit-print-color-adjust: exact; margin: 15px 0px; font-family: -apple-system-body, Helvetica, arial, sans-serif; background-color: rgb(255, 255, 255);">Reviews are an important part of the Swift evolution process. All reviews should be sent to the swift-evolution mailing list at:</p><p class="" style="-webkit-print-color-adjust: exact; margin: 15px 0px; font-family: -apple-system-body, Helvetica, arial, sans-serif; background-color: rgb(255, 255, 255);"><a href="https://lists.swift.org/mailman/listinfo/swift-evolution" class="">https://lists.swift.org/mailman/listinfo/swift-evolution</a></p><p class="" style="-webkit-print-color-adjust: exact; margin: 15px 0px; font-family: -apple-system-body, Helvetica, arial, sans-serif; background-color: rgb(255, 255, 255);">or, if you would like to keep your feedback private, directly to the review manager. </p><p class="" style="-webkit-print-color-adjust: exact; margin: 15px 0px; font-family: -apple-system-body, Helvetica, arial, sans-serif; background-color: rgb(255, 255, 255);">When replying, please try to keep the proposal link at the top of the message:</p><blockquote class="" style="-webkit-print-color-adjust: exact; margin: 15px 0px; border-left-width: 4px; border-left-style: solid; border-left-color: rgb(221, 221, 221); padding: 0px 15px; background-color: rgb(255, 255, 255);"><h3 id="toc_0" class="" style="color: rgb(119, 119, 119); font-family: -apple-system-body, Helvetica, arial, sans-serif; -webkit-print-color-adjust: exact; margin: 0px 0px 10px; padding: 0px; -webkit-font-smoothing: antialiased; cursor: text; position: relative; font-size: 18px;">Proposal link:</h3><div class=""><font color="#777777" face="-apple-system-body, Helvetica, arial, sans-serif" class=""><a href="https://github.com/apple/swift-evolution/blob/master/proposals/0176-enforce-exclusive-access-to-memory.md" class="">https://github.com/apple/swift-evolution/blob/master/proposals/0176-enforce-exclusive-access-to-memory.md</a></font></div><div class=""><h3 id="toc_1" class="" style="color: rgb(119, 119, 119); font-family: -apple-system-body, Helvetica, arial, sans-serif; -webkit-print-color-adjust: exact; margin: 20px 0px 10px; padding: 0px; -webkit-font-smoothing: antialiased; cursor: text; position: relative; font-size: 18px;"><div class="" style="box-sizing: border-box; margin-top: 0px; margin-bottom: 0px;">Reply text</div><div class="" style="box-sizing: border-box; margin-top: 0px; margin-bottom: 0px;"><br class=""></div><blockquote class="" style="font-weight: normal; box-sizing: border-box; margin: 0px 0px 16px; padding: 0px 1em; color: rgb(106, 115, 125); border-left-width: 0.25em; border-left-style: solid; border-left-color: rgb(223, 226, 229); font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px;"><div class="" style="box-sizing: border-box; margin-top: 0px; margin-bottom: 0px;">Other replies</div></blockquote></h3><h5 class="" style="box-sizing: border-box; margin-top: 24px; margin-bottom: 16px; font-size: 0.875em; line-height: 1.25; color: rgb(36, 41, 46); font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol';"><a id="user-content-what-goes-into-a-review-1" class="anchor" href="https://github.com/apple/swift-evolution#what-goes-into-a-review-1" aria-hidden="true" style="box-sizing: border-box; background-color: transparent; -webkit-text-decoration-skip: objects; color: rgb(3, 102, 214); text-decoration: none; float: left; padding-right: 4px; margin-left: -20px; line-height: 1;"><svg aria-hidden="true" class="octicon octicon-link" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a></h5></div></blockquote></div><div class=""><h3 id="toc_2" class="" style="-webkit-print-color-adjust: exact; margin: 20px 0px 10px; padding: 0px; -webkit-font-smoothing: antialiased; cursor: text; position: relative; font-size: 18px; font-family: -apple-system-body, Helvetica, arial, sans-serif; background-color: rgb(255, 255, 255);">What goes into a review?</h3><p class="" style="-webkit-print-color-adjust: exact; margin: 15px 0px; font-family: -apple-system-body, Helvetica, arial, sans-serif; background-color: rgb(255, 255, 255);">The goal of the review process is to improve the proposal under review through constructive criticism and, eventually, determine the direction of Swift. When writing your review, here are some questions you might want to answer in your review:</p><ul class="" style="-webkit-print-color-adjust: exact; margin: 15px 0px; padding-left: 30px; font-family: -apple-system-body, Helvetica, arial, sans-serif; background-color: rgb(255, 255, 255);"><li class="" style="-webkit-print-color-adjust: exact; margin: 0px;">What is your evaluation of the proposal?</li><li class="" style="-webkit-print-color-adjust: exact; margin: 0px;">Is the problem being addressed significant enough to warrant a change to Swift?</li><li class="" style="-webkit-print-color-adjust: exact; margin: 0px;">Does this proposal fit well with the feel and direction of Swift?</li><li class="" style="-webkit-print-color-adjust: exact; margin: 0px;">If you have used other languages or libraries with a similar feature, how do you feel that this proposal compares to those?</li><li class="" style="-webkit-print-color-adjust: exact; margin: 0px;">How much effort did you put into your review? A glance, a quick reading, or an in-depth study?</li></ul><p class="" style="-webkit-print-color-adjust: exact; margin: 15px 0px; font-family: -apple-system-body, Helvetica, arial, sans-serif; background-color: rgb(255, 255, 255);">More information about the Swift evolution process is available at:</p><p class="" style="-webkit-print-color-adjust: exact; margin: 15px 0px; font-family: -apple-system-body, Helvetica, arial, sans-serif; background-color: rgb(255, 255, 255);"><a href="https://github.com/apple/swift-evolution/blob/master/process.md" class="" style="-webkit-print-color-adjust: exact; color: rgb(65, 131, 196);">https://github.com/apple/swift-evolution/blob/master/process.md</a></p></div><div class=""><br class=""></div><div class="">Thanks,</div><div class="">Ben Cohen</div><div class="">Review Manager</div><div class=""><br class=""></div></div></blockquote><blockquote type="cite"><div><span>_______________________________________________</span><br><span>swift-evolution-announce mailing list</span><br><span><a href="mailto:swift-evolution-announce@swift.org">swift-evolution-announce@swift.org</a></span><br><span><a href="https://lists.swift.org/mailman/listinfo/swift-evolution-announce">https://lists.swift.org/mailman/listinfo/swift-evolution-announce</a></span><br></div></blockquote></body></html>