Thread overview
Compiler module import graph
Mar 13, 2021
frame
Mar 13, 2021
ag0aep6g
Mar 13, 2021
frame
Mar 13, 2021
frame
Mar 13, 2021
Eugene Wissner
Mar 13, 2021
frame
March 13, 2021
Is there a tool to view module import graph?

The compiler verbose output shows that the module is imported/parsed but not why. I wan't to avoid unnecessary imports to speed up compile times or avoid issues if the module contents are not fully compatible with the current compile target being in development.
March 13, 2021
On 13.03.21 15:20, frame wrote:
> Is there a tool to view module import graph?
> 
> The compiler verbose output shows that the module is imported/parsed but not why. I wan't to avoid unnecessary imports to speed up compile times or avoid issues if the module contents are not fully compatible with the current compile target being in development.

`dmd -deps` shows what imports what.

https://dlang.org/dmd-linux.html#switch-deps

Be aware that there is a bug where DMD misses some edges in the graph:
https://issues.dlang.org/show_bug.cgi?id=21238
March 13, 2021
On Saturday, 13 March 2021 at 14:20:01 UTC, frame wrote:
> Is there a tool to view module import graph?
>
> The compiler verbose output shows that the module is imported/parsed but not why. I wan't to avoid unnecessary imports to speed up compile times or avoid issues if the module contents are not fully compatible with the current compile target being in development.

An external tool: https://github.com/funkwerk/depend.
March 13, 2021
On Saturday, 13 March 2021 at 14:30:52 UTC, ag0aep6g wrote:
> On 13.03.21 15:20, frame wrote:
>> Is there a tool to view module import graph?
>> 
>> The compiler verbose output shows that the module is imported/parsed but not why. I wan't to avoid unnecessary imports to speed up compile times or avoid issues if the module contents are not fully compatible with the current compile target being in development.
>
> `dmd -deps` shows what imports what.
>
> https://dlang.org/dmd-linux.html#switch-deps
>
> Be aware that there is a bug where DMD misses some edges in the graph:
> https://issues.dlang.org/show_bug.cgi?id=21238

For some reason the only output I get is 'interface function ... is not implemented' errors if I run this switch.
March 13, 2021
On Saturday, 13 March 2021 at 14:41:48 UTC, Eugene Wissner wrote:
> On Saturday, 13 March 2021 at 14:20:01 UTC, frame wrote:
>> Is there a tool to view module import graph?
>>
>> The compiler verbose output shows that the module is imported/parsed but not why. I wan't to avoid unnecessary imports to speed up compile times or avoid issues if the module contents are not fully compatible with the current compile target being in development.
>
> An external tool: https://github.com/funkwerk/depend.

Thanks! I will try this out.
March 13, 2021
On Saturday, 13 March 2021 at 14:55:20 UTC, frame wrote:
> On Saturday, 13 March 2021 at 14:30:52 UTC, ag0aep6g wrote:
>> On 13.03.21 15:20, frame wrote:
>>> Is there a tool to view module import graph?
>>> 
>>> The compiler verbose output shows that the module is imported/parsed but not why. I wan't to avoid unnecessary imports to speed up compile times or avoid issues if the module contents are not fully compatible with the current compile target being in development.
>>
>> `dmd -deps` shows what imports what.
>>
>> https://dlang.org/dmd-linux.html#switch-deps
>>
>> Be aware that there is a bug where DMD misses some edges in the graph:
>> https://issues.dlang.org/show_bug.cgi?id=21238
>
> For some reason the only output I get is 'interface function ... is not implemented' errors if I run this switch.

Ok, I was stupid forget the -m64 switch and had a size_t/ulong bug in an interface. Thanks.