<html><head><meta http-equiv="Content-Type" content="text/html charset=windows-1252"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><div style="margin: 0px 0px 0px 4px;">Committed as r206664 and then fixed up slightly in r206673.</div><div style="margin: 0px 0px 0px 4px;"><br></div><div style="margin: 0px 0px 0px 4px;">Ben</div><div style="margin: 0px 0px 0px 4px;"><br></div><div><div>On Apr 18, 2014, at 2:11 PM, Richard Smith <<a href="mailto:richard@metafoo.co.uk">richard@metafoo.co.uk</a>> wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Fri, Apr 18, 2014 at 11:37 AM, Ben Langmuir <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 class=""><div>On Apr 16, 2014, at 10:33 AM, Richard Smith <<a href="mailto:richard@metafoo.co.uk" target="_blank">richard@metafoo.co.uk</a>> wrote:</div>
<br><blockquote type="cite"><div dir="ltr">I think this would benefit from further refinement.<div><br></div><div>1) If a submodule's header is missing, and that submodule would have been unavailable anyway (because, say, it requires some feature that's not present for the current build), we shouldn't make the parent module unavailable.</div>
</div></blockquote><div><br></div></div><div>Right, makes sense.</div><div class=""><br><blockquote type="cite"><div dir="ltr">
<div><br></div><div>2) If we mark a module unavailable, we should mark all of its submodules unavailable too. (The existing approach also had this problem, but it's rare for a module to contain both headers and submodules, so I guess it seldom happens in practice.)</div>
</div></blockquote><div><br></div></div><div>Yep.</div><div><br></div><div>Updated patch attached.</div></div></div></blockquote><div><br></div><div>Thanks! LGTM</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"><span class="HOEnZb"><font color="#888888"><div>Ben</div><div><br></div><div></div></font></span></div>
<br><div style="word-wrap:break-word"><div><div></div><br><blockquote type="cite"><div dir="ltr">
</div><div class="gmail_extra"><br><br><div class="gmail_quote">On Wed, Apr 16, 2014 at 5:38 AM, Daniel Jasper <span dir="ltr"><<a href="mailto:djasper@google.com" target="_blank">djasper@google.com</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">I think this makes sense, but I'd also like Richard to take a look.</div><div>
<div class="gmail_extra"><br><br><div class="gmail_quote">On Tue, Apr 15, 2014 at 6:18 PM, Ben Langmuir <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">Hi Daniel,<br>
<br>
Back in r197485 you made it so that missing module headers are marked unavailable and will fail at build/import time rather than when parsing the module map file.  This patch fixes the case where a submodule is missing a header - right now the top-level module will build without the header, which is awful, because 1) you don’t get a diagnostic for the missing header and may just get missing symbols, and 2) even after you replace the missing header the module won’t rebuild because the pcm file doesn’t depend on that header if it wasn’t included.<br>



<br>
I’m not sure if I did this the right way, since it seems like the MissingHeader should be on the submodule, but I wasn’t sure if we wanted to search all of a module’s children in order to figure out what happened.<br>
<span><font color="#888888"><br>
Ben<br>
<br>
</font></span></blockquote></div><br></div>
</div></blockquote></div><br></div>
</blockquote></div><br></div><br></blockquote></div><br></div></div>
</blockquote></div><br></body></html>