> On Feb 20, 2017, at 11:16 PM, Jonathan Hull via swift-evolution > <swift-evolution@swift.org> wrote: > > It is how it interacts with our current access control. 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. We can’t keep rehashing it every 6 months, but that is what > will happen so long as it stays in this confused state.
It has been my hope that a lightweight module system will remove the need for `private` *and* `fileprivate`. I doubt a clean "solution" to the access control story can emerge without it. FWIW. > 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). 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. > > Thanks, > Jon > > >>> On Feb 20, 2017, at 11:03 PM, Robert Widmann <devteam.cod...@gmail.com> >>> wrote: >>> >>> >>>> On Feb 21, 2017, at 2:01 AM, Jonathan Hull <jh...@gbis.com> wrote: >>>> >>>> >>>> On Feb 20, 2017, at 10:46 PM, Robert Widmann via swift-evolution >>>> <swift-evolution@swift.org> wrote: >>>> >>>> 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. >>> >>> 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. >>> >>> 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. >>> >>> 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. >> >> Is there anything specifically about this proposal that turns you off, or is >> it access control as it stands today? >> >>> >>> Thanks, >>> Jon > > _______________________________________________ > swift-evolution mailing list > swift-evolution@swift.org > https://lists.swift.org/mailman/listinfo/swift-evolution
_______________________________________________ swift-evolution mailing list swift-evolution@swift.org https://lists.swift.org/mailman/listinfo/swift-evolution