packages feed

Hoed-0.3.0: Hoed.cabal

name:                Hoed
version:             0.3.0
synopsis:            Lighweight algorithmic debugging.
description:
    Hoed is a tracer and debugger for the programming language Haskell. You can trace a program by annotating functions in suspected modules and linking your program against standard profiling libraries.
    .
    To locate a defect with Hoed you annotate suspected functions and compile as usual. Then you run your program, information about the annotated functions is collected. Finally you connect to a debugging session using a webbrowser.
    .
    Hoed comes in two flavours: Hoed.Pure and Hoed.Stk. Hoed.Pure is recommended over Hoed.Stk: to debug your program with Hoed.Pure you can optimize your program and do not need to enable profiling. Hoed.Stk is Hoed as presented on PLDI 2015 and possibly has benefits over Hoed.Pure for debugging concurrent/parallel programs.
homepage:            http://maartenfaddegon.nl
license:             BSD3
license-file:        LICENSE
author:              Maarten Faddegon
maintainer:          hoed@maartenfaddegon.nl
copyright:           (c) 2000 Andy Gill, (c) 2010 University of Kansas, (c) 2013-2015 Maarten Faddegon
category:            Debug, Trace
build-type:          Simple
cabal-version:       >=1.10
Extra-Source-Files:  changelog, README.md

flag buildExamples
  description: Build example executables.
  default: False

flag validatePure
  description: Build test cases to validate Hoed-pure.
  default: False

flag validateStk
  description: Build test cases to validate Hoed-stk.
  default: False

flag validateGeneric
  description: Build test cases to validate deriving Observable for Generic types.
  default: False

Source-repository head
    type:               git
    location:           git://github.com/MaartenFaddegon/Hoed.git

library
  exposed-modules:     Debug.Hoed.Stk
                       , Debug.Hoed.Pure
  other-modules:       Debug.Hoed.Stk.Observe
                       , Debug.Hoed.Stk.Render
                       , Debug.Hoed.Stk.DemoGUI
                       , Debug.Hoed.Pure.Observe
                       , Debug.Hoed.Pure.EventForest
                       , Debug.Hoed.Pure.CompTree
                       , Debug.Hoed.Pure.Render
                       , Debug.Hoed.Pure.DemoGUI
                       , Debug.Hoed.Pure.Prop
  build-depends:       base >= 4 && <5
                       , template-haskell
                       , array, containers
                       , process
                       , threepenny-gui == 0.6.*
                       , filepath
                       , libgraph == 1.5
                       , RBTree == 0.0.5
                       , regex-posix
                       , mtl
                       , directory
  default-language:    Haskell2010

---------------------------------------------------------------------------
--
-- A list of example-programs that bind to a debugging session after the
-- program terminates. After running 'cabal build' these are available to 
-- experiment with through 'sh run'.
--
---------------------------------------------------------------------------


Executable hoed-examples-Foldl
  if flag(buildExamples)
    build-depends:       base >= 4.8 && < 5
                         , Hoed
                         , threepenny-gui
                         , filepath
  else
    buildable: False
  main-is:             Foldl.hs
  hs-source-dirs:      examples
  default-language:    Haskell2010
  ghc-options:         -O0

Executable hoed-examples-HeadOnEmpty1
  if flag(buildExamples)
    build-depends:       base >= 4 && < 5
                         , Hoed
                         , threepenny-gui
                         , filepath
  else
    buildable: False
  main-is:             HeadOnEmpty.hs
  hs-source-dirs:      examples
  default-language:    Haskell2010
  ghc-options:         -O0

Executable hoed-examples-HeadOnEmpty2
  if flag(buildExamples)
    build-depends:       base >= 4 && < 5
                         , Hoed
                         , threepenny-gui
                         , filepath
  else
    buildable: False
  main-is:             HeadOnEmpty2.hs
  hs-source-dirs:      examples
  default-language:    Haskell2010
  ghc-options:         -O0

-- Executable hoed-examples-IOException
--   build-depends:       base >= 4 && < 5
--                        , Hoed
--                        , threepenny-gui
--                        , filepath
--                        , hood
--   main-is:             IOException.hs
--   hs-source-dirs:      examples
--   default-language:    Haskell2010
--   ghc-options:         -O0

