on master help sign in
Make misc formatting, stylistic, comment changes

As part of terminating folds review.

commit7e98cfeabe289e817aaad4a05fe6b8ad57aa3767 authorHarendra Kumar <harendra@composewell.com> dateFri 11 Dec 2020, 04:39 (6 years ago) parentd5af0bf
8 files changed+30−27
src/Streamly.hs+1−1 src/Streamly/Internal/Data/Array.hs+5−5 src/Streamly/Internal/Data/Array/Prim/MutTypesInclude.hs+7−4 src/Streamly/Internal/Data/Array/Storable/Foreign/Mut/Types.hs+4−3 src/Streamly/Internal/Data/Array/Storable/Foreign/Types.hs−1 src/Streamly/Internal/Data/Stream/StreamK.hs+7−7 src/Streamly/Internal/Data/Unfold.hs+1−1 src/Streamly/Internal/Network/Inet/TCP.hs+5−5
src/Streamly.hs+1−1
@@ -272,7 +272,7 @@ import qualified Streamly.Internal.Data.Stream.Async as Async
272272-- reducers of streams. Reducers can be combined to consume a stream source in
273273-- many ways. The simplest is to reduce a stream source using a fold e.g.:
274274--
275−-- > S.foldOnce FL.length $ S.enumerateTo 100
275+-- > S.fold FL.length $ S.enumerateTo 100
276276--
277277-- Folds are consumers of streams and can be used to split a stream into
278278-- multiple independent flows. Grouping transforms a stream by applying a fold
src/Streamly/Internal/Data/Array.hs+5−5
@@ -49,20 +49,20 @@ import Control.DeepSeq (NFData(..))
4949#endif
5050import Control.Monad (when)
5151import Control.Monad.IO.Class (liftIO, MonadIO)
52−import GHC.IO (unsafePerformIO)
53−import GHC.Base (Int(..))
5452import Data.Functor.Identity (runIdentity)
5553import Data.Primitive.Array hiding (fromList, fromListN)
54+import GHC.Base (Int(..))
55+import GHC.IO (unsafePerformIO)
5656import qualified GHC.Exts as Exts
5757
58−import Streamly.Internal.Data.Tuple.Strict (Tuple'(..), Tuple3'(..))
59−import Streamly.Internal.Data.Unfold.Types (Unfold(..))
6058import Streamly.Internal.Data.Fold.Types (Fold(..))
6159import Streamly.Internal.Data.Stream.StreamK.Type (IsStream)
6260import Streamly.Internal.Data.Stream.Serial (SerialT)
61+import Streamly.Internal.Data.Tuple.Strict (Tuple'(..), Tuple3'(..))
62+import Streamly.Internal.Data.Unfold.Types (Unfold(..))
6363
64−import qualified Streamly.Internal.Data.Stream.StreamD as D
6564import qualified Streamly.Internal.Data.Fold.Types as FL
65+import qualified Streamly.Internal.Data.Stream.StreamD as D
6666
6767{-# NOINLINE bottomElement #-}
6868bottomElement :: a
src/Streamly/Internal/Data/Array/Prim/MutTypesInclude.hs+7−4
@@ -354,16 +354,19 @@ packArraysChunksOf n (D.Stream step state) =
354354{-# INLINE_NORMAL lpackArraysChunksOf #-}
355355lpackArraysChunksOf ::
356356 (MonadIO m, Prim a) => Int -> Fold m (Array a) () -> Fold m (Array a) ()
357−lpackArraysChunksOf n (Fold step1 initial1 extract1) = Fold step initial extract
357+lpackArraysChunksOf n (Fold step1 initial1 extract1) =
358+ Fold step initial extract
358359
359360 where
360361
361362 initial = do
362363 when (n <= 0)
363− $ error
364− $ "Streamly.Internal.Data.Array.Storable.Foreign.Mut.Types.packArraysChunksOf: the size of "
365− ++ "arrays [" ++ show n ++ "] must be a natural number"
366364 -- XXX we can pass the module string from the higher level API
365+ $ error
366+ $ "Streamly.Internal.Data.Array.Storable.Foreign.Mut.Types."
367+ ++ "packArraysChunksOf: the size of arrays ["
368+ ++ show n
369+ ++ "] must be a natural number"
367370 r1 <- initial1
368371 return (Tuple' Nothing r1)
369372
src/Streamly/Internal/Data/Array/Storable/Foreign/Mut/Types.hs+4−3
@@ -119,11 +119,11 @@ import Text.Read (readPrec, readListPrec, readListPrecDefault)
119119#ifdef DEVBUILD
120120import qualified Data.Foldable as F
121121#endif
122−import qualified Streamly.Internal.Foreign.Malloc as Malloc
122+import qualified GHC.Exts as Exts
123+import qualified Streamly.Internal.Data.Fold as FL
123124import qualified Streamly.Internal.Data.Stream.StreamD.Type as D
124125import qualified Streamly.Internal.Data.Stream.StreamK as K
125−import qualified Streamly.Internal.Data.Fold as FL
126−import qualified GHC.Exts as Exts
126+import qualified Streamly.Internal.Foreign.Malloc as Malloc
127127
128128import Prelude hiding (length, foldr, read, unlines, splitAt)
129129
@@ -704,6 +704,7 @@ lpackArraysChunksOf n (Fold step1 initial1 extract1) =
704704 else return buf
705705 buf'' <- spliceWith buf' arr
706706
707+ -- XXX this is common in both the equations of step
707708 if len >= n
708709 then do
709710 r <- step1 r1 buf''
src/Streamly/Internal/Data/Array/Storable/Foreign/Types.hs−1
@@ -344,7 +344,6 @@ fromStreamDN limit str = unsafeFreeze <$> MA.fromStreamDN limit str
344344-- Streams of arrays
345345-------------------------------------------------------------------------------
346346
347−-- XXX Investigare performance. fusion-plugin solves the issue though
348347-- | @fromStreamArraysOf n stream@ groups the input stream into a stream of
349348-- arrays of size n.
350349{-# INLINE_NORMAL fromStreamDArraysOf #-}
src/Streamly/Internal/Data/Stream/StreamK.hs+7−7
@@ -436,20 +436,20 @@ foldlMx' step begin done m = go begin m
436436
437437{-# INLINABLE foldOnce #-}
438438foldOnce :: (IsStream t, Monad m) => FL.Fold m a b -> t m a -> m b
439−foldOnce (FL.Fold step begin done) m = go begin m
439+foldOnce (FL.Fold step begin done) = go begin
440440 where
441441 go !acc m1 =
442442 let stop = acc >>= done
443443 single a = acc
444444 >>= \b -> step b a
445− >>= \x -> case x of
446− FL.Partial s -> done s
447− FL.Done b1 -> return b1
445+ >>= \case
446+ FL.Partial s -> done s
447+ FL.Done b1 -> return b1
448448 yieldk a r = acc
449449 >>= \b -> step b a
450− >>= \x -> case x of
451− FL.Partial s -> go (return s) r
452− FL.Done b1 -> return b1
450+ >>= \case
451+ FL.Partial s -> go (return s) r
452+ FL.Done b1 -> return b1
453453 in foldStream defState yieldk single stop m1
454454
455455-- | Like 'foldl'' but with a monadic step function.
src/Streamly/Internal/Data/Unfold.hs+1−1
@@ -163,9 +163,9 @@ import System.Mem (performMajorGC)
163163import qualified Prelude
164164import qualified Control.Monad.Catch as MC
165165import qualified Data.Tuple as Tuple
166+import qualified Streamly.Internal.Data.Fold.Types as FL
166167import qualified Streamly.Internal.Data.Stream.StreamK as K
167168import qualified Streamly.Internal.Data.Stream.StreamD as D
168−import qualified Streamly.Internal.Data.Fold.Types as FL
169169
170170import Streamly.Internal.Data.SVar
171171import Prelude
src/Streamly/Internal/Network/Inet/TCP.hs+5−5
@@ -103,15 +103,15 @@ import Network.Socket
103103 socket)
104104import Prelude hiding (read)
105105
106−import Streamly.Prelude (MonadAsync)
107−import Streamly.Internal.Data.Tuple.Strict (Tuple'(..))
106+import Streamly.Internal.Data.Array.Storable.Foreign.Types (Array(..), defaultChunkSize, writeNUnsafe)
108107import Streamly.Internal.Data.Fold.Types (Fold(..))
109108import Streamly.Internal.Data.SVar (fork)
110−import Streamly.Internal.Data.Unfold.Types (Unfold(..))
111−import Streamly.Internal.Network.Socket (SockSpec(..), accept, connections)
112109import Streamly.Internal.Data.Stream.Serial (SerialT)
113−import Streamly.Internal.Data.Array.Storable.Foreign.Types (Array(..), defaultChunkSize, writeNUnsafe)
114110import Streamly.Internal.Data.Stream.StreamK.Type (IsStream)
111+import Streamly.Internal.Data.Tuple.Strict (Tuple'(..))
112+import Streamly.Internal.Data.Unfold.Types (Unfold(..))
113+import Streamly.Internal.Network.Socket (SockSpec(..), accept, connections)
114+import Streamly.Prelude (MonadAsync)
115115
116116import qualified Control.Monad.Catch as MC
117117import qualified Network.Socket as Net