[PATCH v5 4/5] c++modules: report imported CMI files as dependencies

Nathan Sidwell nathan@acm.org
Tue Jul 18 21:12:32 GMT 2023


On 7/18/23 16:52, Jason Merrill wrote:
> On 6/25/23 12:36, Ben Boeckel wrote:
>> On Fri, Jun 23, 2023 at 08:12:41 -0400, Nathan Sidwell wrote:
>>> On 6/22/23 22:45, Ben Boeckel wrote:
>>>> On Thu, Jun 22, 2023 at 17:21:42 -0400, Jason Merrill wrote:
>>>>> On 1/25/23 16:06, Ben Boeckel wrote:
>>>>>> They affect the build, so report them via `-MF` mechanisms.
>>>>>
>>>>> Why isn't this covered by the existing code in preprocessed_module?
>>>>
>>>> It appears as though it is neutered in patch 3 where
>>>> `write_make_modules_deps` is used in `make_write` (or will use that name
>>>
>>> Why do you want to record the transitive modules? I would expect just noting the
>>> ones with imports directly in the TU would suffice (i.e check the 'outermost' 
>>> arg)
>>
>> FWIW, only GCC has "fat" modules. MSVC and Clang both require the
>> transitive closure to be passed. The idea there is to minimize the size
>> of individual module files.
>>
>> If GCC only reads the "fat" modules, then only those should be recorded.
>> If it reads other modules, they should be recorded as well.

Please explain what you mean by fat modules.  There seems to be confusion.

> 
> But wouldn't the transitive modules be dependencies of the direct imports, so 
> (re)building the direct imports would first require building the transitive 
> modules anyway?  Expressing the transitive closure of dependencies for each 
> importer seems redundant when it can be easily derived from the direct 
> dependencies of each module.
> 
> Jason
> 

-- 
Nathan Sidwell



More information about the Gcc mailing list