Home
Reading
Searching
Subscribe
Sponsors
Statistics
Posting
Contact
Spam
Lists
Links
About
Hosting
Filtering
Features Download
Marketing
Archives
FAQ
Blog
 
Gmane
From: Ivan Lazar Miljenovic <ivan.miljenovic <at> gmail.com>
Subject: ANNOUNCE: Graphalyze-0.5 and SourceGraph-0.3
Newsgroups: gmane.comp.lang.haskell.cafe
Date: Monday 3rd November 2008 03:35:58 UTC (over 9 years ago)
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

I've just submitted my thesis this morning (w00t!!!) and as such I'm
announcing
the latest versions of Graphalyze [1,2] and SourceGraph [3,4], which fix a
couple of bugs in the previous versions (these bugs were fixed whilst
waiting
for my supervisor to finish reading through my draft, and as such I had to
re-write bits of my thesis that talked about the limitations of the
software :s ).

[1] http://hackage.haskell.org/cgi-bin/hackage-scripts/package/Graphalyze
[2] http://code.haskell.org/Graphalyze
[3] http://hackage.haskell.org/cgi-bin/hackage-scripts/package/SourceGraph
[4] http://code.haskell.org/SourceGraph

Briefly, SourceGraph is a utility that uses the Graphalyze library to
analyse
Cabalized Haskell software.  Its input/output is rather restrictive at
the moment: it takes a single argument, which is the path to a .cabal file,
and
then produces an HTML report in:
      /SourceGraph/.html
This report contains visualisation of the code for each module, for the
imports
(similar to what graphmod [5] does) as well as the entire code base.
Furthermore, the entire code base is also visualised with functions grouped
by
the modules they're defined in, as well some simple analyses (such as
comparing
the export list to what functions are actually roots, similar to the output
for
top-level functions returned by GHC when using -fwarn-unused-binds).

Main changes in Graphalyze since version 0.4:
* When writing my thesis, I found some obvious silly mistakes (such as
copying
  the rootsOf function definition to leavesOf, but not changing the
function
  definition).
* Images in the document representation are now inline elements.
* When using Pandoc [6] for document generation, the size of generated
graphs
  is now customisable on a per-format basis; furthermore, for web pages
graph
  visualisations link to larger versions.  Also, graph visualisations can
now
  be created in a sub-directory.

Main changes in SourceGraph since version 0.2:
* Now uses Cabal 1.6
* Improve visual layout of generated HTML report (still no CSS though).
* "Smarter" analysis: don't show trivial analysis results, and when
analysing
  the entire code base don't return cliques, etc. that contain functions
all in
  the same module (as they would have been reported in the per-module
section).

Note, however, that the parsing limitations for version 0.2 still apply:
cpp is
still as-yet unsupported (as I'm not sure what I'll do about choosing cpp
flags); Template Haskell, HaRP and HXML are still ignored and functions in
class declarations/records are still ignored (the former because it's
ambiguous
which actual function you want, the latter because they're boring :p ). 
Also,
SourceGraph is _still_ not a refactoring tool ;-)

If anyone's interested, I'll soon be uploading the final version of my
thesis
to my blog.  Also, if anyone is interested in hacking on any of this, feel
free!  I'll probably leave it for a while (I'm going to be doing Java
coding
over summer, blech :s ), but I intend to come back to it later on.

- -- 
Ivan Lazar Miljenovic
[email protected]
IvanMiljenovic.wordpress.com
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.9 (GNU/Linux)

iEYEARECAAYFAkkOcaAACgkQfEfFJ9JhvyjhIwCeM9VXsJeSVK2CdWURJDer6zoA
A5YAoIfayHtjpw0qt/gyPZhhhypOwzSh
=x+/X
-----END PGP SIGNATURE-----
 
CD: 3ms