sammccall added a comment.

In https://reviews.llvm.org/D54077#1288455, @LutsenkoDanil wrote:

> I already made a patch which introduces such behavior (not uploaded here 
> yet), and looks like it works well with draft fs: diagnostics updates for 
> depended files in 'real-time' on typing for opened files and no seen 
> performance glitches, in multi-threaded mode at least.


This does indeed sound exciting! I'm a little skeptical that it "just works", 
there are some tricky cases:

- TUs where the preamble takes multiple seconds to rebuild
- "thundering herd" problems if several TUs are active that include the edited 
file
- redundant background work does have costs (e.g. battery)

> If it helps (and the LSP allows it): In case A.h is edited, we flag it dirty. 
> If the user makes some file depending on it visible (or the current file), we 
> trigger a reparse for that. Not sure whether the LSP has a notion of current 
> or visible files...

It doesn't. Maybe there's a way to make this idea work anyway (nothing comes to 
mind).

> I suggest continue discussion when/if dependencies tracking will be 
> implemented and real performance reduce introduced by this patch can be 
> checked with real code.

Sounds reasonable. I think maybe the shortest path there is to implement on top 
of the LSP file change notifications, and have it push a "maybe rebuild" item 
on every TUScheduler worker.


Repository:
  rCTE Clang Tools Extra

https://reviews.llvm.org/D54077



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to