aaron.ballman added a comment.

In D145228#4174829 <https://reviews.llvm.org/D145228#4174829>, @sammccall wrote:

> @aaron.ballman
>
> If someone wants to work on producing a more modular, component-based design, 
> that's probably a good idea (but tricky to get right). Probably a good place 
> to start is working out what pieces can be moved into separate libraries with 
> e.g. a coherent layering story, thinking about how they might be reused in 
> other tools etc.
>
> Exposing all clangd's headers as-is is not that. I don't think the idea that 
> llvm-project is modular is at odds with the idea that leaf subprojects exist, 
> though clangd is big enough that it may make sense to split up. And private 
> headers (those that live next to source files in the tree) are not installed 
> (with the recent exception of `clang-tidy`, which IMO should have been 
> restructured to publish in this way).

Ah, okay, thank you for the clarification! I agree we have to go about 
splitting the project up into libraries very carefully and this approach isn't 
appropriate. But I was getting the impression there was push-back against the 
idea of making clangd into a series of libraries in general and that worried me.

> FWIW, I do think clang is a fair example of a project where the default of 
> "everything is a public library" has made the library design somewhat 
> incoherent and hard to evolve. OTOH it's enabled tons of useful stuff, so...

IMO, we've not really had too many issues evolving Clang's libraries, but I do 
think there's room for improvement (it's hard to figure out how to split up 
Sema, for example). As you say, it's not an easy problem to solve but it 
enables a lot of really useful stuff we wouldn't otherwise be able to achieve 
as easily.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D145228/new/

https://reviews.llvm.org/D145228

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

Reply via email to