[Haskell-cafe] ANN: New version of graphmod (1.2.4)

Andreas Abel andreas.abel at ifi.lmu.de
Tue Oct 14 17:29:56 UTC 2014


dot crashes for me as well on graphmod's output for Agda, even with 
option -p to graphmod.

dot - graphviz version 2.26.3 (20100126.1600)

(Generated .dot file attached)

Cheers,
Andreas

On 04.10.2014 09:34, Mateusz Kowalczyk wrote:
> On 10/04/2014 01:33 AM, Iavor Diatchki wrote:
>> Hello,
>>
>> Good idea!  I made a little web-page with examples and screenshots.  Have a
>> look:
>>
>> https://github.com/yav/graphmod/wiki
>>
>> Indeed, mutually-recursive modules are not a problem.  There is an example
>> of some mutually-recursive modules in the screen-shot from GHC's
>> type-checker.
>>
>> By the way, I also added some support for modules that contains CPP, and
>> improved the layout of the graphs a bit, so the current version is 1.2.5.
>>
>> Cheers,
>> -Iavor
>>
>>
>>
>
> That helped a lot. I packaged graphmod (and xdot) on NixOS. It graphviz
> kept segfaulting[2] on the file produced for Yi repository but in the
> end it worked after I added ‘-p’ to graphmod. Also --no-cluster view at [3].
>
> Is there any plan for graphmod to do rendering itself, such as to PNG? I
> also wonder if there's any way to highlight cyclic paths, useful when
> trying to get rid of boot files.
>
> [1]: http://fuuzetsu.co.uk/images/1412407628.png
> [2]:
>    libpath/shortest.c:324: triangulation failed
>    libpath/shortest.c:192: source point not in any triangle
>    Error: in routesplines, Pshortestpath failed
>    out of memory
> [3]: http://fuuzetsu.co.uk/images/1412407805.png
>
>>
>> On Fri, Oct 3, 2014 at 12:43 PM, Mateusz Kowalczyk <fuuzetsu at fuuzetsu.co.uk>
>> wrote:
>>
>>> On 10/03/2014 07:37 PM, Iavor Diatchki wrote:
>>>> Hello,
>>>>
>>>> I am pleased to announce a new version of `graphmod`---a program that
>>> helps
>>>> you visualize the import dependencies between the modules in your Haskell
>>>> programs.
>>>>
>>>> The new feature in version 1.2.4 is support for pruning the dependency
>>>> graph, which is enabled with the flag -p or --prune-edges.    When this
>>>> option is selected, `graphmod` will ignore imports to modules that are
>>>> already imported by some of the dependencies of the module.
>>>>
>>>> For example, consider the following modules:
>>>>
>>>>      module A where { import B; import C }
>>>>      module B where { import C }
>>>>      module C where { }
>>>>
>>>> When generated with `--prune-edges`, the resulting graph will be:
>>>>
>>>>      A -> B -> C
>>>>
>>>> Note that there is no edge from `A` to `C`, because `C` is already
>>> imported
>>>> by `B`.
>>>>
>>>> Happy hacking,
>>>> -Iavor
>>>>
>>>>
>>>
>>> Hi,
>>>
>>> It'd be great if the project page showed an example use and the
>>> generated graph.
>>>
>>> Does it work with possibly mutually-importing boot files?
>>>
>>>
>>> --
>>> Mateusz K.
>>> _______________________________________________
>>> Haskell-Cafe mailing list
>>> Haskell-Cafe at haskell.org
>>> http://www.haskell.org/mailman/listinfo/haskell-cafe
>>>
>>
>
>


-- 
Andreas Abel  <><      Du bist der geliebte Mensch.

Department of Computer Science and Engineering
Chalmers and Gothenburg University, Sweden

andreas.abel at gu.se
http://www2.tcs.ifi.lmu.de/~abel/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: moduleDeps.dot
Type: application/msword
Size: 12477 bytes
Desc: not available
URL: <http://www.haskell.org/pipermail/haskell-cafe/attachments/20141014/39958e39/attachment.dot>


More information about the Haskell-Cafe mailing list