git.iko.soy/distributed-process
on master help sign in
Tidy up
3f40470Edsko de Vries
distributed-process/src/Control/Distributed/Process.hs+2−7
@@ -7,7 +7,6 @@
7-- although some of the details are different. The precise message passing
7-- although some of the details are different. The precise message passing
8-- semantics are based on /A unified semantics for future Erlang/ by Hans
8-- semantics are based on /A unified semantics for future Erlang/ by Hans
9-- Svensson, Lars-Åke Fredlund and Clara Benac Earle.
9-- Svensson, Lars-Åke Fredlund and Clara Benac Earle.
10−{-# LANGUAGE TemplateHaskell #-}
11module Control.Distributed.Process
10module Control.Distributed.Process
12 ( -- * Basic types
11 ( -- * Basic types
13 ProcessId
12 ProcessId
@@ -125,10 +124,7 @@ import Control.Distributed.Process.Internal.Closure.CP
125 , cpLink
124 , cpLink
126 , cpUnlink
125 , cpUnlink
127 )
126 )
128−import Control.Distributed.Process.Internal.Closure.Static
127+import Control.Distributed.Process.Internal.Closure.Static (sdictUnit)
129− ( sdictUnit
130− , sdictUnit__static
131− )
132import Control.Distributed.Process.Internal.Primitives
128import Control.Distributed.Process.Internal.Primitives
133 ( -- Basic messaging
129 ( -- Basic messaging
134 send
130 send
@@ -182,7 +178,6 @@ import Control.Distributed.Process.Internal.Primitives
182 , spawnAsync
178 , spawnAsync
183 )
179 )
184import Control.Distributed.Process.Serializable (Serializable)
180import Control.Distributed.Process.Serializable (Serializable)
185−import Control.Distributed.Process.Internal.Closure.TH (mkStatic)
186
181
187-- INTERNAL NOTES
182-- INTERNAL NOTES
188--
183--
@@ -258,7 +253,7 @@ spawn nid proc = do
258 -- that was already set up
253 -- that was already set up
259 mRef <- monitorNode nid
254 mRef <- monitorNode nid
260 sRef <- spawnAsync nid $ cpLink us
255 sRef <- spawnAsync nid $ cpLink us
261− `cpSeq` cpExpect $(mkStatic 'sdictUnit)
256+ `cpSeq` cpExpect sdictUnit
262 `cpSeq` cpUnlink us
257 `cpSeq` cpUnlink us
263 `cpSeq` proc
258 `cpSeq` proc
264 mPid <- receiveWait
259 mPid <- receiveWait
distributed-process/src/Control/Distributed/Process/Closure.hs+5−6
@@ -93,6 +93,9 @@ module Control.Distributed.Process.Closure
93 , mkStatic
93 , mkStatic
94 , mkClosure
94 , mkClosure
95 , functionSDict
95 , functionSDict
96+ -- * Primitive operations on static values
97+ , staticApply
98+ , staticDuplicate
96 -- * Static functionals
99 -- * Static functionals
97 , staticConst
100 , staticConst
98 , staticCompose
101 , staticCompose
@@ -113,18 +116,16 @@ module Control.Distributed.Process.Closure
113 , cpReturn
116 , cpReturn
114 , cpBind
117 , cpBind
115 , cpSeq
118 , cpSeq
116− -- * Serialization dictionaries (and their static versions)
119+ -- * Serialization dictionaries
117 , SerializableDict(..)
120 , SerializableDict(..)
118− , staticApply
119 , sdictUnit
121 , sdictUnit
120− , sdictUnit__static
121 , sdictProcessId
122 , sdictProcessId
122− , sdictProcessId__static
123 ) where
123 ) where
124
124
125import Control.Distributed.Process.Internal.Types
125import Control.Distributed.Process.Internal.Types
126 ( SerializableDict(..)
126 ( SerializableDict(..)
127 , staticApply
127 , staticApply
128+ , staticDuplicate
128 )
129 )
129import Control.Distributed.Process.Internal.Closure.TH
130import Control.Distributed.Process.Internal.Closure.TH
130 ( remotable
131 ( remotable
@@ -144,9 +145,7 @@ import Control.Distributed.Process.Internal.Closure.Static
144 , toClosure
145 , toClosure
145 -- Serialization dictionaries (and their static versions)
146 -- Serialization dictionaries (and their static versions)
146 , sdictUnit
147 , sdictUnit
147− , sdictUnit__static
148 , sdictProcessId
148 , sdictProcessId
149− , sdictProcessId__static
150 )
149 )
151import Control.Distributed.Process.Internal.Closure.MkClosure (mkClosure)
150import Control.Distributed.Process.Internal.Closure.MkClosure (mkClosure)
152import Control.Distributed.Process.Internal.Closure.CP
151import Control.Distributed.Process.Internal.Closure.CP
distributed-process/src/Control/Distributed/Process/Internal/Closure/CP.hs+1−2
@@ -54,7 +54,6 @@ import Control.Distributed.Process.Internal.Closure.Static
54 , staticConst
54 , staticConst
55 , staticUnit
55 , staticUnit
56 , sdictProcessId
56 , sdictProcessId
57− , sdictProcessId__static
58 )
57 )
59import Control.Distributed.Process.Internal.Closure.MkClosure (mkClosure)
58import Control.Distributed.Process.Internal.Closure.MkClosure (mkClosure)
60import Control.Distributed.Process.Internal.Dynamic
59import Control.Distributed.Process.Internal.Dynamic
@@ -177,7 +176,7 @@ cpSend dict pid = Closure decoder (encode pid)
177 decoder :: Static (ByteString -> a -> Process ())
176 decoder :: Static (ByteString -> a -> Process ())
178 decoder = ($(mkStatic 'sendDict) `staticApply` dict)
177 decoder = ($(mkStatic 'sendDict) `staticApply` dict)
179 `staticCompose`
178 `staticCompose`
180− staticDecode $(mkStatic 'sdictProcessId)
179+ staticDecode sdictProcessId
181
180
182-- | Closure version of 'expect'
181-- | Closure version of 'expect'
183cpExpect :: Typeable a => Static (SerializableDict a) -> Closure (Process a)
182cpExpect :: Typeable a => Static (SerializableDict a) -> Closure (Process a)
distributed-process/src/Control/Distributed/Process/Internal/Closure/Static.hs+18−16
@@ -15,9 +15,7 @@ module Control.Distributed.Process.Internal.Closure.Static
15 , toClosure
15 , toClosure
16 -- * Serialization dictionaries (and their static versions)
16 -- * Serialization dictionaries (and their static versions)
17 , sdictUnit
17 , sdictUnit
18− , sdictUnit__static
19 , sdictProcessId
18 , sdictProcessId
20− , sdictProcessId__static
21 -- * Runtime support
19 -- * Runtime support
22 , __remoteTable
20 , __remoteTable
23 ) where
21 ) where
@@ -66,19 +64,11 @@ decodeDict SerializableDict = decode
66
64
67---- Serialization dictionaries ------------------------------------------------
65---- Serialization dictionaries ------------------------------------------------
68
66
69−-- | Serialization dictionary for '()'
70−--
71−-- Use @$(mkStatic sdictUnit)@ (instead of 'sdictUnit__static')
72−-- to refer to the static dictionary.
73−sdictUnit :: SerializableDict ()
67+sdictUnit_ :: SerializableDict ()
74−sdictUnit = SerializableDict
68+sdictUnit_ = SerializableDict
75
69
76−-- | Serialization dictionary for 'ProcessId'
77−--
78−-- Use @$(mkStatic sdictProcessId)@ (instead of 'sdictProcessId__static')
79−-- to refer to the static dictionary.
80−sdictProcessId :: SerializableDict ProcessId
70+sdictProcessId_ :: SerializableDict ProcessId
81−sdictProcessId = SerializableDict
71+sdictProcessId_ = SerializableDict
82
72
83---- Finally, the call to remotable --------------------------------------------
73---- Finally, the call to remotable --------------------------------------------
84
74
@@ -94,8 +84,8 @@ remotable [ -- Functionals (predefined)
94 -- Explicit dictionaries
84 -- Explicit dictionaries
95 , 'decodeDict
85 , 'decodeDict
96 -- Serialization dictionaries
86 -- Serialization dictionaries
97− , 'sdictUnit
87+ , 'sdictUnit_
98− , 'sdictProcessId
88+ , 'sdictProcessId_
99 ]
89 ]
100
90
101--------------------------------------------------------------------------------
91--------------------------------------------------------------------------------
@@ -135,6 +125,18 @@ staticSplit f g = $(mkStatic 'split) `staticApply` f `staticApply` g
135staticUnit :: Static ()
125staticUnit :: Static ()
136staticUnit = $(mkStatic 'unit)
126staticUnit = $(mkStatic 'unit)
137
127
128+--------------------------------------------------------------------------------
129+-- Dictionaries --
130+--------------------------------------------------------------------------------
131+
132+-- | Serialization dictionary for '()'
133+sdictUnit :: Static (SerializableDict ())
134+sdictUnit = $(mkStatic 'sdictUnit_)
135+
136+-- | Serialization dictionary for 'ProcessId'
137+sdictProcessId :: Static (SerializableDict ProcessId)
138+sdictProcessId = $(mkStatic 'sdictProcessId_)
139+
138--------------------------------------------------------------------------------
140--------------------------------------------------------------------------------
139-- Creating closures --
141-- Creating closures --
140--------------------------------------------------------------------------------
142--------------------------------------------------------------------------------