[Haskell-cafe] darcs patch dependencies in dot format

wren ng thornton wren at freegeek.org
Wed May 16 11:43:22 CEST 2012


On 5/12/12 8:52 AM, Sönke Hahn wrote:
> Any comments or suggestions?

Cabalize it and release it on Hackage. But especially the cabalization 
part :)

You should probably farm out the toDot rendering to one of the libraries 
that focuses on that[1], since they'll have focused on the efficiency 
issues--- or if they haven't, then you can contribute improvements 
there, helping everyone win. In particular, you're using Strings which 
is a notorious performance sink. Using Text or ByteStrings would be far 
better.

Also, have you compared your transitive reduction to just outputting the 
whole graph and then using `tred`? The latter approach has the distinct 
downside of needing to serialize the whole graph; but it could still be 
a win unless you intend to implement similar algorithms yourself. The 
smart algorithms do *much* better than brute force.

And of course it'd be nice to be able to pass arguments to the program 
in order to filter and otherwise manipulate the resulting graph. A lot 
of that can be done by special programs which only know about the Dot 
language (e.g., tred), so you should only focus on things which aren't 
captured by the Dot language or are otherwise only knowable by querying 
Darcs.


[1] Like graphviz or language-dot:

     http://hackage.haskell.org/package/graphviz
     http://hackage.haskell.org/package/language-dot

Though it doesn't look like those are used by the various other foo2dot 
programs on Hackage:

     http://hackage.haskell.org/package/hs2dot
     http://hackage.haskell.org/package/prof2dot
     http://hackage.haskell.org/package/scons2dot
     http://hackage.haskell.org/package/vacuum-cairo
     http://hackage.haskell.org/package/vacuum-opengl

So perhaps there's some issue with those libraries...

-- 
Live well,
~wren



More information about the Haskell-Cafe mailing list