<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=""><br class=""><div><blockquote type="cite" class=""><div class="">On Feb 20, 2017, at 10:46 PM, Robert Widmann via swift-evolution <<a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><span 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;" class="">More generally, we need to move access control away as far away from filesystems as possible. 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. Swift 2 defined the file as a unit of compilation and based its elegant system of access modifiers on that. 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. 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. 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 class=""><br class=""></div><div class="">Thanks,</div><div class="">Jon</div><div class=""><br class=""></div></body></html>