Executable hoed-examples-IndirectRecursion
  if flag(buildExamples)
    build-depends:       base >= 4 && < 5
                         , Hoed
                         , threepenny-gui
                         , filepath
  else
    buildable: False
  main-is:             IndirectRecursion.lhs
  hs-source-dirs:      examples
  default-language:    Haskell2010
  ghc-options:         -O0

Executable hoed-examples-Pretty
  if flag(buildExamples)
    build-depends:       base >= 4 && < 5
                         , Hoed
                         , threepenny-gui
                         , filepath
                         , array
  else
    buildable: False
  main-is:             Pretty.hs
  hs-source-dirs:      examples
  default-language:    Haskell2010
  ghc-options:         -O0

Executable hoed-examples-Example1
  if flag(buildExamples)
    build-depends:       base >= 4 && < 5
                         , Hoed
                         , threepenny-gui
                         , filepath
  else
    buildable: False
  main-is:             Example1.hs
  hs-source-dirs:      examples
  default-language:    Haskell2010
  ghc-options:         -O0

-- Executable hoed-examples-Example2
--   build-depends:       base >= 4 && < 5
--                        , Hoed
--                        , threepenny-gui
--                        , filepath
--   main-is:             Example2.hs
--   hs-source-dirs:      examples
--   default-language:    Haskell2010

Executable hoed-examples-Example3
  if flag(buildExamples)
    build-depends:       base >= 4 && < 5
                         , Hoed
                         , threepenny-gui
                         , filepath
  else
    buildable: False
  main-is:             Example3.lhs
  hs-source-dirs:      examples
  default-language:    Haskell2010
  ghc-options:         -O0

Executable hoed-examples-Example4
  if flag(buildExamples)
    build-depends:       base >= 4 && < 5
                         , Hoed
                         , threepenny-gui
                         , filepath
  else
    buildable: False
  main-is:             Example4.hs
  hs-source-dirs:      examples
  default-language:    Haskell2010
  ghc-options:         -O0

Executable hoed-examples-Insort1
  if flag(buildExamples)
    build-depends:       base >= 4 && < 5
                         , Hoed
                         , threepenny-gui
                         , filepath
  else
    buildable: False
  main-is:             Insort.lhs
  hs-source-dirs:      examples
  default-language:    Haskell2010
  ghc-options:         -O0

Executable hoed-examples-Insort2
  if flag(buildExamples)
    build-depends:       base >= 4 && < 5
                         , Hoed
                         , threepenny-gui
                         , filepath
  else
    buildable: False
  main-is:             Insort2.hs
  hs-source-dirs:      examples
  default-language:    Haskell2010
  ghc-options:         -O0

Executable hoed-examples-DoublingServer1
  if flag(buildExamples)
    build-depends:       base >= 4 && < 5
                         , Hoed
                         , threepenny-gui
                         , filepath
                         , network
  else
    buildable: False
  main-is:             DoublingServer.hs
  hs-source-dirs:      examples
  default-language:    Haskell2010
  ghc-options:         -O0

Executable hoed-examples-DoublingServer2
  if flag(buildExamples)
    build-depends:       base >= 4 && < 5
                         , Hoed
                         , threepenny-gui
                         , filepath
                         , network
  else
    buildable: False
  main-is:             DoublingServer2.hs
  hs-source-dirs:      examples
  default-language:    Haskell2010
  ghc-options:         -O0

Executable hoed-examples-DoublingServer3
  if flag(buildExamples)
    build-depends:       base >= 4 && < 5
                         , Hoed
                         , threepenny-gui
                         , filepath
                         , network
  else
    buildable: False
  main-is:             DoublingServer3.hs
  hs-source-dirs:      examples
  default-language:    Haskell2010
  ghc-options:         -O0

Executable hoed-examples-DoublingServer4
  if flag(buildExamples)
    build-depends:       base >= 4 && < 5
                         , Hoed
                         , threepenny-gui
                         , filepath
                         , network
  else
    buildable: False
  main-is:             DoublingServer4.hs
  hs-source-dirs:      examples
  default-language:    Haskell2010
  ghc-options:         -O0

