git.iko.soy/distributed-process
on master help sign in
More cleanup
commit4e9442b1044a35d414ecc5aff6498f9fe57e6ba1 authorEdsko de Vries <edsko@edsko.net> dateFri 10 Aug 2012, 15:50 (14 years ago) parent98a13a8
6 files changed+18−44
distributed-process/distributed-process.cabal−3 distributed-process/src/Control/Distributed/Process.hs−1 distributed-process/src/Control/Distributed/Process/Closure.hs+1−1 distributed-process/src/Control/Distributed/Process/Internal/Closure/MkClosure.hs−31 distributed-process/src/Control/Distributed/Process/Internal/Closure/TH.hs+17−7 distributed-process/src/Control/Distributed/Process/Node.hs−1
distributed-process/distributed-process.cabal−3
@@ -53,7 +53,6 @@ Library
5353 Control.Distributed.Process.Internal.Primitives,
5454 Control.Distributed.Process.Internal.CQueue,
5555 Control.Distributed.Process.Internal.Types,
56− Control.Distributed.Process.Internal.Closure.MkClosure,
5756 Control.Distributed.Process.Internal.Closure.TH,
5857 Control.Distributed.Process.Internal.Closure.BuiltIn,
5958 Control.Distributed.Process.Internal.Node
@@ -65,7 +64,6 @@ Library
6564 GADTs,
6665 GeneralizedNewtypeDeriving,
6766 DeriveDataTypeable,
68− TemplateHaskell,
6967 CPP
7068 ghc-options: -Wall
7169 HS-Source-Dirs: src
@@ -99,7 +97,6 @@ Test-Suite TestCH
9997 GADTs,
10098 GeneralizedNewtypeDeriving,
10199 DeriveDataTypeable,
102− TemplateHaskell,
103100 CPP
104101 ghc-options: -Wall -threaded -rtsopts -with-rtsopts=-N -fno-warn-unused-do-bind
105102 HS-Source-Dirs: tests src
distributed-process/src/Control/Distributed/Process.hs−1
@@ -209,7 +209,6 @@ import Control.Distributed.Process.Internal.Primitives
209209 )
210210import Control.Distributed.Process.Serializable (Serializable)
211211import Control.Distributed.Process.Node (forkProcess)
212−import Data.Rank1Typeable (ANY, ANY1)
213212
214213-- INTERNAL NOTES
215214--
distributed-process/src/Control/Distributed/Process/Closure.hs+1−1
@@ -189,8 +189,8 @@ import Control.Distributed.Process.Internal.Closure.TH
189189 , mkStatic
190190 , functionSDict
191191 , functionTDict
192+ , mkClosure
192193 )
193−import Control.Distributed.Process.Internal.Closure.MkClosure (mkClosure)
194194import Control.Distributed.Process.Internal.Closure.BuiltIn
195195 ( -- Static dictionaries and associated operations
196196 staticDecode
distributed-process/src/Control/Distributed/Process/Internal/Closure/MkClosure.hsdeleted−31
@@ -1,31 +0,0 @@
1−{-# LANGUAGE TemplateHaskell #-}
2−module Control.Distributed.Process.Internal.Closure.MkClosure (mkClosure) where
3−
4−import Data.Binary (encode)
5−import Language.Haskell.TH (Q, Exp, Name)
6−import Control.Distributed.Process.Internal.Closure.TH
7− ( mkStatic
8− , functionSDict
9− )
10−import Control.Distributed.Static (Closure(Closure), staticCompose)
11−import Control.Distributed.Process.Internal.Closure.BuiltIn (staticDecode)
12−
13−{-
14−-- import Control.Distributed.Process.Internal.Types (Closure(Closure))
15−import Control.Distributed.Process.Internal.Closure.Static
16− ( staticCompose
17− , staticDecode
18− )
19−-}
20−
21−-- | Create a closure
22−--
23−-- If @f : T1 -> T2@ is a /monomorphic/ function
24−-- then @$(mkClosure 'f) :: T1 -> Closure T2@.
25−-- Be sure to pass 'f' to
26−-- 'Control.Distributed.Process.Internal.Closure.TH.remotable'.
27−mkClosure :: Name -> Q Exp
28−mkClosure n =
29− [| Closure ($(mkStatic n) `staticCompose` staticDecode $(functionSDict n))
30− . encode
31− |]
distributed-process/src/Control/Distributed/Process/Internal/Closure/TH.hs+17−7
@@ -1,12 +1,12 @@
11-- | Template Haskell support
2−--
3−-- (In a separate file for convenience)
2+{-# LANGUAGE TemplateHaskell #-}
43module Control.Distributed.Process.Internal.Closure.TH
54 ( -- * User-level API
65 remotable
76 , mkStatic
87 , functionSDict
98 , functionTDict
9+ , mkClosure
1010 ) where
1111
1212import Prelude hiding (lookup)
@@ -40,17 +40,21 @@ import Language.Haskell.TH
4040 , sigD
4141 )
4242
43−import Control.Distributed.Process.Internal.Types (Process)
44−import Control.Distributed.Process.Serializable
45− ( SerializableDict(SerializableDict)
46− )
43+import Data.Binary (encode)
44+import Data.Rank1Dynamic (toDynamic)
4745import Control.Distributed.Static
4846 ( RemoteTable
4947 , registerStatic
5048 , Static
5149 , staticLabel
50+ , Closure(Closure)
51+ , staticCompose
5252 )
53−import Data.Rank1Dynamic (toDynamic)
53+import Control.Distributed.Process.Internal.Types (Process)
54+import Control.Distributed.Process.Serializable
55+ ( SerializableDict(SerializableDict)
56+ )
57+import Control.Distributed.Process.Internal.Closure.BuiltIn (staticDecode)
5458
5559--------------------------------------------------------------------------------
5660-- User-level API --
@@ -86,6 +90,12 @@ functionSDict = varE . sdictName
8690functionTDict :: Name -> Q Exp
8791functionTDict = varE . tdictName
8892
93+mkClosure :: Name -> Q Exp
94+mkClosure n =
95+ [| Closure ($(mkStatic n) `staticCompose` staticDecode $(functionSDict n))
96+ . encode
97+ |]
98+
8999--------------------------------------------------------------------------------
90100-- Internal (Template Haskell) --
91101--------------------------------------------------------------------------------
distributed-process/src/Control/Distributed/Process/Node.hs−1
@@ -9,7 +9,6 @@ module Control.Distributed.Process.Node
99 , localNodeId
1010 ) where
1111
12−
1312#if ! MIN_VERSION_base(4,6,0)
1413import Prelude hiding (catch)
1514#endif