<div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote">On Mon, Aug 25, 2014 at 5:30 PM, Chandler Carruth <span dir="ltr"><<a href="mailto:chandlerc@google.com" target="_blank">chandlerc@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"><div class="gmail_extra"><div class=""><br><div class="gmail_quote">On Mon, Aug 25, 2014 at 5:18 PM, Sean Silva <span dir="ltr"><<a href="mailto:chisophugis@gmail.com" target="_blank">chisophugis@gmail.com</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Does any part of LLVM actually *design* a public API (besides the C stuff), rather than having the public API be just the one used by clients within LLVM? Actually, I feel like there would be pushback for trying to do that.</blockquote>

</div><br></div>Is this a serious question?</div></div></blockquote><div><br></div><div>Yes. It was in reply to a statement that seemed to suggest a "design public API up front, then implement the whole thing" approach (not a "incrementally approach our use cases, carefully considering the design of the API at each step" approach). It seems like the "design API up front" approach is the exception rather than the norm in LLVM-land, so it was strange to see it being suggested as a preference.</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 dir="ltr"><div class="gmail_extra"><br></div><div class="gmail_extra">
We very carefully consider changes to the IR's public APIs. Same for the pass management and other APIs.</div><div class="gmail_extra">
<br></div><div class="gmail_extra">The Clang ASTs have a *huge* number of external users of their API and API changes are considered carefully.</div><div class="gmail_extra"><br></div><div class="gmail_extra">The Edit, Tooling, Rewrite, and Format libraries all have public APIs that did go through a reasonable amount of design.</div>

</div>
</blockquote></div><br></div></div>