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