on master help sign in
Re-export internal serialize modules and hide them
commit97e0d20ffbc4df41e6ed70c002488f3edb67b70a authorHarendra Kumar <harendra@composewell.com> dateMon 20 Nov 2023, 17:35 (3 years ago) parent757c7a0
26 files changed+59−73
benchmark/Streamly/Benchmark/Data/Array/Stream.hs+1−1 benchmark/Streamly/Benchmark/Data/Serialize.hs+1−11 benchmark/Streamly/Benchmark/Data/Serialize/RecCompatible.hs+1−1 benchmark/Streamly/Benchmark/Data/Serialize/RecNonCompatible.hs+1−1 benchmark/Streamly/Benchmark/Data/Serialize/TH.hs+1−1 benchmark/Streamly/Benchmark/Unicode/Stream.hs+1−1 core/docs/Changelog.md+3−1 core/src/Streamly/Internal/Data/Serialize.hs+20−2 core/src/Streamly/Internal/Data/Serialize/Type.hs+2−1 core/streamly-core.cabal+8−8 src/Streamly/Internal/Data/Stream/Concurrent.hs+1−1 src/Streamly/Internal/Data/Stream/IsStream/Common.hs+1−1 src/Streamly/Internal/Data/Stream/IsStream/Eliminate.hs+1−1 src/Streamly/Internal/Data/Stream/IsStream/Generate.hs+2−2 src/Streamly/Internal/Data/Stream/IsStream/Reduce.hs+1−1 src/Streamly/Internal/Network/Inet/TCP.hs+1−1 src/Streamly/Internal/Network/Socket.hs+1−1 src/Streamly/Network/Socket.hs+1−1 test/Streamly/Test/Data/Array.hs+1−1 test/Streamly/Test/Data/MutArray.hs+1−1 test/Streamly/Test/Data/Serialize.hs+1−3 test/Streamly/Test/Data/Serialize/CompatV0.hs+1−1 test/Streamly/Test/Data/Serialize/CompatV1.hs+1−1 test/Streamly/Test/Data/Unbox.hs+3−25 test/Streamly/Test/Data/Unbox/TH.hs+2−3 test/Streamly/Test/Prelude/Serial.hs+1−1
benchmark/Streamly/Benchmark/Data/Array/Stream.hs+1−1
@@ -53,7 +53,7 @@ import Streamly.Benchmark.Common.Handle
5353import Control.Monad.IO.Class (MonadIO)
5454
5555#ifdef INSPECTION
56−import Streamly.Internal.Data.Unbox (Unbox)
56+import Streamly.Internal.Data.Serialize (Unbox)
5757import Streamly.Internal.Data.Stream (Step(..))
5858import Test.Inspection
5959#endif
benchmark/Streamly/Benchmark/Data/Serialize.hs+1−11
@@ -24,22 +24,12 @@ import System.Random (randomRIO)
2424import Test.QuickCheck (Arbitrary, arbitrary)
2525#endif
2626
27+import Streamly.Internal.Data.Serialize hiding (encode)
2728#ifdef USE_UNBOX
2829import Data.Proxy (Proxy(..))
29−import Streamly.Internal.Data.Unbox
3030#else
3131import Control.DeepSeq (force)
3232import Test.QuickCheck (oneof, generate)
33−import Streamly.Internal.Data.Unbox (newBytes, MutableByteArray)
34−import Streamly.Internal.Data.Serialize hiding (encode)
35−#endif
36−
37−#ifdef USE_TH
38−#ifdef USE_UNBOX
39−import Streamly.Internal.Data.Unbox.TH
40−#else
41−import Streamly.Internal.Data.Serialize.TH
42−#endif
4333#endif
4434
4535import Test.Tasty.Bench
benchmark/Streamly/Benchmark/Data/Serialize/RecCompatible.hs+1−1
@@ -12,7 +12,7 @@ module Streamly.Benchmark.Data.Serialize.RecCompatible
1212import Streamly.Internal.Data.Serialize (Serialize)
1313import Streamly.Benchmark.Data.Serialize.TH (genLargeRecord)
1414
15−import qualified Streamly.Internal.Data.Serialize.TH as Serialize
15+import qualified Streamly.Internal.Data.Serialize as Serialize
1616
1717--------------------------------------------------------------------------------
1818-- Code
benchmark/Streamly/Benchmark/Data/Serialize/RecNonCompatible.hs+1−1
@@ -11,7 +11,7 @@ module Streamly.Benchmark.Data.Serialize.RecNonCompatible
1111
1212import Streamly.Benchmark.Data.Serialize.TH (genLargeRecord)
1313
14−import qualified Streamly.Internal.Data.Serialize.TH as Serialize
14+import qualified Streamly.Internal.Data.Serialize as Serialize
1515
1616--------------------------------------------------------------------------------
1717-- Code
benchmark/Streamly/Benchmark/Data/Serialize/TH.hs+1−1
@@ -8,7 +8,7 @@ module Streamly.Benchmark.Data.Serialize.TH (genLargeRecord) where
88
99import Language.Haskell.TH
1010
11−import Streamly.Internal.Data.Serialize.TH.Bottom (makeI)
11+import Streamly.Internal.Data.Serialize (makeI)
1212import Control.DeepSeq (NFData(..))
1313
1414--------------------------------------------------------------------------------
benchmark/Streamly/Benchmark/Unicode/Stream.hs+1−1
@@ -43,7 +43,7 @@ import Streamly.Benchmark.Common
4343import Streamly.Benchmark.Common.Handle
4444
4545#ifdef INSPECTION
46−import Streamly.Internal.Data.Unbox (Unbox)
46+import Streamly.Internal.Data.Serialize (Unbox)
4747import Streamly.Internal.Data.Stream (Step(..))
4848import qualified Streamly.Internal.Data.Fold as Fold
4949import qualified Streamly.Internal.Data.Tuple.Strict as Strict
core/docs/Changelog.md+3−1
@@ -17,9 +17,11 @@
1717* `ParserK` in `Streamly.Data.ParserK` is not specialized to arrays anymore. To
1818 adapt to the new code, change `ParserK a m b` to `ParserK (Array a) m b` where
1919 `Array` comes from `Streamly.Data.Array`.
20−* Internal modules renamed:
20+* Internal module changes:
2121 * Streamly.Internal.Serialize.FromBytes -> Streamly.Internal.Data.Serialize.Parser
2222 * Streamly.Internal.Serialize.ToBytes -> Streamly.Internal.Data.Serialize.Stream
23+ * Streamly.Internal.Data.Unbox is now exported via Streamly.Internal.Data.Serialize
24+ * Streamly.Internal.Data.IORef.Unboxed is now exported via Streamly.Internal.Data.Serialize
2325
2426### Deprecations
2527
core/src/Streamly/Internal/Data/Serialize.hs+20−2
@@ -12,7 +12,19 @@
1212--
1313
1414module Streamly.Internal.Data.Serialize
15− ( module Streamly.Internal.Data.Serialize.Type
15+ (
16+ -- * Unbox
17+ module Streamly.Internal.Data.Unbox
18+ , module Streamly.Internal.Data.Unbox.TH
19+ -- * Unboxed IORef
20+ , module Streamly.Internal.Data.IORef.Unboxed
21+ -- * Serialize
22+ , module Streamly.Internal.Data.Serialize.Type
23+ -- * Serialize TH
24+ , module Streamly.Internal.Data.Serialize.TH
25+ , module Streamly.Internal.Data.Serialize.TH.RecHeader
26+ , module Streamly.Internal.Data.Serialize.TH.Common
27+ , module Streamly.Internal.Data.Serialize.TH.Bottom
1628 ) where
1729
1830--------------------------------------------------------------------------------
@@ -21,7 +33,6 @@ module Streamly.Internal.Data.Serialize
2133
2234import Data.Proxy (Proxy(..))
2335import Streamly.Internal.Data.Array (Array(..))
24−import Streamly.Internal.Data.Unbox (MutableByteArray(..))
2536import GHC.Exts (Int(..), sizeofByteArray#, unsafeCoerce#)
2637import GHC.Word (Word8)
2738
@@ -32,6 +43,13 @@ import GHC.Integer.GMP.Internals (Integer(..), BigNat(..))
3243#endif
3344
3445import Streamly.Internal.Data.Serialize.Type
46+import Streamly.Internal.Data.Unbox
47+import Streamly.Internal.Data.Unbox.TH
48+import Streamly.Internal.Data.Serialize.TH
49+import Streamly.Internal.Data.Serialize.TH.RecHeader
50+import Streamly.Internal.Data.Serialize.TH.Common
51+import Streamly.Internal.Data.Serialize.TH.Bottom
52+import Streamly.Internal.Data.IORef.Unboxed
3553
3654--------------------------------------------------------------------------------
3755-- Common instances
core/src/Streamly/Internal/Data/Serialize/Type.hs+2−1
@@ -7,7 +7,8 @@
77--
88
99module Streamly.Internal.Data.Serialize.Type
10− ( Serialize(..)
10+ (
11+ Serialize(..)
1112 , encode
1213 , encodeAs
1314 , pinnedEncode
core/streamly-core.cabal+8−8
@@ -292,18 +292,10 @@ library
292292 , Streamly.Internal.Data.Producer
293293
294294 -- streamly-core-array-types
295− , Streamly.Internal.Data.Unbox
296295 , Streamly.Internal.Data.Serialize
297− , Streamly.Internal.Data.Unbox.TH
298− , Streamly.Internal.Data.Serialize.TH
299− , Streamly.Internal.Data.Serialize.TH.RecHeader
300− , Streamly.Internal.Data.Serialize.TH.Common
301− , Streamly.Internal.Data.Serialize.TH.Bottom
302296 , Streamly.Internal.Data.Serialize.Parser
303297 , Streamly.Internal.Data.Serialize.Stream
304298
305− -- Unboxed IORef
306− , Streamly.Internal.Data.IORef.Unboxed
307299 -- May depend on streamly-core-stream
308300 , Streamly.Internal.Data.MutArray
309301 , Streamly.Internal.Data.MutArray.Generic
@@ -429,7 +421,15 @@ library
429421
430422 , Streamly.Internal.Data.Array.Type
431423
424+ -- Unboxed IORef
425+ , Streamly.Internal.Data.Unbox
426+ , Streamly.Internal.Data.IORef.Unboxed
427+ , Streamly.Internal.Data.Unbox.TH
432428 , Streamly.Internal.Data.Serialize.Type
429+ , Streamly.Internal.Data.Serialize.TH
430+ , Streamly.Internal.Data.Serialize.TH.RecHeader
431+ , Streamly.Internal.Data.Serialize.TH.Common
432+ , Streamly.Internal.Data.Serialize.TH.Bottom
433433
434434 , Streamly.Internal.Data.Producer.Type
435435 , Streamly.Internal.Data.Producer.Source
src/Streamly/Internal/Data/Stream/Concurrent.hs+1−1
@@ -112,7 +112,7 @@ import Streamly.Internal.Data.Stream.Channel.Types
112112import Streamly.Internal.Data.Stream.Channel.Worker (sendWithDoorBell)
113113import Streamly.Internal.Data.Stream (Stream, Step(..))
114114
115−import qualified Streamly.Internal.Data.IORef.Unboxed as Unboxed
115+import qualified Streamly.Internal.Data.Serialize as Unboxed
116116import qualified Streamly.Internal.Data.Stream as Stream
117117import qualified Streamly.Internal.Data.Stream as D
118118import qualified Streamly.Internal.Data.StreamK as K
src/Streamly/Internal/Data/Stream/IsStream/Common.hs+1−1
@@ -79,7 +79,7 @@ import Streamly.Internal.Data.Stream.IsStream.Type
7979import Streamly.Internal.Data.Stream.Serial (SerialT)
8080import Streamly.Internal.Data.Time.Units (AbsTime, RelTime64, addToAbsTime64)
8181import Streamly.Internal.System.IO (defaultChunkSize)
82−import Streamly.Internal.Data.Unbox (Unbox)
82+import Streamly.Data.Serialize (Unbox)
8383
8484import qualified Streamly.Internal.Data.Array as A
8585import qualified Streamly.Internal.Data.Stream.Async as Async
src/Streamly/Internal/Data/Stream/IsStream/Eliminate.hs+1−1
@@ -164,7 +164,7 @@ import Streamly.Internal.Data.Stream.IsStream.Common
164164import Streamly.Internal.Data.Stream.IsStream.Type
165165 (IsStream, fromStreamD, toStreamD)
166166import Streamly.Internal.Data.Stream.Serial (SerialT)
167−import Streamly.Internal.Data.Unbox (Unbox)
167+import Streamly.Data.Serialize (Unbox)
168168
169169import qualified Streamly.Internal.Data.Array as A
170170import qualified Streamly.Internal.Data.Stream.Serial as Stream
src/Streamly/Internal/Data/Stream/IsStream/Generate.hs+2−2
@@ -103,9 +103,9 @@ import Streamly.Internal.Data.Stream.IsStream.Type
103103 (IsStream (..), fromSerial, consM, fromStreamD)
104104import Streamly.Internal.Data.Stream.Serial (SerialT, WSerialT)
105105import Streamly.Internal.Data.Time.Units (AbsTime , RelTime64, addToAbsTime64)
106−import Streamly.Internal.Data.Unbox (Unbox)
106+import Streamly.Data.Serialize (Unbox)
107107
108−import qualified Streamly.Internal.Data.IORef.Unboxed as Unboxed
108+import qualified Streamly.Internal.Data.Serialize as Unboxed
109109 (toStreamD, IORef)
110110import qualified Streamly.Internal.Data.Stream.IsStream.Type as IsStream
111111import qualified Streamly.Internal.Data.Stream.Parallel as Par
src/Streamly/Internal/Data/Stream/IsStream/Reduce.hs+1−1
@@ -180,7 +180,7 @@ import Streamly.Internal.Data.Stream.Serial(toStreamK)
180180import Streamly.Internal.Data.Time.Units
181181 ( AbsTime, MilliSecond64(..), addToAbsTime, toRelTime
182182 , toAbsTime)
183−import Streamly.Internal.Data.Unbox (Unbox)
183+import Streamly.Data.Serialize (Unbox)
184184
185185import qualified Data.Heap as H
186186import qualified Streamly.Internal.Data.Unfold as Unfold
src/Streamly/Internal/Network/Inet/TCP.hs+1−1
@@ -111,7 +111,7 @@ import Streamly.Internal.Data.Array (pinnedWriteNUnsafe)
111111import Streamly.Internal.Data.Fold ( Fold(..) )
112112import Streamly.Data.Stream (Stream)
113113import Streamly.Internal.Data.Tuple.Strict (Tuple'(..))
114−import Streamly.Internal.Data.Unbox (Unbox)
114+import Streamly.Data.Serialize (Unbox)
115115import Streamly.Data.Unfold (Unfold)
116116import Streamly.Internal.Network.Socket (SockSpec(..), accept, acceptor)
117117import Streamly.Internal.System.IO (defaultChunkSize)
src/Streamly/Internal/Network/Socket.hs+1−1
@@ -72,7 +72,7 @@ import Control.Monad.IO.Class (MonadIO(..))
7272import Data.Maybe (isNothing, fromJust)
7373import Data.Word (Word8)
7474import Foreign.Ptr (plusPtr, Ptr, castPtr)
75−import Streamly.Internal.Data.Unbox (Unbox)
75+import Streamly.Data.Serialize (Unbox)
7676import Network.Socket
7777 (Socket, SocketOption(..), Family(..), SockAddr(..),
7878 ProtocolNumber, withSocketsDo, SocketType(..), socket, bind,
src/Streamly/Network/Socket.hs+1−1
@@ -138,7 +138,7 @@ import Data.Word (Word8)
138138import Network.Socket (Socket, SockAddr)
139139import Streamly.Internal.Data.Unfold (Unfold(..))
140140import Streamly.Internal.Data.Array (Array(..))
141−import Streamly.Internal.Data.Unbox (Unbox)
141+import Streamly.Data.Serialize (Unbox)
142142
143143import Streamly.Internal.Network.Socket hiding (accept, read, readChunks)
144144import Prelude hiding (read)
test/Streamly/Test/Data/Array.hs+1−1
@@ -14,7 +14,7 @@ import Data.Proxy (Proxy(..))
1414import Data.Word(Word8)
1515import Foreign.Storable (peek)
1616import GHC.Ptr (plusPtr)
17−import Streamly.Internal.Data.Unbox (Unbox, sizeOf)
17+import Streamly.Internal.Data.Serialize (Unbox, sizeOf)
1818import Streamly.Internal.Data.MutArray (MutArray)
1919import Test.QuickCheck (chooseInt, listOf)
2020
test/Streamly/Test/Data/MutArray.hs+1−1
@@ -13,7 +13,7 @@ import GHC.Int (Int16(..), Int32(..), Int64(..), Int8(..))
1313import GHC.Real (Ratio(..))
1414import GHC.Stable (StablePtr(..))
1515import GHC.Word (Word16(..), Word32(..), Word64(..), Word8(..))
16−import Streamly.Internal.Data.Unbox (Unbox)
16+import Streamly.Internal.Data.Serialize (Unbox)
1717import Streamly.Test.Common (chooseInt)
1818import Test.Hspec (hspec, describe, it)
1919import Test.Hspec.QuickCheck
test/Streamly/Test/Data/Serialize.hs+1−3
@@ -22,13 +22,11 @@ module Streamly.Test.Data.Serialize (main) where
2222--------------------------------------------------------------------------------
2323
2424import System.Random (randomRIO)
25−import Streamly.Internal.Data.Unbox (MutableByteArray, newBytes)
25+import Streamly.Internal.Data.Serialize (MutableByteArray, newBytes)
2626import GHC.Generics (Generic)
2727import Streamly.Data.Serialize (Serialize)
2828import Streamly.Test.Data.Serialize.TH (genDatatype)
2929
30−import qualified Streamly.Internal.Data.Serialize.TH as Serialize
31−
3230import Data.Functor.Identity (Identity (..))
3331
3432import qualified Streamly.Internal.Data.Array as Array
test/Streamly/Test/Data/Serialize/CompatV0.hs+1−1
@@ -11,7 +11,7 @@ module Streamly.Test.Data.Serialize.CompatV0
1111
1212import Test.QuickCheck (Arbitrary, arbitrary, elements)
1313import Streamly.Internal.Data.Serialize (Serialize)
14−import qualified Streamly.Internal.Data.Serialize.TH as Serialize
14+import qualified Streamly.Internal.Data.Serialize as Serialize
1515
1616--------------------------------------------------------------------------------
1717-- Types
test/Streamly/Test/Data/Serialize/CompatV1.hs+1−1
@@ -11,7 +11,7 @@ module Streamly.Test.Data.Serialize.CompatV1
1111
1212import Test.QuickCheck (Arbitrary, arbitrary, elements)
1313import Streamly.Internal.Data.Serialize (Serialize)
14−import qualified Streamly.Internal.Data.Serialize.TH as Serialize
14+import qualified Streamly.Internal.Data.Serialize as Serialize
1515
1616--------------------------------------------------------------------------------
1717-- Types
test/Streamly/Test/Data/Unbox.hs+3−25
@@ -27,32 +27,10 @@ import Data.Proxy (Proxy(..))
2727import GHC.Generics (Generic, Rep(..))
2828import GHC.Real (Ratio(..))
2929
30+import Streamly.Internal.Data.Serialize
3031#ifdef USE_SERIALIZE
31−
32−import Streamly.Internal.Data.Serialize (Serialize(..))
33−import qualified Streamly.Internal.Data.Serialize.TH as Serialize
34−
35−#else
36−
37−#ifdef USE_TH
38−import Streamly.Internal.Data.Unbox.TH
39−#endif
40−
41−#endif
42−
43−import Streamly.Internal.Data.Unbox
44− ( PeekRep(..)
45− , PokeRep(..)
46− , SizeOfRep(..)
47− , Unbox(..)
48− , genericPeekByteIndex
49− , genericPokeByteIndex
50− , genericSizeOf
51− , newBytes
52−#ifndef USE_SERIALIZE
53− , MutableByteArray
32+import qualified Streamly.Internal.Data.Serialize as Serialize
5433#endif
55− )
5634
5735import Test.Hspec as H
5836
@@ -271,7 +249,7 @@ testGenericConsistency val = do
271249#ifndef USE_SERIALIZE
272250-- Size is also implicitly tested while serializing and deserializing.
273251checkSizeOf :: forall a. Unbox a => Proxy a -> Int -> IO ()
274−checkSizeOf _ size = sizeOf (Proxy :: Proxy a) `shouldBe` size
252+checkSizeOf _ sz = sizeOf (Proxy :: Proxy a) `shouldBe` sz
275253
276254#endif
277255
test/Streamly/Test/Data/Unbox/TH.hs+2−3
@@ -15,8 +15,7 @@ module Streamly.Test.Data.Unbox.TH (main) where
1515--------------------------------------------------------------------------------
1616
1717import Data.Proxy (Proxy(..))
18−import Streamly.Internal.Data.Unbox.TH
19−import Streamly.Internal.Data.Unbox (Unbox(..), newBytes, pokeByteIndex)
18+import Streamly.Internal.Data.Serialize
2019
2120import Test.Hspec as H
2221
@@ -35,7 +34,7 @@ testSerialization val = do
3534
3635-- Size is also implicitly tested while serializing and deserializing.
3736checkSizeOf :: forall a. Unbox a => Proxy a -> Int -> IO ()
38−checkSizeOf _ size = sizeOf (Proxy :: Proxy a) `shouldBe` size
37+checkSizeOf _ sz = sizeOf (Proxy :: Proxy a) `shouldBe` sz
3938
4039checkSizeOfNew :: forall a. Unbox a => String -> Proxy a -> Int -> Spec
4140checkSizeOfNew tag proxy expectation =
test/Streamly/Test/Prelude/Serial.hs+1−1
@@ -26,7 +26,7 @@ import Data.Maybe ( isJust, fromJust )
2626import Data.Word (Word8)
2727import Data.Semigroup (Sum(..), getSum)
2828import Foreign.Storable (Storable)
29−import Streamly.Internal.Data.Unbox (Unbox)
29+import Streamly.Internal.Data.Serialize (Unbox)
3030import Test.Hspec.QuickCheck
3131import Test.QuickCheck
3232 ( Gen