on master help sign in
Fix build for ghc-7.10 and 8.0
dfecce2Harendra Kumar
stack-8.0.yaml+1
@@ -2,6 +2,7 @@ resolver: lts-9.20
2packages:
2packages:
3- '.'
3- '.'
4extra-deps:
4extra-deps:
5+ - QuickCheck-2.10
5 - lockfree-queue-0.2.3.1
6 - lockfree-queue-0.2.3.1
6 - simple-conduit-0.6.0
7 - simple-conduit-0.6.0
7 - SDL-0.6.5.1
8 - SDL-0.6.5.1
streamly.cabal+1
@@ -64,6 +64,7 @@ extra-source-files:
64 README.md
64 README.md
65 bench.sh
65 bench.sh
66 stack-7.10.yaml
66 stack-7.10.yaml
67+ stack-8.0.yaml
67 stack.yaml
68 stack.yaml
68
69
69source-repository head
70source-repository head
test/Prop.hs+9−9
@@ -7,7 +7,6 @@ import Control.Monad (when)
7import Control.Applicative (ZipList(..))
7import Control.Applicative (ZipList(..))
8import Control.Concurrent (MVar, takeMVar, putMVar, newEmptyMVar)
8import Control.Concurrent (MVar, takeMVar, putMVar, newEmptyMVar)
9import Control.Monad (replicateM, replicateM_)
9import Control.Monad (replicateM, replicateM_)
10−import Control.Monad.IO.Class (liftIO)
11import Data.List (sort, foldl', scanl')
10import Data.List (sort, foldl', scanl')
12import GHC.Word (Word8)
11import GHC.Word (Word8)
13
12
@@ -121,7 +120,7 @@ sourceUnfoldrM mv n = A.unfoldrM step 0
121 if cnt > fromIntegral n
120 if cnt > fromIntegral n
122 then return Nothing
121 then return Nothing
123 else do
122 else do
124− liftIO $ dbgMVar ("put sourceUnfoldrM " ++ msg) (putMVar mv ())
123+ dbgMVar ("put sourceUnfoldrM " ++ msg) (putMVar mv ())
125 return (Just (fromIntegral cnt, cnt + 1))
124 return (Just (fromIntegral cnt, cnt + 1))
126
125
127concurrentUnfoldrM
126concurrentUnfoldrM
@@ -142,15 +141,16 @@ concurrentUnfoldrM eq op n =
142 A.toList $ do
141 A.toList $ do
143 x <- op (sourceUnfoldrM mv n)
142 x <- op (sourceUnfoldrM mv n)
144 let msg = show x ++ "/" ++ show n
143 let msg = show x ++ "/" ++ show n
144+ A.once $ do
145− if even x
145+ if even x
146− then do
146+ then do
147− liftIO $ dbgMVar ("first take concurrentUnfoldrM " ++ msg)
147+ dbgMVar ("first take concurrentUnfoldrM " ++ msg)
148− (takeMVar mv)
149− if n > x
150− then liftIO $ dbgMVar ("second take concurrentUnfoldrM " ++ msg)
151 (takeMVar mv)
148 (takeMVar mv)
149+ if n > x
150+ then dbgMVar ("second take concurrentUnfoldrM " ++ msg)
151+ (takeMVar mv)
152+ else return ()
152 else return ()
153 else return ()
153− else return ()
154 return x
154 return x
155 equals eq stream list
155 equals eq stream list
156
156