<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Thu, May 21, 2015 at 2:23 PM,  <span dir="ltr"><<a href="mailto:blangmuir@apple.com" target="_blank">blangmuir@apple.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word"><br><div><div><div class="h5"><blockquote type="cite"><div>On May 20, 2015, at 6:14 PM, Richard Smith <<a href="mailto:richard@metafoo.co.uk" target="_blank">richard@metafoo.co.uk</a>> wrote:</div><br><div><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Wed, May 20, 2015 at 5:59 PM, Thompson, John <span dir="ltr"><<a href="mailto:John_Thompson@playstation.sony.com" target="_blank">John_Thompson@playstation.sony.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">





<div lang="EN-US" link="blue" vlink="purple">
<div><p class="MsoNormal">Hi,<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">I’ve experienced a few situations where I’ve been changing a module map during development, or passing module maps to others to try, who then get mysterious warnings or errors, such as:<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p>test.cpp:2:2: warning: missing submodule '_Builtin_intrinsics.intel.x86intrin'<u></u><u></u></p><p>      [-Wincomplete-umbrella]<u></u><u></u></p><p>#include <x86intrin.h><u></u><u></u></p><p>^       ~<u></u><u></u></p><p>1 warning generated.<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">Sometimes clang detects it, and issues a relevant warning.  Other times it does not.  (Perhaps due to a time tag being earlier?)  The recovery is to delete the module cache manually.<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">Is there something we could do to better detect a changed module map, and perhaps even better, also automatically delete the prior module cache to avoid potential problems?  Checksum/CRC the module map?  Use size and file time?</p></div></div></blockquote><div><br></div><div>We do these things, but the checks are turned off by default for system modules (to avoid stat'ing all the system headers on every compile). I think there's a flag to turn on the checks even for system modules, -fmodules-validate-system-headers I think?</div></div></div></div></div></blockquote><div><br></div></div></div><div>Maybe we should flip the default, and make the unsafe behaviour opt-in?  IDEs and build systems can also use -fmodules-validate-once-per-build-session to avoid unnecessary re-checking without making it hard to edit system module maps.</div></div></div></blockquote><div><br></div><div>Do we know why it was put in with its current default in the first place, and how much it actually speeds things up?</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 style="word-wrap:break-word"><div><span class=""><br><blockquote type="cite"><div>
_______________________________________________<br>cfe-dev mailing list<br><a href="mailto:cfe-dev@cs.uiuc.edu" target="_blank">cfe-dev@cs.uiuc.edu</a><br><a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev</a><br></div></blockquote></span></div><br></div><br>_______________________________________________<br>
cfe-dev mailing list<br>
<a href="mailto:cfe-dev@cs.uiuc.edu">cfe-dev@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev</a><br>
<br></blockquote></div><br></div></div>