Sadly the review process for the following patch ([clangd] [Modules] Support Reusable Modules Builder by ChuanqiXu9 · Pull Request #106683 · llvm/llvm-project · GitHub) get stucked again. The intention of the patch is to make different TUs can share the BMIs of imported modules. The performance of modules in clangd may be unacceptable without this patch.
I tried to talk with @HighCommander4. But he was too busy and he like to wait for reviews who had experience with the previous reviews. And I believe @kadircet has other important business to do.
I understand that the mechanisms of code owners is one thing. But if every one can be available every time is another thing. I can’t promise I can maintain the modules things in clang forever too. So let’s try to focus on how should we proceed on this particular problems.
For the short term, I like to land the above patch in 2 weeks if no more comments come in, given:
- In our downstream, we’ve landed this patch for more than a year and it seems running well. And also in the open source world, I tried to send it to GitHub - ChuanqiXu9/clangd-for-modules: A preview for C++20 Named Modules Support in clangd.. Everyone experienced it didn’t complain about it for bugs. So I believe this is well tested.
- There are other following patches and I really wish we can have something workable in the next release.
- This patch doesn’t change the shape of modules support in clangd. The major change lives in ModulesBuilder.cpp, which we can think it as an implementation detail instead of some global things.
For the longer term, I’d like to take the ownership of modules support in clangd. So that I can land the patches after I reviewed it and tested it by the LLVM’s policy.
For the previous concern, “we’re afraid when we come back, when we want scalable, high quality and high efficient implementation for C++20 modules in clangd, it will be more expensive to refactor the not-so-well-designed codes than creating something fresh new”. I think:
- It is not an argument strong enough to ask clangd and modules users to wait for it without a particular time line.
- It is more or less not political correct to say only certain organizations or particular person can write good codes.
- I do think it won’t be too bad. Since the number of following changes in my mind is not so many, we won’t fall into irreparable case. And given we have enough users who are waiting for this, I believe we can have enough eyes on this and we won’t be in some regression to deeply and we can receive enough feedbacks to make improvements step by step.
CLARIFICATION: this is not a blaming post for particular organization or particular person. I understand this as a common “hit by a bus” problem especially in open source area. Let’s focus on how to proceed on this particular problem.