www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.learn - Compiler module import graph

reply frame <frame86 live.com> writes:
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.
Mar 13 2021
next sibling parent reply ag0aep6g <anonymous example.com> writes:
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
Mar 13 2021
parent reply frame <frame86 live.com> writes:
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.
Mar 13 2021
parent frame <frame86 live.com> writes:
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.
Mar 13 2021
prev sibling parent reply Eugene Wissner <belka caraus.de> writes:
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.
Mar 13 2021
parent frame <frame86 live.com> writes:
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.
Mar 13 2021