packages feed

ghc-vis-0.3.1: ghc-vis.cabal

name:               ghc-vis
version:            0.3.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.3.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

tested-with: GHC == 7.4.1, GHC == 7.4.2
data-files: ghci
Extra-source-files: nonghci-test.hs

flag graph
  Default: True
  Description: "Enable graph view using Graphviz"

Library
  Exposed-modules: GHC.Vis
  Other-modules: GHC.Vis.Internal GHC.Vis.Types GHC.Vis.View.List GHC.Vis.View.Common
  Default-Language: Haskell2010
  Build-depends: base == 4.*,
                 mtl >= 2.0,
                 fgl,
                 deepseq,
                 text,
                 transformers,
                 gtk == 0.12.*,
                 cairo == 0.12.*,
                 ghc-heap-view >= 0.3
  Hs-source-dirs: src/
  Ghc-options: -Wall -fno-warn-unused-do-bind

  if flag(graph)
      Other-modules: GHC.Vis.View.Graph.Parser GHC.Vis.View.Graph
      Build-depends: graphviz >= 2999.14.1.0,
                     xdot >= 0.2
      Cpp-options: -DGRAPH_VIEW

--source-repository head
--    type:     darcs
--    location: http://