<div dir="ltr"><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Jul 18, 2013 at 2:20 PM, Sean Silva <span dir="ltr"><<a href="mailto:silvas@purdue.edu" target="_blank" class="cremed">silvas@purdue.edu</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">
<div class="gmail_extra"><div class="gmail_quote"><div>So I'm not completely opposed to the idea. I'd be curious what Chandler thinks, he usually happens to have strong opinions about things like this :)</div></div>
</div></div></blockquote><div><br>
</div></div><div>Yeah, I'd love to hear any ideas he has about this.</div></blockquote></div><br>I'm summoned. =D</div><div class="gmail_extra"><br></div><div class="gmail_extra">So, I'm moderately opposed to the idea. The reason is that we've tried this (as Manuel mentions) and it creates a really huge new problem: where do you look for the object file. Worse, the *right* object file.</div>
<div class="gmail_extra"><br></div><div class="gmail_extra">The primary benefit of writing out to a single compilation database is *precisely* that: it is a *single* compilation database. You can place it in a common, predictable location and have clang-based tools look there. We had huge, never-ending problems with this in practice. We would spend more time looking for the .o file than we would running the clang tool, or we would find the wrong .o file and end up not reproducing the compile developers actually cared about.</div>
<div class="gmail_extra"><br></div><div class="gmail_extra">Even if you build aggregate databases as you say for "final build products", I agree with Manuel: this just moves the problem. Now you need to know which build product to look into.</div>
<div class="gmail_extra"><br></div><div class="gmail_extra">I genuinely think that having a common database is far and away the best strategy for integrating tools into a development process. We should focus on updating build systems to directly write out these databases. That tends to be the most effective way to get the compilation database.</div>
</div>