On May 30, 2023, Paul Smith <p...@mad-scientist.net> wrote: > On Mon, 2023-05-29 at 17:16 -0300, Alexandre Oliva via Gcc wrote: >> On May 17, 2023, Arsen Arsenović <ar...@aarsen.me> wrote: >> >> > ISTR Alexandre Oliva (CC added) mentioning leveraging GDB to >> > implement various bits of LSP functionality, such as handling >> > multiple TUs. >> >> I recall advancing that suggestion, reasoning that GDB was capable of >> combining information from multiple translation units and of >> reloading debug information, which GCC doesn't.
> I'm not sure this will work well. The information LSP servers need is > quite a bit more detailed (I believe) than what is found in the object > file debug sections. It was well understood that augmenting debug information for LSP purposes would likely be needed, and that GDB's ability to combine debug information from multiple units would be advantageous to this end as well. An mode similar to thin LTO, that outputs internal representation along with debug information, rather than compiling all the way to machine code, was also in my mind. That's similar to the indexing you mention. > LSP servers are not intended to be limited to dealing with the code > that has already been compiled: not only do you want to be able to edit > code before it's been compiled, but you want to be able to query new > code as it's written in the editor, before it's even saved to disk. ISTM there's some miscommunication here. Using the compiler's parser and debug information generator to index a project is no more "compilation" than using the linker's ability to integrate multiple translation units and the debugger's ability to take debug information from them all to aid editing and other LSP activities amounts to "debugging", it's just using each project's strengths to achieve the desired goal. -- Alexandre Oliva, happy hacker https://FSFLA.org/blogs/lxo/ Free Software Activist GNU Toolchain Engineer Disinformation flourishes because many people care deeply about injustice but very few check the facts. Ask me about <https://stallmansupport.org>