packages feed

distributed-process-platform-0.1.0: distributed-process-platform.cabal

name:           distributed-process-platform
version:        0.1.0
cabal-version:  >=1.8
build-type:     Simple
license:        BSD3
license-file:   LICENCE
stability:      experimental
Copyright:      Tim Watson 2012 - 2013
Author:         Tim Watson
Maintainer:     watson.timothy@gmail.com
Stability:      experimental
Homepage:       http://github.com/haskell-distributed/distributed-process-platform
Bug-Reports:    http://github.com/haskell-distributed/distributed-process-platform/issues
synopsis:       The Cloud Haskell Application Platform
description:    Modelled after Erlang's OTP, this framework provides similar
                facilities for Cloud Haskell, grouping essential practices
                into a set of modules and standards designed to help you build
                concurrent, distributed applications with relative ease.
category:       Control
tested-with:    GHC == 7.4.2 GHC == 7.6.2
data-dir:       ""

source-repository head
  type:      git
  location:  https://github.com/haskell-distributed/distributed-process-platform

flag perf
  description: Build with profiling enabled
  default: False

library
  build-depends:
                   base >= 4.4 && < 5,
                   data-accessor >= 0.2.2.3,
                   distributed-process >= 0.5.0 && < 0.6,
                   binary >= 0.6.3.0 && < 0.8,
                   deepseq >= 1.3.0.1 && < 1.4,
                   mtl,
                   containers >= 0.4 && < 0.6,
                   hashable >= 1.2.0.5 && < 1.3,
                   unordered-containers >= 0.2.3.0 && < 0.3,
                   fingertree == 0.0.1.1,
                   stm >= 2.4 && < 2.5,
                   time > 1.4 && < 1.5,
                   transformers
  if impl(ghc <= 7.5) 
    Build-Depends:   template-haskell == 2.7.0.0,
                     derive == 2.5.5,
                     uniplate == 1.6.12,
                     ghc-prim
  extensions:      CPP
  hs-source-dirs:   src
  ghc-options:      -Wall
  exposed-modules:
                   Control.Distributed.Process.Platform,
                   Control.Distributed.Process.Platform.Async,
                   Control.Distributed.Process.Platform.Async.AsyncChan,
                   Control.Distributed.Process.Platform.Async.AsyncSTM,
                   Control.Distributed.Process.Platform.Call,
                   Control.Distributed.Process.Platform.Execution,
                   Control.Distributed.Process.Platform.Execution.EventManager,
                   Control.Distributed.Process.Platform.Execution.Exchange,
                   Control.Distributed.Process.Platform.Execution.Mailbox,
                   Control.Distributed.Process.Platform.ManagedProcess,
                   Control.Distributed.Process.Platform.ManagedProcess.Client,
                   Control.Distributed.Process.Platform.ManagedProcess.UnsafeClient,
                   Control.Distributed.Process.Platform.ManagedProcess.Server,
                   Control.Distributed.Process.Platform.ManagedProcess.Server.Priority,
                   Control.Distributed.Process.Platform.ManagedProcess.Server.Restricted,
                   Control.Distributed.Process.Platform.Service,
                   Control.Distributed.Process.Platform.Service.Monitoring,
                   Control.Distributed.Process.Platform.Service.Registry,
                   Control.Distributed.Process.Platform.Service.SystemLog,
                   Control.Distributed.Process.Platform.Supervisor,
                   Control.Distributed.Process.Platform.Task,
                   Control.Distributed.Process.Platform.Task.Queue.BlockingQueue,
                   Control.Distributed.Process.Platform.Test,
                   Control.Distributed.Process.Platform.Time,
                   Control.Distributed.Process.Platform.Timer,
                   Control.Distributed.Process.Platform.UnsafePrimitives,
                   Control.Concurrent.Utils
  other-modules:
                   Control.Distributed.Process.Platform.Internal.Containers.MultiMap,
                   Control.Distributed.Process.Platform.Async.Types,
                   Control.Distributed.Process.Platform.Execution.Exchange.Broadcast,
                   Control.Distributed.Process.Platform.Execution.Exchange.Internal,
                   Control.Distributed.Process.Platform.Execution.Exchange.Router,
                   Control.Distributed.Process.Platform.Internal.Primitives,
                   Control.Distributed.Process.Platform.Internal.Types,
                   Control.Distributed.Process.Platform.Internal.Queue.SeqQ,
                   Control.Distributed.Process.Platform.Internal.Queue.PriorityQ
                   Control.Distributed.Process.Platform.Internal.Unsafe,
                   Control.Distributed.Process.Platform.ManagedProcess.Internal.Types,
                   Control.Distributed.Process.Platform.ManagedProcess.Internal.GenProcess,
                   Control.Distributed.Process.Platform.Supervisor.Types


