<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body dir="auto"><div><br></div><div>On Dec 10, 2012, at 9:34 AM, Kosztka Imre Dávid <<a href="mailto:kosztkaid@gmail.com">kosztkaid@gmail.com</a>> wrote:<br><br></div><blockquote type="cite"><div>Is this all information we have now <a href="https://github.com/chandlerc/llvm-designs/blob/master/ClangService.rst">https://github.com/chandlerc/llvm-designs/blob/master/ClangService.rst</a>?<div>Or are there other places where we can find more info?</div></div></blockquote><div><br></div>Unfortunately, that's basically it for now. <div><br><blockquote type="cite"><div>
<div><br></div><div>I'm just trying to figure out where can I help.</div><div> <br></div><div class="gmail_extra"><br><br><div class="gmail_quote">2012/12/8 Douglas Gregor <span dir="ltr"><<a href="mailto:dgregor@apple.com" target="_blank">dgregor@apple.com</a>></span><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im"><br>
On Dec 7, 2012, at 2:07 PM, Sean Silva <<a href="mailto:silvas@purdue.edu">silvas@purdue.edu</a>> wrote:<br>
<br>
>> Right. We need a virtual file system that can be shared among the various<br>
>> Clang instances executing within the service. All of Clang's filesystem<br>
>> operations should go through that virtual file system, which (obviously)<br>
>> needs to provide thread-safe access.<br>
><br>
> Out of curiosity, is it feasible for clangd to just shepherd separate<br>
> processes for each instance that needs a different view of the<br>
> filesystem? Implementing a whole VFS just to run independent instances<br>
> inside the same process doesn't seem to make sense. I mean, the<br>
> separate instances aren't communicating, right?<br>
<br>
<br>
</div>It's feasible, but it's necessarily useful. We want all of the compilation/syntax checking/etc. jobs to go into the same clangd server process so that we can start sharing resources, e.g., the underlying buffers for header files that are read by many different translation units. And we want to know when those buffers no longer reflect what's in disk or in the user's IDE, which may invalidate certain results that are cached in the service.<br>

<br>
clangd isn't about compiling a bunch of different translation units to object code through a server rather than separate processes, it's about having a stateful server that can answer questions like "what code completions are valid at foo.cpp:55:4?" efficiently from relatively dumb clients.<br>

<div class="HOEnZb"><div class="h5"><br>
        - Doug<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>
</div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br>Name : Kosztka Imre Dávid<br>E-mail: <a href="mailto:kosztkaid@gmail.com" target="_blank">kosztkaid@gmail.com</a><br>Phone number: +36309213462<br>
Mailing address: H-3700, Hungary Kazincbarcika Szeder utca 2.<br>
</div>
</div></blockquote></div></body></html>