ChuanqiXu9 wrote:

@sam-mccall  Thanks for you high quality comments! I think all the comments 
(except few ones I explained in inline comments) should be addressed in the 
latest force-push commit. I didn't click the `Resolve Conversation` button 
since there is a discussion for it: 
https://discourse.llvm.org/t/rfc-github-pr-resolve-conversation-button/73178/42.

The "significant" changes in the latest commit are mainly interface changes. 
They include:
- Introduced a `ModulesBuilder` class. The class is responsible for building 
module files.  Currently it follows the original style to build module files 
seperetely for every different source files. As we discussed, `ModulesBuilder` 
class can be used to reuse the module files across different source files.
- Split `buildPrerequisiteModulesFor` from `PrerequisiteModules` to 
`ModulesBuilder` class. Now `PrerequisiteModules` are simply collection of 
module files. And it has two duties:
    - Check if all the module files are still up-to-date (or valid)
    - Adjust the header search options to make it to try search for the module 
files built by us first.
- Split the original `PrerequisiteModules` to a pure virtual class and move the 
implementations to `ModulesBuilder.cpp`.
- `ScanningAllProjectModules` are removed from the header files.
- The suggested ModuleFile class are introduced as a private class to 
`StandalonePrerequisiteModules`. I think it is good now since all the module 
files are owned by `StandalonePrerequisiteModules` and they are private to 
others.
 
I can image, in the end of the day, we need to have a "public" ModuleFile class 
which are owned by `ModulesBuilder` to make it to be shared with other source 
files. And derived class from  `PrerequisiteModules` will only have references 
to some module files. But I didn't move on. I feel they should be part of the 
later patches. 

https://github.com/llvm/llvm-project/pull/66462
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to