test-suite TimerTests
  type:            exitcode-stdio-1.0
  x-uses-tf:       true
  build-depends:
                   base >= 4.4 && < 5,
                   ansi-terminal >= 0.5 && < 0.6,
                   distributed-process >= 0.5.0 && < 0.6,
                   distributed-process-platform,
                   binary >= 0.6.3.0 && < 0.8,
                   deepseq >= 1.3.0.1 && < 1.4,
                   containers >= 0.4 && < 0.6,
                   network-transport >= 0.4 && < 0.5,
                   mtl,
                   network-transport-tcp >= 0.4 && < 0.5,
                   network >= 2.3 && < 2.5,
                   HUnit >= 1.2 && < 2,
                   stm >= 2.3 && < 2.5,
                   test-framework >= 0.6 && < 0.9,
                   test-framework-hunit,
                   rematch >= 0.2.0.0,
                   transformers
  hs-source-dirs:
                   tests
  ghc-options:     -Wall -threaded -rtsopts -with-rtsopts=-N -fno-warn-unused-do-bind
  extensions:      CPP,
                   FlexibleInstances     
  main-is:         TestTimer.hs

test-suite PrimitivesTests
  type:            exitcode-stdio-1.0
  x-uses-tf:       true
  build-depends:
                   base >= 4.4 && < 5,
                   ansi-terminal >= 0.5 && < 0.6,
                   distributed-process >= 0.5.0 && < 0.6,
                   distributed-process-platform,
                   network-transport >= 0.4 && < 0.5,
                   mtl,
                   containers >= 0.4 && < 0.6,
                   network-transport-tcp >= 0.4 && < 0.5,
                   binary >= 0.6.3.0 && < 0.8,
                   deepseq >= 1.3.0.1 && < 1.4,
                   network >= 2.3 && < 2.5,
                   HUnit >= 1.2 && < 2,
                   stm >= 2.3 && < 2.5,
                   test-framework >= 0.6 && < 0.9,
                   test-framework-hunit,
                   rematch >= 0.2.0.0,
                   transformers
  hs-source-dirs:
                   tests
  ghc-options:     -Wall -threaded -rtsopts -with-rtsopts=-N -fno-warn-unused-do-bind
  extensions:      CPP
  main-is:         TestPrimitives.hs

test-suite AsyncTests
  type:            exitcode-stdio-1.0
  x-uses-tf:       true
  build-depends:
                   base >= 4.4 && < 5,
                   ansi-terminal >= 0.5 && < 0.6,
                   distributed-process >= 0.5.0 && < 0.6,
                   distributed-process-platform,
                   network-transport >= 0.4 && < 0.5,
                   mtl,
                   network-transport-tcp >= 0.4 && < 0.5,
                   binary >= 0.6.3.0 && < 0.8,
                   deepseq >= 1.3.0.1 && < 1.4,
                   network >= 2.3 && < 2.5,
                   HUnit >= 1.2 && < 2,
                   stm >= 2.3 && < 2.5,
                   test-framework >= 0.6 && < 0.9,
                   test-framework-hunit,
                   rematch >= 0.2.0.0,
                   transformers
  hs-source-dirs:
                   tests
  ghc-options:     -Wall -threaded -rtsopts -with-rtsopts=-N -fno-warn-unused-do-bind
  extensions:      CPP
  main-is:         TestAsync.hs

