<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body dir="auto"><div><br><br>~Robert Widmann</div><div><br>2017/02/21 2:16、Jonathan Hull &lt;<a href="mailto:jhull@gbis.com">jhull@gbis.com</a>&gt; のメッセージ:<br><br></div><blockquote type="cite"><div><meta http-equiv="Content-Type" content="text/html charset=utf-8">It is how it interacts with our current access control. &nbsp;The scope based nature of this will conflict with the file based nature of the stuff left from Swift 2. I am convinced we need to overhaul it in one sweep to fit one metaphor or the other. The more we mix them, the harder it is to wrap your head around. &nbsp;We can’t keep rehashing it every 6 months, but that is what will happen so long as it stays in this confused state.</div></blockquote><div><br></div><div>How does this conflict? &nbsp;Moreover, what do you feel we are adding here that crosses the line?</div><div><br></div><div>This is not a rehash of existing concepts. &nbsp;We do not deprecate the access control scheme, and we don't extend it except to define how symbols can indicate they wish to cross/not cross the module boundary. &nbsp;This is genuinely a system to enable modularity at as little cost as we could suss out given inspiration from other programming languages.&nbsp;</div><div><br></div><div>tl;dr I don't want to confuse this with the fileprivate debate. &nbsp;It is possible to have physical access control <i>and</i> modularity, they're not mutually exclusive. &nbsp;And the existing access control scheme cannot express the same concepts a real module system can, so it's not enough to paint this as a syntactic/physical argument.</div><br><blockquote type="cite"><div><div class=""><br class=""></div><div class="">I think I would prefer overall trying swift’s file based system because I think we can completely close that with only 1-2 additional concepts (and it would stay conceptually simple). &nbsp;I would also be fine with switching to a purely type/scope based system with protected, etc…, but I feel like that will need more complexity to get it fully working (e.g. friends), and will end up being a more complex system overall.</div></div></blockquote><div><br></div>The semantics we intend are all there in the proposal. &nbsp;You can see for yourself just how much this will complect the language versus a different proposal to redo access entirely.<div><br><blockquote type="cite"><div><div class=""><div class=""><br class=""></div><div class="">Thanks,</div><div class="">Jon</div><div class=""><br class=""><div class=""><div class=""><br class=""><div><blockquote type="cite" class=""><div class="">On Feb 20, 2017, at 11:03 PM, Robert Widmann &lt;<a href="mailto:devteam.codafi@gmail.com" class="">devteam.codafi@gmail.com</a>&gt; wrote:</div><br class="Apple-interchange-newline"><div class=""><blockquote type="cite" class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><div class=""><br class="Apple-interchange-newline">On Feb 21, 2017, at 2:01 AM, Jonathan Hull &lt;<a href="mailto:jhull@gbis.com" class="">jhull@gbis.com</a>&gt; wrote:</div><br class="Apple-interchange-newline"><div class=""><div class="" style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><br class=""><div class=""><blockquote type="cite" class=""><div class="">On Feb 20, 2017, at 10:46 PM, Robert Widmann via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a>&gt; wrote:</div><br class="Apple-interchange-newline"><div class=""><span class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;">More generally, we need to move access control away as far away from filesystems as possible. &nbsp;One day, the compiler is going to get ported over to a platform with some bonkers rules that are going to turn around and bite us.</span></div></blockquote></div><br class=""><div class="">This is the key thing which I think is being debated right now. &nbsp;Swift 2 defined the file as a unit of compilation and based its elegant system of access modifiers on that. &nbsp;With Swift 3 we have a mix of type/scope based modifiers and file based modifiers… and it is super confusing to everyone because we have mixed our metaphors.</div><div class=""><br class=""></div><div class="">As much as I want modules, I am now convinced that this proposal will only make that situation worse. &nbsp;We need to pick one way (file based) or the other (scope based) and commit to it… but either way, it will require a larger overhaul to make the system consistent/usable/teachable again.</div><div class=""><br class=""></div><div class="">As an analogy, it is like some people are trying to play rock music during a classical music concert. &nbsp;Both are great independently, and different people may prefer one or the other… but trying to play them on top of one another just results in noise.</div></div></div></blockquote><div style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><br class=""></div><div style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class="">Is there anything specifically about this proposal that turns you off, or is it access control as it stands today?</div><br class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><blockquote type="cite" class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><div class=""><div class="" style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><div class=""><br class=""></div><div class="">Thanks,</div><div class="">Jon</div></div></div></blockquote></div></blockquote></div><br class=""></div></div></div></div></div></blockquote></div></body></html>