Executable hoed-examples-DoublingServer5
  if flag(buildExamples)
    build-depends:       base >= 4 && < 5
                         , Hoed
                         , threepenny-gui
                         , filepath
                         , network
  else
    buildable: False
  main-is:             DoublingServer5.hs
  hs-source-dirs:      examples
  default-language:    Haskell2010
  ghc-options:         -O0

Executable hoed-examples-Hashmap
  if flag(buildExamples)
    build-depends:       base >= 4 && < 5
                         , Hoed
                         , threepenny-gui
                         , filepath
                         , array
  else
    buildable: False
  main-is:             Hashmap.hs
  hs-source-dirs:      examples
  default-language:    Haskell2010
  ghc-options:         -O0

Executable hoed-examples-Responsibility
  if flag(buildExamples)
    build-depends:       base >= 4 && < 5
                         , Hoed
                         , threepenny-gui
                         , filepath
                         , array
  else
    buildable: False
  main-is:             Responsibility.lhs
  hs-source-dirs:      examples
  default-language:    Haskell2010
  ghc-options:         -O0

Executable hoed-examples-TightRope1
  if flag(buildExamples)
    build-depends:       base >= 4 && < 5
                         , Hoed
                         , threepenny-gui
                         , filepath
  else
    buildable: False
  main-is:             TightRope.hs
  hs-source-dirs:      examples
  default-language:    Haskell2010
  ghc-options:         -O0

Executable hoed-examples-TightRope2
  if flag(buildExamples)
    build-depends:       base >= 4 && < 5
                         , Hoed
                         , threepenny-gui
                         , filepath
  else
    buildable: False
  main-is:             TightRope2.hs
  hs-source-dirs:      examples
  default-language:    Haskell2010
  ghc-options:         -O0

Executable hoed-examples-TightRope3
  if flag(buildExamples)
    build-depends:       base >= 4 && < 5
                         , Hoed
                         , threepenny-gui
                         , filepath
  else
    buildable: False
  main-is:             TightRope3.hs
  hs-source-dirs:      examples
  default-language:    Haskell2010
  ghc-options:         -O0

Executable hoed-examples-AskName
  if flag(buildExamples)
    build-depends:       base >= 4 && < 5
                         , Hoed
                         , threepenny-gui
                         , filepath
  else
    buildable: False
  main-is:             AskName.hs
  hs-source-dirs:      examples
  default-language:    Haskell2010
  ghc-options:         -O0

---------------------------------------------------------------------------
--
-- A set of tests that instead of binding to a debugging session write the
-- resulting computation graph to file. Reference files are included in
-- this repository. To validate execute 'sh test'.
--
---------------------------------------------------------------------------

Executable hoed-tests-Generic-r0
  if flag(validateGeneric)
    build-depends:       base >= 4 && < 5
                         , Hoed
  else
    buildable: False
  main-is:             r0.hs
  hs-source-dirs:      tests/Generic
  default-language:    Haskell2010

Executable hoed-tests-Generic-t0
  if flag(validateGeneric)
    build-depends:       base >= 4 && < 5
                         , Hoed
  else
    buildable: False
  main-is:             t0.hs
  hs-source-dirs:      tests/Generic
  default-language:    Haskell2010

Executable hoed-tests-Generic-r1
  if flag(validateGeneric)
    build-depends:       base >= 4 && < 5
                         , Hoed
  else
    buildable: False
  main-is:             r1.hs
  hs-source-dirs:      tests/Generic
  default-language:    Haskell2010

Executable hoed-tests-Generic-t1
  if flag(validateGeneric)
    build-depends:       base >= 4 && < 5
                         , Hoed
  else
    buildable: False
  main-is:             t1.hs
  hs-source-dirs:      tests/Generic
  default-language:    Haskell2010

Executable hoed-tests-Generic-r2
  if flag(validateGeneric)
    build-depends:       base >= 4 && < 5
                         , Hoed
  else
    buildable: False
  main-is:             r2.hs
  hs-source-dirs:      tests/Generic
  default-language:    Haskell2010

