<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body dir="auto"><div><br></div><div>On Jun 22, 2016, at 7:59 PM, Jordan Rose via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a>&gt; wrote:<br><br></div><blockquote type="cite"><div><meta http-equiv="Content-Type" content="text/html charset=utf-8"><div><blockquote type="cite" class=""><div class=""><div dir="ltr" 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=""><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin: 0px 0px 0px 0.8ex; border-left-width: 1px; border-left-color: rgb(204, 204, 204); border-left-style: solid; padding-left: 1ex;"><div style="word-wrap: break-word;" class=""><div class=""><span class=""><div class=""><br class=""></div></span><div class="">I would really like to see submodules, but I think there would still be valid uses for `fileprivate` even with them.&nbsp; But of course we would need to know the details of submodules to have a good discussion about that so it’s a topic for the future. :)</div></div></div></blockquote><div class=""><br class=""></div><div class="">I wonder what became of this:&nbsp;<a href="https://github.com/apple/swift/blob/master/docs/Modules.rst#id18" class="">https://github.com/apple/swift/blob/master/docs/Modules.rst#id18</a></div></div></div></div></div></blockquote><br class=""></div><div>As the author of that document, it became clear (or maybe “it became murky”) that everyone wants different things from submodules, both for compiling their own targets and for importing other people’s targets. </div></div></blockquote><div><br></div><div>Surveying the larger github swift projects it is clear that people currently struggle to structure code when compared with c++, java, c# or even scala. It may just be that many come directly from objc. It is particularly visible on the server side libs out there where a module sometimes mean a class and a protocol... Without getting sidetracked too much it should be possible to devise a limited improvement on the current situation, maybe even outside of this community to avoid some of the endless meandering i have seen on 'hot' topics.</div><div><br></div><br><blockquote type="cite"><div><div>I’d almost suggest avoiding the word if you want to propose any of myriad features related to them:</div><div><br class=""></div><div>- importing a subset of APIs</div><div>- having APIs not imported by default with the top-level module</div><div>- C++ namespacing within a module</div><div>- C++ namespacing within another module</div><div>- breaking up compilation units (i.e. not compiling the entire module as one unit)</div><div>- adding another access level between internal and fileprivate.</div><div>- adding another access level between fileprivate and private.</div><div>- something else?</div><div><br class=""></div><div>(still catching up on the main thread, but I think Robert and Matthew are both right: we need to explicitly amend the proposal, and the behavior we want is fairly obvious)</div><div><br class=""></div><div>Jordan</div></div></blockquote><blockquote type="cite"><div><span>_______________________________________________</span><br><span>swift-evolution mailing list</span><br><span><a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a></span><br><span><a href="https://lists.swift.org/mailman/listinfo/swift-evolution">https://lists.swift.org/mailman/listinfo/swift-evolution</a></span><br></div></blockquote></body></html>