git.iko.soy/distributed-process
on master help sign in
Bring terminology in line with the paper

RemoteTable instead of RemoteCallMetaData (which was the name used in the 'remote' package but not in the paper)

commit5ab27fce488f9dc67651bcf19868e3170379ae04 authorEdsko de Vries <edsko@edsko.net> dateTue 19 Jun 2012, 10:49 (14 years ago) parent4e78c5d
5 files changed+47−47
distributed-process/src/Control/Distributed/Process.hs+7−7 distributed-process/src/Control/Distributed/Process/Closure.hs+15−15 distributed-process/src/Control/Distributed/Process/Internal.hs+6−6 distributed-process/tests/TestCH.hs+15−15 distributed-process/tests/TestClosure.hs+4−4
distributed-process/src/Control/Distributed/Process.hs+7−7
@@ -15,8 +15,8 @@ module Control.Distributed.Process
1515 , expect
1616 , send
1717 , getSelfPid
18− , RemoteCallMetaData
19− , initRemoteCallMetaData
18+ , RemoteTable
19+ , initRemoteTable
2020 -- * Matching messages
2121 , Match
2222 , match
@@ -95,8 +95,8 @@ import qualified Network.Transport as NT ( Transport
9595import Data.Accessor ((^.), (^=), (^:))
9696import System.Random (randomIO)
9797import Control.Distributed.Process.Internal.NodeController (runNodeController)
98−import Control.Distributed.Process.Internal ( RemoteCallMetaData
99− , initRemoteCallMetaData
98+import Control.Distributed.Process.Internal ( RemoteTable
99+ , initRemoteTable
100100 , NodeId(..)
101101 , LocalProcessId(..)
102102 , ProcessId(..)
@@ -296,8 +296,8 @@ expectTimeout timeout = receiveTimeout timeout [match return]
296296--
297297-- Note that proper Cloud Haskell initialization and configuration is still
298298-- to do.
299−newLocalNode :: NT.Transport -> RemoteCallMetaData -> IO LocalNode
300−newLocalNode transport metaData = do
299+newLocalNode :: NT.Transport -> RemoteTable -> IO LocalNode
300+newLocalNode transport rtable = do
301301 mEndPoint <- NT.newEndPoint transport
302302 case mEndPoint of
303303 Left ex -> throwIO ex
@@ -314,7 +314,7 @@ newLocalNode transport metaData = do
314314 , localEndPoint = endPoint
315315 , localState = state
316316 , localCtrlChan = ctrlChan
317− , localMetaData = metaData
317+ , remoteTable = rtable
318318 }
319319 void . forkIO $ runNodeController node
320320 void . forkIO $ handleIncomingMessages node
distributed-process/src/Control/Distributed/Process/Closure.hs+15−15
@@ -25,17 +25,17 @@
2525--
2626-- The call to 'remotable' will also generate a function
2727--
28−-- > __remoteCallMetaData :: RemoteCallMetaData -> RemoteCallMetaData
28+-- > __remoteTable :: RemoteTable -> RemoteTable
2929--
30−-- which can be used to construct the 'RemoteCallMetaData' used to initialize
30+-- which can be used to construct the 'RemoteTable' used to initialize
3131-- Cloud Haskell. You should have (at most) one call to 'remotable' per module,
3232-- and compose all created functions when initializing Cloud Haskell:
3333--
34−-- > let metaData = M1.__remoteCallMetaData
35−-- > . M2.__remoteCallMetaData
36−-- > . ...
37−-- > . Mn.__remoteCallMetaData
38−-- > $ initRemoteCallMetaData
34+-- > let rtable = M1.__remoteTable
35+-- > . M2.__remoteTable
36+-- > . ...
37+-- > . Mn.__remoteTable
38+-- > $ initRemoteTable
3939--
4040-- See Section 6, /Faking It/, of /Towards Haskell in the Cloud/ for more info.
4141{-# LANGUAGE TemplateHaskell #-}
@@ -80,9 +80,9 @@ import Language.Haskell.TH ( -- Q monad and operations
8080 , sigD
8181 )
8282import Control.Distributed.Process (Process)
83−import Control.Distributed.Process.Internal ( RemoteCallMetaData
83+import Control.Distributed.Process.Internal ( RemoteTable
8484 , LocalProcess(processNode)
85− , LocalNode(localMetaData)
85+ , LocalNode(remoteTable)
8686 )
8787
8888-- | A static value is one that is bound at top-level.
@@ -103,8 +103,8 @@ data Closure a = Closure (Static (ByteString -> a)) ByteString
103103remotable :: [Name] -> Q [Dec]
104104remotable ns = do
105105 (closures, decoders, inserts) <- unzip3 <$> mapM process ns
106− metaData <- createMetaData inserts
107− return $ concat closures ++ concat decoders ++ metaData
106+ rtable <- createMetaData inserts
107+ return $ concat closures ++ concat decoders ++ rtable
108108
109109-- | Deserialize a closure
110110unClosure :: Typeable a => Closure a -> Process a
@@ -122,8 +122,8 @@ mkClosure = varE . closureName
122122
123123lookupStatic :: Typeable a => String -> Process a
124124lookupStatic label = do
125− metaData <- localMetaData . processNode <$> ask
126− return $ fromDyn (metaData Map.! label) (throw typeError)
125+ rtable <- remoteTable . processNode <$> ask
126+ return $ fromDyn (rtable Map.! label) (throw typeError)
127127 where
128128 typeError = userError "lookupStatic type error"
129129
@@ -138,8 +138,8 @@ instance Binary (Closure a) where
138138-- | Generate the code to add the metadata to the CH runtime
139139createMetaData :: [Q Exp] -> Q [Dec]
140140createMetaData is =
141− [d| __remoteCallMetaData :: RemoteCallMetaData -> RemoteCallMetaData ;
142− __remoteCallMetaData = $(compose is)
141+ [d| __remoteTable :: RemoteTable -> RemoteTable ;
142+ __remoteTable = $(compose is)
143143 |]
144144
145145-- | Generate the necessary definitions for one function
distributed-process/src/Control/Distributed/Process/Internal.hs+6−6
@@ -1,7 +1,7 @@
11module Control.Distributed.Process.Internal
22 ( -- * Global CH state
3− RemoteCallMetaData
4− , initRemoteCallMetaData
3+ RemoteTable
4+ , initRemoteTable
55 , -- * Node and process identifiers
66 NodeId(..)
77 , LocalProcessId(..)
@@ -96,11 +96,11 @@ instance Show ProcessId where
9696 show pid = show (processNodeId pid) ++ ":" ++ show (processLocalId pid)
9797
9898-- | Used to fake 'static' (see paper)
99−type RemoteCallMetaData = Map String Dynamic
99+type RemoteTable = Map String Dynamic
100100
101101-- | Initial (empty) remote-call meta data
102−initRemoteCallMetaData :: RemoteCallMetaData
103−initRemoteCallMetaData = Map.empty
102+initRemoteTable :: RemoteTable
103+initRemoteTable = Map.empty
104104
105105-- | Local nodes
106106data LocalNode = LocalNode
@@ -109,7 +109,7 @@ data LocalNode = LocalNode
109109 , localState :: MVar LocalNodeState
110110 , localCtrlChan :: Chan NCMsg
111111 -- TODO: this should be part of the CH state, not the local endpoint state
112− , localMetaData :: RemoteCallMetaData
112+ , remoteTable :: RemoteTable
113113 }
114114
115115-- | Local node state
distributed-process/tests/TestCH.hs+15−15
@@ -43,13 +43,13 @@ testPing transport = do
4343
4444 -- Server
4545 forkIO $ do
46− localNode <- newLocalNode transport initRemoteCallMetaData
46+ localNode <- newLocalNode transport initRemoteTable
4747 addr <- forkProcess localNode ping
4848 putMVar serverAddr addr
4949
5050 -- Client
5151 forkIO $ do
52− localNode <- newLocalNode transport initRemoteCallMetaData
52+ localNode <- newLocalNode transport initRemoteTable
5353 pingServer <- readMVar serverAddr
5454
5555 let numPings = 10000
@@ -117,13 +117,13 @@ testMonitorUnreachable transport mOrL un = do
117117 done <- newEmptyMVar
118118
119119 forkIO $ do
120− localNode <- newLocalNode transport initRemoteCallMetaData
120+ localNode <- newLocalNode transport initRemoteTable
121121 addr <- forkProcess localNode . liftIO $ threadDelay 1000000
122122 closeLocalNode localNode
123123 putMVar deadProcess addr
124124
125125 forkIO $ do
126− localNode <- newLocalNode transport initRemoteCallMetaData
126+ localNode <- newLocalNode transport initRemoteTable
127127 theirAddr <- readMVar deadProcess
128128 runProcess localNode $
129129 monitorTestProcess theirAddr mOrL un DiedDisconnect Nothing done
@@ -138,13 +138,13 @@ testMonitorNormalTermination transport mOrL un = do
138138 done <- newEmptyMVar
139139
140140 forkIO $ do
141− localNode <- newLocalNode transport initRemoteCallMetaData
141+ localNode <- newLocalNode transport initRemoteTable
142142 addr <- forkProcess localNode $
143143 liftIO $ readMVar monitorSetup
144144 putMVar monitoredProcess addr
145145
146146 forkIO $ do
147− localNode <- newLocalNode transport initRemoteCallMetaData
147+ localNode <- newLocalNode transport initRemoteTable
148148 theirAddr <- readMVar monitoredProcess
149149 runProcess localNode $
150150 monitorTestProcess theirAddr mOrL un DiedNormal (Just monitorSetup) done
@@ -161,14 +161,14 @@ testMonitorAbnormalTermination transport mOrL un = do
161161 let err = userError "Abnormal termination"
162162
163163 forkIO $ do
164− localNode <- newLocalNode transport initRemoteCallMetaData
164+ localNode <- newLocalNode transport initRemoteTable
165165 addr <- forkProcess localNode . liftIO $ do
166166 readMVar monitorSetup
167167 throwIO err
168168 putMVar monitoredProcess addr
169169
170170 forkIO $ do
171− localNode <- newLocalNode transport initRemoteCallMetaData
171+ localNode <- newLocalNode transport initRemoteTable
172172 theirAddr <- readMVar monitoredProcess
173173 runProcess localNode $
174174 monitorTestProcess theirAddr mOrL un (DiedException (show err)) (Just monitorSetup) done
@@ -180,7 +180,7 @@ testMonitorLocalDeadProcess :: NT.Transport -> Bool -> Bool -> IO ()
180180testMonitorLocalDeadProcess transport mOrL un = do
181181 processDead <- newEmptyMVar
182182 processAddr <- newEmptyMVar
183− localNode <- newLocalNode transport initRemoteCallMetaData
183+ localNode <- newLocalNode transport initRemoteTable
184184 done <- newEmptyMVar
185185
186186 forkIO $ do
@@ -203,12 +203,12 @@ testMonitorRemoteDeadProcess transport mOrL un = do
203203 done <- newEmptyMVar
204204
205205 forkIO $ do
206− localNode <- newLocalNode transport initRemoteCallMetaData
206+ localNode <- newLocalNode transport initRemoteTable
207207 addr <- forkProcess localNode . liftIO $ putMVar processDead ()
208208 putMVar processAddr addr
209209
210210 forkIO $ do
211− localNode <- newLocalNode transport initRemoteCallMetaData
211+ localNode <- newLocalNode transport initRemoteTable
212212 theirAddr <- readMVar processAddr
213213 readMVar processDead
214214 runProcess localNode $ do
@@ -224,14 +224,14 @@ testMonitorDisconnect transport mOrL un = do
224224 done <- newEmptyMVar
225225
226226 forkIO $ do
227− localNode <- newLocalNode transport initRemoteCallMetaData
227+ localNode <- newLocalNode transport initRemoteTable
228228 addr <- forkProcess localNode . liftIO $ threadDelay 1000000
229229 putMVar processAddr addr
230230 readMVar monitorSetup
231231 NT.closeEndPoint (localEndPoint localNode)
232232
233233 forkIO $ do
234− localNode <- newLocalNode transport initRemoteCallMetaData
234+ localNode <- newLocalNode transport initRemoteTable
235235 theirAddr <- readMVar processAddr
236236 runProcess localNode $ do
237237 monitorTestProcess theirAddr mOrL un DiedDisconnect (Just monitorSetup) done
@@ -272,13 +272,13 @@ testMath transport = do
272272
273273 -- Server
274274 forkIO $ do
275− localNode <- newLocalNode transport initRemoteCallMetaData
275+ localNode <- newLocalNode transport initRemoteTable
276276 addr <- forkProcess localNode math
277277 putMVar serverAddr addr
278278
279279 -- Client
280280 forkIO $ do
281− localNode <- newLocalNode transport initRemoteCallMetaData
281+ localNode <- newLocalNode transport initRemoteTable
282282 mathServer <- readMVar serverAddr
283283
284284 runProcess localNode $ do
distributed-process/tests/TestClosure.hs+4−4
@@ -20,7 +20,7 @@ sendInt = send
2020
2121$(remotable ['addInt, 'putInt, 'sendInt])
2222
23−testSendPureClosure :: Transport -> RemoteCallMetaData -> IO ()
23+testSendPureClosure :: Transport -> RemoteTable -> IO ()
2424testSendPureClosure transport metaData = do
2525 serverAddr <- newEmptyMVar
2626 serverDone <- newEmptyMVar
@@ -41,7 +41,7 @@ testSendPureClosure transport metaData = do
4141
4242 takeMVar serverDone
4343
44−testSendIOClosure :: Transport -> RemoteCallMetaData -> IO ()
44+testSendIOClosure :: Transport -> RemoteTable -> IO ()
4545testSendIOClosure transport metaData = do
4646 serverAddr <- newEmptyMVar
4747 serverDone <- newEmptyMVar
@@ -65,7 +65,7 @@ testSendIOClosure transport metaData = do
6565
6666 takeMVar serverDone
6767
68−testSendProcClosure :: Transport -> RemoteCallMetaData -> IO ()
68+testSendProcClosure :: Transport -> RemoteTable -> IO ()
6969testSendProcClosure transport metaData = do
7070 serverAddr <- newEmptyMVar
7171 clientDone <- newEmptyMVar
@@ -92,7 +92,7 @@ testSendProcClosure transport metaData = do
9292main :: IO ()
9393main = do
9494 Right transport <- createTransport "127.0.0.1" "8080" defaultTCPParameters
95− let metaData = __remoteCallMetaData initRemoteCallMetaData
95+ let metaData = __remoteTable initRemoteTable
9696 runTests
9797 [ ("SendPureClosure", testSendPureClosure transport metaData)
9898 , ("SendIOClosure", testSendIOClosure transport metaData)