distributed-process 0.7.6 → 0.7.7
raw patch · 11 files changed
+85/−126 lines, 11 filesdep −old-localedep ~basedep ~binarydep ~bytestringsetup-changednew-uploaderPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependencies removed: old-locale
Dependency ranges changed: base, binary, bytestring, containers, deepseq, exceptions, hashable, network-transport-tcp, random, time
API changes (from Hackage documentation)
- Control.Distributed.Process: catchExit :: (Show a, Serializable a) => Process b -> (ProcessId -> a -> Process b) -> Process b
+ Control.Distributed.Process: catchExit :: forall a b. (Show a, Serializable a) => Process b -> (ProcessId -> a -> Process b) -> Process b
- Control.Distributed.Process: data Closure a
+ Control.Distributed.Process: data () => Closure a
- Control.Distributed.Process: data RemoteTable
+ Control.Distributed.Process: data () => RemoteTable
- Control.Distributed.Process: data Static a
+ Control.Distributed.Process: data () => Static a
- Control.Distributed.Process: expect :: Serializable a => Process a
+ Control.Distributed.Process: expect :: forall a. Serializable a => Process a
- Control.Distributed.Process: expectTimeout :: Serializable a => Int -> Process (Maybe a)
+ Control.Distributed.Process: expectTimeout :: forall a. Serializable a => Int -> Process (Maybe a)
- Control.Distributed.Process: handleMessage :: (Monad m, Serializable a) => Message -> (a -> m b) -> m (Maybe b)
+ Control.Distributed.Process: handleMessage :: forall m a b. (Monad m, Serializable a) => Message -> (a -> m b) -> m (Maybe b)
- Control.Distributed.Process: handleMessageIf :: (Monad m, Serializable a) => Message -> (a -> Bool) -> (a -> m b) -> m (Maybe b)
+ Control.Distributed.Process: handleMessageIf :: forall m a b. (Monad m, Serializable a) => Message -> (a -> Bool) -> (a -> m b) -> m (Maybe b)
- Control.Distributed.Process: handleMessageIf_ :: (Monad m, Serializable a) => Message -> (a -> Bool) -> (a -> m ()) -> m ()
+ Control.Distributed.Process: handleMessageIf_ :: forall m a. (Monad m, Serializable a) => Message -> (a -> Bool) -> (a -> m ()) -> m ()
- Control.Distributed.Process: handleMessage_ :: (Monad m, Serializable a) => Message -> (a -> m ()) -> m ()
+ Control.Distributed.Process: handleMessage_ :: forall m a. (Monad m, Serializable a) => Message -> (a -> m ()) -> m ()
- Control.Distributed.Process: mask :: ((forall a. () => Process a -> Process a) -> Process b) -> Process b
+ Control.Distributed.Process: mask :: ((forall a. Process a -> Process a) -> Process b) -> Process b
- Control.Distributed.Process: match :: Serializable a => (a -> Process b) -> Match b
+ Control.Distributed.Process: match :: forall a b. Serializable a => (a -> Process b) -> Match b
- Control.Distributed.Process: matchAny :: (Message -> Process b) -> Match b
+ Control.Distributed.Process: matchAny :: forall b. (Message -> Process b) -> Match b
- Control.Distributed.Process: matchAnyIf :: Serializable a => (a -> Bool) -> (Message -> Process b) -> Match b
+ Control.Distributed.Process: matchAnyIf :: forall a b. Serializable a => (a -> Bool) -> (Message -> Process b) -> Match b
- Control.Distributed.Process: matchIf :: Serializable a => (a -> Bool) -> (a -> Process b) -> Match b
+ Control.Distributed.Process: matchIf :: forall a b. Serializable a => (a -> Bool) -> (a -> Process b) -> Match b
- Control.Distributed.Process: monitorPort :: Serializable a => SendPort a -> Process MonitorRef
+ Control.Distributed.Process: monitorPort :: forall a. Serializable a => SendPort a -> Process MonitorRef
- Control.Distributed.Process: spawnChannel :: Serializable a => Static (SerializableDict a) -> NodeId -> Closure (ReceivePort a -> Process ()) -> Process (SendPort a)
+ Control.Distributed.Process: spawnChannel :: forall a. Serializable a => Static (SerializableDict a) -> NodeId -> Closure (ReceivePort a -> Process ()) -> Process (SendPort a)
- Control.Distributed.Process: unwrapMessage :: (Monad m, Serializable a) => Message -> m (Maybe a)
+ Control.Distributed.Process: unwrapMessage :: forall m a. (Monad m, Serializable a) => Message -> m (Maybe a)
- Control.Distributed.Process.Closure: [SerializableDict] :: forall a. Serializable a => SerializableDict a
+ Control.Distributed.Process.Closure: [SerializableDict] :: Serializable a => SerializableDict a
- Control.Distributed.Process.Closure: bindCP :: (Typeable a, Typeable b) => Closure (Process a) -> CP a b -> Closure (Process b)
+ Control.Distributed.Process.Closure: bindCP :: forall a b. (Typeable a, Typeable b) => Closure (Process a) -> CP a b -> Closure (Process b)
- Control.Distributed.Process.Closure: call' :: Serializable a => NodeId -> Closure (Process a) -> Process a
+ Control.Distributed.Process.Closure: call' :: forall a. Serializable a => NodeId -> Closure (Process a) -> Process a
- Control.Distributed.Process.Closure: cpSend :: Typeable a => Static (SerializableDict a) -> ProcessId -> CP a ()
+ Control.Distributed.Process.Closure: cpSend :: forall a. Typeable a => Static (SerializableDict a) -> ProcessId -> CP a ()
- Control.Distributed.Process.Closure: mkClosureValSingle :: (Serializable a, Typeable b, MkTDict b) => String -> (a -> b) -> (a -> Closure b, RemoteRegister)
+ Control.Distributed.Process.Closure: mkClosureValSingle :: forall a b. (Serializable a, Typeable b, MkTDict b) => String -> (a -> b) -> (a -> Closure b, RemoteRegister)
- Control.Distributed.Process.Closure: returnCP :: Serializable a => Static (SerializableDict a) -> a -> Closure (Process a)
+ Control.Distributed.Process.Closure: returnCP :: forall a. Serializable a => Static (SerializableDict a) -> a -> Closure (Process a)
- Control.Distributed.Process.Closure: type CP a b = Closure a -> Process b
+ Control.Distributed.Process.Closure: type CP a b = Closure (a -> Process b)
- Control.Distributed.Process.Debug: withFlags :: TraceFlags -> Process a -> Process (Either SomeException a)
+ Control.Distributed.Process.Debug: withFlags :: forall a. TraceFlags -> Process a -> Process (Either SomeException a)
- Control.Distributed.Process.Debug: withTracer :: (MxEvent -> Process ()) -> Process a -> Process (Either SomeException a)
+ Control.Distributed.Process.Debug: withTracer :: forall a. (MxEvent -> Process ()) -> Process a -> Process (Either SomeException a)
- Control.Distributed.Process.Internal.CQueue: dequeue :: CQueue m -> BlockSpec -> [MatchOn m a] -> IO (Maybe a)
+ Control.Distributed.Process.Internal.CQueue: dequeue :: forall m a. CQueue m -> BlockSpec -> [MatchOn m a] -> IO (Maybe a)
- Control.Distributed.Process.Internal.Closure.BuiltIn: bindCP :: (Typeable a, Typeable b) => Closure (Process a) -> CP a b -> Closure (Process b)
+ Control.Distributed.Process.Internal.Closure.BuiltIn: bindCP :: forall a b. (Typeable a, Typeable b) => Closure (Process a) -> CP a b -> Closure (Process b)
- Control.Distributed.Process.Internal.Closure.BuiltIn: cpSend :: Typeable a => Static (SerializableDict a) -> ProcessId -> CP a ()
+ Control.Distributed.Process.Internal.Closure.BuiltIn: cpSend :: forall a. Typeable a => Static (SerializableDict a) -> ProcessId -> CP a ()
- Control.Distributed.Process.Internal.Closure.BuiltIn: returnCP :: Serializable a => Static (SerializableDict a) -> a -> Closure (Process a)
+ Control.Distributed.Process.Internal.Closure.BuiltIn: returnCP :: forall a. Serializable a => Static (SerializableDict a) -> a -> Closure (Process a)
- Control.Distributed.Process.Internal.Closure.BuiltIn: type CP a b = Closure a -> Process b
+ Control.Distributed.Process.Internal.Closure.BuiltIn: type CP a b = Closure (a -> Process b)
- Control.Distributed.Process.Internal.Closure.Explicit: call' :: Serializable a => NodeId -> Closure (Process a) -> Process a
+ Control.Distributed.Process.Internal.Closure.Explicit: call' :: forall a. Serializable a => NodeId -> Closure (Process a) -> Process a
- Control.Distributed.Process.Internal.Closure.Explicit: mkClosureValSingle :: (Serializable a, Typeable b, MkTDict b) => String -> (a -> b) -> (a -> Closure b, RemoteRegister)
+ Control.Distributed.Process.Internal.Closure.Explicit: mkClosureValSingle :: forall a b. (Serializable a, Typeable b, MkTDict b) => String -> (a -> b) -> (a -> Closure b, RemoteRegister)
- Control.Distributed.Process.Internal.Primitives: catchExit :: (Show a, Serializable a) => Process b -> (ProcessId -> a -> Process b) -> Process b
+ Control.Distributed.Process.Internal.Primitives: catchExit :: forall a b. (Show a, Serializable a) => Process b -> (ProcessId -> a -> Process b) -> Process b
- Control.Distributed.Process.Internal.Primitives: expect :: Serializable a => Process a
+ Control.Distributed.Process.Internal.Primitives: expect :: forall a. Serializable a => Process a
- Control.Distributed.Process.Internal.Primitives: expectTimeout :: Serializable a => Int -> Process (Maybe a)
+ Control.Distributed.Process.Internal.Primitives: expectTimeout :: forall a. Serializable a => Int -> Process (Maybe a)
- Control.Distributed.Process.Internal.Primitives: handleMessage :: (Monad m, Serializable a) => Message -> (a -> m b) -> m (Maybe b)
+ Control.Distributed.Process.Internal.Primitives: handleMessage :: forall m a b. (Monad m, Serializable a) => Message -> (a -> m b) -> m (Maybe b)
- Control.Distributed.Process.Internal.Primitives: handleMessageIf :: (Monad m, Serializable a) => Message -> (a -> Bool) -> (a -> m b) -> m (Maybe b)
+ Control.Distributed.Process.Internal.Primitives: handleMessageIf :: forall m a b. (Monad m, Serializable a) => Message -> (a -> Bool) -> (a -> m b) -> m (Maybe b)
- Control.Distributed.Process.Internal.Primitives: handleMessageIf_ :: (Monad m, Serializable a) => Message -> (a -> Bool) -> (a -> m ()) -> m ()
+ Control.Distributed.Process.Internal.Primitives: handleMessageIf_ :: forall m a. (Monad m, Serializable a) => Message -> (a -> Bool) -> (a -> m ()) -> m ()
- Control.Distributed.Process.Internal.Primitives: handleMessage_ :: (Monad m, Serializable a) => Message -> (a -> m ()) -> m ()
+ Control.Distributed.Process.Internal.Primitives: handleMessage_ :: forall m a. (Monad m, Serializable a) => Message -> (a -> m ()) -> m ()
- Control.Distributed.Process.Internal.Primitives: mask :: ((forall a. () => Process a -> Process a) -> Process b) -> Process b
+ Control.Distributed.Process.Internal.Primitives: mask :: ((forall a. Process a -> Process a) -> Process b) -> Process b
- Control.Distributed.Process.Internal.Primitives: match :: Serializable a => (a -> Process b) -> Match b
+ Control.Distributed.Process.Internal.Primitives: match :: forall a b. Serializable a => (a -> Process b) -> Match b
- Control.Distributed.Process.Internal.Primitives: matchAny :: (Message -> Process b) -> Match b
+ Control.Distributed.Process.Internal.Primitives: matchAny :: forall b. (Message -> Process b) -> Match b
- Control.Distributed.Process.Internal.Primitives: matchAnyIf :: Serializable a => (a -> Bool) -> (Message -> Process b) -> Match b
+ Control.Distributed.Process.Internal.Primitives: matchAnyIf :: forall a b. Serializable a => (a -> Bool) -> (Message -> Process b) -> Match b
- Control.Distributed.Process.Internal.Primitives: matchIf :: Serializable a => (a -> Bool) -> (a -> Process b) -> Match b
+ Control.Distributed.Process.Internal.Primitives: matchIf :: forall a b. Serializable a => (a -> Bool) -> (a -> Process b) -> Match b
- Control.Distributed.Process.Internal.Primitives: monitorPort :: Serializable a => SendPort a -> Process MonitorRef
+ Control.Distributed.Process.Internal.Primitives: monitorPort :: forall a. Serializable a => SendPort a -> Process MonitorRef
- Control.Distributed.Process.Internal.Primitives: unwrapMessage :: (Monad m, Serializable a) => Message -> m (Maybe a)
+ Control.Distributed.Process.Internal.Primitives: unwrapMessage :: forall m a. (Monad m, Serializable a) => Message -> m (Maybe a)
- Control.Distributed.Process.Internal.Spawn: spawnChannel :: Serializable a => Static (SerializableDict a) -> NodeId -> Closure (ReceivePort a -> Process ()) -> Process (SendPort a)
+ Control.Distributed.Process.Internal.Spawn: spawnChannel :: forall a. Serializable a => Static (SerializableDict a) -> NodeId -> Closure (ReceivePort a -> Process ()) -> Process (SendPort a)
- Control.Distributed.Process.Management: mxDeactivate :: String -> MxAgent s MxAction
+ Control.Distributed.Process.Management: mxDeactivate :: forall s. String -> MxAgent s MxAction
- Control.Distributed.Process.Management: mxReady :: MxAgent s MxAction
+ Control.Distributed.Process.Management: mxReady :: forall s. MxAgent s MxAction
- Control.Distributed.Process.Management: mxReceive :: MxAgent s MxAction
+ Control.Distributed.Process.Management: mxReceive :: forall s. MxAgent s MxAction
- Control.Distributed.Process.Management: mxReceiveChan :: MxAgent s MxAction
+ Control.Distributed.Process.Management: mxReceiveChan :: forall s. MxAgent s MxAction
- Control.Distributed.Process.Management: mxSkip :: MxAgent s MxAction
+ Control.Distributed.Process.Management: mxSkip :: forall s. MxAgent s MxAction
- Control.Distributed.Process.Management: type MxSink s = Message -> MxAgent s Maybe MxAction
+ Control.Distributed.Process.Management: type MxSink s = Message -> MxAgent s (Maybe MxAction)
- Control.Distributed.Process.Management.Internal.Agent: type AgentConfig = (Tracer, Weak CQueue Message, (TChan Message, TChan Message) -> Process () -> IO ProcessId)
+ Control.Distributed.Process.Management.Internal.Agent: type AgentConfig = (Tracer, Weak (CQueue Message), (((TChan Message, TChan Message) -> Process ()) -> IO ProcessId))
- Control.Distributed.Process.Management.Internal.Types: type Fork = Process () -> IO ProcessId
+ Control.Distributed.Process.Management.Internal.Types: type Fork = (Process () -> IO ProcessId)
- Control.Distributed.Process.Management.Internal.Types: type MxSink s = Message -> MxAgent s Maybe MxAction
+ Control.Distributed.Process.Management.Internal.Types: type MxSink s = Message -> MxAgent s (Maybe MxAction)
- Control.Distributed.Process.Serializable: [SerializableDict] :: forall a. Serializable a => SerializableDict a
+ Control.Distributed.Process.Serializable: [SerializableDict] :: Serializable a => SerializableDict a
- Control.Distributed.Process.Serializable: [TypeableDict] :: forall a. Typeable a => TypeableDict a
+ Control.Distributed.Process.Serializable: [TypeableDict] :: Typeable a => TypeableDict a
- Control.Distributed.Process.Serializable: data Fingerprint
+ Control.Distributed.Process.Serializable: data () => Fingerprint
Files
- ChangeLog +5/−0
- Setup.hs +0/−2
- distributed-process.cabal +79/−77
- src/Control/Distributed/Process.hs +0/−4
- src/Control/Distributed/Process/Internal/CQueue.hs +0/−4
- src/Control/Distributed/Process/Internal/Primitives.hs +0/−8
- src/Control/Distributed/Process/Internal/StrictMVar.hs +0/−4
- src/Control/Distributed/Process/Internal/Types.hs +1/−11
- src/Control/Distributed/Process/Internal/WeakTQueue.hs +0/−4
- src/Control/Distributed/Process/Management/Internal/Trace/Tracer.hs +0/−8
- src/Control/Distributed/Process/Node.hs +0/−4
ChangeLog view
@@ -1,3 +1,8 @@+2024-09-03 Laurent P. René de Cotret <laurent.decotret@outlook.com> 0.7.7++* Bumped dependency bounds to support GHC 8.10.7 - GHC 9.10.1+* Updated links to point to Distributed Haskell monorepo+ 2024-04-03 David Simmons-Duffin <dsd@caltech.edu> 0.7.6 * Bumped hashable upper bound.
− Setup.hs
@@ -1,2 +0,0 @@-import Distribution.Simple-main = defaultMain
distributed-process.cabal view
@@ -1,90 +1,95 @@+cabal-version: 3.0 Name: distributed-process-Version: 0.7.6-Cabal-Version: >=1.10+Version: 0.7.7 Build-Type: Simple-License: BSD3+License: BSD-3-Clause License-File: LICENSE Copyright: Well-Typed LLP, Tweag I/O Limited Author: Duncan Coutts, Nicolas Wu, Edsko de Vries-Maintainer: Tim Watson <watson.timothy@gmail.com>+maintainer: The Distributed Haskell team Stability: experimental-Homepage: http://haskell-distributed.github.com/+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- (<http://research.microsoft.com/en-us/um/people/simonpj/papers/parallel/>),+ (<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-Å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==7.10.3 GHC==8.0.2 GHC==8.2.2 GHC==8.4.4+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-source-files: ChangeLog+extra-doc-files: ChangeLog -Source-Repository head+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: distributed-process+ SubDir: packages/distributed-process flag th description: Build with Template Haskell support default: True -flag old-locale- description: If false then depend on time >= 1.5.- .- If true then depend on time < 1.5 together with old-locale.- default: False- Library- Build-Depends: base >= 4.9 && < 5,- binary >= 0.6.3 && < 0.10,- hashable >= 1.2.0.5 && < 1.5,+ 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.9 && < 0.13,+ 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.5,- containers >= 0.5 && < 0.7,- deepseq >= 1.3.0.1 && < 1.6- 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,+ 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.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- ghc-options: -Wall HS-Source-Dirs: src other-extensions: BangPatterns CPP@@ -106,10 +111,6 @@ TypeSynonymInstances UnboxedTuples UndecidableInstances- if flag(old-locale)- Build-Depends: time < 1.5, old-locale >= 1.0 && <1.1- else- Build-Depends: time >= 1.5 if flag(th) other-extensions: TemplateHaskell Build-Depends: template-haskell >= 2.6@@ -119,56 +120,57 @@ -- Tests are in distributed-process-test package, for convenience. benchmark distributed-process-throughput+ import: warnings Type: exitcode-stdio-1.0- Build-Depends: base >= 4.9 && < 5,+ Build-Depends: base >= 4.14 && < 5, distributed-process,- network-transport-tcp >= 0.3 && <= 0.81,- bytestring >= 0.9 && < 0.13,- binary >= 0.6.3 && < 0.10+ 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- ghc-options: -Wall benchmark distributed-process-latency+ import: warnings Type: exitcode-stdio-1.0- Build-Depends: base >= 4.9 && < 5,+ Build-Depends: base >= 4.14 && < 5, distributed-process,- network-transport-tcp >= 0.3 && <= 0.81,- bytestring >= 0.9 && < 0.13,- binary >= 0.6.3 && < 0.10+ 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- ghc-options: -Wall benchmark distributed-process-channels+ import: warnings Type: exitcode-stdio-1.0- Build-Depends: base >= 4.9 && < 5,+ Build-Depends: base >= 4.14 && < 5, distributed-process,- network-transport-tcp >= 0.3 && <= 0.81,- bytestring >= 0.9 && < 0.13,- binary >= 0.6.3 && < 0.10+ 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- ghc-options: -Wall benchmark distributed-process-spawns+ import: warnings Type: exitcode-stdio-1.0- Build-Depends: base >= 4.9 && < 5,+ Build-Depends: base >= 4.14 && < 5, distributed-process,- network-transport-tcp >= 0.3 && <= 0.81,- bytestring >= 0.9 && < 0.13,- binary >= 0.6.3 && < 0.10+ 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- ghc-options: -Wall benchmark distributed-process-ring+ import: warnings Type: exitcode-stdio-1.0- Build-Depends: base >= 4.9 && < 5,+ Build-Depends: base >= 4.14 && < 5, distributed-process,- network-transport-tcp >= 0.3 && <= 0.81,- bytestring >= 0.9 && < 0.13,- binary >= 0.6.3 && < 0.10+ 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: -Wall -threaded -O2 -rtsopts+ ghc-options: -threaded -O2 -rtsopts
src/Control/Distributed/Process.hs view
@@ -322,11 +322,7 @@ ) import qualified Control.Monad.Catch as Catch -#if MIN_VERSION_base(4,6,0) import Prelude-#else-import Prelude hiding (catch)-#endif import qualified Control.Exception as Exception (onException) import Data.Accessor ((^.)) import Data.Foldable (forM_)
src/Control/Distributed/Process/Internal/CQueue.hs view
@@ -288,11 +288,7 @@ -- | Weak reference to a CQueue mkWeakCQueue :: CQueue a -> IO () -> IO (Weak (CQueue a)) mkWeakCQueue m@(CQueue (StrictMVar (MVar m#)) _ _) f = IO $ \s ->-#if MIN_VERSION_base(4,9,0) case mkWeak# m# m (unIO f) s of (# s1, w #) -> (# s1, Weak w #)-#else- case mkWeak# m# m f s of (# s1, w #) -> (# s1, Weak w #)-#endif queueSize :: CQueue a -> IO Int queueSize (CQueue _ _ size) = readTVarIO size
src/Control/Distributed/Process/Internal/Primitives.hs view
@@ -124,19 +124,11 @@ , sendCtrlMsg ) where -#if ! MIN_VERSION_base(4,6,0)-import Prelude hiding (catch)-#endif- import Data.Binary (Binary(..), Put, Get, decode) import Data.Time.Clock (getCurrentTime, UTCTime(..)) import Data.Time.Calendar (Day(..)) import Data.Time.Format (formatTime)-#if MIN_VERSION_time(1,5,0) import Data.Time.Format (defaultTimeLocale)-#else-import System.Locale (defaultTimeLocale)-#endif import System.Timeout (timeout) import Control.Monad (when, void) import Control.Monad.Reader (ask)
src/Control/Distributed/Process/Internal/StrictMVar.hs view
@@ -71,8 +71,4 @@ mkWeakMVar :: StrictMVar a -> IO () -> IO (Weak (StrictMVar a)) mkWeakMVar q@(StrictMVar (MVar m#)) f = IO $ \s ->-#if MIN_VERSION_base(4,9,0) case mkWeak# m# q (unIO f) s of (# s', w #) -> (# s', Weak w #)-#else- case mkWeak# m# q f s of (# s', w #) -> (# s', Weak w #)-#endif
src/Control/Distributed/Process/Internal/Types.hs view
@@ -118,9 +118,6 @@ import Control.Monad.Catch (MonadThrow(..), MonadCatch(..), MonadMask(..)) import qualified Network.Transport as NT (EndPoint, EndPointAddress, Connection) import Control.Applicative-#if !MIN_VERSION_base(4,13,0) && MIN_VERSION_base(4,9,0)-import Control.Monad.Fail (MonadFail)-#endif import Control.Monad.Fix (MonadFix) import Control.Monad.Reader (MonadReader(..), ReaderT, runReaderT) import Control.Monad.IO.Class (MonadIO(..))@@ -356,9 +353,7 @@ deriving ( Applicative , Functor , Monad-#if MIN_VERSION_base(4,9,0) , MonadFail-#endif , MonadFix , MonadIO , MonadReader LocalProcess@@ -372,14 +367,13 @@ lproc <- ask liftIO $ catch (runLocalProcess lproc p) (runLocalProcess lproc . h) instance MonadMask Process where-#if MIN_VERSION_exceptions(0,10,0) generalBracket acquire release inner = do lproc <- ask liftIO $ generalBracket (runLocalProcess lproc acquire) (\a e -> runLocalProcess lproc $ release a e) (runLocalProcess lproc . inner)-#endif+ mask p = do lproc <- ask liftIO $ mask $ \restore ->@@ -477,11 +471,7 @@ deriving (Typeable) instance NFData Message where-#if MIN_VERSION_bytestring(0,10,0) rnf (EncodedMessage _ e) = rnf e `seq` ()-#else- rnf (EncodedMessage _ e) = BSL.length e `seq` ()-#endif rnf (UnencodedMessage _ a) = e `seq` () where e = BSL.length (encode a)
src/Control/Distributed/Process/Internal/WeakTQueue.hs view
@@ -100,8 +100,4 @@ mkWeakTQueue :: TQueue a -> IO () -> IO (Weak (TQueue a)) mkWeakTQueue q@(TQueue _read (TVar write#)) f = IO $ \s ->-#if MIN_VERSION_base(4,9,0) case mkWeak# write# q (unIO f) s of (# s', w #) -> (# s', Weak w #)-#else- case mkWeak# write# q f s of (# s', w #) -> (# s', Weak w #)-#endif
src/Control/Distributed/Process/Management/Internal/Trace/Tracer.hs view
@@ -77,10 +77,6 @@ import Debug.Trace (traceEventIO) import Prelude -#if ! MIN_VERSION_base(4,6,0)-import Prelude hiding (catch)-#endif- import System.Environment (getEnv) import System.IO ( Handle@@ -91,11 +87,7 @@ , hPutStrLn , hSetBuffering )-#if MIN_VERSION_time(1,5,0) import Data.Time.Format (defaultTimeLocale)-#else-import System.Locale (defaultTimeLocale)-#endif import System.Mem.Weak ( Weak )
src/Control/Distributed/Process/Node.hs view
@@ -38,11 +38,7 @@ , foldlWithKey ) import Data.Time.Format (formatTime)-#if MIN_VERSION_time(1,5,0) import Data.Time.Format (defaultTimeLocale)-#else-import System.Locale (defaultTimeLocale)-#endif import Data.Set (Set) import qualified Data.Set as Set ( empty