test-suite ManagedProcessTests
  type:            exitcode-stdio-1.0
  x-uses-tf:       true
  build-depends:
                   base >= 4.4 && < 5,
                   ansi-terminal >= 0.5 && < 0.6,
                   containers,
                   distributed-process >= 0.5.0 && < 0.6,
                   distributed-process-platform,
                   network-transport >= 0.4 && < 0.5,
                   mtl,
                   fingertree == 0.0.1.1,
                   network-transport-tcp >= 0.4 && < 0.5,
                   binary >= 0.6.3.0 && < 0.8,
                   deepseq >= 1.3.0.1 && < 1.4,
                   network >= 2.3 && < 2.5,
                   HUnit >= 1.2 && < 2,
                   stm >= 2.3 && < 2.5,
                   test-framework >= 0.6 && < 0.9,
                   test-framework-hunit,
                   transformers,
                   rematch >= 0.2.0.0,
                   ghc-prim
  hs-source-dirs:
                   tests
  ghc-options:     -Wall -threaded -rtsopts -with-rtsopts=-N -fno-warn-unused-do-bind
  extensions:      CPP
  main-is:         TestManagedProcess.hs

test-suite PrioritisedProcessTests
  type:            exitcode-stdio-1.0
  x-uses-tf:       true
  build-depends:
                   base >= 4.4 && < 5,
                   ansi-terminal >= 0.5 && < 0.6,
                   containers,
                   distributed-process >= 0.5.0 && < 0.6,
                   distributed-process-platform,
                   network-transport >= 0.4 && < 0.5,
                   mtl,
                   fingertree == 0.0.1.1,
                   network-transport-tcp >= 0.4 && < 0.5,
                   binary >= 0.6.3.0 && < 0.8,
                   deepseq >= 1.3.0.1 && < 1.4,
                   network >= 2.3 && < 2.5,
                   HUnit >= 1.2 && < 2,
                   stm >= 2.3 && < 2.5,
                   test-framework >= 0.6 && < 0.9,
                   test-framework-hunit,
                   transformers,
                   rematch >= 0.2.0.0,
                   ghc-prim
  hs-source-dirs:
                   tests
  ghc-options:     -Wall -threaded -rtsopts -with-rtsopts=-N -fno-warn-unused-do-bind
  extensions:      CPP
  main-is:         TestPrioritisedProcess.hs

test-suite SupervisorTests
  type:            exitcode-stdio-1.0
  build-depends:
                   base >= 4.4 && < 5,
                   ansi-terminal >= 0.5 && < 0.6,
                   containers,
                   unordered-containers,
                   hashable,
                   distributed-process >= 0.5.0 && < 0.6,
                   distributed-process-platform,
                   distributed-static,
                   bytestring,
                   data-accessor,
                   fingertree == 0.0.1.1,
                   network-transport >= 0.4 && < 0.5,
                   mtl,
                   network-transport-tcp >= 0.4 && < 0.5,
                   binary >= 0.6.3.0 && < 0.8,
                   deepseq >= 1.3.0.1 && < 1.4,
                   network >= 2.3 && < 2.5,
                   HUnit >= 1.2 && < 2,
                   stm >= 2.3 && < 2.5,
                   time > 1.4 && < 1.5,
                   test-framework >= 0.6 && < 0.9,
                   test-framework-hunit,
                   transformers,
                   rematch >= 0.2.0.0,
                   ghc-prim
  hs-source-dirs:
                   tests
  ghc-options:     -Wall -threaded -rtsopts -with-rtsopts=-N -fno-warn-unused-do-bind -eventlog
  extensions:      CPP
  main-is:         TestSupervisor.hs

test-suite RegistryTests
  type:            exitcode-stdio-1.0
