<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 Jun 22, 2016, at 11:59 AM, Jordan Rose 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=""><meta http-equiv="Content-Type" content="text/html charset=utf-8" class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div class=""><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. 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: <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 class="">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. I’d almost suggest avoiding the word if you want to propose any of myriad features related to them:</div><div class=""><br class=""></div><div class="">- importing a subset of APIs</div><div class="">- having APIs not imported by default with the top-level module</div><div class="">- C++ namespacing within a module</div><div class="">- C++ namespacing within another module</div><div class="">- breaking up compilation units (i.e. not compiling the entire module as one unit)</div><div class="">- adding another access level between internal and fileprivate.</div><div class="">- adding another access level between fileprivate and private.</div><div class="">- something else?</div></div></div></blockquote><br class=""></div><div>Aggregation of first and third party frameworks into a single linkable module might be on that pile, if such aggregation was a path decided on to reduce application startup time.</div><div><br class=""></div><div>-DW </div></body></html>