Executable hoed-tests-Generic-t2
  if flag(validateGeneric)
    build-depends:       base >= 4 && < 5
                         , Hoed
  else
    buildable: False
  main-is:             t2.hs
  hs-source-dirs:      tests/Generic
  default-language:    Haskell2010

Executable hoed-tests-Generic-r3
  if flag(validateGeneric)
    build-depends:       base >= 4 && < 5
                         , Hoed
  else
    buildable: False
  main-is:             r3.hs
  hs-source-dirs:      tests/Generic
  default-language:    Haskell2010

Executable hoed-tests-Generic-t3
  if flag(validateGeneric)
    build-depends:       base >= 4 && < 5
                         , Hoed
  else
    buildable: False
  main-is:             t3.hs
  hs-source-dirs:      tests/Generic
  default-language:    Haskell2010

---------------------------------------------------------------------------

Executable hoed-tests-Pure-t1
  if flag(validatePure)
    build-depends:       base >= 4 && < 5, Hoed
  else
    buildable: False
  main-is:             t1.hs
  hs-source-dirs:      tests/Pure
  default-language:    Haskell2010

Executable hoed-tests-Pure-t2
  if flag(validatePure)
    build-depends:       base >= 4 && < 5, Hoed
  else
    buildable: False
  main-is:             t2.hs
  hs-source-dirs:      tests/Pure
  default-language:    Haskell2010

Executable hoed-tests-Pure-t3
  if flag(validatePure)
    build-depends:       base >= 4 && < 5, Hoed
  else
    buildable: False
  main-is:             t3.hs
  hs-source-dirs:      tests/Pure
  default-language:    Haskell2010

Executable hoed-tests-Pure-t4
  if flag(validatePure)
    build-depends:       base >= 4 && < 5, Hoed
  else
    buildable: False
  main-is:             t4.hs
  hs-source-dirs:      tests/Pure
  default-language:    Haskell2010

---------------------------------------------------------------------------

Executable hoed-tests-Stk-DoublingServer
  if flag(validateStk)
    build-depends:       base >= 4 && < 5
                         , Hoed
                         , threepenny-gui
                         , filepath
                         , network
  else
    buildable: False
  main-is:             DoublingServer.hs
  hs-source-dirs:      tests/Stk
  default-language:    Haskell2010
  ghc-options:         -O0

Executable hoed-tests-Stk-Insort2
  if flag(validateStk)
    build-depends:       base >= 4 && < 5
                         , Hoed
                         , threepenny-gui
                         , filepath
  else
    buildable: False
  main-is:             Insort2.hs
  hs-source-dirs:      tests/Stk
  default-language:    Haskell2010
  ghc-options:         -O0

Executable hoed-tests-Stk-Example1
  if flag(validateStk)
    build-depends:       base >= 4 && < 5
                         , Hoed
                         , threepenny-gui
                         , filepath
  else
    buildable: False
  main-is:             Example1.hs
  hs-source-dirs:      tests/Stk
  default-language:    Haskell2010
  ghc-options:         -O0

Executable hoed-tests-Stk-Example3
  if flag(validateStk)
    build-depends:       base >= 4 && < 5
                         , Hoed
                         , threepenny-gui
                         , filepath
  else
    buildable: False
  main-is:             Example3.lhs
  hs-source-dirs:      tests/Stk
  default-language:    Haskell2010
  ghc-options:         -O0

Executable hoed-tests-Stk-Example4
  if flag(validateStk)
    build-depends:       base >= 4 && < 5
                         , Hoed
                         , threepenny-gui
                         , filepath
  else
    buildable: False
  main-is:             Example4.hs
  hs-source-dirs:      tests/Stk
  default-language:    Haskell2010
  ghc-options:         -O0

Executable hoed-tests-Stk-IndirectRecursion
  if flag(validateStk)
    build-depends:       base >= 4 && < 5
                         , Hoed
                         , threepenny-gui
                         , filepath
  else
    buildable: False
  main-is:             IndirectRecursion.lhs
  hs-source-dirs:      tests/Stk
  default-language:    Haskell2010
  ghc-options:         -O0