--  x-uses-tf:       true
  build-depends:
                   base >= 4.4 && < 5,
                   ansi-terminal >= 0.5 && < 0.6,
                   containers,
                   hashable,
                   unordered-containers,
                   distributed-process >= 0.5.0 && < 0.6,
                   distributed-process-platform,
                   distributed-static,
                   bytestring,
                   data-accessor,
                   fingertree == 0.0.1.1,
                   network-transport >= 0.4 && < 0.5,
                   deepseq >= 1.3.0.1 && < 1.4,
                   mtl,
                   network-transport-tcp >= 0.4 && < 0.5,
                   binary >= 0.6.3.0 && < 0.8,
                   network >= 2.3 && < 2.5,
                   HUnit >= 1.2 && < 2,
                   stm >= 2.3 && < 2.5,
                   time > 1.4 && < 1.5,
                   test-framework >= 0.6 && < 0.9,
                   test-framework-hunit,
                   transformers,
                   rematch >= 0.2.0.0,
                   ghc-prim
  hs-source-dirs:
                   tests
  ghc-options:     -Wall -threaded -rtsopts -with-rtsopts=-N -fno-warn-unused-do-bind -eventlog
  extensions:      CPP
  main-is:         TestRegistry.hs

test-suite TaskQueueTests
  type:            exitcode-stdio-1.0
--  x-uses-tf:       true
  build-depends:
                   base >= 4.4 && < 5,
                   ansi-terminal >= 0.5 && < 0.6,
                   containers,
                   hashable,
                   unordered-containers >= 0.2.3.0 && < 0.3,
                   distributed-process >= 0.5.0 && < 0.6,
                   distributed-process-platform,
                   distributed-static,
                   bytestring,
                   data-accessor,
                   fingertree == 0.0.1.1,
                   network-transport >= 0.4 && < 0.5,
                   deepseq >= 1.3.0.1 && < 1.4,
                   mtl,
                   network-transport-tcp >= 0.4 && < 0.5,
                   binary >= 0.6.3.0 && < 0.8,
                   network >= 2.3 && < 2.5,
                   HUnit >= 1.2 && < 2,
                   stm >= 2.3 && < 2.5,
                   time > 1.4 && < 1.5,
                   test-framework >= 0.6 && < 0.9,
                   test-framework-hunit,
                   QuickCheck >= 2.4,
                   test-framework-quickcheck2,
                   transformers,
                   rematch >= 0.2.0.0,
                   ghc-prim
  hs-source-dirs:
                   tests
  ghc-options:     -Wall -threaded -rtsopts -with-rtsopts=-N -fno-warn-unused-do-bind -eventlog
  extensions:      CPP
  main-is:         TestTaskQueues.hs

test-suite LoggerTests
  type:            exitcode-stdio-1.0
--  x-uses-tf:       true
  build-depends:
                   base >= 4.4 && < 5,
                   ansi-terminal >= 0.5 && < 0.6,
                   containers,
                   hashable,
                   unordered-containers >= 0.2.3.0 && < 0.3,
                   distributed-process >= 0.5.0 && < 0.6,
                   distributed-process-platform,
                   distributed-static,
                   bytestring,
                   data-accessor,
                   fingertree == 0.0.1.1,
                   network-transport >= 0.4 && < 0.5,
                   deepseq >= 1.3.0.1 && < 1.4,
                   mtl,
                   network-transport-tcp >= 0.4 && < 0.5,
                   binary >= 0.6.3.0 && < 0.8,
                   network >= 2.3 && < 2.5,
                   HUnit >= 1.2 && < 2,
                   stm >= 2.3 && < 2.5,
                   time > 1.4 && < 1.5,
                   test-framework >= 0.6 && < 0.9,
                   test-framework-hunit,
                   transformers,
                   rematch >= 0.2.0.0,
                   ghc-prim
  hs-source-dirs:
                   tests
  ghc-options:     -Wall -threaded -rtsopts -with-rtsopts=-N -fno-warn-unused-do-bind -eventlog
  extensions:      CPP
  main-is:         TestLog.hs

test-suite ExchangeTests
  type:            exitcode-stdio-1.0
