Le 31/08/2016 à 13:22, Thomas Martitz a écrit :
Am 31.08.2016 um 13:03 schrieb Jiří Techet:
[…]
No, performance is a very valid point. Tag updates don't happen in a background thread in Geany but rather on the main thread (and changing this would require lots of modifications as neither ctags, nor TM nor Geany are thread-safe) and all updates have to happen in a really short time period - you cannot make the GUI freeze while the user is typing so you have 100ms at most without any noticeable delay.
I'm saying we can't evaluate performance at this time, because no implementation is available. So saying now "uhm I fear it might be too slow my guess is that the other one is 100x faster" is just a wild assumption that doesn't help except spraying FUD. And outright rejecting a proposal based on such assumptions is invalid.
I wouldn't dismiss Jiří's performances remarks that easily :) Remember he spent a fair amount of time optimizing it, and has had experience with huge amount of tags with his project-organizer plugin on large projects (Linux kernel, anyone?). And IIUC, he realized that with all the tags *current* parsers generate (e.g. no local variables, etc.) TM started to struggle too much for it to be usable.
Sure, we need numbers, but I'm afraid we kinda already have some idea of what they would be.
Yes, maybe it'd be possible to improve the situation even further, but it might be a lot of work for very little gain. I would guess if a e.g. libclang works with real-size projects is because it has a lot of highly specific optimizations resulting of a lot of work on their side. And why I'm not sure it's even so useful for TM anyway, is that both Lex and Matthew showed some semantic examples that are both very subtle to deal with, and highly specific to some languages (here, C++) -- I love Lex's ADL example, C++ can seem just crazy :)
Regards, Colomban