I'm pleased to announce the latest version of my graphviz library that
provides Haskell bindings to the Graphviz graph visualisation suite.
There are numerous changes in this release, the most important of which
are:
* graphviz now has an FAQ and an improved README as well as its own
homepage: http://projects.haskell.org/graphviz/ (as prompted by Eric
Kow).
* Add support for record labels; values are automatically
escaped/unescaped. The `Record` and `MRecord` shapes have been
added for use with these labels. Requested by Minh Thu and Eric
Kow.
* Add support for HTML-like values (this replaces the wrong and
completely broken URL datatype). Strings are automatically
escaped/unescaped.
* Various parsing improvements (including a slight parsing speed
increase!).
In particular, graphviz is now able to parse almost all Dot graphs found
on my system (including samples shipped with Graphviz, Linux kernel
documentation and various other package documentations). A list of the
breakages and why:
* /usr/share/sgml/docbook/xsl-stylesheets/roundtrip/template.dot seems
to be a binary file and thus can't be read.
* /usr/share/graphviz/graphs/directed/Latin1.gv uses Latin1 encoding; at
the moment graphviz uses the system's locale encoding (or whatever GHC
< 6.10 defaults to).
* /usr/share/doc/boost-*/html/libs/graph/example/graphviz_test.dot
(various boost versions) has subgraphs in edges; graphviz currently
can't cope with these.
* /usr/src/linux-2.6.33-gentoo-r1/Documentation/blockdev/drbd/drbd-connection-state-overview.dot
uses incorrect syntax for the "minlen" attribute (it is meant to be an
integer but actually contains a floating point value).
The plans for the next release (which I don't plan on even starting for
a while) are to focus on improving printing and parsing performance,
using a state-based printer and parser (as part of Dot syntax is
state-based) and force usage of UTF-8 (via text or utf8-string).
--
Ivan Lazar Miljenovic
Ivan.Miljenovic at gmail.com
IvanMiljenovic.wordpress.com