<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Sun, Jan 22, 2017 at 4:00 AM, Stephen Kelly via cfe-dev <span dir="ltr"><<a href="mailto:cfe-dev@lists.llvm.org" target="_blank">cfe-dev@lists.llvm.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">Sean Silva via cfe-dev wrote:<br>
<br>
</span><span class="">>> I don't know what the 'developer<br>
>> story' is apart from 'wait for all of your dependencies to update with<br>
>> modules support and wait for each buildsystem of your dependency to be<br>
>> compatible with all the others for creating and consuming modules and<br>
>> then you can start using modules'.<br>
><br>
> The problem for C++ modules is actually worse than just "wait for your<br>
> dependencies". You also may need to wait for your dependents since the<br>
> modules syntax is incompatible with pre-modules compilers (though last I<br>
> talked with Richard about this he had some pretty clear ideas for keeping<br>
> the overhead down during the transition period, which for some projects<br>
> will be "forever").<br>
<br>
</span>I would be interested to hear more from Richard about this.<br>
<span class=""><br>
> Waiting for your dependencies and dependents is a bit of a catch-22<br>
> unfortunately; we just need to hope that intermediate transitionary steps<br>
> are available to break the deadlock.<br>
<br>
</span>That does sound like a problem.<br>
<span class=""><br>
> Between different build systems, package managers, etc. the deadlock is<br>
> even stronger (nobody wants to take the first step because nobody's first<br>
> step adds any value without the others).<br>
<br>
</span>I'm not certain what you're referring to. Perhaps what you have in mind is<br>
some standardization/conventions for buildsystems. I doubt that's possible.<br>
I think it would be better if Modules were designed to not have that impact.<br>
<span class=""><br>
>> I realize this goes beyond Clang and the ModulesTS has buildsystem issues<br>
>> too...<br>
>><br>
><br>
> One interesting point here is that it's clear that some sort of<br>
> standardization is going to be needed "outside the ISO C++ Standard" (e.g.<br>
> conventions for build systems etc.).<br>
<br>
</span>I can't imagine how anyone would get something like that started.<br>
<span class=""><br>
> It may be too early for that work to<br>
> start,<br>
<br>
</span>I don't agree with that. I think the design of C++ Modules and the impact<br>
the design has on buildsystems are coupled. A brilliantly designed Modules<br>
system which does not consider the buildsystem (or the impact on how people<br>
write code - what files they write and how they relate to each other in the<br>
way that .h and .cpp files do today etc) might not get the deserved<br>
adoption.<br>
<span class=""><br>
> but I haven't seen much on that front (though admittedly I'm not<br>
> actively following all this modules stuff in detail anymore). If you're in<br>
> a position where you can contribute to that effort it would be *hugely*<br>
> appreciated I'm sure!<br>
<br>
</span>I'm not sure how appreciated it will be, but I have attempted to ask some<br>
starting questions here:<br>
<br>
 <a href="https://groups.google.com/a/isocpp.org/forum/?fromgroups#!topic/modules/sDIYoU8Uljw" rel="noreferrer" target="_blank">https://groups.google.com/a/<wbr>isocpp.org/forum/?fromgroups#!<wbr>topic/modules/sDIYoU8Uljw</a><br>
<br>
Those are not all the questions I have, but you are correct that the<br>
conversation about the impact of Modules on buildsystems does not currently<br>
exist at all, so starting smaller is better.<br></blockquote><div><br></div><div>Thanks for getting the ball rolling on this. btw, if you weren't aware, Manuel actually has been involved with rolling out Clang's explicit modules (i.e. essentially a "-c step for headers" that produces a .pcm file) into Google's internal build system</div><div><br></div><div><br></div><div>-- Sean Silva</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="HOEnZb"><div class="h5"><br>
Thanks,<br>
<br>
Steve.<br>
<br>
<br>
______________________________<wbr>_________________<br>
cfe-dev mailing list<br>
<a href="mailto:cfe-dev@lists.llvm.org">cfe-dev@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/<wbr>mailman/listinfo/cfe-dev</a><br>
</div></div></blockquote></div><br></div></div>