packages feed

distributed-process-0.7.7: distributed-process.cabal

cabal-version: 3.0
Name:          distributed-process
Version:       0.7.7
Build-Type:    Simple
License:       BSD-3-Clause
License-File:  LICENSE
Copyright:     Well-Typed LLP, Tweag I/O Limited
Author:        Duncan Coutts, Nicolas Wu, Edsko de Vries
maintainer:    The Distributed Haskell team
Stability:     experimental
Homepage:      https://haskell-distributed.github.io/
Bug-Reports:   https://github.com/haskell-distributed/distributed-process/issues
Synopsis:      Cloud Haskell: Erlang-style concurrency in Haskell
Description:   This is an implementation of Cloud Haskell, as described in
               /Towards Haskell in the Cloud/ by Jeff Epstein, Andrew Black,
               and Simon Peyton Jones
               (<https://simon.peytonjones.org/haskell-cloud/>),
               although some of the details are different. The precise message
               passing semantics are based on /A unified semantics for future Erlang/
               by Hans Svensson, Lars-&#xc5;ke Fredlund and Clara Benac Earle.

               You will probably also want to install a Cloud Haskell backend such
               as distributed-process-simplelocalnet.
tested-with:   GHC==8.10.7 GHC==9.0.2 GHC==9.2.8 GHC==9.4.5 GHC==9.6.4 GHC==9.8.2 GHC==9.10.1
Category:      Control
extra-doc-files: ChangeLog

common warnings
    ghc-options: -Wall
                 -Wcompat
                 -Widentities
                 -Wincomplete-uni-patterns
                 -Wincomplete-record-updates
                 -Wredundant-constraints
                 -fhide-source-paths
                 -Wpartial-fields

source-repository head
  Type:     git
  Location: https://github.com/haskell-distributed/distributed-process
  SubDir:   packages/distributed-process

flag th
  description: Build with Template Haskell support
  default: True

Library
  import:            warnings
  Build-Depends:     base >= 4.14 && < 5,
                     binary >= 0.8 && < 0.10,
                     hashable >= 1.2.0.5 && < 1.6,
                     network-transport >= 0.4.1.0 && < 0.6,
                     stm >= 2.4 && < 2.6,
                     transformers >= 0.2 && < 0.7,
                     mtl >= 2.0 && < 2.4,
                     data-accessor >= 0.2 && < 0.3,
                     bytestring >= 0.10 && < 0.13,
                     random >= 1.0 && < 1.3,
                     distributed-static >= 0.2 && < 0.4,
                     rank1dynamic >= 0.1 && < 0.5,
                     syb >= 0.3 && < 0.8,
                     exceptions >= 0.10,
                     containers >= 0.6 && < 0.8,
                     deepseq >= 1.4 && < 1.6,
                     time >= 1.9
  Exposed-modules:   Control.Distributed.Process
                     Control.Distributed.Process.Closure
                     Control.Distributed.Process.Debug
                     Control.Distributed.Process.Internal.BiMultiMap
                     Control.Distributed.Process.Internal.Closure.BuiltIn
                     Control.Distributed.Process.Internal.Closure.Explicit
                     Control.Distributed.Process.Internal.CQueue
                     Control.Distributed.Process.Internal.Messaging
                     Control.Distributed.Process.Internal.Primitives
                     Control.Distributed.Process.Internal.Spawn
                     Control.Distributed.Process.Internal.StrictContainerAccessors
                     Control.Distributed.Process.Internal.StrictList
                     Control.Distributed.Process.Internal.StrictMVar
                     Control.Distributed.Process.Internal.Types
                     Control.Distributed.Process.Internal.WeakTQueue
                     Control.Distributed.Process.Management
                     Control.Distributed.Process.Node
                     Control.Distributed.Process.Serializable
                     Control.Distributed.Process.UnsafePrimitives
                     Control.Distributed.Process.Management.Internal.Agent
                     Control.Distributed.Process.Management.Internal.Bus
                     Control.Distributed.Process.Management.Internal.Types
                     Control.Distributed.Process.Management.Internal.Trace.Primitives
                     Control.Distributed.Process.Management.Internal.Trace.Remote
                     Control.Distributed.Process.Management.Internal.Trace.Types
                     Control.Distributed.Process.Management.Internal.Trace.Tracer
  default-language:  Haskell2010
  HS-Source-Dirs:    src
  other-extensions:  BangPatterns
                     CPP
                     DeriveDataTypeable
                     DeriveFunctor
                     DeriveGeneric
                     ExistentialQuantification
                     FlexibleInstances
                     GADTs
                     GeneralizedNewtypeDeriving
                     KindSignatures
                     MagicHash
                     PatternGuards
                     RankNTypes
                     RecordWildCards
                     ScopedTypeVariables
                     StandaloneDeriving
                     TypeFamilies
                     TypeSynonymInstances
                     UnboxedTuples
                     UndecidableInstances
  if flag(th)
     other-extensions: TemplateHaskell
     Build-Depends: template-haskell >= 2.6
     Exposed-modules: Control.Distributed.Process.Internal.Closure.TH
     CPP-Options:     -DTemplateHaskellSupport

-- Tests are in distributed-process-test package, for convenience.

benchmark distributed-process-throughput
  import:           warnings
  Type:             exitcode-stdio-1.0
  Build-Depends:    base >= 4.14 && < 5,
                    distributed-process,
                    network-transport-tcp >= 0.3 && <= 0.9,
                    bytestring >= 0.10 && < 0.13,
                    binary >= 0.8 && < 0.10
  Main-Is:          benchmarks/Throughput.hs
  default-language: Haskell2010

benchmark distributed-process-latency
  import:           warnings
  Type:             exitcode-stdio-1.0
  Build-Depends:    base >= 4.14 && < 5,
                    distributed-process,
                    network-transport-tcp >= 0.3 && <= 0.9,
                    bytestring >= 0.10 && < 0.13,
                    binary >= 0.8 && < 0.10
  Main-Is:          benchmarks/Latency.hs
  default-language: Haskell2010

benchmark distributed-process-channels
  import:           warnings
  Type:             exitcode-stdio-1.0
  Build-Depends:    base >= 4.14 && < 5,
                    distributed-process,
                    network-transport-tcp >= 0.3 && <= 0.9,
                    bytestring >= 0.10 && < 0.13,
                    binary >= 0.8 && < 0.10
  Main-Is:          benchmarks/Channels.hs
  default-language: Haskell2010

benchmark distributed-process-spawns
  import:           warnings
  Type:             exitcode-stdio-1.0
  Build-Depends:    base >= 4.14 && < 5,
                    distributed-process,
                    network-transport-tcp >= 0.3 && <= 0.9,
                    bytestring >= 0.10 && < 0.13,
                    binary >= 0.8 && < 0.10
  Main-Is:          benchmarks/Spawns.hs
  default-language: Haskell2010

benchmark distributed-process-ring
  import:           warnings
  Type:             exitcode-stdio-1.0
  Build-Depends:    base >= 4.14 && < 5,
                    distributed-process,
                    network-transport-tcp >= 0.3 && <= 0.9,
                    bytestring >= 0.10 && < 0.13,
                    binary >= 0.8 && < 0.10
  Main-Is:          benchmarks/ProcessRing.hs
  default-language: Haskell2010
  ghc-options:      -threaded -O2 -rtsopts