on master help sign in
Fix library build with dev flag.
commit345fa5d5de02774c0bf5678bd453322639d30851 authorpranaysashank <pranaysashank@composewell.com> dateTue 20 Oct 2020, 23:54 (6 years ago) parentcaf0b55
4 files changed+25−4
src/Streamly/Internal/Data/Array/Storable/Foreign.hs+5−1 src/Streamly/Internal/Data/Array/Storable/Foreign/Mut/Types.hs+5−1 src/Streamly/Internal/Data/Array/Storable/Foreign/Types.hs+13−2 test/MaxRate.hs+2
src/Streamly/Internal/Data/Array/Storable/Foreign.hs+5−1
@@ -514,7 +514,11 @@ streamTransform f arr =
514514--
515515-- /Internal/
516516--
517−unsafeCast :: Array a -> Array b
517+unsafeCast ::
518+#ifdef DEVBUILD
519+ Storable b =>
520+#endif
521+ Array a -> Array b
518522unsafeCast (Array start end) = Array (castForeignPtr start) (castPtr end)
519523
520524-- | 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 =
193193 }
194194
195195{-# INLINE mutableArray #-}
196−mutableArray :: ForeignPtr a -> Ptr a -> Ptr a -> Array a
196+mutableArray ::
197+#ifdef DEVBUILD
198+ Storable a =>
199+#endif
200+ ForeignPtr a -> Ptr a -> Ptr a -> Array a
197201mutableArray = Array
198202
199203-------------------------------------------------------------------------------
src/Streamly/Internal/Data/Array/Storable/Foreign/Types.hs+13−2
@@ -92,6 +92,9 @@ import Foreign.Storable (Storable(..))
9292import GHC.Base (Addr#, nullAddr#)
9393import GHC.Exts (IsList, IsString(..))
9494import GHC.ForeignPtr (ForeignPtr(..), newForeignPtr_)
95+#ifdef DEVBUILD
96+import GHC.ForeignPtr (touchForeignPtr, unsafeForeignPtrToPtr)
97+#endif
9598import GHC.IO (unsafePerformIO)
9699import GHC.Ptr (Ptr(..))
97100import Streamly.Internal.Data.Fold.Types (Fold(..), lmap)
@@ -232,7 +235,11 @@ spliceTwo arr1 arr2 =
232235-- /Internal/
233236--
234237{-# INLINE fromPtr #-}
235−fromPtr :: Int -> Ptr a -> Array a
238+fromPtr ::
239+#ifdef DEVBUILD
240+ Storable a =>
241+#endif
242+ Int -> Ptr a -> Array a
236243fromPtr n ptr = MA.unsafeInlineIO $ do
237244 fptr <- newForeignPtr_ ptr
238245 let end = ptr `plusPtr` n
@@ -274,7 +281,11 @@ fromPtr n ptr = MA.unsafeInlineIO $ do
274281-- /Internal/
275282--
276283{-# INLINE fromAddr# #-}
277−fromAddr# :: Int -> Addr# -> Array a
284+fromAddr# ::
285+#ifdef DEVBUILD
286+ Storable a =>
287+#endif
288+ Int -> Addr# -> Array a
278289fromAddr# n addr# = fromPtr n (castPtr $ Ptr addr#)
279290
280291-- | 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+
13import Streamly
24import qualified Streamly.Prelude as S
35import Streamly.Internal.Data.Time.Clock (getTime, Clock(..))