<div dir="ltr"><div class="gmail_quote"><div dir="ltr">On Thu, Mar 1, 2018 at 7:50 PM Marc-André Laperle <<a href="mailto:marc-andre.laperle@ericsson.com">marc-andre.laperle@ericsson.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div>
<div>Hi Manuel,</div>
<div><br>
</div>
<div>A few relies below.</div></div><div>
<div><br>
</div>
<div>On Thu, 2018-03-01 at 13:24 +0000, Manuel Klimek wrote:</div>
<blockquote type="cite">
<div dir="ltr">
<div class="gmail_quote">
<div>- cquery is based on libclang, while clangd directly works with the AST and provides a non-LSP C++ interface to be integrated as service in larger environments - this lets clagnd work in places where libclang is hard to integrate</div>
</div>
</div>
</blockquote>
<div><br>
</div>
</div><div><div>Would that C++ interface be usable for out-of-tree projects? I guess one would simply link to libclangDaemon?</div></div></blockquote><div><br></div><div>Correct.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div>
<blockquote type="cite">
<div dir="ltr">
<div class="gmail_quote">
<div>- clangd wants to integrate with other folks in the community on indexing interfaces and mechanisms that provide a platform for tools to work on; while there is also some prototyping, a lot of work goes into designing the right system</div>
<div>- clangd puts scale and performance first; for very very large code bases (significantly larger than chromium), this is a precondition, and (together with the previous item) why we don't have a global index yet</div>
</div>
</div>
</blockquote>
<div><br>
</div>
</div><div><div>I think cquery puts those two first but it sounds like you have even more agressive requirements.</div></div></blockquote><div><br></div><div>Unfortunately, yep :)</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div>
<blockquote type="cite">
<div dir="ltr">
<div class="gmail_quote">
<div>- clangd work currently focuses on making code completion really good, so quite a bit of work has gone into how to split the preamble and making completion results better (which also benefits cquery \o/)</div>
<div><br>
</div>
<div>The hope is that clangd at some point will catch up with cquery, but as those things go, in the end they will probably have slightly different trade-offs, so some folks will use one while others use the other. In principle that's the nice thing about the
LSP; competition is now possible :)</div>
</div>
</div>
</blockquote>
<div><br>
</div>
</div><div><div>Yeah, clients can adopt one of the other pretty easily (well maybe without extension support). I think it's good to understand the different trade-offs and compare the different goals so that potential contributors can decide where to focus their work.</div></div></blockquote><div><br></div><div>Yep. I'd say if one wants to contribute to continuing to build up a platform for C++ tooling based on clang, get involved in clangd (I believe this is specifically a non-goal for cquery); if one wants to get new useful features as fast as possible, cquery is a better place, and the clangd code reviews will likely turn out to be a source of frustration, as it often involves getting consensus across a range of people from different companies :)</div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><blockquote type="cite">
<div dir="ltr">
<div class="gmail_quote">
<div>For everyone interested, come join the talk on clangd at the Euro LLVM in Bristol; that talk will include a more detailed comparison between the two approaches.</div>
</div>
</div>
</blockquote>
<div><br>
</div>
</div><div><div>That sounds very good. I'll be there!</div>
<div><br>
</div>
<div>Thank you for your time,</div>
<div>Marc-André</div>
<blockquote type="cite"></blockquote>
</div>
</blockquote></div></div>