Network-NineP 0.4.0 → 0.4.1
raw patch · 3 files changed
+14/−13 lines, 3 filesdep +hsloggerdep ~binarydep ~transformersPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependencies added: hslogger
Dependency ranges changed: binary, transformers
API changes (from Hackage documentation)
+ Control.Monad.EmbedIO: type family Content o;
+ Control.Monad.EmbedIO: }
- Control.Monad.EmbedIO: class (MonadIO o) => EmbedIO o where type family Content o
+ Control.Monad.EmbedIO: class (MonadIO o) => EmbedIO o where type Content o where {
- Network.NineP.File: memoryDirectory :: (Monad m, EmbedIO m) => String -> IO (NineFile m)
+ Network.NineP.File: memoryDirectory :: forall m. (Monad m, EmbedIO m) => String -> IO (NineFile m)
- Network.NineP.File: memoryFile :: (Monad m, EmbedIO m) => String -> IO (NineFile m)
+ Network.NineP.File: memoryFile :: forall m. (Monad m, EmbedIO m) => String -> IO (NineFile m)
- Network.NineP.File: rwFile :: (EmbedIO m) => String -> Maybe (m ByteString) -> Maybe (ByteString -> m ()) -> NineFile m
+ Network.NineP.File: rwFile :: forall m. (EmbedIO m) => String -> Maybe (m ByteString) -> Maybe (ByteString -> m ()) -> NineFile m
- Network.NineP.File: simpleDirectory :: (Monad m, EmbedIO m) => String -> (String -> m (NineFile m)) -> (String -> m (NineFile m)) -> IO (NineFile m, IORef [(String, NineFile m)])
+ Network.NineP.File: simpleDirectory :: forall m. (Monad m, EmbedIO m) => String -> (String -> m (NineFile m)) -> (String -> m (NineFile m)) -> IO (NineFile m, IORef [(String, NineFile m)])
- Network.NineP.File: simpleFile :: (Monad m, EmbedIO m, ReadRef rr m a, Convertible a ByteString, WriteRef wr m b, Convertible ByteString b) => String -> rr -> wr -> NineFile m
+ Network.NineP.File: simpleFile :: forall a b m rr wr. (Monad m, EmbedIO m, ReadRef rr m a, Convertible a ByteString, WriteRef wr m b, Convertible ByteString b) => String -> rr -> wr -> NineFile m
- Network.NineP.File: simpleFileBy :: (Monad m, EmbedIO m) => String -> (m a, b -> m ()) -> (a -> ByteString, ByteString -> b) -> NineFile m
+ Network.NineP.File: simpleFileBy :: forall a b m. (Monad m, EmbedIO m) => String -> (m a, b -> m ()) -> (a -> ByteString, ByteString -> b) -> NineFile m
Files
- Network-NineP.cabal +7/−6
- Network/NineP/Server.hs +5/−7
- Test.hs +2/−0
Network-NineP.cabal view
@@ -1,5 +1,5 @@ Name: Network-NineP-Version: 0.4.0+Version: 0.4.1 Description: A library providing one with a somewhat higher level interface to 9P2000 protocol than existing implementations. Designed to facilitate rapid development of synthetic filesystems. Synopsis: High-level abstraction over 9P protocol Maintainer: Sergey Alirzaev <zl29ah@gmail.com>@@ -9,7 +9,7 @@ Build-Type: Simple Cabal-Version: >= 1.6 Stability: Experimental-Tested-With: GHC == 7.10.1+Tested-With: GHC == 8.0.1 Source-repository head type: git@@ -18,7 +18,7 @@ Source-repository this type: git location: https://github.com/l29ah/Network-NineP.git- tag: 0.4.0+ tag: 0.4.1 Library Build-Depends:@@ -27,16 +27,17 @@ containers >= 0.4.2.1 && < 0.6, NineP >= 0.0.2 && < 0.1, network >= 2.3.0.14 && < 2.7,- binary >= 0.5.1.0 && < 0.8,+ binary >= 0.5.1.0 && < 0.9, mtl >= 2.1.2 && < 2.3, monad-loops >= 0.3.3.0 && < 0.5, regex-posix >= 0.95.2 && < 0.96, mstate >= 0.2.4 && < 0.3,- transformers >= 0.3.0.0 && < 0.5,+ transformers >= 0.3.0.0 && < 0.6, stateref >= 0.3 && < 0.4, convertible >= 1.0.11.1 && < 1.2, exceptions >= 0.8.0.2 && < 0.9,- monad-peel >= 0.1.1 && < 0.3+ monad-peel >= 0.1.1 && < 0.3,+ hslogger >= 1.2.9 && < 1.3 Exposed-modules: Control.Monad.EmbedIO Network.NineP
Network/NineP/Server.hs view
@@ -34,6 +34,7 @@ import Network.BSD import Network.Socket hiding (send, sendTo, recv, recvFrom) import System.IO+import System.Log.Logger import Text.Regex.Posix ((=~)) import Network.NineP.Error@@ -41,11 +42,6 @@ import Network.NineP.Internal.Msg import Network.NineP.Internal.State ---import Debug.Trace-traceShow a b = b-traceIO :: String -> IO ()-traceIO a = return ()- maybeRead :: Read a => String -> Maybe a maybeRead = fmap fst . listToMaybe . reads @@ -96,12 +92,14 @@ let l = fromIntegral $ runGet getWord32le $ assert (B.length s == 4) s p <- B.hGet h $ l - 4 let m = runGet (get :: Get Msg) (B.append s p)- traceIO $ show m+ debugM "Network.NineP.Server" $ show m return m sender :: IO Msg -> (ByteString -> IO ()) -> IO () sender get say = forever $ do- (say . runPut . put . join traceShow) =<< get+ msg <- get+ debugM "Network.NineP.Server" $ show msg+ say $ runPut $ put msg receiver :: (EmbedIO m) => Config m -> Handle -> (Msg -> IO ()) -> IO () receiver cfg h say = runReaderT (runMState (iterateUntil id (do
Test.hs view
@@ -4,6 +4,7 @@ import Control.Monad.Trans import qualified Data.ByteString.Lazy.Char8 as B import Data.Word+import System.Log.Logger import Network.NineP as N import Network.NineP.Error@@ -18,6 +19,7 @@ boringwr _ c = return $ B.take (fromIntegral c) "i am so very boring" main = do+ updateGlobalLogger "Network.NineP" $ setLevel DEBUG memd <- memoryDirectory "/" :: IO (NineFile IO) run9PServer $ Config { -- TODO Data.Default?