The review process for the initial support patch for modules in clangd ([clangd] [C++20] [Modules] Introduce initial support for C++20 Modules by ChuanqiXu9 · Pull Request #66462 · llvm/llvm-project · GitHub) has been suspended for nearly half year. I want to discuss how can we proceed.
The support for modules in clangd is pretty important. On the one hand, I guess we don’t need to prove how important the code intelligence is nowadays. On the other hand, many people think (or thought) the modules as the most important feature in C++20. I used the term “thought” since I find some people are losing confidences in modules due to the premature support from tools. So I want to emphasize that it is pretty important for the users to have some support for modules in clangd.
IMPORTANT NOTE: this is not a push letter to @sam-mccall! It is time-consuming for any one to take a high-quality review for such an initial and relative large patch. And it is not easy to take the sufficient time for members of the open source community. In fact, the suggestion from @sam-mccall has helped me a LOT to improve the quality of the patch.
Another important note is that, the patch linked above is only an initial patch. It is expected to be not efficiency enough for even small size real world projects. We need several following optimizing patches to make it better. So this is not a requirement to merge the patch. But a discussion for the future directions for modules support in clangd.
So based on the assumption that we may not have qualified enough reviewers, what can we do?
My proposal may be:
- Encourage more people to do shallow reviews and allow or encourage them to accept the patch.
- Encourage more volunteers to provide testing feedbacks and treating these feedbacks as review results.
- We can land the patches with the good feedbacks.
The final note here is that the scope of the RFC only limits to the modules support in clangd. I know it is much harder to make a wider policy. While that is pretty valuable, I prefer to make some progress in this direction first.