--  x-uses-tf:       true
  build-depends:
                   base >= 4.4 && < 5,
                   ansi-terminal >= 0.5 && < 0.6,
                   containers,
                   hashable,
                   unordered-containers >= 0.2.3.0 && < 0.3,
                   distributed-process >= 0.5.0 && < 0.6,
                   distributed-process-platform,
                   distributed-static,
                   bytestring,
                   data-accessor,
                   fingertree == 0.0.1.1,
                   network-transport >= 0.4 && < 0.5,
                   deepseq >= 1.3.0.1 && < 1.4,
                   mtl,
                   network-transport-tcp >= 0.4 && < 0.5,
                   binary >= 0.6.3.0 && < 0.8,
                   network >= 2.3 && < 2.5,
                   HUnit >= 1.2 && < 2,
                   stm >= 2.3 && < 2.5,
                   time > 1.4 && < 1.5,
                   test-framework >= 0.6 && < 0.9,
                   test-framework-hunit,
                   QuickCheck >= 2.4,
                   test-framework-quickcheck2,
                   transformers,
                   rematch >= 0.2.0.0,
                   ghc-prim
  hs-source-dirs:
                   tests
  ghc-options:     -Wall -threaded -rtsopts -with-rtsopts=-N -fno-warn-unused-do-bind -eventlog
  extensions:      CPP
  main-is:         TestExchange.hs

test-suite MailboxTests
  type:            exitcode-stdio-1.0
--  x-uses-tf:       true
  build-depends:
                   base >= 4.4 && < 5,
                   ansi-terminal >= 0.5 && < 0.6,
                   containers,
                   hashable,
                   unordered-containers >= 0.2.3.0 && < 0.3,
                   distributed-process >= 0.5.0 && < 0.6,
                   distributed-process-platform,
                   distributed-static,
                   bytestring,
                   data-accessor,
                   fingertree == 0.0.1.1,
                   network-transport >= 0.4 && < 0.5,
                   deepseq >= 1.3.0.1 && < 1.4,
                   mtl,
                   network-transport-tcp >= 0.4 && < 0.5,
                   binary >= 0.6.3.0 && < 0.8,
                   network >= 2.3 && < 2.5,
                   HUnit >= 1.2 && < 2,
                   stm >= 2.3 && < 2.5,
                   time > 1.4 && < 1.5,
                   test-framework >= 0.6 && < 0.9,
                   test-framework-hunit,
                   QuickCheck >= 2.4,
                   test-framework-quickcheck2,
                   transformers,
                   rematch >= 0.2.0.0,
                   ghc-prim
  hs-source-dirs:
                   tests
  ghc-options:     -Wall -threaded -rtsopts -with-rtsopts=-N -fno-warn-unused-do-bind -eventlog
  extensions:      CPP
  main-is:         TestMailbox.hs

test-suite InternalQueueTests
  type:            exitcode-stdio-1.0
  x-uses-tf:       true
  build-depends:
                   base >= 4.4 && < 5,
                   ansi-terminal >= 0.5 && < 0.6,
                   containers,
                   data-accessor,
                   fingertree == 0.0.1.1,
                   HUnit >= 1.2 && < 2,
                   test-framework >= 0.6 && < 0.9,
                   test-framework-hunit,
                   QuickCheck >= 2.4,
                   test-framework-quickcheck2,
                   rematch >= 0.2.0.0,
                   ghc-prim
  hs-source-dirs:
                   src,
                   tests
  ghc-options:     -Wall -rtsopts
  extensions:      CPP
  main-is:         TestQueues.hs
  cpp-options:     -DTESTING

Executable leaks
  if flag(perf)
    Build-Depends:   base >= 4.4 && < 5,
                     containers,
                     directory,
                     network-transport-tcp,
                     distributed-process,
                     old-locale,
                     time,
                     distributed-process-platform,
                     network-transport-tcp >= 0.4 && < 0.5,
                     bytestring >= 0.9 && < 0.11,
                     binary > 0.6.2.0 && < 0.8,
                     deepseq >= 1.3.0.1 && < 1.4
  else
    buildable: False
  Main-Is:           regressions/LeakByteStrings.hs
--  Main-Is:           regressions/HRoqLeak.hs
  ghc-options:       -threaded -prof -auto-all -rtsopts
  Extensions:        ScopedTypeVariables