on master help sign in
Fix library build with dev flag.
345fa5dpranaysashank
src/Streamly/Internal/Data/Array/Storable/Foreign.hs+5−1
@@ -514,7 +514,11 @@ streamTransform f arr =
514--
514--
515-- /Internal/
515-- /Internal/
516--
516--
517+unsafeCast ::
518+#ifdef DEVBUILD
519+ Storable b =>
520+#endif
517−unsafeCast :: Array a -> Array b
521+ Array a -> Array b
518unsafeCast (Array start end) = Array (castForeignPtr start) (castPtr end)
522unsafeCast (Array start end) = Array (castForeignPtr start) (castPtr end)
519
523
520-- | Cast an array into a Word8 array
524-- | Cast an array into a Word8 array
src/Streamly/Internal/Data/Array/Storable/Foreign/Mut/Types.hs+5−1
@@ -193,7 +193,11 @@ data Array a =
193 }
193 }
194
194
195{-# INLINE mutableArray #-}
195{-# INLINE mutableArray #-}
196+mutableArray ::
197+#ifdef DEVBUILD
198+ Storable a =>
199+#endif
196−mutableArray :: ForeignPtr a -> Ptr a -> Ptr a -> Array a
200+ ForeignPtr a -> Ptr a -> Ptr a -> Array a
197mutableArray = Array
201mutableArray = Array
198
202
199-------------------------------------------------------------------------------
203-------------------------------------------------------------------------------
src/Streamly/Internal/Data/Array/Storable/Foreign/Types.hs+13−2
@@ -92,6 +92,9 @@ import Foreign.Storable (Storable(..))
92import GHC.Base (Addr#, nullAddr#)
92import GHC.Base (Addr#, nullAddr#)
93import GHC.Exts (IsList, IsString(..))
93import GHC.Exts (IsList, IsString(..))
94import GHC.ForeignPtr (ForeignPtr(..), newForeignPtr_)
94import GHC.ForeignPtr (ForeignPtr(..), newForeignPtr_)
95+#ifdef DEVBUILD
96+import GHC.ForeignPtr (touchForeignPtr, unsafeForeignPtrToPtr)
97+#endif
95import GHC.IO (unsafePerformIO)
98import GHC.IO (unsafePerformIO)
96import GHC.Ptr (Ptr(..))
99import GHC.Ptr (Ptr(..))
97import Streamly.Internal.Data.Fold.Types (Fold(..), lmap)
100import Streamly.Internal.Data.Fold.Types (Fold(..), lmap)
@@ -232,7 +235,11 @@ spliceTwo arr1 arr2 =
232-- /Internal/
235-- /Internal/
233--
236--
234{-# INLINE fromPtr #-}
237{-# INLINE fromPtr #-}
238+fromPtr ::
239+#ifdef DEVBUILD
240+ Storable a =>
241+#endif
235−fromPtr :: Int -> Ptr a -> Array a
242+ Int -> Ptr a -> Array a
236fromPtr n ptr = MA.unsafeInlineIO $ do
243fromPtr n ptr = MA.unsafeInlineIO $ do
237 fptr <- newForeignPtr_ ptr
244 fptr <- newForeignPtr_ ptr
238 let end = ptr `plusPtr` n
245 let end = ptr `plusPtr` n
@@ -274,7 +281,11 @@ fromPtr n ptr = MA.unsafeInlineIO $ do
274-- /Internal/
281-- /Internal/
275--
282--
276{-# INLINE fromAddr# #-}
283{-# INLINE fromAddr# #-}
284+fromAddr# ::
285+#ifdef DEVBUILD
286+ Storable a =>
287+#endif
277−fromAddr# :: Int -> Addr# -> Array a
288+ Int -> Addr# -> Array a
278fromAddr# n addr# = fromPtr n (castPtr $ Ptr addr#)
289fromAddr# n addr# = fromPtr n (castPtr $ Ptr addr#)
279
290
280-- | Generate a byte array from an 'Addr#' that contains a sequence of NUL
291-- | Generate a byte array from an 'Addr#' that contains a sequence of NUL
test/MaxRate.hs+2
@@ -1,3 +1,5 @@
1+{-# LANGUAGE CPP #-}
2+
1import Streamly
3import Streamly
2import qualified Streamly.Prelude as S
4import qualified Streamly.Prelude as S
3import Streamly.Internal.Data.Time.Clock (getTime, Clock(..))
5import Streamly.Internal.Data.Time.Clock (getTime, Clock(..))