packages feed

io-streams 1.5.0.1 → 1.5.1.0

raw patch · 4 files changed

+47/−27 lines, 4 filesdep ~attoparsecdep ~basedep ~bytestring

Dependency ranges changed: attoparsec, base, bytestring, bytestring-builder, network, primitive, process, text, time, transformers, vector, zlib-bindings

Files

changelog.md view
@@ -1,3 +1,6 @@+# Version 1.5.1.0+Fix [stackage#4312](https://github.com/commercialhaskell/stackage/issues/4312): Relax `network` upper bound+ # Version 1.5.0.1 Bugfix: `concurrentMerge []` should not block forever, even if this case is pathological.
io-streams.cabal view
@@ -1,5 +1,5 @@ Name:                io-streams-Version:             1.5.0.1+Version:             1.5.1.0 License:             BSD3 License-file:        LICENSE Category:            Data, Network, IO-Streams@@ -7,7 +7,8 @@ Maintainer:          Gregory Collins <greg@gregorycollins.net> Cabal-version:       >= 1.10 Synopsis:            Simple, composable, and easy-to-use stream I/O-Tested-With:         GHC==7.8.4, GHC==7.8.3, GHC==7.6.3, GHC==7.4.2+Tested-With:         GHC==7.4.2, GHC==7.6.3, GHC==7.8.4, GHC==7.10.3,+                     GHC==8.0.2, GHC==8.2.2, GHC==8.4.3, GHC==8.6.3 Bug-Reports:         https://github.com/snapframework/io-streams/issues Description:   /Overview/@@ -92,8 +93,6 @@   ghc-options:       -Wall -fwarn-tabs -funbox-strict-fields                      -fno-warn-unused-do-bind -  ghc-prof-options:  -auto-all-   Exposed-modules:   System.IO.Streams,                      System.IO.Streams.Attoparsec,                      System.IO.Streams.Attoparsec.ByteString,@@ -123,11 +122,11 @@                      attoparsec         >= 0.10  && <0.14,                      bytestring         >= 0.9   && <0.11,                      bytestring-builder >= 0.10  && <0.11,-                     network            >= 2.3   && <2.7,+                     network            >= 2.3   && <3.1,                      primitive          >= 0.2   && <0.7,                      process            >= 1.1   && <1.7,                      text               >= 0.10  && <1.3,-                     time               >= 1.2   && <1.9,+                     time               >= 1.2   && <1.10,                      transformers       >= 0.2   && <0.6,                      vector             >= 0.7   && <0.13,                      zlib-bindings      >= 0.1   && <0.2@@ -202,22 +201,22 @@   if !os(windows) && !flag(NoInteractiveTests)     cpp-options: -DENABLE_PROCESS_TESTS -  Build-depends:     base               >= 4     && <5,-                     attoparsec         >= 0.10  && <0.14,-                     bytestring         >= 0.9   && <0.11,-                     bytestring-builder >= 0.10  && <0.11,+  Build-depends:     base,+                     attoparsec,+                     bytestring,+                     bytestring-builder,                      deepseq            >= 1.2   && <1.5,                      directory          >= 1.1   && <2,                      filepath           >= 1.2   && <2,                      mtl                >= 2     && <3,-                     network            >= 2.3   && <2.7,-                     primitive          >= 0.2   && <0.7,-                     process            >= 1.1   && <1.7,-                     text               >= 0.10  && <1.3,-                     time               >= 1.2   && <1.9,-                     transformers       >= 0.2   && <0.6,-                     vector             >= 0.7   && <0.13,-                     zlib-bindings      >= 0.1   && <0.2,+                     network,+                     primitive,+                     process,+                     text,+                     time,+                     transformers,+                     vector,+                     zlib-bindings,                       HUnit                      >= 1.2      && <2,                      QuickCheck                 >= 2.3.0.2  && <3,
test/System/IO/Streams/Tests/Concurrent.hs view
@@ -47,7 +47,7 @@                                  chans     inputs <- mapM Streams.chanToInput chans     resultMVar <- newEmptyMVar-    forkIO (Streams.concurrentMerge inputs >>= Streams.toList+    _ <- forkIO (Streams.concurrentMerge inputs >>= Streams.toList                                            >>= putMVar resultMVar)     putMVar firstMVar 0     result <- takeMVar resultMVar
test/System/IO/Streams/Tests/Network.hs view
@@ -1,4 +1,5 @@ {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE CPP #-}  module System.IO.Streams.Tests.Network (tests) where @@ -13,6 +14,10 @@ import           Test.Framework import           Test.Framework.Providers.HUnit import           Test.HUnit                         hiding (Test)+#if MIN_VERSION_network(2,7,0)+#else+import           Data.List                          (intercalate)+#endif ------------------------------------------------------------------------------ import qualified System.IO.Streams.Internal         as Streams import qualified System.IO.Streams.Internal.Network as Streams@@ -32,10 +37,23 @@     assertEqual "ok" (Just ()) x    where+    -- compats+#if MIN_VERSION_network(2,7,0)+    mkAddr = return . N.tupleToHostAddress+    defaultPort = N.defaultPort+    close = N.close+    bind = N.bind+#else+    mkAddr (o1,o2,o3,o4) = N.inet_addr . intercalate "." $ map show [o1,o2,o3,o4]+    defaultPort = N.aNY_PORT+    close = N.sClose+    bind = N.bindSocket+#endif+     go = do         portMVar   <- newEmptyMVar         resultMVar <- newEmptyMVar-        forkIO $ client portMVar resultMVar+        _ <- forkIO $ client portMVar resultMVar         server portMVar         l <- takeMVar resultMVar         assertEqual "testSocket" l ["ok"]@@ -43,28 +61,28 @@     client mvar resultMVar = do         port <- takeMVar mvar         sock <- N.socket N.AF_INET N.Stream N.defaultProtocol-        addr <- N.inet_addr "127.0.0.1"+        addr <- mkAddr (127, 0, 0, 1)         let saddr = N.SockAddrInet port addr         N.connect sock saddr         (is, os) <- Streams.socketToStreams sock         Streams.fromList ["", "ok"] >>= Streams.connectTo os         N.shutdown sock N.ShutdownSend         Streams.toList is >>= putMVar resultMVar-        N.sClose sock+        close sock      server mvar = do         sock  <- N.socket N.AF_INET N.Stream N.defaultProtocol-        addr  <- N.inet_addr "127.0.0.1"-        let saddr = N.SockAddrInet N.aNY_PORT addr-        N.bindSocket sock saddr+        addr <- mkAddr (127, 0, 0, 1)+        let saddr = N.SockAddrInet defaultPort addr+        bind sock saddr         N.listen sock 5         port  <- N.socketPort sock         putMVar mvar port         (csock, _) <- N.accept sock         (is, os) <- Streams.socketToStreams csock         Streams.toList is >>= flip Streams.writeList os-        N.sClose csock-        N.sClose sock+        close csock+        close sock  testSocketWithError :: Test testSocketWithError = testCase "network/socket-error" $ N.withSocketsDo $ do