ghc-vis-0.2.1: ghc-vis.cabal
name: ghc-vis
version: 0.2.1
license: BSD3
license-file: LICENSE
category: GHC, Debug, Development
cabal-version: >= 1.10
build-type: Custom
author: Dennis Felsing <dennis@felsin9.de>
maintainer: Dennis Felsing <dennis@felsin9.de>
homepage: http://felsin9.de/nnis/ghc-vis
copyright: Dennis Felsing 2012
synopsis: Live visualization of data structures in GHCi
description: Visualize live data structures in GHCi. Evaluation is not
forced and you can interact with the visualized data
structures. This allows seeing Haskell's lazy evaluation
and sharing in action.
.
To use this package add the accompanying @ghci@ file to
your @.ghci@ like this:
.
> echo ":script $HOME/.cabal/share/ghc-vis-0.2.1/ghci" >> ~/.ghci
.
Now you can run ghci and experiment with @ghc-vis@. Start
the visualization:
.
> $ ghci
> GHCi, version 7.4.2: http://www.haskell.org/ghc/ :? for help
> > :vis
.
A blank window should appear now. This is the visualization
window. Add an expression to the visualization:
.
> > let a = [1..3]
> > :view a
> > let b = cycle a
> > :view b
> > :view "foo" ++ "bar"
.
<http://felsin9.de/nnis/ghc-vis/1.png>
.
Functions are red, named objects are green and links to an
already shown object are blue.
.
Notice how @a@ is referenced by @b@.
.
Evaluate an object that is shown in the visualization. You
can also click on the object to evaluate it.
.
> > :eval t1
.
<http://felsin9.de/nnis/ghc-vis/2.png>
.
The first element of @b@ has been evaluated. We see that
it's a reference to the value that's also referenced in a,
as they share the same name "t0".
.
Switch between the list view and the graph view:
.
> > :switch
.
<http://felsin9.de/nnis/ghc-vis/3.png>
.
When an object is updated by accessing it, you have to call
@:update@ to refresh the visualization window. You can also
click on an object to force an update:
.
> > a !! 2
> 3
> > :update
.
<http://felsin9.de/nnis/ghc-vis/4.png>
.
Clear the visualization window, this also happens when you
@:load@ or @:reload@ a source file:
.
> > :clear
data-files: ghci
Extra-source-files: nonghci-test.hs
Library
Exposed-modules: GHC.Vis GHC.Vis.Internal GHC.Vis.Graph GHC.Vis.Types GHC.Vis.GTK.Graph GHC.Vis.GTK.List GHC.Vis.GTK.Common
Default-Language: Haskell2010
Build-depends: base == 4.5.*,
fgl,
mtl,
deepseq,
ghc-heap-view >= 0.3,
cairo,
gtk,
graphviz,
text,
xdot
Hs-source-dirs: src/
Ghc-options: -Wall -fno-warn-unused-do-bind
--source-repository head
-- type: darcs
-- location: http://