on master help sign in
Deprecate Streamly.Data.Array.Foreign module
26b78c6Ranjeet Kumar Ranjan
benchmark/NanoBenchmarks.hs+1−1
@@ -9,7 +9,7 @@
9import Streamly.Prelude (SerialT)
9import Streamly.Prelude (SerialT)
10import Streamly.Internal.Data.SVar (MonadAsync)
10import Streamly.Internal.Data.SVar (MonadAsync)
11
11
12−import qualified Streamly.Data.Array.Foreign as A
12+import qualified Streamly.Data.Array.Unboxed as A
13import qualified Streamly.FileSystem.Handle as FH
13import qualified Streamly.FileSystem.Handle as FH
14import qualified Streamly.Internal.FileSystem.Handle as IFH
14import qualified Streamly.Internal.FileSystem.Handle as IFH
15import qualified Streamly.Data.Fold as FL
15import qualified Streamly.Data.Fold as FL
benchmark/Streamly/Benchmark/Data/Array/Foreign.hs+3−3
@@ -4,11 +4,11 @@
4
4
5import Control.DeepSeq (deepseq)
5import Control.DeepSeq (deepseq)
6
6
7−import qualified Streamly.Internal.Data.Array.Foreign as IA
7+import qualified Streamly.Internal.Data.Array.Unboxed as IA
8import qualified GHC.Exts as GHC
8import qualified GHC.Exts as GHC
9
9
10−import qualified Streamly.Data.Array.Foreign as A
10+import qualified Streamly.Data.Array.Unboxed as A
11−import qualified Streamly.Internal.Data.Array.Foreign as A
11+import qualified Streamly.Internal.Data.Array.Unboxed as A
12type Stream = A.Array
12type Stream = A.Array
13
13
14#include "Streamly/Benchmark/Data/Array/Common.hs"
14#include "Streamly/Benchmark/Data/Array/Common.hs"
benchmark/Streamly/Benchmark/Data/Array/Foreign/Mut.hs+2−2
@@ -40,8 +40,8 @@ import Prelude
40 , undefined
40 , undefined
41 )
41 )
42
42
43−import qualified Streamly.Internal.Data.Array.Foreign as Array
43+import qualified Streamly.Internal.Data.Array.Unboxed as Array
44−import qualified Streamly.Internal.Data.Array.Foreign.Mut as MArray
44+import qualified Streamly.Internal.Data.Array.Unboxed.Mut as MArray
45import qualified Streamly.Internal.Data.Stream.Type as Stream
45import qualified Streamly.Internal.Data.Stream.Type as Stream
46import qualified Streamly.Prelude as Stream
46import qualified Streamly.Prelude as Stream
47
47
benchmark/Streamly/Benchmark/Data/Array/Stream/Foreign.hs+1−1
@@ -34,7 +34,7 @@ import System.Random (randomRIO)
34import Prelude hiding ()
34import Prelude hiding ()
35
35
36import qualified Streamly.Prelude as Stream
36import qualified Streamly.Prelude as Stream
37−import qualified Streamly.Internal.Data.Array.Foreign as Array
37+import qualified Streamly.Internal.Data.Array.Unboxed as Array
38import qualified Streamly.Internal.Data.Array.Stream.Foreign as ArrayStream
38import qualified Streamly.Internal.Data.Array.Stream.Foreign as ArrayStream
39import qualified Streamly.Internal.Data.Fold as Fold
39import qualified Streamly.Internal.Data.Fold as Fold
40import qualified Streamly.Internal.Data.Parser as Parser
40import qualified Streamly.Internal.Data.Parser as Parser
benchmark/Streamly/Benchmark/Data/Parser.hs+1−1
@@ -32,7 +32,7 @@ import qualified Data.Foldable as F
32import qualified Control.Applicative as AP
32import qualified Control.Applicative as AP
33import qualified Streamly.FileSystem.Handle as Handle
33import qualified Streamly.FileSystem.Handle as Handle
34import qualified Streamly.Prelude as S
34import qualified Streamly.Prelude as S
35−import qualified Streamly.Internal.Data.Array.Foreign as Array
35+import qualified Streamly.Internal.Data.Array.Unboxed as Array
36import qualified Streamly.Internal.Data.Fold as FL
36import qualified Streamly.Internal.Data.Fold as FL
37import qualified Streamly.Internal.Data.Parser as PR
37import qualified Streamly.Internal.Data.Parser as PR
38import qualified Streamly.Internal.Data.Stream.IsStream as IP
38import qualified Streamly.Internal.Data.Stream.IsStream as IP
benchmark/Streamly/Benchmark/Data/Parser/ParserD.hs+1−1
@@ -26,7 +26,7 @@ import qualified Data.Traversable as TR
26import qualified Data.Foldable as F
26import qualified Data.Foldable as F
27import qualified Control.Applicative as AP
27import qualified Control.Applicative as AP
28import qualified Streamly.Prelude as S
28import qualified Streamly.Prelude as S
29−import qualified Streamly.Internal.Data.Array.Foreign as Array
29+import qualified Streamly.Internal.Data.Array.Unboxed as Array
30import qualified Streamly.Internal.Data.Fold as FL
30import qualified Streamly.Internal.Data.Fold as FL
31import qualified Streamly.Internal.Data.Parser.ParserD as PR
31import qualified Streamly.Internal.Data.Parser.ParserD as PR
32import qualified Streamly.Internal.Data.Producer as Producer
32import qualified Streamly.Internal.Data.Producer as Producer
benchmark/Streamly/Benchmark/Data/Ring/Unboxed.hs+1−1
@@ -13,7 +13,7 @@ module Main (main) where
13import Control.Monad (void)
13import Control.Monad (void)
14import GHC.Ptr (Ptr(..))
14import GHC.Ptr (Ptr(..))
15
15
16−import qualified Streamly.Internal.Data.Array.Foreign.Type as Array
16+import qualified Streamly.Internal.Data.Array.Unboxed.Type as Array
17import qualified Streamly.Internal.Data.Ring.Foreign as Ring
17import qualified Streamly.Internal.Data.Ring.Foreign as Ring
18import qualified Data.Foldable as P
18import qualified Data.Foldable as P
19
19
benchmark/Streamly/Benchmark/FileSystem/Handle/Read.hs+3−3
@@ -28,8 +28,8 @@ import GHC.Magic (noinline)
28import System.IO (Handle)
28import System.IO (Handle)
29
29
30import qualified Streamly.FileSystem.Handle as FH
30import qualified Streamly.FileSystem.Handle as FH
31−import qualified Streamly.Internal.Data.Array.Foreign as A
31+import qualified Streamly.Internal.Data.Array.Unboxed as A
32−import qualified Streamly.Internal.Data.Array.Foreign.Type as AT
32+import qualified Streamly.Internal.Data.Array.Unboxed.Type as AT
33import qualified Streamly.Internal.Data.Fold as FL
33import qualified Streamly.Internal.Data.Fold as FL
34import qualified Streamly.Internal.Data.Stream.IsStream as IP
34import qualified Streamly.Internal.Data.Stream.IsStream as IP
35import qualified Streamly.Internal.FileSystem.Handle as IFH
35import qualified Streamly.Internal.FileSystem.Handle as IFH
@@ -44,7 +44,7 @@ import Streamly.Benchmark.Common.Handle
44#ifdef INSPECTION
44#ifdef INSPECTION
45import Streamly.Internal.Data.Stream.StreamD.Type (Step(..), FoldMany)
45import Streamly.Internal.Data.Stream.StreamD.Type (Step(..), FoldMany)
46
46
47−import qualified Streamly.Internal.Data.Array.Foreign.Mut.Type as MA
47+import qualified Streamly.Internal.Data.Array.Unboxed.Mut.Type as MA
48import qualified Streamly.Internal.Data.Stream.StreamD as D
48import qualified Streamly.Internal.Data.Stream.StreamD as D
49import qualified Streamly.Internal.Data.Unfold as IUF
49import qualified Streamly.Internal.Data.Unfold as IUF
50
50
benchmark/Streamly/Benchmark/FileSystem/Handle/ReadWrite.hs+2−2
@@ -29,7 +29,7 @@ import Streamly.Internal.System.IO (defaultChunkSize)
29import qualified Streamly.FileSystem.Handle as FH
29import qualified Streamly.FileSystem.Handle as FH
30import qualified Streamly.Internal.Data.Unfold as IUF
30import qualified Streamly.Internal.Data.Unfold as IUF
31import qualified Streamly.Internal.FileSystem.Handle as IFH
31import qualified Streamly.Internal.FileSystem.Handle as IFH
32−import qualified Streamly.Data.Array.Foreign as A
32+import qualified Streamly.Data.Array.Unboxed as A
33import qualified Streamly.Prelude as S
33import qualified Streamly.Prelude as S
34
34
35import Gauge hiding (env)
35import Gauge hiding (env)
@@ -41,7 +41,7 @@ import Streamly.Internal.Data.Stream.StreamD.Type (Step(..))
41import qualified Streamly.Internal.Data.Stream.StreamD.Type as D
41import qualified Streamly.Internal.Data.Stream.StreamD.Type as D
42import qualified Streamly.Internal.Data.Tuple.Strict as Strict
42import qualified Streamly.Internal.Data.Tuple.Strict as Strict
43import qualified Streamly.Internal.Data.Array.Stream.Mut.Foreign as MAS
43import qualified Streamly.Internal.Data.Array.Stream.Mut.Foreign as MAS
44−import qualified Streamly.Internal.Data.Array.Foreign.Type as AT
44+import qualified Streamly.Internal.Data.Array.Unboxed.Type as AT
45
45
46import Test.Inspection
46import Test.Inspection
47#endif
47#endif
benchmark/Streamly/Benchmark/Prelude/Serial/Split.hs+2−2
@@ -25,7 +25,7 @@ import Data.Word (Word8)
25import System.IO (Handle)
25import System.IO (Handle)
26
26
27import qualified Streamly.FileSystem.Handle as FH
27import qualified Streamly.FileSystem.Handle as FH
28−import qualified Streamly.Internal.Data.Array.Foreign as A
28+import qualified Streamly.Internal.Data.Array.Unboxed as A
29import qualified Streamly.Internal.Data.Fold as FL
29import qualified Streamly.Internal.Data.Fold as FL
30import qualified Streamly.Internal.Data.Parser as PR
30import qualified Streamly.Internal.Data.Parser as PR
31import qualified Streamly.Internal.Data.Stream.IsStream as IP
31import qualified Streamly.Internal.Data.Stream.IsStream as IP
@@ -41,7 +41,7 @@ import Streamly.Benchmark.Common.Handle
41#ifdef INSPECTION
41#ifdef INSPECTION
42import Streamly.Internal.Data.Stream.StreamD.Type (Step(..))
42import Streamly.Internal.Data.Stream.StreamD.Type (Step(..))
43
43
44−import qualified Streamly.Internal.Data.Array.Foreign.Mut.Type as MA
44+import qualified Streamly.Internal.Data.Array.Unboxed.Mut.Type as MA
45import qualified Streamly.Internal.Data.Unfold as IUF
45import qualified Streamly.Internal.Data.Unfold as IUF
46
46
47import Test.Inspection
47import Test.Inspection
benchmark/Streamly/Benchmark/Unicode/Char.hs+2−2
@@ -11,7 +11,7 @@
11--------------------------------------------------------------------------------
11--------------------------------------------------------------------------------
12
12
13import Control.DeepSeq (NFData)
13import Control.DeepSeq (NFData)
14−import Streamly.Internal.Data.Array.Foreign (Array)
14+import Streamly.Internal.Data.Array.Unboxed (Array)
15import System.FilePath (dropExtensions, takeFileName)
15import System.FilePath (dropExtensions, takeFileName)
16import System.FilePath.Posix ((</>))
16import System.FilePath.Posix ((</>))
17import Gauge.Main (Benchmark, bench, bgroup, defaultMain, env, nfIO)
17import Gauge.Main (Benchmark, bench, bgroup, defaultMain, env, nfIO)
@@ -21,7 +21,7 @@ import Streamly.Internal.Unicode.Char
21 )
21 )
22import Streamly.Benchmark.Common (o_1_space_prefix)
22import Streamly.Benchmark.Common (o_1_space_prefix)
23
23
24−import qualified Streamly.Internal.Data.Array.Foreign as Array
24+import qualified Streamly.Internal.Data.Array.Unboxed as Array
25import qualified Streamly.Internal.Data.Stream.IsStream as IsStream
25import qualified Streamly.Internal.Data.Stream.IsStream as IsStream
26import qualified System.Directory as Dir
26import qualified System.Directory as Dir
27
27
benchmark/Streamly/Benchmark/Unicode/Stream.hs+2−2
@@ -21,7 +21,7 @@
21import Prelude hiding (last, length)
21import Prelude hiding (last, length)
22import System.IO (Handle)
22import System.IO (Handle)
23
23
24−import qualified Streamly.Data.Array.Foreign as Array
24+import qualified Streamly.Data.Array.Unboxed as Array
25import qualified Streamly.Data.Fold as Fold
25import qualified Streamly.Data.Fold as Fold
26import qualified Streamly.FileSystem.Handle as Handle
26import qualified Streamly.FileSystem.Handle as Handle
27import qualified Streamly.Internal.Data.Stream.IsStream as Stream
27import qualified Streamly.Internal.Data.Stream.IsStream as Stream
@@ -39,7 +39,7 @@ import Streamly.Internal.Data.Unboxed (Storable)
39import Streamly.Internal.Data.Stream.StreamD.Type (Step(..))
39import Streamly.Internal.Data.Stream.StreamD.Type (Step(..))
40import qualified Streamly.Internal.Data.Fold.Type as Fold
40import qualified Streamly.Internal.Data.Fold.Type as Fold
41import qualified Streamly.Internal.Data.Tuple.Strict as Strict
41import qualified Streamly.Internal.Data.Tuple.Strict as Strict
42−import qualified Streamly.Internal.Data.Array.Foreign.Type as Array
42+import qualified Streamly.Internal.Data.Array.Unboxed.Type as Array
43
43
44import Test.Inspection
44import Test.Inspection
45#endif
45#endif
core/src/Streamly/Data/Array/Unboxed.hsnew file+104
@@ -0,0 +1,104 @@
1+#include "inline.hs"
2+
3+-- |
4+-- Module : Streamly.Data.Array.Unboxed
5+-- Copyright : (c) 2019 Composewell Technologies
6+--
7+-- License : BSD3
8+-- Maintainer : streamly@composewell.com
9+-- Stability : released
10+-- Portability : GHC
11+--
12+-- This module provides immutable arrays in pinned memory (non GC memory)
13+-- suitable for long lived data storage, random access and for interfacing with
14+-- the operating system.
15+--
16+-- Arrays in this module are chunks of pinned memory that hold a sequence of
17+-- 'Storable' values of a given type, they cannot store non-serializable data
18+-- like functions. Once created an array cannot be modified. Pinned memory
19+-- allows efficient buffering of long lived data without adding any impact to
20+-- GC. One array is just one pointer visible to GC and it does not have to be
21+-- copied across generations. Moreover, pinned memory allows communication
22+-- with foreign consumers and producers (e.g. file or network IO) without
23+-- copying the data.
24+--
25+-- = Programmer Notes
26+--
27+-- Array creation APIs require a 'MonadIO' Monad, except 'fromList' which is a
28+-- pure API. To operate on streams in pure Monads like 'Identity' you can hoist
29+-- it to IO monad as follows:
30+--
31+-- >>> import Data.Functor.Identity (Identity, runIdentity)
32+-- >>> s = Stream.fromList [1..10] :: SerialT Identity Int
33+-- >>> s1 = Stream.hoist (return . runIdentity) s :: SerialT IO Int
34+-- >>> Stream.fold Array.write s1 :: IO (Array Int)
35+-- [1,2,3,4,5,6,7,8,9,10]
36+--
37+-- 'unsafePerformIO' can be used to get a pure API from IO, as long as you know
38+-- it is safe to do so:
39+--
40+-- >>> import System.IO.Unsafe (unsafePerformIO)
41+-- >>> unsafePerformIO $ Stream.fold Array.write s1 :: Array Int
42+-- [1,2,3,4,5,6,7,8,9,10]
43+--
44+-- To apply a transformation to an array use 'read' to unfold the array into a
45+-- stream, apply a transformation on the stream and then use 'write' to fold it
46+-- back to an array.
47+--
48+-- This module is designed to be imported qualified:
49+--
50+-- > import qualified Streamly.Data.Array.Unboxed as Array
51+--
52+-- For experimental APIs see "Streamly.Internal.Data.Array.Unboxed".
53+
54+module Streamly.Data.Array.Unboxed
55+ (
56+ A.Array
57+
58+ -- * Arrays
59+ -- ** Construction
60+ -- | When performance matters, the fastest way to generate an array is
61+ -- 'writeN'. 'IsList' and 'IsString' instances can be
62+ -- used to conveniently construct arrays from literal values.
63+ -- 'OverloadedLists' extension or 'fromList' can be used to construct an
64+ -- array from a list literal. Similarly, 'OverloadedStrings' extension or
65+ -- 'fromList' can be used to construct an array from a string literal.
66+
67+ -- Pure List APIs
68+ , A.fromListN
69+ , A.fromList
70+
71+ -- Monadic APIs
72+ , A.writeN -- drop new
73+ , A.write -- full buffer
74+ , writeLastN -- drop old (ring buffer)
75+
76+ -- ** Elimination
77+ -- 'GHC.Exts.toList' from "GHC.Exts" can be used to convert an array to a
78+ -- list.
79+
80+ , A.toList
81+ , A.read
82+ , A.readRev
83+
84+ -- ** Casting
85+ , cast
86+ , asBytes
87+
88+ -- ** Random Access
89+ , A.length
90+ -- , (!!)
91+ , A.getIndex
92+ )
93+where
94+
95+import Streamly.Internal.Data.Array.Unboxed as A
96+
97+-- $setup
98+-- >>> :m
99+-- >>> :set -XFlexibleContexts
100+-- >>> :set -package streamly
101+-- >>> import Streamly.Prelude (SerialT)
102+-- >>> import Streamly.Data.Array.Unboxed (Array)
103+-- >>> import qualified Streamly.Internal.Data.Stream.IsStream as Stream
104+-- >>> import qualified Streamly.Data.Array.Unboxed as Array
core/src/Streamly/Internal/Data/Array/Stream/Fold/Foreign.hs+3−3
@@ -62,12 +62,12 @@ import Control.Monad.Catch (MonadThrow)
62import Control.Monad.IO.Class (MonadIO(..))
62import Control.Monad.IO.Class (MonadIO(..))
63import Streamly.Internal.Data.Unboxed (Storable, peekWith, sizeOf)
63import Streamly.Internal.Data.Unboxed (Storable, peekWith, sizeOf)
64import GHC.Types (SPEC(..))
64import GHC.Types (SPEC(..))
65−import Streamly.Internal.Data.Array.Foreign.Mut.Type (touch)
65+import Streamly.Internal.Data.Array.Unboxed.Mut.Type (touch)
66−import Streamly.Internal.Data.Array.Foreign.Type (Array(..))
66+import Streamly.Internal.Data.Array.Unboxed.Type (Array(..))
67import Streamly.Internal.Data.Parser.ParserD (Initial(..), Step(..))
67import Streamly.Internal.Data.Parser.ParserD (Initial(..), Step(..))
68import Streamly.Internal.Data.Tuple.Strict (Tuple'(..))
68import Streamly.Internal.Data.Tuple.Strict (Tuple'(..))
69
69
70−import qualified Streamly.Internal.Data.Array.Foreign as Array
70+import qualified Streamly.Internal.Data.Array.Unboxed as Array
71import qualified Streamly.Internal.Data.Fold as Fold
71import qualified Streamly.Internal.Data.Fold as Fold
72import qualified Streamly.Internal.Data.Parser.ParserD as ParserD
72import qualified Streamly.Internal.Data.Parser.ParserD as ParserD
73import qualified Streamly.Internal.Data.Parser.ParserD.Type as ParserD
73import qualified Streamly.Internal.Data.Parser.ParserD.Type as ParserD
core/src/Streamly/Internal/Data/Array/Stream/Mut/Foreign.hs+4−4
@@ -32,12 +32,12 @@ import Control.Monad (when)
32import Control.Monad.Catch (MonadThrow)
32import Control.Monad.Catch (MonadThrow)
33import Data.Bifunctor (first)
33import Data.Bifunctor (first)
34import Streamly.Internal.Data.Unboxed (Storable, sizeOf)
34import Streamly.Internal.Data.Unboxed (Storable, sizeOf)
35−import Streamly.Internal.Data.Array.Foreign.Mut.Type (Array(..))
35+import Streamly.Internal.Data.Array.Unboxed.Mut.Type (Array(..))
36import Streamly.Internal.Data.Fold.Type (Fold(..))
36import Streamly.Internal.Data.Fold.Type (Fold(..))
37import Streamly.Internal.Data.Stream.Type (Stream)
37import Streamly.Internal.Data.Stream.Type (Stream)
38import Streamly.Internal.Data.Tuple.Strict (Tuple'(..))
38import Streamly.Internal.Data.Tuple.Strict (Tuple'(..))
39
39
40−import qualified Streamly.Internal.Data.Array.Foreign.Mut.Type as MArray
40+import qualified Streamly.Internal.Data.Array.Unboxed.Mut.Type as MArray
41import qualified Streamly.Internal.Data.Fold.Type as FL
41import qualified Streamly.Internal.Data.Fold.Type as FL
42import qualified Streamly.Internal.Data.Stream.StreamD as D
42import qualified Streamly.Internal.Data.Stream.StreamD as D
43import qualified Streamly.Internal.Data.Parser.ParserD as ParserD
43import qualified Streamly.Internal.Data.Parser.ParserD as ParserD
@@ -92,7 +92,7 @@ packArraysChunksOf n (D.Stream step state) =
92 step' gst (SpliceInitial st) = do
92 step' gst (SpliceInitial st) = do
93 when (n <= 0) $
93 when (n <= 0) $
94 -- XXX we can pass the module string from the higher level API
94 -- XXX we can pass the module string from the higher level API
95− error $ "Streamly.Internal.Data.Array.Foreign.Mut.Type.packArraysChunksOf: the size of "
95+ error $ "Streamly.Internal.Data.Array.Unboxed.Mut.Type.packArraysChunksOf: the size of "
96 ++ "arrays [" ++ show n ++ "] must be a natural number"
96 ++ "arrays [" ++ show n ++ "] must be a natural number"
97 r <- step gst st
97 r <- step gst st
98 case r of
98 case r of
@@ -139,7 +139,7 @@ lpackArraysChunksOf n (Fold step1 initial1 extract1) =
139 initial = do
139 initial = do
140 when (n <= 0) $
140 when (n <= 0) $
141 -- XXX we can pass the module string from the higher level API
141 -- XXX we can pass the module string from the higher level API
142− error $ "Streamly.Internal.Data.Array.Foreign.Mut.Type.packArraysChunksOf: the size of "
142+ error $ "Streamly.Internal.Data.Array.Unboxed.Mut.Type.packArraysChunksOf: the size of "
143 ++ "arrays [" ++ show n ++ "] must be a natural number"
143 ++ "arrays [" ++ show n ++ "] must be a natural number"
144
144
145 r <- initial1
145 r <- initial1
core/src/Streamly/Internal/Data/Array/Foreign.hs → core/src/Streamly/Internal/Data/Array/Unboxed.hsrenamed+8−8
@@ -28,7 +28,7 @@
28-- if we use one array for each chunk. This is still significant to add
28-- if we use one array for each chunk. This is still significant to add
29-- pressure to GC.
29-- pressure to GC.
30
30
31−module Streamly.Internal.Data.Array.Foreign
31+module Streamly.Internal.Data.Array.Unboxed
32 (
32 (
33 Array
33 Array
34
34
@@ -126,8 +126,8 @@ import Streamly.Internal.Data.Unboxed
126 )
126 )
127import Prelude hiding (length, null, last, map, (!!), read, concat)
127import Prelude hiding (length, null, last, map, (!!), read, concat)
128
128
129−import Streamly.Internal.Data.Array.Foreign.Mut.Type (ArrayUnsafe(..))
129+import Streamly.Internal.Data.Array.Unboxed.Mut.Type (ArrayUnsafe(..))
130−import Streamly.Internal.Data.Array.Foreign.Type
130+import Streamly.Internal.Data.Array.Unboxed.Type
131 (Array(..), length, asPtrUnsafe)
131 (Array(..), length, asPtrUnsafe)
132import Streamly.Internal.Data.Fold.Type (Fold(..))
132import Streamly.Internal.Data.Fold.Type (Fold(..))
133import Streamly.Internal.Data.Producer.Type (Producer(..))
133import Streamly.Internal.Data.Producer.Type (Producer(..))
@@ -136,9 +136,9 @@ import Streamly.Internal.Data.Tuple.Strict (Tuple3Fused'(..))
136import Streamly.Internal.Data.Unfold.Type (Unfold(..))
136import Streamly.Internal.Data.Unfold.Type (Unfold(..))
137import Streamly.Internal.System.IO (unsafeInlineIO)
137import Streamly.Internal.System.IO (unsafeInlineIO)
138
138
139−import qualified Streamly.Internal.Data.Array.Foreign.Mut.Type as MA
139+import qualified Streamly.Internal.Data.Array.Unboxed.Mut.Type as MA
140−import qualified Streamly.Internal.Data.Array.Foreign.Mut as MA
140+import qualified Streamly.Internal.Data.Array.Unboxed.Mut as MA
141−import qualified Streamly.Internal.Data.Array.Foreign.Type as A
141+import qualified Streamly.Internal.Data.Array.Unboxed.Type as A
142import qualified Streamly.Internal.Data.Fold as FL
142import qualified Streamly.Internal.Data.Fold as FL
143import qualified Streamly.Internal.Data.Producer.Type as Producer
143import qualified Streamly.Internal.Data.Producer.Type as Producer
144import qualified Streamly.Internal.Data.Producer as Producer
144import qualified Streamly.Internal.Data.Producer as Producer
@@ -231,7 +231,7 @@ unsafeRead = Unfold step inject
231
231
232-- |
232-- |
233--
233--
234−-- >>> import qualified Streamly.Internal.Data.Array.Foreign.Type as Array
234+-- >>> import qualified Streamly.Internal.Data.Array.Unboxed.Type as Array
235-- >>> null arr = Array.byteLength arr == 0
235-- >>> null arr = Array.byteLength arr == 0
236--
236--
237-- /Pre-release/
237-- /Pre-release/
@@ -254,7 +254,7 @@ getIndexRev i arr =
254
254
255-- |
255-- |
256--
256--
257−-- >>> import qualified Streamly.Internal.Data.Array.Foreign as Array
257+-- >>> import qualified Streamly.Internal.Data.Array.Unboxed as Array
258-- >>> last arr = Array.getIndexRev arr 0
258-- >>> last arr = Array.getIndexRev arr 0
259--
259--
260-- /Pre-release/
260-- /Pre-release/
core/src/Streamly/Internal/Data/Array/Foreign/Mut.hs → core/src/Streamly/Internal/Data/Array/Unboxed/Mut.hsrenamed+4−4
@@ -1,7 +1,7 @@
1#include "inline.hs"
1#include "inline.hs"
2
2
3-- |
3-- |
4−-- Module : Streamly.Internal.Data.Array.Foreign.Mut
4+-- Module : Streamly.Internal.Data.Array.Unboxed.Mut
5-- Copyright : (c) 2020 Composewell Technologies
5-- Copyright : (c) 2020 Composewell Technologies
6-- License : BSD-3-Clause
6-- License : BSD-3-Clause
7-- Maintainer : streamly@composewell.com
7-- Maintainer : streamly@composewell.com
@@ -22,9 +22,9 @@
22-- Stream and Fold APIs allow easy, efficient and convenient operations on
22-- Stream and Fold APIs allow easy, efficient and convenient operations on
23-- arrays.
23-- arrays.
24
24
25−module Streamly.Internal.Data.Array.Foreign.Mut
25+module Streamly.Internal.Data.Array.Unboxed.Mut
26 (
26 (
27− module Streamly.Internal.Data.Array.Foreign.Mut.Type
27+ module Streamly.Internal.Data.Array.Unboxed.Mut.Type
28 , splitOn
28 , splitOn
29 , genSlicesFromLen
29 , genSlicesFromLen
30 , getSlicesFromLen
30 , getSlicesFromLen
@@ -43,7 +43,7 @@ import qualified Streamly.Internal.Data.Unfold as Unfold
43-- import qualified Streamly.Internal.Data.Stream.Common as P
43-- import qualified Streamly.Internal.Data.Stream.Common as P
44
44
45import Prelude hiding (foldr, length, read, splitAt)
45import Prelude hiding (foldr, length, read, splitAt)
46−import Streamly.Internal.Data.Array.Foreign.Mut.Type
46+import Streamly.Internal.Data.Array.Unboxed.Mut.Type
47
47
48-- | Split the array into a stream of slices using a predicate. The element
48-- | Split the array into a stream of slices using a predicate. The element
49-- matching the predicate is dropped.
49-- matching the predicate is dropped.
core/src/Streamly/Internal/Data/Array/Foreign/Mut/Type.hs → core/src/Streamly/Internal/Data/Array/Unboxed/Mut/Type.hsrenamed+4−4
@@ -1,6 +1,6 @@
1{-# LANGUAGE UnboxedTuples #-}
1{-# LANGUAGE UnboxedTuples #-}
2-- |
2-- |
3−-- Module : Streamly.Internal.Data.Array.Foreign.Mut.Type
3+-- Module : Streamly.Internal.Data.Array.Unboxed.Mut.Type
4-- Copyright : (c) 2020 Composewell Technologies
4-- Copyright : (c) 2020 Composewell Technologies
5-- License : BSD3-3-Clause
5-- License : BSD3-3-Clause
6-- Maintainer : streamly@composewell.com
6-- Maintainer : streamly@composewell.com
@@ -12,7 +12,7 @@
12-- strive to keep the API consistent for both. Ideally, you should be able to
12-- strive to keep the API consistent for both. Ideally, you should be able to
13-- replace one with another with little changes to the code.
13-- replace one with another with little changes to the code.
14
14
15−module Streamly.Internal.Data.Array.Foreign.Mut.Type
15+module Streamly.Internal.Data.Array.Unboxed.Mut.Type
16 (
16 (
17 -- * Type
17 -- * Type
18 -- $arrayNotes
18 -- $arrayNotes
@@ -270,7 +270,7 @@ import Prelude hiding
270
270
271-- $setup
271-- $setup
272-- >>> :m
272-- >>> :m
273−-- >>> import qualified Streamly.Internal.Data.Array.Foreign.Mut.Type as Array
273+-- >>> import qualified Streamly.Internal.Data.Array.Unboxed.Mut.Type as Array
274-- >>> import qualified Streamly.Internal.Data.Stream.IsStream as Stream
274-- >>> import qualified Streamly.Internal.Data.Stream.IsStream as Stream
275-- >>> import qualified Streamly.Internal.Data.Stream.StreamD as StreamD
275-- >>> import qualified Streamly.Internal.Data.Stream.StreamD as StreamD
276-- >>> import qualified Streamly.Internal.Data.Fold as Fold
276-- >>> import qualified Streamly.Internal.Data.Fold as Fold
@@ -1314,7 +1314,7 @@ arraysOf n (D.Stream step state) =
1314 step' _ (GroupStart st) = do
1314 step' _ (GroupStart st) = do
1315 when (n <= 0) $
1315 when (n <= 0) $
1316 -- XXX we can pass the module string from the higher level API
1316 -- XXX we can pass the module string from the higher level API
1317− error $ "Streamly.Internal.Data.Array.Foreign.Mut.Type.arraysOf: "
1317+ error $ "Streamly.Internal.Data.Array.Unboxed.Mut.Type.arraysOf: "
1318 ++ "the size of arrays [" ++ show n
1318 ++ "the size of arrays [" ++ show n
1319 ++ "] must be a natural number"
1319 ++ "] must be a natural number"
1320 Array contents start end bound <- liftIO $ newArray n
1320 Array contents start end bound <- liftIO $ newArray n
core/src/Streamly/Internal/Data/Array/Foreign/Type.hs → core/src/Streamly/Internal/Data/Array/Unboxed/Type.hsrenamed+6−6
@@ -1,6 +1,6 @@
1{-# LANGUAGE UnboxedTuples #-}
1{-# LANGUAGE UnboxedTuples #-}
2-- |
2-- |
3−-- Module : Streamly.Internal.Data.Array.Foreign.Type
3+-- Module : Streamly.Internal.Data.Array.Unboxed.Type
4-- Copyright : (c) 2020 Composewell Technologies
4-- Copyright : (c) 2020 Composewell Technologies
5--
5--
6-- License : BSD3-3-Clause
6-- License : BSD3-3-Clause
@@ -8,9 +8,9 @@
8-- Stability : experimental
8-- Stability : experimental
9-- Portability : GHC
9-- Portability : GHC
10--
10--
11−-- See notes in "Streamly.Internal.Data.Array.Foreign.Mut.Type"
11+-- See notes in "Streamly.Internal.Data.Array.Unboxed.Mut.Type"
12--
12--
13−module Streamly.Internal.Data.Array.Foreign.Type
13+module Streamly.Internal.Data.Array.Unboxed.Type
14 (
14 (
15 -- $arrayNotes
15 -- $arrayNotes
16 Array (..)
16 Array (..)
@@ -86,7 +86,7 @@ import GHC.Exts (IsList, IsString(..))
86
86
87import GHC.IO (unsafePerformIO)
87import GHC.IO (unsafePerformIO)
88import GHC.Ptr (Ptr(..))
88import GHC.Ptr (Ptr(..))
89−import Streamly.Internal.Data.Array.Foreign.Mut.Type (ArrayContents)
89+import Streamly.Internal.Data.Array.Unboxed.Mut.Type (ArrayContents)
90import Streamly.Internal.Data.Fold.Type (Fold(..))
90import Streamly.Internal.Data.Fold.Type (Fold(..))
91import Streamly.Internal.Data.Stream.Type (Stream)
91import Streamly.Internal.Data.Stream.Type (Stream)
92import Streamly.Internal.Data.Unboxed (Storable, peekWith, sizeOf)
92import Streamly.Internal.Data.Unboxed (Storable, peekWith, sizeOf)
@@ -95,7 +95,7 @@ import Text.Read (readPrec, readListPrec, readListPrecDefault)
95
95
96import Prelude hiding (length, foldr, read, unlines, splitAt)
96import Prelude hiding (length, foldr, read, unlines, splitAt)
97
97
98−import qualified Streamly.Internal.Data.Array.Foreign.Mut.Type as MA
98+import qualified Streamly.Internal.Data.Array.Unboxed.Mut.Type as MA
99import qualified Streamly.Internal.Data.Stream.StreamD.Type as D
99import qualified Streamly.Internal.Data.Stream.StreamD.Type as D
100import qualified Streamly.Internal.Data.Stream.StreamK.Type as K
100import qualified Streamly.Internal.Data.Stream.StreamK.Type as K
101import qualified Streamly.Internal.Data.Stream.Type as Stream
101import qualified Streamly.Internal.Data.Stream.Type as Stream
@@ -117,7 +117,7 @@ import qualified Data.Foldable as F
117-- >>> :m
117-- >>> :m
118-- >>> :set -XMagicHash
118-- >>> :set -XMagicHash
119-- >>> import Prelude hiding (length, foldr, read, unlines, splitAt)
119-- >>> import Prelude hiding (length, foldr, read, unlines, splitAt)
120−-- >>> import Streamly.Internal.Data.Array.Foreign as Array
120+-- >>> import Streamly.Internal.Data.Array.Unboxed as Array
121
121
122-------------------------------------------------------------------------------
122-------------------------------------------------------------------------------
123-- Array Data Type
123-- Array Data Type
core/src/Streamly/Internal/Data/Fold.hs+4−4
@@ -317,8 +317,8 @@ import Streamly.Internal.Data.Stream.Type (Stream)
317import qualified Data.IntSet as IntSet
317import qualified Data.IntSet as IntSet
318import qualified Data.Set as Set
318import qualified Data.Set as Set
319import qualified Prelude
319import qualified Prelude
320−import qualified Streamly.Internal.Data.Array.Foreign.Mut.Type as MA
320+import qualified Streamly.Internal.Data.Array.Unboxed.Mut.Type as MA
321−import qualified Streamly.Internal.Data.Array.Foreign.Type as Array
321+import qualified Streamly.Internal.Data.Array.Unboxed.Type as Array
322import qualified Streamly.Internal.Data.Fold.Window as FoldW
322import qualified Streamly.Internal.Data.Fold.Window as FoldW
323import qualified Streamly.Internal.Data.IsMap as IsMap
323import qualified Streamly.Internal.Data.IsMap as IsMap
324import qualified Streamly.Internal.Data.Pipe.Type as Pipe
324import qualified Streamly.Internal.Data.Pipe.Type as Pipe
@@ -345,12 +345,12 @@ import Streamly.Internal.Data.Fold.Type
345-- >>> import qualified Streamly.Internal.Data.Fold as Fold
345-- >>> import qualified Streamly.Internal.Data.Fold as Fold
346-- >>> import qualified Streamly.Internal.Data.Fold.Type as Fold
346-- >>> import qualified Streamly.Internal.Data.Fold.Type as Fold
347-- >>> import qualified Streamly.Internal.Data.Fold.Window as FoldW
347-- >>> import qualified Streamly.Internal.Data.Fold.Window as FoldW
348−-- >>> import qualified Streamly.Data.Array.Foreign as Array
348+-- >>> import qualified Streamly.Data.Array.Unboxed as Array
349-- >>> import qualified Streamly.Internal.Data.Parser as Parser
349-- >>> import qualified Streamly.Internal.Data.Parser as Parser
350-- >>> import qualified Streamly.Internal.Data.Stream.Type as Stream
350-- >>> import qualified Streamly.Internal.Data.Stream.Type as Stream
351-- >>> import Streamly.Internal.Data.Stream.Type (Stream)
351-- >>> import Streamly.Internal.Data.Stream.Type (Stream)
352-- >>> import Data.IORef (newIORef, readIORef, writeIORef)
352-- >>> import Data.IORef (newIORef, readIORef, writeIORef)
353−-- >>> import qualified Streamly.Internal.Data.Array.Foreign.Mut.Type as MA
353+-- >>> import qualified Streamly.Internal.Data.Array.Unboxed.Mut.Type as MA
354
354
355------------------------------------------------------------------------------
355------------------------------------------------------------------------------
356-- hoist
356-- hoist
core/src/Streamly/Internal/Data/Fold/Type.hs+1−1
@@ -645,7 +645,7 @@ drain = foldl' (\_ _ -> ()) ()
645-- | Folds the input stream to a list.
645-- | Folds the input stream to a list.
646--
646--
647-- /Warning!/ working on large lists accumulated as buffers in memory could be
647-- /Warning!/ working on large lists accumulated as buffers in memory could be
648−-- very inefficient, consider using "Streamly.Data.Array.Foreign"
648+-- very inefficient, consider using "Streamly.Data.Array.Unboxed"
649-- instead.
649-- instead.
650--
650--
651-- > toList = foldr (:) []
651-- > toList = foldr (:) []
core/src/Streamly/Internal/Data/Pipe.hs+2−2
@@ -246,7 +246,7 @@ import Prelude
246-- import Streamly.Data.Fold.Types (Fold(..))
246-- import Streamly.Data.Fold.Types (Fold(..))
247import Streamly.Internal.Data.Pipe.Type
247import Streamly.Internal.Data.Pipe.Type
248 (Pipe(..), PipeState(..), Step(..), zipWith, tee, map, compose)
248 (Pipe(..), PipeState(..), Step(..), zipWith, tee, map, compose)
249−-- import Streamly.Internal.Data.Array.Foreign.Type (Array)
249+-- import Streamly.Internal.Data.Array.Unboxed.Type (Array)
250-- import Streamly.Internal.Data.Ring.Foreign (Ring)
250-- import Streamly.Internal.Data.Ring.Foreign (Ring)
251-- import Streamly.Internal.Data.Stream.Serial (SerialT)
251-- import Streamly.Internal.Data.Stream.Serial (SerialT)
252-- import Streamly.Internal.Data.Stream.StreamK (IsStream())
252-- import Streamly.Internal.Data.Stream.StreamK (IsStream())
@@ -256,7 +256,7 @@ import Streamly.Internal.Data.Pipe.Type
256
256
257-- import Streamly.Internal.Data.Strict
257-- import Streamly.Internal.Data.Strict
258
258
259−-- import qualified Streamly.Internal.Data.Array.Foreign.Type as A
259+-- import qualified Streamly.Internal.Data.Array.Unboxed.Type as A
260-- import qualified Streamly.Prelude as S
260-- import qualified Streamly.Prelude as S
261-- import qualified Streamly.Internal.Data.Stream.StreamD as D
261-- import qualified Streamly.Internal.Data.Stream.StreamD as D
262-- import qualified Streamly.Internal.Data.Stream.StreamK as K
262-- import qualified Streamly.Internal.Data.Stream.StreamK as K
core/src/Streamly/Internal/Data/Ring/Foreign.hs+3−3
@@ -87,15 +87,15 @@ import Streamly.Internal.Data.Unboxed as Unboxed
87 )
87 )
88import GHC.ForeignPtr (mallocPlainForeignPtrAlignedBytes)
88import GHC.ForeignPtr (mallocPlainForeignPtrAlignedBytes)
89import GHC.Ptr (Ptr(..))
89import GHC.Ptr (Ptr(..))
90−import Streamly.Internal.Data.Array.Foreign.Mut.Type (Array)
90+import Streamly.Internal.Data.Array.Unboxed.Mut.Type (Array)
91import Streamly.Internal.Data.Fold.Type (Fold(..), Step(..), lmap)
91import Streamly.Internal.Data.Fold.Type (Fold(..), Step(..), lmap)
92import Streamly.Internal.Data.Stream.Type (Stream)
92import Streamly.Internal.Data.Stream.Type (Stream)
93import Streamly.Internal.Data.Stream.StreamD.Step (Step(..))
93import Streamly.Internal.Data.Stream.StreamD.Step (Step(..))
94import Streamly.Internal.Data.Unfold.Type (Unfold(..))
94import Streamly.Internal.Data.Unfold.Type (Unfold(..))
95import Streamly.Internal.System.IO (unsafeInlineIO)
95import Streamly.Internal.System.IO (unsafeInlineIO)
96
96
97−import qualified Streamly.Internal.Data.Array.Foreign.Mut.Type as MA
97+import qualified Streamly.Internal.Data.Array.Unboxed.Mut.Type as MA
98−import qualified Streamly.Internal.Data.Array.Foreign.Type as A
98+import qualified Streamly.Internal.Data.Array.Unboxed.Type as A
99
99
100import Prelude hiding (length, concat, read)
100import Prelude hiding (length, concat, read)
101
101
core/src/Streamly/Internal/Data/Stream/Bottom.hs+2−2
@@ -58,7 +58,7 @@ import Streamly.Internal.Data.Fold.Type (Fold (..))
58import Streamly.Internal.Data.Unboxed (Storable)
58import Streamly.Internal.Data.Unboxed (Storable)
59import Streamly.Internal.System.IO (defaultChunkSize)
59import Streamly.Internal.System.IO (defaultChunkSize)
60
60
61−import qualified Streamly.Internal.Data.Array.Foreign.Type as A
61+import qualified Streamly.Internal.Data.Array.Unboxed.Type as A
62import qualified Streamly.Internal.Data.Fold as Fold
62import qualified Streamly.Internal.Data.Fold as Fold
63import qualified Streamly.Internal.Data.Stream.StreamK.Type as K
63import qualified Streamly.Internal.Data.Stream.StreamK.Type as K
64import qualified Streamly.Internal.Data.Stream.StreamK as K
64import qualified Streamly.Internal.Data.Stream.StreamK as K
@@ -78,7 +78,7 @@ import Streamly.Internal.Data.Stream.Type
78-- >>> import Prelude hiding (take, takeWhile, drop, reverse)
78-- >>> import Prelude hiding (take, takeWhile, drop, reverse)
79-- >>> import System.IO.Unsafe (unsafePerformIO)
79-- >>> import System.IO.Unsafe (unsafePerformIO)
80-- >>> import Streamly.Internal.Data.Stream as Stream
80-- >>> import Streamly.Internal.Data.Stream as Stream
81−-- >>> import qualified Streamly.Data.Array.Foreign as Array
81+-- >>> import qualified Streamly.Data.Array.Unboxed as Array
82-- >>> import qualified Streamly.Data.Unfold as Unfold
82-- >>> import qualified Streamly.Data.Unfold as Unfold
83-- >>> import qualified Streamly.Internal.Data.Fold as Fold
83-- >>> import qualified Streamly.Internal.Data.Fold as Fold
84-- >>> import qualified Streamly.Internal.Data.Parser as Parser
84-- >>> import qualified Streamly.Internal.Data.Parser as Parser
core/src/Streamly/Internal/Data/Stream/Eliminate.hs+1−1
@@ -77,7 +77,7 @@ import Foreign.Storable (Storable)
77import Streamly.Internal.Data.Parser (Parser (..))
77import Streamly.Internal.Data.Parser (Parser (..))
78import Streamly.Internal.Data.Unboxed (Unboxed)
78import Streamly.Internal.Data.Unboxed (Unboxed)
79
79
80−import qualified Streamly.Internal.Data.Array.Foreign.Type as Array
80+import qualified Streamly.Internal.Data.Array.Unboxed.Type as Array
81import qualified Streamly.Internal.Data.Fold as Fold
81import qualified Streamly.Internal.Data.Fold as Fold
82import qualified Streamly.Internal.Data.Parser.ParserD as PRD
82import qualified Streamly.Internal.Data.Parser.ParserD as PRD
83import qualified Streamly.Internal.Data.Parser.ParserK.Type as PRK
83import qualified Streamly.Internal.Data.Parser.ParserK.Type as PRK
core/src/Streamly/Internal/Data/Stream/Expand.hs+1−1
@@ -134,7 +134,7 @@ import Prelude hiding (concat, concatMap, zipWith)
134-- >>> import Data.Either (either)
134-- >>> import Data.Either (either)
135-- >>> import Data.IORef
135-- >>> import Data.IORef
136-- >>> import Prelude hiding (zipWith, concatMap, concat)
136-- >>> import Prelude hiding (zipWith, concatMap, concat)
137−-- >>> import qualified Streamly.Data.Array.Foreign as Array
137+-- >>> import qualified Streamly.Data.Array.Unboxed as Array
138-- >>> import qualified Streamly.Internal.Data.Fold as Fold
138-- >>> import qualified Streamly.Internal.Data.Fold as Fold
139-- >>> import qualified Streamly.Internal.Data.Stream as Stream
139-- >>> import qualified Streamly.Internal.Data.Stream as Stream
140-- >>> import qualified Streamly.Internal.Data.Unfold as Unfold
140-- >>> import qualified Streamly.Internal.Data.Unfold as Unfold
core/src/Streamly/Internal/Data/Stream/Reduce.hs+3−3
@@ -52,7 +52,7 @@ where
52
52
53import Control.Monad.Catch (MonadThrow)
53import Control.Monad.Catch (MonadThrow)
54import Control.Monad.IO.Class (MonadIO(..))
54import Control.Monad.IO.Class (MonadIO(..))
55−import Streamly.Internal.Data.Array.Foreign.Type (Array)
55+import Streamly.Internal.Data.Array.Unboxed.Type (Array)
56import Streamly.Internal.Data.Fold.Type (Fold (..))
56import Streamly.Internal.Data.Fold.Type (Fold (..))
57import Streamly.Internal.Data.Parser (Parser (..))
57import Streamly.Internal.Data.Parser (Parser (..))
58import Streamly.Internal.Data.Refold.Type (Refold (..))
58import Streamly.Internal.Data.Refold.Type (Refold (..))
@@ -60,7 +60,7 @@ import Streamly.Internal.Data.Stream.Bottom (foldManyPost)
60import Streamly.Internal.Data.Stream.Type (Stream, fromStreamD, toStreamD)
60import Streamly.Internal.Data.Stream.Type (Stream, fromStreamD, toStreamD)
61import Streamly.Internal.Data.Unboxed (Storable)
61import Streamly.Internal.Data.Unboxed (Storable)
62
62
63−import qualified Streamly.Internal.Data.Array.Foreign.Type as Array
63+import qualified Streamly.Internal.Data.Array.Unboxed.Type as Array
64import qualified Streamly.Internal.Data.Parser.ParserD as ParserD
64import qualified Streamly.Internal.Data.Parser.ParserD as ParserD
65import qualified Streamly.Internal.Data.Stream.StreamD as D
65import qualified Streamly.Internal.Data.Stream.StreamD as D
66
66
@@ -74,7 +74,7 @@ import Prelude hiding (concatMap, map)
74-- >>> import qualified Streamly.Internal.Data.Fold as Fold
74-- >>> import qualified Streamly.Internal.Data.Fold as Fold
75-- >>> import qualified Streamly.Internal.Data.Unfold as Unfold
75-- >>> import qualified Streamly.Internal.Data.Unfold as Unfold
76-- >>> import qualified Streamly.Internal.Data.Parser as Parser
76-- >>> import qualified Streamly.Internal.Data.Parser as Parser
77−-- >>> import qualified Streamly.Data.Array.Foreign as Array
77+-- >>> import qualified Streamly.Data.Array.Unboxed as Array
78
78
79------------------------------------------------------------------------------
79------------------------------------------------------------------------------
80-- Trimming
80-- Trimming
core/src/Streamly/Internal/Data/Stream/StreamD/Nesting.hs+2−2
@@ -159,7 +159,7 @@ import Foreign.Storable (Storable, peek, sizeOf)
159import Fusion.Plugin.Types (Fuse(..))
159import Fusion.Plugin.Types (Fuse(..))
160import GHC.Types (SPEC(..))
160import GHC.Types (SPEC(..))
161
161
162−import Streamly.Internal.Data.Array.Foreign.Type (Array(..))
162+import Streamly.Internal.Data.Array.Unboxed.Type (Array(..))
163import Streamly.Internal.Data.Fold.Step (Step(..))
163import Streamly.Internal.Data.Fold.Step (Step(..))
164import Streamly.Internal.Data.Fold.Type (Fold(..))
164import Streamly.Internal.Data.Fold.Type (Fold(..))
165import Streamly.Internal.Data.Parser (ParseError(..))
165import Streamly.Internal.Data.Parser (ParseError(..))
@@ -169,7 +169,7 @@ import Streamly.Internal.Data.Tuple.Strict (Tuple'(..))
169import Streamly.Internal.Data.Unboxed (Unboxed)
169import Streamly.Internal.Data.Unboxed (Unboxed)
170import Streamly.Internal.Data.Unfold.Type (Unfold(..))
170import Streamly.Internal.Data.Unfold.Type (Unfold(..))
171
171
172−import qualified Streamly.Internal.Data.Array.Foreign.Type as A
172+import qualified Streamly.Internal.Data.Array.Unboxed.Type as A
173import qualified Streamly.Internal.Data.Fold as FL
173import qualified Streamly.Internal.Data.Fold as FL
174import qualified Streamly.Internal.Data.Parser as PR
174import qualified Streamly.Internal.Data.Parser as PR
175import qualified Streamly.Internal.Data.Parser.ParserD as PRD
175import qualified Streamly.Internal.Data.Parser.ParserD as PRD
core/src/Streamly/Internal/Data/Stream/StreamD/Transform.hs+1−1
@@ -1119,7 +1119,7 @@ reverse' :: forall m a. (MonadIO m, Storable a) => Stream m a -> Stream m a
1119import Foreign.ForeignPtr (touchForeignPtr)
1119import Foreign.ForeignPtr (touchForeignPtr)
1120import Foreign.ForeignPtr.Unsafe (unsafeForeignPtrToPtr)
1120import Foreign.ForeignPtr.Unsafe (unsafeForeignPtrToPtr)
1121import Foreign.Ptr (Ptr, plusPtr)
1121import Foreign.Ptr (Ptr, plusPtr)
1122−import Streamly.Internal.Data.Array.Foreign.Mut.Type (sizeOfElem)
1122+import Streamly.Internal.Data.Array.Unboxed.Mut.Type (sizeOfElem)
1123reverse' m = Stream step Nothing
1123reverse' m = Stream step Nothing
1124 where
1124 where
1125 {-# INLINE_LATE step #-}
1125 {-# INLINE_LATE step #-}
core/streamly-core.cabal+5−5
@@ -278,9 +278,9 @@ library
278 -- Unboxed IORef
278 -- Unboxed IORef
279 , Streamly.Internal.Data.IORef.Unboxed
279 , Streamly.Internal.Data.IORef.Unboxed
280 -- May depend on streamly-core-stream
280 -- May depend on streamly-core-stream
281− , Streamly.Internal.Data.Array.Foreign.Mut.Type
281+ , Streamly.Internal.Data.Array.Unboxed.Mut.Type
282− , Streamly.Internal.Data.Array.Foreign.Mut
282+ , Streamly.Internal.Data.Array.Unboxed.Mut
283− , Streamly.Internal.Data.Array.Foreign.Type
283+ , Streamly.Internal.Data.Array.Unboxed.Type
284 , Streamly.Internal.Data.Array.Mut.Type
284 , Streamly.Internal.Data.Array.Mut.Type
285
285
286 -- streamly-core-streams
286 -- streamly-core-streams
@@ -325,7 +325,7 @@ library
325 -- streamly-core-data-arrays
325 -- streamly-core-data-arrays
326 -- XXX Depends on primitive
326 -- XXX Depends on primitive
327 , Streamly.Internal.Data.Array
327 , Streamly.Internal.Data.Array
328− , Streamly.Internal.Data.Array.Foreign
328+ , Streamly.Internal.Data.Array.Unboxed
329 , Streamly.Internal.Data.Array.Stream.Mut.Foreign
329 , Streamly.Internal.Data.Array.Stream.Mut.Foreign
330 , Streamly.Internal.Data.Array.Stream.Fold.Foreign
330 , Streamly.Internal.Data.Array.Stream.Fold.Foreign
331
331
@@ -340,7 +340,7 @@ library
340 -- streamly-core exposed modules
340 -- streamly-core exposed modules
341 , Streamly.Data.Fold
341 , Streamly.Data.Fold
342 , Streamly.Data.Fold.Tee
342 , Streamly.Data.Fold.Tee
343− , Streamly.Data.Array.Foreign
343+ , Streamly.Data.Array.Unboxed
344
344
345 build-depends:
345 build-depends:
346 -- Core libraries shipped with ghc, the min and max
346 -- Core libraries shipped with ghc, the min and max
core/src/Streamly/Data/Array/Foreign.hs → src/Streamly/Data/Array/Foreign.hsrenamed+6−5
@@ -47,11 +47,12 @@
47--
47--
48-- This module is designed to be imported qualified:
48-- This module is designed to be imported qualified:
49--
49--
50−-- > import qualified Streamly.Data.Array.Foreign as Array
50+-- > import qualified Streamly.Data.Array.Unboxed as Array
51--
51--
52−-- For experimental APIs see "Streamly.Internal.Data.Array.Foreign".
52+-- For experimental APIs see "Streamly.Internal.Data.Array.Unboxed".
53
53
54module Streamly.Data.Array.Foreign
54module Streamly.Data.Array.Foreign
55+ {-# DEPRECATED "Please use \"Streamly.Data.Array.Unboxed\" instead." #-}
55 (
56 (
56 A.Array
57 A.Array
57
58
@@ -92,13 +93,13 @@ module Streamly.Data.Array.Foreign
92 )
93 )
93where
94where
94
95
95−import Streamly.Internal.Data.Array.Foreign as A
96+import Streamly.Internal.Data.Array.Unboxed as A
96
97
97-- $setup
98-- $setup
98-- >>> :m
99-- >>> :m
99-- >>> :set -XFlexibleContexts
100-- >>> :set -XFlexibleContexts
100-- >>> :set -package streamly
101-- >>> :set -package streamly
101-- >>> import Streamly.Prelude (SerialT)
102-- >>> import Streamly.Prelude (SerialT)
102−-- >>> import Streamly.Data.Array.Foreign (Array)
103+-- >>> import Streamly.Data.Array.Unboxed (Array)
103-- >>> import qualified Streamly.Internal.Data.Stream.IsStream as Stream
104-- >>> import qualified Streamly.Internal.Data.Stream.IsStream as Stream
104−-- >>> import qualified Streamly.Data.Array.Foreign as Array
105+-- >>> import qualified Streamly.Data.Array.Unboxed as Array
src/Streamly/Internal/Console/Stdio.hs+2−2
@@ -42,12 +42,12 @@ import Data.Word (Word8)
42import System.IO (stdin, stdout, stderr)
42import System.IO (stdin, stdout, stderr)
43import Prelude hiding (read)
43import Prelude hiding (read)
44
44
45−import Streamly.Internal.Data.Array.Foreign.Type (Array(..))
45+import Streamly.Internal.Data.Array.Unboxed.Type (Array(..))
46import Streamly.Internal.Data.Stream.Serial (SerialT)
46import Streamly.Internal.Data.Stream.Serial (SerialT)
47import Streamly.Internal.Data.Unfold (Unfold)
47import Streamly.Internal.Data.Unfold (Unfold)
48import Streamly.Internal.Data.Fold (Fold)
48import Streamly.Internal.Data.Fold (Fold)
49
49
50−import qualified Streamly.Internal.Data.Array.Foreign as Array
50+import qualified Streamly.Internal.Data.Array.Unboxed as Array
51import qualified Streamly.Internal.Data.Stream.IsStream as Stream
51import qualified Streamly.Internal.Data.Stream.IsStream as Stream
52import qualified Streamly.Internal.Data.Unfold as Unfold
52import qualified Streamly.Internal.Data.Unfold as Unfold
53import qualified Streamly.Internal.FileSystem.Handle as Handle
53import qualified Streamly.Internal.FileSystem.Handle as Handle
src/Streamly/Internal/Data/Array/Stream/Foreign.hs+6−6
@@ -64,7 +64,7 @@ import GHC.Exts (SpecConstrAnnotation(..))
64import GHC.Types (SPEC(..))
64import GHC.Types (SPEC(..))
65import Prelude hiding (null, last, (!!), read, concat, unlines)
65import Prelude hiding (null, last, (!!), read, concat, unlines)
66
66
67−import Streamly.Internal.Data.Array.Foreign.Type (Array(..))
67+import Streamly.Internal.Data.Array.Unboxed.Type (Array(..))
68import Streamly.Internal.Data.Array.Stream.Fold.Foreign (ArrayFold(..))
68import Streamly.Internal.Data.Array.Stream.Fold.Foreign (ArrayFold(..))
69import Streamly.Internal.Data.Fold.Type (Fold(..))
69import Streamly.Internal.Data.Fold.Type (Fold(..))
70import Streamly.Internal.Data.Parser (ParseError(..))
70import Streamly.Internal.Data.Parser (ParseError(..))
@@ -72,16 +72,16 @@ import Streamly.Internal.Data.Stream.Serial (SerialT)
72import Streamly.Internal.Data.Stream.IsStream.Type
72import Streamly.Internal.Data.Stream.IsStream.Type
73 (IsStream, fromStreamD, toStreamD)
73 (IsStream, fromStreamD, toStreamD)
74import Streamly.Internal.Data.SVar (adaptState, defState)
74import Streamly.Internal.Data.SVar (adaptState, defState)
75−import Streamly.Internal.Data.Array.Foreign.Mut.Type
75+import Streamly.Internal.Data.Array.Unboxed.Mut.Type
76 (allocBytesToElemCount)
76 (allocBytesToElemCount)
77import Streamly.Internal.Data.Tuple.Strict (Tuple'(..))
77import Streamly.Internal.Data.Tuple.Strict (Tuple'(..))
78
78
79−import qualified Streamly.Internal.Data.Array.Foreign as A
79+import qualified Streamly.Internal.Data.Array.Unboxed as A
80−import qualified Streamly.Internal.Data.Array.Foreign as Array
80+import qualified Streamly.Internal.Data.Array.Unboxed as Array
81-- import qualified Streamly.Internal.Data.Array.Stream.Fold.Foreign
81-- import qualified Streamly.Internal.Data.Array.Stream.Fold.Foreign
82-- as ArrayFold
82-- as ArrayFold
83−import qualified Streamly.Internal.Data.Array.Foreign.Type as A
83+import qualified Streamly.Internal.Data.Array.Unboxed.Type as A
84−import qualified Streamly.Internal.Data.Array.Foreign.Mut.Type as MA
84+import qualified Streamly.Internal.Data.Array.Unboxed.Mut.Type as MA
85import qualified Streamly.Internal.Data.Array.Stream.Mut.Foreign as AS
85import qualified Streamly.Internal.Data.Array.Stream.Mut.Foreign as AS
86import qualified Streamly.Internal.Data.Fold.Type as FL
86import qualified Streamly.Internal.Data.Fold.Type as FL
87import qualified Streamly.Internal.Data.Parser as PR
87import qualified Streamly.Internal.Data.Parser as PR
src/Streamly/Internal/Data/Binary/Decode.hs+1−1
@@ -32,7 +32,7 @@ import Streamly.Internal.Data.Parser (Parser)
32import Streamly.Internal.Data.Maybe.Strict (Maybe'(..))
32import Streamly.Internal.Data.Maybe.Strict (Maybe'(..))
33import Streamly.Internal.Data.Tuple.Strict (Tuple' (..))
33import Streamly.Internal.Data.Tuple.Strict (Tuple' (..))
34
34
35−import qualified Streamly.Internal.Data.Array.Foreign as A
35+import qualified Streamly.Internal.Data.Array.Unboxed as A
36import qualified Streamly.Internal.Data.Parser as PR
36import qualified Streamly.Internal.Data.Parser as PR
37import qualified Streamly.Internal.Data.Parser.ParserD as PRD
37import qualified Streamly.Internal.Data.Parser.ParserD as PRD
38
38
src/Streamly/Internal/Data/Stream/IsStream/Common.hs+3−3
@@ -71,7 +71,7 @@ import Control.Concurrent (threadDelay)
71import Control.Monad.IO.Class (MonadIO(..))
71import Control.Monad.IO.Class (MonadIO(..))
72import qualified Foreign.Storable as Storable (Storable)
72import qualified Foreign.Storable as Storable (Storable)
73import Streamly.Internal.Control.Concurrent (MonadAsync)
73import Streamly.Internal.Control.Concurrent (MonadAsync)
74−import Streamly.Internal.Data.Array.Foreign.Type (Array)
74+import Streamly.Internal.Data.Array.Unboxed.Type (Array)
75import Streamly.Internal.Data.Fold.Type (Fold (..))
75import Streamly.Internal.Data.Fold.Type (Fold (..))
76import Streamly.Internal.Data.Stream.IsStream.Combinators (maxYields)
76import Streamly.Internal.Data.Stream.IsStream.Combinators (maxYields)
77import Streamly.Internal.Data.Stream.IsStream.Type
77import Streamly.Internal.Data.Stream.IsStream.Type
@@ -81,7 +81,7 @@ import Streamly.Internal.Data.Time.Units (AbsTime, RelTime64, addToAbsTime64)
81import Streamly.Internal.System.IO (defaultChunkSize)
81import Streamly.Internal.System.IO (defaultChunkSize)
82import Streamly.Internal.Data.Unboxed (Storable, Unboxed)
82import Streamly.Internal.Data.Unboxed (Storable, Unboxed)
83
83
84−import qualified Streamly.Internal.Data.Array.Foreign.Type as A
84+import qualified Streamly.Internal.Data.Array.Unboxed.Type as A
85import qualified Streamly.Internal.Data.Stream.Async as Async
85import qualified Streamly.Internal.Data.Stream.Async as Async
86import qualified Streamly.Internal.Data.Stream.IsStream.Type as IsStream
86import qualified Streamly.Internal.Data.Stream.IsStream.Type as IsStream
87import qualified Streamly.Internal.Data.Stream.Parallel as Par
87import qualified Streamly.Internal.Data.Stream.Parallel as Par
@@ -108,7 +108,7 @@ import Prelude hiding (take, takeWhile, drop, reverse, concatMap, map, zipWith)
108-- >>> import System.IO.Unsafe (unsafePerformIO)
108-- >>> import System.IO.Unsafe (unsafePerformIO)
109-- >>> import qualified Streamly.Prelude as Stream
109-- >>> import qualified Streamly.Prelude as Stream
110-- >>> import Streamly.Internal.Data.Stream.IsStream as Stream
110-- >>> import Streamly.Internal.Data.Stream.IsStream as Stream
111−-- >>> import qualified Streamly.Data.Array.Foreign as Array
111+-- >>> import qualified Streamly.Data.Array.Unboxed as Array
112-- >>> import qualified Streamly.Data.Fold as Fold
112-- >>> import qualified Streamly.Data.Fold as Fold
113-- >>> import qualified Streamly.Internal.Data.Fold as Fold
113-- >>> import qualified Streamly.Internal.Data.Fold as Fold
114-- >>> import qualified Streamly.Data.Unfold as Unfold
114-- >>> import qualified Streamly.Data.Unfold as Unfold
src/Streamly/Internal/Data/Stream/IsStream/Eliminate.hs+1−1
@@ -167,7 +167,7 @@ import Streamly.Internal.Data.Stream.IsStream.Type
167import Streamly.Internal.Data.Stream.Serial (SerialT)
167import Streamly.Internal.Data.Stream.Serial (SerialT)
168import Streamly.Internal.Data.Unboxed (Unboxed)
168import Streamly.Internal.Data.Unboxed (Unboxed)
169
169
170−import qualified Streamly.Internal.Data.Array.Foreign.Type as A
170+import qualified Streamly.Internal.Data.Array.Unboxed.Type as A
171import qualified Streamly.Internal.Data.Fold as FL
171import qualified Streamly.Internal.Data.Fold as FL
172import qualified Streamly.Internal.Data.Stream.IsStream.Type as IsStream
172import qualified Streamly.Internal.Data.Stream.IsStream.Type as IsStream
173import qualified Streamly.Internal.Data.Stream.StreamD as D
173import qualified Streamly.Internal.Data.Stream.StreamD as D
src/Streamly/Internal/Data/Stream/IsStream/Expand.hs+1−1
@@ -194,7 +194,7 @@ import Prelude hiding (concat, concatMap, zipWith)
194-- >>> import qualified Streamly.Internal.Data.Fold as Fold
194-- >>> import qualified Streamly.Internal.Data.Fold as Fold
195-- >>> import qualified Streamly.Internal.Data.Unfold as Unfold
195-- >>> import qualified Streamly.Internal.Data.Unfold as Unfold
196-- >>> import qualified Streamly.Internal.Data.Parser as Parser
196-- >>> import qualified Streamly.Internal.Data.Parser as Parser
197−-- >>> import qualified Streamly.Data.Array.Foreign as Array
197+-- >>> import qualified Streamly.Data.Array.Unboxed as Array
198-- >>> :{
198-- >>> :{
199-- delay n = do
199-- delay n = do
200-- threadDelay (n * 1000000) -- sleep for n seconds
200-- threadDelay (n * 1000000) -- sleep for n seconds
src/Streamly/Internal/Data/Stream/IsStream/Reduce.hs+3−3
@@ -163,7 +163,7 @@ import Streamly.Internal.Data.Fold.Type (Fold (..))
163import Streamly.Internal.Data.IsMap (IsMap(..))
163import Streamly.Internal.Data.IsMap (IsMap(..))
164import Streamly.Internal.Data.Refold.Type (Refold (..))
164import Streamly.Internal.Data.Refold.Type (Refold (..))
165import Streamly.Internal.Data.Parser (Parser (..))
165import Streamly.Internal.Data.Parser (Parser (..))
166−import Streamly.Internal.Data.Array.Foreign.Type (Array)
166+import Streamly.Internal.Data.Array.Unboxed.Type (Array)
167import Streamly.Internal.Data.Stream.IsStream.Common
167import Streamly.Internal.Data.Stream.IsStream.Common
168 ( fold
168 ( fold
169 , interjectSuffix
169 , interjectSuffix
@@ -182,7 +182,7 @@ import Streamly.Internal.Data.Unboxed (Storable, Unboxed)
182
182
183import qualified Data.Heap as H
183import qualified Data.Heap as H
184import qualified Streamly.Data.Unfold as Unfold
184import qualified Streamly.Data.Unfold as Unfold
185−import qualified Streamly.Internal.Data.Array.Foreign.Type as A
185+import qualified Streamly.Internal.Data.Array.Unboxed.Type as A
186import qualified Streamly.Internal.Data.Fold as FL
186import qualified Streamly.Internal.Data.Fold as FL
187import qualified Streamly.Internal.Data.IsMap as IsMap
187import qualified Streamly.Internal.Data.IsMap as IsMap
188import qualified Streamly.Internal.Data.Parser.ParserD as PRD
188import qualified Streamly.Internal.Data.Parser.ParserD as PRD
@@ -202,7 +202,7 @@ import Prelude hiding (concatMap, map)
202-- >>> import qualified Streamly.Internal.Data.Fold as Fold
202-- >>> import qualified Streamly.Internal.Data.Fold as Fold
203-- >>> import qualified Streamly.Internal.Data.Unfold as Unfold
203-- >>> import qualified Streamly.Internal.Data.Unfold as Unfold
204-- >>> import qualified Streamly.Internal.Data.Parser as Parser
204-- >>> import qualified Streamly.Internal.Data.Parser as Parser
205−-- >>> import qualified Streamly.Data.Array.Foreign as Array
205+-- >>> import qualified Streamly.Data.Array.Unboxed as Array
206
206
207------------------------------------------------------------------------------
207------------------------------------------------------------------------------
208-- Trimming
208-- Trimming
src/Streamly/Internal/Data/Stream/IsStream/Top.hs+1−1
@@ -68,7 +68,7 @@ import Streamly.Internal.Data.Time.Units (NanoSecond64(..), toRelTime64)
68import qualified Data.List as List
68import qualified Data.List as List
69import qualified Data.Map.Strict as Map
69import qualified Data.Map.Strict as Map
70import qualified Streamly.Internal.Data.Array as Array
70import qualified Streamly.Internal.Data.Array as Array
71−import qualified Streamly.Internal.Data.Array.Foreign.Mut.Type as MA
71+import qualified Streamly.Internal.Data.Array.Unboxed.Mut.Type as MA
72import qualified Streamly.Internal.Data.Fold as Fold
72import qualified Streamly.Internal.Data.Fold as Fold
73import qualified Streamly.Internal.Data.Parser as Parser
73import qualified Streamly.Internal.Data.Parser as Parser
74import qualified Streamly.Internal.Data.Stream.IsStream.Lift as Stream
74import qualified Streamly.Internal.Data.Stream.IsStream.Lift as Stream
src/Streamly/Internal/FileSystem/Dir.hs+6−6
@@ -63,7 +63,7 @@ import Prelude hiding (read)
63
63
64-- import Streamly.Data.Fold (Fold)
64-- import Streamly.Data.Fold (Fold)
65import Streamly.Internal.Data.Unfold.Type (Unfold(..))
65import Streamly.Internal.Data.Unfold.Type (Unfold(..))
66−-- import Streamly.Internal.Data.Array.Foreign.Type
66+-- import Streamly.Internal.Data.Array.Unboxed.Type
67-- (Array(..), writeNUnsafe, defaultChunkSize, shrinkToFit,
67-- (Array(..), writeNUnsafe, defaultChunkSize, shrinkToFit,
68-- lpackArraysChunksOf)
68-- lpackArraysChunksOf)
69-- import Streamly.Internal.Data.Stream.Serial (SerialT)
69-- import Streamly.Internal.Data.Stream.Serial (SerialT)
@@ -75,7 +75,7 @@ import Streamly.Internal.Data.Stream.IsStream.Type (IsStream)
75import qualified Streamly.Internal.Data.Unfold as UF
75import qualified Streamly.Internal.Data.Unfold as UF
76-- import qualified Streamly.Internal.Data.Array.Stream.Foreign as AS
76-- import qualified Streamly.Internal.Data.Array.Stream.Foreign as AS
77import qualified Streamly.Internal.Data.Stream.IsStream as S
77import qualified Streamly.Internal.Data.Stream.IsStream as S
78−-- import qualified Streamly.Data.Array.Foreign as A
78+-- import qualified Streamly.Data.Array.Unboxed as A
79-- import qualified Streamly.Internal.Data.Stream.StreamD.Type as D
79-- import qualified Streamly.Internal.Data.Stream.StreamD.Type as D
80import qualified System.Directory as Dir
80import qualified System.Directory as Dir
81
81
@@ -165,9 +165,9 @@ toChunks = toChunksWithBufferOf defaultChunkSize
165
165
166-- | Unfolds a handle into a stream of 'Word8' arrays. Requests to the IO
166-- | Unfolds a handle into a stream of 'Word8' arrays. Requests to the IO
167-- device are performed using a buffer of size
167-- device are performed using a buffer of size
168−-- 'Streamly.Internal.Data.Array.Foreign.Type.defaultChunkSize'. The
168+-- 'Streamly.Internal.Data.Array.Unboxed.Type.defaultChunkSize'. The
169-- size of arrays in the resulting stream are therefore less than or equal to
169-- size of arrays in the resulting stream are therefore less than or equal to
170−-- 'Streamly.Internal.Data.Array.Foreign.Type.defaultChunkSize'.
170+-- 'Streamly.Internal.Data.Array.Unboxed.Type.defaultChunkSize'.
171--
171--
172-- @since 0.7.0
172-- @since 0.7.0
173{-# INLINE readChunks #-}
173{-# INLINE readChunks #-}
@@ -342,7 +342,7 @@ fromStreamWithBufferOf n h m = fromChunks h $ S.arraysOf n m
342-- > write = 'writeWithBufferOf' A.defaultChunkSize
342-- > write = 'writeWithBufferOf' A.defaultChunkSize
343--
343--
344-- | Write a byte stream to a file handle. Accumulates the input in chunks of
344-- | Write a byte stream to a file handle. Accumulates the input in chunks of
345−-- up to 'Streamly.Internal.Data.Array.Foreign.Type.defaultChunkSize' before writing.
345+-- up to 'Streamly.Internal.Data.Array.Unboxed.Type.defaultChunkSize' before writing.
346--
346--
347-- NOTE: This may perform better than the 'write' fold, you can try this if you
347-- NOTE: This may perform better than the 'write' fold, you can try this if you
348-- need some extra perf boost.
348-- need some extra perf boost.
@@ -392,7 +392,7 @@ writeWithBufferOf n h = FL.chunksOf n (writeNUnsafe n) (writeChunks h)
392-- > write = 'writeWithBufferOf' A.defaultChunkSize
392-- > write = 'writeWithBufferOf' A.defaultChunkSize
393--
393--
394-- | Write a byte stream to a file handle. Accumulates the input in chunks of
394-- | Write a byte stream to a file handle. Accumulates the input in chunks of
395−-- up to 'Streamly.Internal.Data.Array.Foreign.Type.defaultChunkSize' before writing
395+-- up to 'Streamly.Internal.Data.Array.Unboxed.Type.defaultChunkSize' before writing
396-- to the IO device.
396-- to the IO device.
397--
397--
398-- @since 0.7.0
398-- @since 0.7.0
src/Streamly/Internal/FileSystem/Event.hs+1−1
@@ -47,7 +47,7 @@ where
47
47
48import Data.List.NonEmpty (NonEmpty)
48import Data.List.NonEmpty (NonEmpty)
49import Data.Word (Word8)
49import Data.Word (Word8)
50−import Streamly.Internal.Data.Array.Foreign (Array)
50+import Streamly.Internal.Data.Array.Unboxed (Array)
51import Streamly.Prelude (SerialT)
51import Streamly.Prelude (SerialT)
52
52
53#if defined(CABAL_OS_DARWIN)
53#if defined(CABAL_OS_DARWIN)
src/Streamly/Internal/FileSystem/Event/Darwin.hs+2−2
@@ -177,7 +177,7 @@ import GHC.IO.Handle.FD (fdToHandle)
177import Streamly.Prelude (SerialT)
177import Streamly.Prelude (SerialT)
178import Streamly.Internal.Data.Cont (contListMap)
178import Streamly.Internal.Data.Cont (contListMap)
179import Streamly.Internal.Data.Parser (Parser)
179import Streamly.Internal.Data.Parser (Parser)
180−import Streamly.Internal.Data.Array.Foreign.Type (Array(..))
180+import Streamly.Internal.Data.Array.Unboxed.Type (Array(..))
181import System.IO (Handle, hClose)
181import System.IO (Handle, hClose)
182
182
183import qualified Data.List.NonEmpty as NonEmpty
183import qualified Data.List.NonEmpty as NonEmpty
@@ -185,7 +185,7 @@ import qualified Streamly.Internal.Data.Parser as PR
185import qualified Streamly.Internal.Data.Stream.IsStream as S
185import qualified Streamly.Internal.Data.Stream.IsStream as S
186import qualified Streamly.Internal.Unicode.Stream as U
186import qualified Streamly.Internal.Unicode.Stream as U
187import qualified Streamly.Internal.FileSystem.Handle as FH
187import qualified Streamly.Internal.FileSystem.Handle as FH
188−import qualified Streamly.Internal.Data.Array.Foreign as A
188+import qualified Streamly.Internal.Data.Array.Unboxed as A
189
189
190-------------------------------------------------------------------------------
190-------------------------------------------------------------------------------
191-- Subscription to events
191-- Subscription to events
src/Streamly/Internal/FileSystem/Event/Linux.hs+2−2
@@ -174,14 +174,14 @@ import GHC.IO.FD (fdFD, mkFD)
174import GHC.IO.Handle.FD (mkHandleFromFD)
174import GHC.IO.Handle.FD (mkHandleFromFD)
175import Streamly.Prelude (SerialT)
175import Streamly.Prelude (SerialT)
176import Streamly.Internal.Data.Parser (Parser)
176import Streamly.Internal.Data.Parser (Parser)
177−import Streamly.Internal.Data.Array.Foreign.Type (Array(..), byteLength)
177+import Streamly.Internal.Data.Array.Unboxed.Type (Array(..), byteLength)
178import System.Directory (doesDirectoryExist)
178import System.Directory (doesDirectoryExist)
179import System.IO (Handle, hClose, IOMode(ReadMode))
179import System.IO (Handle, hClose, IOMode(ReadMode))
180import GHC.IO.Handle.FD (handleToFd)
180import GHC.IO.Handle.FD (handleToFd)
181
181
182import qualified Data.IntMap.Lazy as Map
182import qualified Data.IntMap.Lazy as Map
183import qualified Data.List.NonEmpty as NonEmpty
183import qualified Data.List.NonEmpty as NonEmpty
184−import qualified Streamly.Internal.Data.Array.Foreign as A
184+import qualified Streamly.Internal.Data.Array.Unboxed as A
185import qualified Streamly.Internal.Data.Fold as FL
185import qualified Streamly.Internal.Data.Fold as FL
186import qualified Streamly.Internal.Data.Parser as PR
186import qualified Streamly.Internal.Data.Parser as PR
187import qualified Streamly.Internal.Data.Stream.IsStream as S
187import qualified Streamly.Internal.Data.Stream.IsStream as S
src/Streamly/Internal/FileSystem/Event/Windows.hs+2−2
@@ -123,8 +123,8 @@ import qualified Data.List.NonEmpty as NonEmpty
123import qualified Streamly.Internal.Data.Stream.IsStream as S
123import qualified Streamly.Internal.Data.Stream.IsStream as S
124import qualified Streamly.Internal.Unicode.Stream as U
124import qualified Streamly.Internal.Unicode.Stream as U
125import qualified Streamly.Internal.Unicode.Utf8 as UTF8
125import qualified Streamly.Internal.Unicode.Utf8 as UTF8
126−import qualified Streamly.Internal.Data.Array.Foreign as A
126+import qualified Streamly.Internal.Data.Array.Unboxed as A
127−import Streamly.Internal.Data.Array.Foreign (Array)
127+import Streamly.Internal.Data.Array.Unboxed (Array)
128
128
129-- | Watch configuration, used to specify the events of interest and the
129-- | Watch configuration, used to specify the events of interest and the
130-- behavior of the watch.
130-- behavior of the watch.
src/Streamly/Internal/FileSystem/FD.hs+3−3
@@ -128,7 +128,7 @@ import Prelude hiding (read)
128import qualified GHC.IO.FD as FD
128import qualified GHC.IO.FD as FD
129import qualified GHC.IO.Device as RawIO
129import qualified GHC.IO.Device as RawIO
130
130
131−import Streamly.Internal.Data.Array.Foreign.Type
131+import Streamly.Internal.Data.Array.Unboxed.Type
132 (Array(..), byteLength, unsafeFreeze, asPtrUnsafe)
132 (Array(..), byteLength, unsafeFreeze, asPtrUnsafe)
133import Streamly.Internal.System.IO (defaultChunkSize)
133import Streamly.Internal.System.IO (defaultChunkSize)
134import Streamly.Internal.Data.Stream.Type (Stream)
134import Streamly.Internal.Data.Stream.Type (Stream)
@@ -145,8 +145,8 @@ import qualified Streamly.Internal.System.IOVec.Type as RawIO
145-- import Streamly.Data.Fold (Fold)
145-- import Streamly.Data.Fold (Fold)
146-- import Streamly.String (encodeUtf8, decodeUtf8, foldLines)
146-- import Streamly.String (encodeUtf8, decodeUtf8, foldLines)
147
147
148−import qualified Streamly.Data.Array.Foreign as A
148+import qualified Streamly.Data.Array.Unboxed as A
149−import qualified Streamly.Internal.Data.Array.Foreign.Mut.Type as MArray
149+import qualified Streamly.Internal.Data.Array.Unboxed.Mut.Type as MArray
150import qualified Streamly.Internal.Data.Array.Stream.Foreign as AS
150import qualified Streamly.Internal.Data.Array.Stream.Foreign as AS
151import qualified Streamly.Prelude as S
151import qualified Streamly.Prelude as S
152import qualified Streamly.Internal.Data.Stream.StreamD.Type as D
152import qualified Streamly.Internal.Data.Stream.StreamD.Type as D
src/Streamly/Internal/FileSystem/File.hs+6−6
@@ -97,14 +97,14 @@ import qualified System.IO as SIO
97import Streamly.Internal.Control.Concurrent (MonadAsync)
97import Streamly.Internal.Control.Concurrent (MonadAsync)
98import Streamly.Internal.Data.Fold.Type (Fold(..))
98import Streamly.Internal.Data.Fold.Type (Fold(..))
99import Streamly.Internal.Data.Unfold.Type (Unfold(..))
99import Streamly.Internal.Data.Unfold.Type (Unfold(..))
100−import Streamly.Internal.Data.Array.Foreign.Type (Array(..), writeNUnsafe)
100+import Streamly.Internal.Data.Array.Unboxed.Type (Array(..), writeNUnsafe)
101import Streamly.Internal.Data.Stream.Type (Stream)
101import Streamly.Internal.Data.Stream.Type (Stream)
102import Streamly.Internal.Data.Stream.IsStream.Type (IsStream)
102import Streamly.Internal.Data.Stream.IsStream.Type (IsStream)
103-- import Streamly.Data.Fold (Fold)
103-- import Streamly.Data.Fold (Fold)
104-- import Streamly.String (encodeUtf8, decodeUtf8, foldLines)
104-- import Streamly.String (encodeUtf8, decodeUtf8, foldLines)
105import Streamly.Internal.System.IO (defaultChunkSize)
105import Streamly.Internal.System.IO (defaultChunkSize)
106
106
107−import qualified Streamly.Internal.Data.Array.Foreign as A
107+import qualified Streamly.Internal.Data.Array.Unboxed as A
108import qualified Streamly.Internal.Data.Fold.Type as FL
108import qualified Streamly.Internal.Data.Fold.Type as FL
109import qualified Streamly.Internal.Data.Unfold as UF
109import qualified Streamly.Internal.Data.Unfold as UF
110import qualified Streamly.Internal.FileSystem.Handle as FH
110import qualified Streamly.Internal.FileSystem.Handle as FH
@@ -271,9 +271,9 @@ readChunksFromToWith = usingFile3 FH.readChunksFromToWith
271
271
272-- | Unfolds a 'FilePath' into a stream of 'Word8' arrays. Requests to the IO
272-- | Unfolds a 'FilePath' into a stream of 'Word8' arrays. Requests to the IO
273-- device are performed using a buffer of size
273-- device are performed using a buffer of size
274−-- 'Streamly.Internal.Data.Array.Foreign.Type.defaultChunkSize'. The
274+-- 'Streamly.Internal.Data.Array.Unboxed.Type.defaultChunkSize'. The
275-- size of arrays in the resulting stream are therefore less than or equal to
275-- size of arrays in the resulting stream are therefore less than or equal to
276−-- 'Streamly.Internal.Data.Array.Foreign.Type.defaultChunkSize'.
276+-- 'Streamly.Internal.Data.Array.Unboxed.Type.defaultChunkSize'.
277--
277--
278-- /Pre-release/
278-- /Pre-release/
279{-# INLINE readChunks #-}
279{-# INLINE readChunks #-}
@@ -290,7 +290,7 @@ readWith = usingFile2 FH.readWith
290
290
291-- | Unfolds a file path into a byte stream. IO requests to the device are
291-- | Unfolds a file path into a byte stream. IO requests to the device are
292-- performed in sizes of
292-- performed in sizes of
293−-- 'Streamly.Internal.Data.Array.Foreign.Type.defaultChunkSize'.
293+-- 'Streamly.Internal.Data.Array.Unboxed.Type.defaultChunkSize'.
294--
294--
295-- @since 0.7.0
295-- @since 0.7.0
296{-# INLINE read #-}
296{-# INLINE read #-}
@@ -410,7 +410,7 @@ writeWith n path =
410-- > write = 'writeWith' A.defaultChunkSize
410-- > write = 'writeWith' A.defaultChunkSize
411--
411--
412-- | Write a byte stream to a file. Accumulates the input in chunks of up to
412-- | Write a byte stream to a file. Accumulates the input in chunks of up to
413−-- 'Streamly.Internal.Data.Array.Foreign.Type.defaultChunkSize' before writing to
413+-- 'Streamly.Internal.Data.Array.Unboxed.Type.defaultChunkSize' before writing to
414-- the IO device.
414-- the IO device.
415--
415--
416-- /Pre-release/
416-- /Pre-release/
src/Streamly/Internal/FileSystem/Handle.hs+10−10
@@ -121,7 +121,7 @@ import Prelude hiding (read)
121import Streamly.Internal.Data.Fold (Fold)
121import Streamly.Internal.Data.Fold (Fold)
122import Streamly.Internal.Data.Refold.Type (Refold(..))
122import Streamly.Internal.Data.Refold.Type (Refold(..))
123import Streamly.Internal.Data.Unfold.Type (Unfold(..))
123import Streamly.Internal.Data.Unfold.Type (Unfold(..))
124−import Streamly.Internal.Data.Array.Foreign.Type
124+import Streamly.Internal.Data.Array.Unboxed.Type
125 (Array(..), writeNUnsafe, unsafeFreezeWithShrink, byteLength)
125 (Array(..), writeNUnsafe, unsafeFreezeWithShrink, byteLength)
126import Streamly.Internal.Data.Stream.Type (Stream)
126import Streamly.Internal.Data.Stream.Type (Stream)
127import Streamly.Internal.Data.Stream.IsStream.Type
127import Streamly.Internal.Data.Stream.IsStream.Type
@@ -130,9 +130,9 @@ import Streamly.Internal.Data.Array.Stream.Foreign (lpackArraysChunksOf)
130-- import Streamly.String (encodeUtf8, decodeUtf8, foldLines)
130-- import Streamly.String (encodeUtf8, decodeUtf8, foldLines)
131import Streamly.Internal.System.IO (defaultChunkSize)
131import Streamly.Internal.System.IO (defaultChunkSize)
132
132
133−import qualified Streamly.Internal.Data.Array.Foreign as A
133+import qualified Streamly.Internal.Data.Array.Unboxed as A
134−import qualified Streamly.Internal.Data.Array.Foreign.Type as A
134+import qualified Streamly.Internal.Data.Array.Unboxed.Type as A
135−import qualified Streamly.Internal.Data.Array.Foreign.Mut.Type as MArray
135+import qualified Streamly.Internal.Data.Array.Unboxed.Mut.Type as MArray
136import qualified Streamly.Internal.Data.Array.Stream.Foreign as AS
136import qualified Streamly.Internal.Data.Array.Stream.Foreign as AS
137import qualified Streamly.Internal.Data.Refold.Type as Refold
137import qualified Streamly.Internal.Data.Refold.Type as Refold
138import qualified Streamly.Internal.Data.Fold as FL
138import qualified Streamly.Internal.Data.Fold as FL
@@ -142,7 +142,7 @@ import qualified Streamly.Internal.Data.Stream.StreamD.Type as D
142import qualified Streamly.Internal.Data.Unfold as UF
142import qualified Streamly.Internal.Data.Unfold as UF
143
143
144-- $setup
144-- $setup
145−-- >>> import qualified Streamly.Data.Array.Foreign as Array
145+-- >>> import qualified Streamly.Data.Array.Unboxed as Array
146-- >>> import qualified Streamly.Data.Fold as Fold
146-- >>> import qualified Streamly.Data.Fold as Fold
147-- >>> import qualified Streamly.Data.Unfold as Unfold
147-- >>> import qualified Streamly.Data.Unfold as Unfold
148-- >>> import qualified Streamly.FileSystem.Handle as Handle
148-- >>> import qualified Streamly.FileSystem.Handle as Handle
@@ -316,9 +316,9 @@ getChunks = getChunksWith defaultChunkSize
316
316
317-- | Unfolds a handle into a stream of 'Word8' arrays. Requests to the IO
317-- | Unfolds a handle into a stream of 'Word8' arrays. Requests to the IO
318-- device are performed using a buffer of size
318-- device are performed using a buffer of size
319−-- 'Streamly.Internal.Data.Array.Foreign.Type.defaultChunkSize'. The
319+-- 'Streamly.Internal.Data.Array.Unboxed.Type.defaultChunkSize'. The
320-- size of arrays in the resulting stream are therefore less than or equal to
320-- size of arrays in the resulting stream are therefore less than or equal to
321−-- 'Streamly.Internal.Data.Array.Foreign.Type.defaultChunkSize'.
321+-- 'Streamly.Internal.Data.Array.Unboxed.Type.defaultChunkSize'.
322--
322--
323-- >>> readChunks = Unfold.first IO.defaultChunkSize Handle.readChunksWith
323-- >>> readChunks = Unfold.first IO.defaultChunkSize Handle.readChunksWith
324--
324--
@@ -369,7 +369,7 @@ getBytesWith size h = AS.concat $ getChunksWith size h
369--
369--
370-- | Unfolds a file handle into a byte stream. IO requests to the device are
370-- | Unfolds a file handle into a byte stream. IO requests to the device are
371-- performed in sizes of
371-- performed in sizes of
372−-- 'Streamly.Internal.Data.Array.Foreign.Type.defaultChunkSize'.
372+-- 'Streamly.Internal.Data.Array.Unboxed.Type.defaultChunkSize'.
373--
373--
374-- >>> read = Unfold.many Handle.readChunks Array.read
374-- >>> read = Unfold.many Handle.readChunks Array.read
375--
375--
@@ -456,7 +456,7 @@ putBytesWith n h m = putChunks h $ S.arraysOf n m
456-- putBytesWith n h m = putChunks h $ AS.arraysOf n m
456-- putBytesWith n h m = putChunks h $ AS.arraysOf n m
457
457
458-- | Write a byte stream to a file handle. Accumulates the input in chunks of
458-- | Write a byte stream to a file handle. Accumulates the input in chunks of
459−-- up to 'Streamly.Internal.Data.Array.Foreign.Type.defaultChunkSize' before writing.
459+-- up to 'Streamly.Internal.Data.Array.Unboxed.Type.defaultChunkSize' before writing.
460--
460--
461-- NOTE: This may perform better than the 'write' fold, you can try this if you
461-- NOTE: This may perform better than the 'write' fold, you can try this if you
462-- need some extra perf boost.
462-- need some extra perf boost.
@@ -559,7 +559,7 @@ consumerWith n =
559 FL.refoldMany (FL.take n $ writeNUnsafe n) consumeChunks
559 FL.refoldMany (FL.take n $ writeNUnsafe n) consumeChunks
560
560
561-- | Write a byte stream to a file handle. Accumulates the input in chunks of
561-- | Write a byte stream to a file handle. Accumulates the input in chunks of
562−-- up to 'Streamly.Internal.Data.Array.Foreign.Type.defaultChunkSize' before writing
562+-- up to 'Streamly.Internal.Data.Array.Unboxed.Type.defaultChunkSize' before writing
563-- to the IO device.
563-- to the IO device.
564--
564--
565-- >>> write = Handle.writeWith IO.defaultChunkSize
565-- >>> write = Handle.writeWith IO.defaultChunkSize
src/Streamly/Internal/Network/Inet/TCP.hs+2−2
@@ -105,7 +105,7 @@ import Prelude hiding (read)
105
105
106import Streamly.Internal.Control.Concurrent (MonadAsync)
106import Streamly.Internal.Control.Concurrent (MonadAsync)
107import Streamly.Internal.Control.ForkLifted (fork)
107import Streamly.Internal.Control.ForkLifted (fork)
108−import Streamly.Internal.Data.Array.Foreign.Type (Array(..), writeNUnsafe)
108+import Streamly.Internal.Data.Array.Unboxed.Type (Array(..), writeNUnsafe)
109import Streamly.Internal.Data.Fold.Type (Fold(..))
109import Streamly.Internal.Data.Fold.Type (Fold(..))
110import Streamly.Internal.Data.Stream.IsStream.Type (IsStream)
110import Streamly.Internal.Data.Stream.IsStream.Type (IsStream)
111import Streamly.Internal.Data.Stream.Serial (SerialT)
111import Streamly.Internal.Data.Stream.Serial (SerialT)
@@ -118,7 +118,7 @@ import qualified Control.Monad.Catch as MC
118import qualified Network.Socket as Net
118import qualified Network.Socket as Net
119
119
120import qualified Streamly.Internal.Data.Unfold as UF
120import qualified Streamly.Internal.Data.Unfold as UF
121−import qualified Streamly.Internal.Data.Array.Foreign as A
121+import qualified Streamly.Internal.Data.Array.Unboxed as A
122import qualified Streamly.Internal.Data.Array.Stream.Foreign as AS
122import qualified Streamly.Internal.Data.Array.Stream.Foreign as AS
123import qualified Streamly.Internal.Data.Fold.Type as FL
123import qualified Streamly.Internal.Data.Fold.Type as FL
124import qualified Streamly.Internal.Data.Stream.IsStream as S
124import qualified Streamly.Internal.Data.Stream.IsStream as S
src/Streamly/Internal/Network/Socket.hs+7−7
@@ -91,7 +91,7 @@ import Prelude hiding (read)
91import qualified Network.Socket as Net
91import qualified Network.Socket as Net
92
92
93import Streamly.Internal.Control.Concurrent (MonadAsync)
93import Streamly.Internal.Control.Concurrent (MonadAsync)
94−import Streamly.Internal.Data.Array.Foreign.Type (Array(..))
94+import Streamly.Internal.Data.Array.Unboxed.Type (Array(..))
95import Streamly.Internal.Data.Array.Stream.Foreign (lpackArraysChunksOf)
95import Streamly.Internal.Data.Array.Stream.Foreign (lpackArraysChunksOf)
96import Streamly.Internal.Data.Fold (Fold)
96import Streamly.Internal.Data.Fold (Fold)
97import Streamly.Internal.Data.Stream.IsStream.Type
97import Streamly.Internal.Data.Stream.IsStream.Type
@@ -101,9 +101,9 @@ import Streamly.Internal.Data.Unfold.Type (Unfold(..))
101-- import Streamly.String (encodeUtf8, decodeUtf8, foldLines)
101-- import Streamly.String (encodeUtf8, decodeUtf8, foldLines)
102import Streamly.Internal.System.IO (defaultChunkSize)
102import Streamly.Internal.System.IO (defaultChunkSize)
103
103
104−import qualified Streamly.Internal.Data.Array.Foreign as A
104+import qualified Streamly.Internal.Data.Array.Unboxed as A
105−import qualified Streamly.Internal.Data.Array.Foreign.Type as A
105+import qualified Streamly.Internal.Data.Array.Unboxed.Type as A
106−import qualified Streamly.Internal.Data.Array.Foreign.Mut.Type as MArray
106+import qualified Streamly.Internal.Data.Array.Unboxed.Mut.Type as MArray
107import qualified Streamly.Internal.Data.Array.Stream.Foreign as AS
107import qualified Streamly.Internal.Data.Array.Stream.Foreign as AS
108import qualified Streamly.Internal.Data.Fold as FL
108import qualified Streamly.Internal.Data.Fold as FL
109import qualified Streamly.Internal.Data.Stream.IsStream as S
109import qualified Streamly.Internal.Data.Stream.IsStream as S
@@ -395,9 +395,9 @@ readChunksWithBufferOf = readChunksWith
395
395
396-- | Unfolds a socket into a stream of 'Word8' arrays. Requests to the socket
396-- | Unfolds a socket into a stream of 'Word8' arrays. Requests to the socket
397-- are performed using a buffer of size
397-- are performed using a buffer of size
398−-- 'Streamly.Internal.Data.Array.Foreign.Type.defaultChunkSize'. The
398+-- 'Streamly.Internal.Data.Array.Unboxed.Type.defaultChunkSize'. The
399-- size of arrays in the resulting stream are therefore less than or equal to
399-- size of arrays in the resulting stream are therefore less than or equal to
400−-- 'Streamly.Internal.Data.Array.Foreign.Type.defaultChunkSize'.
400+-- 'Streamly.Internal.Data.Array.Unboxed.Type.defaultChunkSize'.
401--
401--
402-- @since 0.7.0
402-- @since 0.7.0
403{-# INLINE readChunks #-}
403{-# INLINE readChunks #-}
@@ -452,7 +452,7 @@ readWithBufferOf = readWith
452
452
453-- | Unfolds a 'Socket' into a byte stream. IO requests to the socket are
453-- | Unfolds a 'Socket' into a byte stream. IO requests to the socket are
454-- performed in sizes of
454-- performed in sizes of
455−-- 'Streamly.Internal.Data.Array.Foreign.Type.defaultChunkSize'.
455+-- 'Streamly.Internal.Data.Array.Unboxed.Type.defaultChunkSize'.
456--
456--
457-- @since 0.7.0
457-- @since 0.7.0
458{-# INLINE read #-}
458{-# INLINE read #-}
src/Streamly/Internal/System/IOVec.hs+6−6
@@ -30,12 +30,12 @@ where
30import Control.Monad (when)
30import Control.Monad (when)
31import Control.Monad.IO.Class (MonadIO(..))
31import Control.Monad.IO.Class (MonadIO(..))
32import Foreign.Ptr (castPtr)
32import Foreign.Ptr (castPtr)
33−import Streamly.Internal.Data.Array.Foreign.Mut.Type (length)
33+import Streamly.Internal.Data.Array.Unboxed.Mut.Type (length)
34import Streamly.Internal.Data.SVar.Type (adaptState)
34import Streamly.Internal.Data.SVar.Type (adaptState)
35−import Streamly.Internal.Data.Array.Foreign.Mut.Type (Array(..))
35+import Streamly.Internal.Data.Array.Unboxed.Mut.Type (Array(..))
36
36
37−import qualified Streamly.Internal.Data.Array.Foreign.Type as Array
37+import qualified Streamly.Internal.Data.Array.Unboxed.Type as Array
38−import qualified Streamly.Internal.Data.Array.Foreign.Mut.Type as MArray
38+import qualified Streamly.Internal.Data.Array.Unboxed.Mut.Type as MArray
39import qualified Streamly.Internal.Data.Stream.StreamD as D
39import qualified Streamly.Internal.Data.Stream.StreamD as D
40-}
40-}
41#endif
41#endif
@@ -69,11 +69,11 @@ groupIOVecsOfMut n maxIOVLen (D.Stream step state) =
69 step' gst (GatherInitial st) = do
69 step' gst (GatherInitial st) = do
70 when (n <= 0) $
70 when (n <= 0) $
71 -- XXX we can pass the module string from the higher level API
71 -- XXX we can pass the module string from the higher level API
72− error $ "Streamly.Internal.Data.Array.Foreign.Mut.Type.groupIOVecsOf: the size of "
72+ error $ "Streamly.Internal.Data.Array.Unboxed.Mut.Type.groupIOVecsOf: the size of "
73 ++ "groups [" ++ show n ++ "] must be a natural number"
73 ++ "groups [" ++ show n ++ "] must be a natural number"
74 when (maxIOVLen <= 0) $
74 when (maxIOVLen <= 0) $
75 -- XXX we can pass the module string from the higher level API
75 -- XXX we can pass the module string from the higher level API
76− error $ "Streamly.Internal.Data.Array.Foreign.Mut.Type.groupIOVecsOf: the number of "
76+ error $ "Streamly.Internal.Data.Array.Unboxed.Mut.Type.groupIOVecsOf: the number of "
77 ++ "IOVec entries [" ++ show n ++ "] must be a natural number"
77 ++ "IOVec entries [" ++ show n ++ "] must be a natural number"
78 r <- step (adaptState gst) st
78 r <- step (adaptState gst) st
79 case r of
79 case r of
src/Streamly/Internal/Unicode/Array/Char.hs+4−2
@@ -20,11 +20,13 @@ where
20import Control.Monad.IO.Class (MonadIO)
20import Control.Monad.IO.Class (MonadIO)
21import Streamly.Prelude (MonadAsync)
21import Streamly.Prelude (MonadAsync)
22import Prelude hiding (String, lines, words, unlines, unwords)
22import Prelude hiding (String, lines, words, unlines, unwords)
23−import Streamly.Data.Array.Foreign (Array)
23+import Streamly.Internal.Data.Array.Unboxed (Array)
24import Streamly.Internal.Data.Stream.IsStream (IsStream)
24import Streamly.Internal.Data.Stream.IsStream (IsStream)
25
25
26+import qualified Streamly.Internal.Data.Array.Unboxed as A
27+ (write, read)
28+
26import qualified Streamly.Internal.Unicode.Stream as S
29import qualified Streamly.Internal.Unicode.Stream as S
27−import qualified Streamly.Data.Array.Foreign as A
28
30
29-- $setup
31-- $setup
30-- >>> :m
32-- >>> :m
src/Streamly/Internal/Unicode/Stream.hs+4−4
@@ -97,8 +97,8 @@ import GHC.Base (assert, unsafeChr)
97import GHC.IO.Encoding.Failure (isSurrogate)
97import GHC.IO.Encoding.Failure (isSurrogate)
98import GHC.Ptr (Ptr (..), plusPtr)
98import GHC.Ptr (Ptr (..), plusPtr)
99import System.IO.Unsafe (unsafePerformIO)
99import System.IO.Unsafe (unsafePerformIO)
100−import Streamly.Internal.Data.Array.Foreign (Array)
100+import Streamly.Internal.Data.Array.Unboxed (Array)
101−import Streamly.Internal.Data.Array.Foreign.Mut.Type (ArrayContents)
101+import Streamly.Internal.Data.Array.Unboxed.Mut.Type (ArrayContents)
102import Streamly.Internal.Data.Fold (Fold)
102import Streamly.Internal.Data.Fold (Fold)
103import Streamly.Internal.Data.Stream.IsStream.Type
103import Streamly.Internal.Data.Stream.IsStream.Type
104 (IsStream, fromStreamD, toStreamD, adapt)
104 (IsStream, fromStreamD, toStreamD, adapt)
@@ -115,8 +115,8 @@ import qualified Streamly.Internal.Data.Unfold as Unfold
115import qualified Streamly.Internal.Data.Parser as Parser
115import qualified Streamly.Internal.Data.Parser as Parser
116import qualified Streamly.Internal.Data.Parser.ParserD as ParserD
116import qualified Streamly.Internal.Data.Parser.ParserD as ParserD
117import qualified Streamly.Internal.Data.Stream.Serial as Serial
117import qualified Streamly.Internal.Data.Stream.Serial as Serial
118−import qualified Streamly.Internal.Data.Array.Foreign as Array
118+import qualified Streamly.Internal.Data.Array.Unboxed as Array
119−import qualified Streamly.Internal.Data.Array.Foreign.Type as A
119+import qualified Streamly.Internal.Data.Array.Unboxed.Type as A
120import qualified Streamly.Internal.Data.Stream.IsStream as S
120import qualified Streamly.Internal.Data.Stream.IsStream as S
121import qualified Streamly.Internal.Data.Stream.StreamD as D
121import qualified Streamly.Internal.Data.Stream.StreamD as D
122
122
src/Streamly/Internal/Unicode/Utf8.hs+2−2
@@ -24,10 +24,10 @@ where
24
24
25import Control.DeepSeq (NFData)
25import Control.DeepSeq (NFData)
26import Data.Word (Word8)
26import Data.Word (Word8)
27−import Streamly.Internal.Data.Array.Foreign.Type (Array)
27+import Streamly.Internal.Data.Array.Unboxed.Type (Array)
28import System.IO.Unsafe (unsafePerformIO)
28import System.IO.Unsafe (unsafePerformIO)
29
29
30−import qualified Streamly.Internal.Data.Array.Foreign as Array
30+import qualified Streamly.Internal.Data.Array.Unboxed as Array
31import qualified Streamly.Internal.Data.Stream.IsStream as Stream
31import qualified Streamly.Internal.Data.Stream.IsStream as Stream
32import qualified Streamly.Internal.Unicode.Stream as Unicode
32import qualified Streamly.Internal.Unicode.Stream as Unicode
33
33
src/Streamly/Memory/Array.hs+2−2
@@ -32,7 +32,7 @@
32--
32--
33-- > import qualified Streamly.Array as A
33-- > import qualified Streamly.Array as A
34--
34--
35−-- For experimental APIs see "Streamly.Internal.Data.Array.Foreign".
35+-- For experimental APIs see "Streamly.Internal.Data.Array.Unboxed".
36
36
37module Streamly.Memory.Array
37module Streamly.Memory.Array
38 {-# DEPRECATED "Use Streamly.Data.Array.Foreign instead" #-}
38 {-# DEPRECATED "Use Streamly.Data.Array.Foreign instead" #-}
@@ -71,4 +71,4 @@ module Streamly.Memory.Array
71 )
71 )
72where
72where
73
73
74−import Streamly.Internal.Data.Array.Foreign as A
74+import Streamly.Internal.Data.Array.Unboxed as A
src/Streamly/Network/Socket.hs+2−2
@@ -63,9 +63,9 @@
63-- = Programmer Notes
63-- = Programmer Notes
64--
64--
65-- Read IO requests to connected stream sockets are performed in chunks of
65-- Read IO requests to connected stream sockets are performed in chunks of
66−-- 'Streamly.Internal.Data.Array.Foreign.Type.defaultChunkSize'. Unless
66+-- 'Streamly.Internal.Data.Array.Unboxed.Type.defaultChunkSize'. Unless
67-- specified otherwise in the API, writes are collected into chunks of
67-- specified otherwise in the API, writes are collected into chunks of
68−-- 'Streamly.Internal.Data.Array.Foreign.Type.defaultChunkSize' before they are
68+-- 'Streamly.Internal.Data.Array.Unboxed.Type.defaultChunkSize' before they are
69-- written to the socket. APIs are provided to control the chunking behavior.
69-- written to the socket. APIs are provided to control the chunking behavior.
70--
70--
71-- > import qualified Streamly.Network.Socket as Socket
71-- > import qualified Streamly.Network.Socket as Socket
streamly.cabal+11−10
@@ -165,9 +165,9 @@ extra-source-files:
165 core/src/Streamly/Internal/Data/Pipe/Type.hs
165 core/src/Streamly/Internal/Data/Pipe/Type.hs
166 core/src/Streamly/Internal/Data/Unboxed.hs
166 core/src/Streamly/Internal/Data/Unboxed.hs
167 core/src/Streamly/Internal/Data/IORef/Unboxed.hs
167 core/src/Streamly/Internal/Data/IORef/Unboxed.hs
168− core/src/Streamly/Internal/Data/Array/Foreign/Mut/Type.hs
168+ core/src/Streamly/Internal/Data/Array/Unboxed/Mut/Type.hs
169− core/src/Streamly/Internal/Data/Array/Foreign/Mut.hs
169+ core/src/Streamly/Internal/Data/Array/Unboxed/Mut.hs
170− core/src/Streamly/Internal/Data/Array/Foreign/Type.hs
170+ core/src/Streamly/Internal/Data/Array/Unboxed/Type.hs
171 core/src/Streamly/Internal/Data/Array/Mut/Type.hs
171 core/src/Streamly/Internal/Data/Array/Mut/Type.hs
172 core/src/Streamly/Internal/Data/Stream/StreamD/Generate.hs
172 core/src/Streamly/Internal/Data/Stream/StreamD/Generate.hs
173 core/src/Streamly/Internal/Data/Stream/StreamD/Eliminate.hs
173 core/src/Streamly/Internal/Data/Stream/StreamD/Eliminate.hs
@@ -203,7 +203,7 @@ extra-source-files:
203 core/src/Streamly/Internal/Data/Stream/Zip.hs
203 core/src/Streamly/Internal/Data/Stream/Zip.hs
204 core/src/Streamly/Internal/Data/List.hs
204 core/src/Streamly/Internal/Data/List.hs
205 core/src/Streamly/Internal/Data/Array.hs
205 core/src/Streamly/Internal/Data/Array.hs
206− core/src/Streamly/Internal/Data/Array/Foreign.hs
206+ core/src/Streamly/Internal/Data/Array/Unboxed.hs
207 core/src/Streamly/Internal/Data/Array/Stream/Mut/Foreign.hs
207 core/src/Streamly/Internal/Data/Array/Stream/Mut/Foreign.hs
208 core/src/Streamly/Internal/Data/Array/Stream/Fold/Foreign.hs
208 core/src/Streamly/Internal/Data/Array/Stream/Fold/Foreign.hs
209 core/src/Streamly/Internal/Data/Ring/Foreign.hs
209 core/src/Streamly/Internal/Data/Ring/Foreign.hs
@@ -212,7 +212,7 @@ extra-source-files:
212 core/src/Streamly/Data/Fold.hs
212 core/src/Streamly/Data/Fold.hs
213 core/src/Streamly/Data/Fold/Tee.hs
213 core/src/Streamly/Data/Fold/Tee.hs
214 core/src/Streamly/Internal/Data/Fold/Window.hs
214 core/src/Streamly/Internal/Data/Fold/Window.hs
215− core/src/Streamly/Data/Array/Foreign.hs
215+ core/src/Streamly/Data/Array/Unboxed.hs
216 core/src/Streamly/Internal/Data/Time/Clock/Darwin.c
216 core/src/Streamly/Internal/Data/Time/Clock/Darwin.c
217 core/src/Streamly/Internal/Data/Time/Clock/Windows.c
217 core/src/Streamly/Internal/Data/Time/Clock/Windows.c
218 core/streamly-core.cabal
218 core/streamly-core.cabal
@@ -519,6 +519,7 @@ library
519 , Streamly
519 , Streamly
520 , Streamly.Data.Unicode.Stream
520 , Streamly.Data.Unicode.Stream
521 , Streamly.Memory.Array
521 , Streamly.Memory.Array
522+ , Streamly.Data.Array.Foreign
522
523
523 reexported-modules:
524 reexported-modules:
524 -- Re-exported modules, listed in the order described in
525 -- Re-exported modules, listed in the order described in
@@ -572,9 +573,9 @@ library
572 -- Unboxed IORef
573 -- Unboxed IORef
573 , Streamly.Internal.Data.IORef.Unboxed
574 , Streamly.Internal.Data.IORef.Unboxed
574 -- May depend on streamly-core-stream
575 -- May depend on streamly-core-stream
575− , Streamly.Internal.Data.Array.Foreign.Mut.Type
576+ , Streamly.Internal.Data.Array.Unboxed.Mut.Type
576− , Streamly.Internal.Data.Array.Foreign.Mut
577+ , Streamly.Internal.Data.Array.Unboxed.Mut
577− , Streamly.Internal.Data.Array.Foreign.Type
578+ , Streamly.Internal.Data.Array.Unboxed.Type
578 , Streamly.Internal.Data.Array.Mut.Type
579 , Streamly.Internal.Data.Array.Mut.Type
579
580
580 -- streamly-core-streams
581 -- streamly-core-streams
@@ -617,7 +618,7 @@ library
617 -- streamly-core-data-arrays
618 -- streamly-core-data-arrays
618 -- XXX Depends on primitive
619 -- XXX Depends on primitive
619 , Streamly.Internal.Data.Array
620 , Streamly.Internal.Data.Array
620− , Streamly.Internal.Data.Array.Foreign
621+ , Streamly.Internal.Data.Array.Unboxed
621 , Streamly.Internal.Data.Array.Stream.Mut.Foreign
622 , Streamly.Internal.Data.Array.Stream.Mut.Foreign
622 , Streamly.Internal.Data.Array.Stream.Fold.Foreign
623 , Streamly.Internal.Data.Array.Stream.Fold.Foreign
623
624
@@ -632,7 +633,7 @@ library
632 -- streamly-core exposed modules
633 -- streamly-core exposed modules
633 , Streamly.Data.Fold
634 , Streamly.Data.Fold
634 , Streamly.Data.Fold.Tee
635 , Streamly.Data.Fold.Tee
635− , Streamly.Data.Array.Foreign
636+ , Streamly.Data.Array.Unboxed
636
637
637 other-modules:
638 other-modules:
638 Streamly.Data.Array
639 Streamly.Data.Array
test/Streamly/Test/Data/Array/Foreign.hs+3−3
@@ -19,9 +19,9 @@ import Test.QuickCheck (chooseInt, listOf)
19import GHC.Ptr (plusPtr)
19import GHC.Ptr (plusPtr)
20
20
21import qualified Streamly.Internal.Data.Fold as Fold
21import qualified Streamly.Internal.Data.Fold as Fold
22−import qualified Streamly.Internal.Data.Array.Foreign as A
22+import qualified Streamly.Internal.Data.Array.Unboxed as A
23−import qualified Streamly.Internal.Data.Array.Foreign.Type as A
23+import qualified Streamly.Internal.Data.Array.Unboxed.Type as A
24−import qualified Streamly.Internal.Data.Array.Foreign.Mut.Type as MA
24+import qualified Streamly.Internal.Data.Array.Unboxed.Mut.Type as MA
25import qualified Streamly.Internal.Data.Array.Stream.Foreign as AS
25import qualified Streamly.Internal.Data.Array.Stream.Foreign as AS
26
26
27type Array = A.Array
27type Array = A.Array
test/Streamly/Test/Data/Array/Stream/Foreign.hs+1−1
@@ -7,7 +7,7 @@ import Test.Hspec.QuickCheck
7import Test.QuickCheck (forAll, Property, vectorOf, Gen)
7import Test.QuickCheck (forAll, Property, vectorOf, Gen)
8import Test.QuickCheck.Monadic (monadicIO, run)
8import Test.QuickCheck.Monadic (monadicIO, run)
9
9
10−import qualified Streamly.Internal.Data.Array.Foreign as Array
10+import qualified Streamly.Internal.Data.Array.Unboxed as Array
11import qualified Streamly.Internal.Data.Array.Stream.Foreign as ArrayStream
11import qualified Streamly.Internal.Data.Array.Stream.Foreign as ArrayStream
12import qualified Streamly.Internal.Data.Fold as Fold
12import qualified Streamly.Internal.Data.Fold as Fold
13import qualified Streamly.Internal.Data.Parser as Parser
13import qualified Streamly.Internal.Data.Parser as Parser
test/Streamly/Test/Data/Fold.hs+1−1
@@ -25,7 +25,7 @@ import qualified Data.Map
25import qualified Prelude
25import qualified Prelude
26import qualified Streamly.Internal.Data.Fold as F
26import qualified Streamly.Internal.Data.Fold as F
27import qualified Streamly.Prelude as S
27import qualified Streamly.Prelude as S
28−import qualified Streamly.Internal.Data.Array.Foreign.Mut.Type as MA
28+import qualified Streamly.Internal.Data.Array.Unboxed.Mut.Type as MA
29import qualified Streamly.Internal.Data.Stream.IsStream as Stream
29import qualified Streamly.Internal.Data.Stream.IsStream as Stream
30import qualified Streamly.Data.Fold as FL
30import qualified Streamly.Data.Fold as FL
31
31
test/Streamly/Test/Data/Parser.hs+1−1
@@ -15,7 +15,7 @@ import Prelude hiding (sequence)
15
15
16import qualified Data.List as List
16import qualified Data.List as List
17import qualified Prelude
17import qualified Prelude
18−import qualified Streamly.Internal.Data.Array.Foreign as A
18+import qualified Streamly.Internal.Data.Array.Unboxed as A
19import qualified Streamly.Internal.Data.Fold as FL
19import qualified Streamly.Internal.Data.Fold as FL
20import qualified Streamly.Internal.Data.Parser as P
20import qualified Streamly.Internal.Data.Parser as P
21import qualified Streamly.Internal.Data.Stream.IsStream as S
21import qualified Streamly.Internal.Data.Stream.IsStream as S
test/Streamly/Test/Data/Parser/ParserD.hs+1−1
@@ -12,7 +12,7 @@ import Test.QuickCheck.Monadic (monadicIO, assert, run)
12
12
13import qualified Data.List as List
13import qualified Data.List as List
14import qualified Prelude
14import qualified Prelude
15−import qualified Streamly.Internal.Data.Array.Foreign as A
15+import qualified Streamly.Internal.Data.Array.Unboxed as A
16import qualified Streamly.Internal.Data.Fold as FL
16import qualified Streamly.Internal.Data.Fold as FL
17import qualified Streamly.Internal.Data.Parser.ParserD as P
17import qualified Streamly.Internal.Data.Parser.ParserD as P
18import qualified Streamly.Internal.Data.Producer.Source as Source
18import qualified Streamly.Internal.Data.Producer.Source as Source
test/Streamly/Test/Data/Ring/Unboxed.hs+1−1
@@ -10,7 +10,7 @@ module Streamly.Test.Data.Ring.Unboxed (main) where
10
10
11import Control.Monad (void)
11import Control.Monad (void)
12
12
13−import qualified Streamly.Internal.Data.Array.Foreign.Type as Array
13+import qualified Streamly.Internal.Data.Array.Unboxed.Type as Array
14import qualified Streamly.Internal.Data.Ring.Foreign as Ring
14import qualified Streamly.Internal.Data.Ring.Foreign as Ring
15
15
16import Prelude as P
16import Prelude as P
test/Streamly/Test/FileSystem/Event/Common.hs+2−2
@@ -46,7 +46,7 @@ import Data.Function ((&))
46import Data.Functor.Identity (runIdentity)
46import Data.Functor.Identity (runIdentity)
47import Data.List.NonEmpty (NonEmpty)
47import Data.List.NonEmpty (NonEmpty)
48import Data.Word (Word8)
48import Data.Word (Word8)
49−import Streamly.Data.Array.Foreign (Array)
49+import Streamly.Data.Array.Unboxed (Array)
50import System.Directory
50import System.Directory
51 ( createDirectory
51 ( createDirectory
52 , createDirectoryIfMissing
52 , createDirectoryIfMissing
@@ -63,7 +63,7 @@ import System.IO
63import System.IO.Temp (withSystemTempDirectory)
63import System.IO.Temp (withSystemTempDirectory)
64
64
65import qualified Data.List.NonEmpty as NonEmpty
65import qualified Data.List.NonEmpty as NonEmpty
66−import qualified Streamly.Internal.Data.Array.Foreign as Array
66+import qualified Streamly.Internal.Data.Array.Unboxed as Array
67import qualified Streamly.Internal.Data.Stream.IsStream as Stream
67import qualified Streamly.Internal.Data.Stream.IsStream as Stream
68import qualified Streamly.Unicode.Stream as Unicode
68import qualified Streamly.Unicode.Stream as Unicode
69
69
test/Streamly/Test/FileSystem/Handle.hs+1−1
@@ -29,7 +29,7 @@ import Test.QuickCheck.Monadic (monadicIO, assert, run)
29import qualified Streamly.Data.Fold as Fold
29import qualified Streamly.Data.Fold as Fold
30import qualified Streamly.Internal.FileSystem.Handle as Handle
30import qualified Streamly.Internal.FileSystem.Handle as Handle
31import qualified Streamly.Internal.Data.Stream.IsStream as Stream
31import qualified Streamly.Internal.Data.Stream.IsStream as Stream
32−import qualified Streamly.Internal.Data.Array.Foreign as Array
32+import qualified Streamly.Internal.Data.Array.Unboxed as Array
33import qualified Streamly.Internal.Unicode.Stream as Unicode
33import qualified Streamly.Internal.Unicode.Stream as Unicode
34
34
35import Test.Hspec as H
35import Test.Hspec as H
test/Streamly/Test/Prelude/Serial.hs+1−1
@@ -49,7 +49,7 @@ import qualified Streamly.Prelude as S
49import qualified Streamly.Internal.Data.Fold as FL
49import qualified Streamly.Internal.Data.Fold as FL
50import qualified Streamly.Internal.Data.Unfold as UF
50import qualified Streamly.Internal.Data.Unfold as UF
51import qualified Streamly.Internal.Data.Stream.IsStream as IS
51import qualified Streamly.Internal.Data.Stream.IsStream as IS
52−import qualified Streamly.Data.Array.Foreign as A
52+import qualified Streamly.Data.Array.Unboxed as A
53
53
54import Streamly.Internal.Data.Time.Units
54import Streamly.Internal.Data.Time.Units
55 (AbsTime, NanoSecond64(..), toRelTime64, diffAbsTime64)
55 (AbsTime, NanoSecond64(..), toRelTime64, diffAbsTime64)
test/Streamly/Test/Unicode/Stream.hs+1−1
@@ -16,7 +16,7 @@ import Test.QuickCheck
16 )
16 )
17import Test.QuickCheck.Monadic (run, monadicIO, assert)
17import Test.QuickCheck.Monadic (run, monadicIO, assert)
18
18
19−import qualified Streamly.Data.Array.Foreign as A
19+import qualified Streamly.Data.Array.Unboxed as A
20import qualified Streamly.Internal.Data.Array.Stream.Foreign as AS
20import qualified Streamly.Internal.Data.Array.Stream.Foreign as AS
21import qualified Streamly.Prelude as S
21import qualified Streamly.Prelude as S
22import qualified Streamly.Unicode.Stream as SS
22import qualified Streamly.Unicode.Stream as SS