<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 May 20, 2016, at 11:16 AM, Adrian Zubarev 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=""><div id="bloop_customfont" style="font-family: Helvetica, Arial; font-size: 13px; font-style: normal; font-variant: 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; margin: 0px;" class=""><div style="font-family: Helvetica, Arial; font-size: 13px;" class=""><blockquote type="cite" class="clean_bq" style="font-family: Helvetica, Arial; font-size: 13px; font-style: 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="" style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><blockquote type="cite" class=""><div class=""><br class="Apple-interchange-newline">On May 20, 2016, at 10:54 AM, Adrian Zubarev 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=""><div id="bloop_customfont" class="" style="margin: 0px;">Can submodules enforce the developer to use its name ’Submodule.SomeClass’?</div></div></blockquote><div class=""><br class=""></div><div class="">Ideally we would have flexible import syntax that allows for control over *how* names are imported into a lexical context (including the ability to import names within a very specific scope if desired).</div></div></blockquote></div><p style="font-family: Helvetica, Arial; font-size: 13px;" class="">Ok fine.</p><div class=""><div style="font-family: Helvetica, Arial; font-size: 13px;" class=""><blockquote type="cite" class="clean_bq" style="font-family: Helvetica, Arial; font-size: 13px; font-style: 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="" style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><blockquote type="cite" class=""><div class=""><div id="bloop_customfont" class="" style="margin: 0px;">Do I have to re-build submodules when I made any changes to them before building the outside code base?</div></div></blockquote><div class=""><br class=""></div><div class="">All&nbsp;<b class="">sub</b>modules are part of the same target as the module that contains them.</div><br class=""><blockquote type="cite" class=""><div class=""><div id="bloop_customfont" class="" style="margin: 0px;">Can they efficiently used for cross decencies between different modules/submodules?</div></div></blockquote><div class=""><br class=""></div><div class="">Cross decencies? &nbsp;I don’t understand.</div></div></blockquote></div><p class="">Sorry it’s me again: "<span style="font-family: 'helvetica Neue', helvetica; font-size: 13px;" class="">cross dependencies</span><font face="helvetica Neue, helvetica" class="">“</font></p><p style="font-size: 13px;" class="">MainProject (module/package)</p><div class="">&nbsp; &nbsp;|__Submodule</div><div class="">&nbsp; &nbsp;| &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; |__SubSubmodule</div><div class="">&nbsp; &nbsp;|__AnotherSubmodule</div><div class=""><br class=""></div><div class="">Can I enforce usage of `AnotherSubmodule.Someclass` inside of `SubSubmodule`???</div></div></div></div></blockquote><div><br class=""></div><div>With a sufficiently flexible import mechanism you could import `AnotherSubmodule` such that `Someclass` is referenced in the way that you see fit in a specific scope. &nbsp;You could not require all uses to use the full name&nbsp;`AnotherSubmodule.Someclass`. &nbsp;That is a stylistic choice. &nbsp;However, namespaces usually allow for similar flexibility so I don’t see this as a distinction between namespaces and submodules.</div><br class=""><blockquote type="cite" class=""><div class=""><div id="bloop_customfont" style="font-family: Helvetica, Arial; font-size: 13px; font-style: normal; font-variant: 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; margin: 0px;" class=""><div class=""><div style="font-family: Helvetica, Arial; font-size: 13px;" class=""><blockquote type="cite" class="clean_bq" style="font-family: Helvetica, Arial; font-size: 13px; font-style: 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="" style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><blockquote type="cite" class=""><div class=""><div id="bloop_customfont" class="" style="margin: 0px;">Empty enums is an abuse of the language!&nbsp;</div></div></blockquote><div class=""><br class=""></div><div class="">But it is a practical and effective one. &nbsp;Introducing a new construct like namespaces must carry significant advantages over what is already possible.</div></div></blockquote><br class="Apple-interchange-newline"></div>Still abuse of the language no matter how you turn it. I don’t say `namespaces` should only do the same enums do (in my case it would be enough), if there is more they could solve sure why not. Thats a discussion is for isn’t it? I’m not an expert so I want to learn from people that might provide good examples and reasons why namespaces are good or not.&nbsp;</div></div></div></blockquote><div><br class=""></div><div>Yes, as I mentioned elsewhere, I agree that we need more. &nbsp;But I want us to be clear on what problems we are solving and what capabilities we need. &nbsp;Empty enums are a good point of reference for that discussion as they are what we have today.</div><br class=""><blockquote type="cite" class=""><div class=""><div id="bloop_customfont" style="font-family: Helvetica, Arial; font-size: 13px; font-style: normal; font-variant: 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; margin: 0px;" class=""><div style="font-family: Helvetica, Arial; font-size: 13px;" class=""><div class="" style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><div class=""><br class=""></div></div></div></div><div style="font-family: Helvetica, Arial; font-size: 13px; font-style: normal; font-variant: 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=""><div id="bloop_sign_1463760520844299008" class="bloop_sign"><div style="font-family: helvetica, arial; font-size: 13px;" class="">--&nbsp;<br class="">Adrian Zubarev<br class="">Sent with Airmail</div></div><blockquote type="cite" class="clean_bq"><span class=""><div class="" style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><div class=""></div></div></span></blockquote></div></div><span style="font-family: Helvetica, Arial; font-size: 13px; font-style: normal; font-variant: 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="">_______________________________________________</span><br style="font-family: Helvetica, Arial; font-size: 13px; font-style: normal; font-variant: 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=""><span style="font-family: Helvetica, Arial; font-size: 13px; font-style: normal; font-variant: 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="">swift-evolution mailing list</span><br style="font-family: Helvetica, Arial; font-size: 13px; font-style: normal; font-variant: 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=""><a href="mailto:swift-evolution@swift.org" style="font-family: Helvetica, Arial; font-size: 13px; font-style: normal; font-variant: 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="">swift-evolution@swift.org</a><br style="font-family: Helvetica, Arial; font-size: 13px; font-style: normal; font-variant: 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=""><a href="https://lists.swift.org/mailman/listinfo/swift-evolution" style="font-family: Helvetica, Arial; font-size: 13px; font-style: normal; font-variant: 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="">https://lists.swift.org/mailman/listinfo/swift-evolution</a></div></blockquote></div><br class=""></body></html>