packages feed

array-primops 0.2.0.0 → 0.2.0.1

raw patch · 4 files changed

+48/−38 lines, 4 filesdep ~basePVP ok

version bump matches the API change (PVP)

Dependency ranges changed: base

API changes (from Hackage documentation)

Files

GHC/Prim/Array.hs view
@@ -12,19 +12,16 @@   ) where  import GHC.Prim+import GHC.Types --- | Prepend an element to an array.-foreign import prim "consArray" consArray_-  :: Any -> Array# a -> Array# a --- | Append an element to the end of an array.+ foreign import prim "snocArray" snocArray_   :: Array# a -> Any -> Array# a  foreign import prim "snocArrayWithPadding" snocArrayWithPadding_   :: Int# -> Any -> Array# a -> Any -> Array# a --- | Insert new element at position. foreign import prim "insertArray" insertArray_   :: Int# -> Any -> Array# a -> Array# a @@ -32,19 +29,27 @@ foreign import prim "deleteArray" deleteArray#   :: Int# -> Array# a -> Array# a +foreign import prim "consArray" consArray_+  :: Any -> Array# a -> Array# a++-- | Prepend an element to an array. consArray# :: a -> Array# a -> Array# a consArray# a arr = consArray_ (unsafeCoerce# a) arr {-# inline consArray# #-} +-- | Append an element to the end of an array. snocArray# :: Array# a -> a -> Array# a snocArray# arr a = snocArray_ arr (unsafeCoerce# a) {-# inline snocArray# #-} +-- | Append an element to the array and pad the end with another element.+--   The first argument is the size of the padding, the second is the pad element. snocArrayWithPadding# :: Int# -> a -> Array# a -> a -> Array# a snocArrayWithPadding# pad padElem arr a =   snocArrayWithPadding_ pad (unsafeCoerce# padElem) arr (unsafeCoerce# a) {-# inline snocArrayWithPadding# #-} +-- | Insert new element at position. insertArray# :: Int# -> a -> Array# a -> Array# a insertArray# i a arr = insertArray_ i (unsafeCoerce# a) arr {-# inline insertArray# #-}
GHC/Prim/SmallArray.hs view
@@ -12,19 +12,18 @@   ) where  import GHC.Prim+import GHC.Types --- | Prepend an element to an array.+ foreign import prim "consSmallArray" consSmallArray_   :: Any -> SmallArray# a -> SmallArray# a --- | Append an element to the end of an array. foreign import prim "snocSmallArray" snocSmallArray_   :: SmallArray# a -> Any -> SmallArray# a  foreign import prim "snocSmallArrayWithPadding" snocSmallArrayWithPadding_   :: Int# -> Any -> SmallArray# a -> Any -> SmallArray# a --- | Insert new element at position. foreign import prim "insertSmallArray" insertSmallArray_   :: Int# -> Any -> SmallArray# a -> SmallArray# a @@ -32,19 +31,24 @@ foreign import prim "deleteSmallArray" deleteSmallArray#   :: Int# -> SmallArray# a -> SmallArray# a +-- | Prepend an element to an array. consSmallArray# :: a -> SmallArray# a -> SmallArray# a consSmallArray# a arr = consSmallArray_ (unsafeCoerce# a) arr {-# inline consSmallArray# #-} +-- | Append an element to the end of an array. snocSmallArray# :: SmallArray# a -> a -> SmallArray# a snocSmallArray# arr a = snocSmallArray_ arr (unsafeCoerce# a) {-# inline snocSmallArray# #-} +-- | Append an element to the array and pad the end with another element.+--   The first argument is the size of the padding, the second is the pad element. snocSmallArrayWithPadding# :: Int# -> a -> SmallArray# a -> a -> SmallArray# a snocSmallArrayWithPadding# pad padElem arr a =   snocSmallArrayWithPadding_ pad (unsafeCoerce# padElem) arr (unsafeCoerce# a) {-# inline snocSmallArrayWithPadding# #-} +-- | Insert new element at position. insertSmallArray# :: Int# -> a -> SmallArray# a -> SmallArray# a insertSmallArray# i a arr = insertSmallArray_ i (unsafeCoerce# a) arr {-# inline insertSmallArray# #-}
array-primops.cabal view
@@ -1,6 +1,6 @@  name:                array-primops-version:             0.2.0.0+version:             0.2.0.1 synopsis:            Extra foreign primops for primitive arrays license:             BSD3 license-file:        LICENSE@@ -9,7 +9,7 @@ copyright:           2015 András Kovács category:            Data build-type:          Simple-cabal-version:       >=1.10     +cabal-version:       >=1.10  description: @@ -28,7 +28,7 @@       GHC.Prim.Array      build-depends:-      base >= 4.7 && <4.9 ,+      base >= 4.7 && <5,       ghc-prim >= 0.3.1.0      c-sources:@@ -46,6 +46,7 @@       cbits/smallArray.cmm  test-suite tests+  default-language: Haskell2010                   hs-source-dirs: tests   main-is: Tests.hs   type: exitcode-stdio-1.0@@ -66,4 +67,4 @@     array-primops,     criterion >= 1.0 -  ghc-options: -O2 -fllvm+  ghc-options: -O2
benchmarks/Benchmarks.hs view
@@ -127,29 +127,29 @@       bgroup "SmallArray" [         bgroup "2" [-           bench "prim"   $ whnf (insertSA 0 10)      sa2,-           bench "slow"   $ whnf (insertSASlow 0 10)  sa2-           -- bench "unsafe" $ whnf (insertSAUnsafe 5 10) sa10+           bench "prim"   $ whnf (insertSA 0 10)       sa2,+           bench "slow"   $ whnf (insertSASlow 0 10)   sa2,+           bench "unsafe" $ whnf (insertSAUnsafe 0 10) sa2            ],         bgroup "5" [-           bench "prim"   $ whnf (insertSA 2 10)      sa5,-           bench "slow"   $ whnf (insertSASlow 2 10)  sa5-           -- bench "unsafe" $ whnf (insertSAUnsafe 5 10) sa10+           bench "prim"   $ whnf (insertSA 2 10)       sa5,+           bench "slow"   $ whnf (insertSASlow 2 10)   sa5,+           bench "unsafe" $ whnf (insertSAUnsafe 2 10) sa5            ],         bgroup "10" [-           bench "prim"   $ whnf (insertSA 5 10)      sa10,-           bench "slow"   $ whnf (insertSASlow 5 10)  sa10-           -- bench "unsafe" $ whnf (insertSAUnsafe 5 10) sa10+           bench "prim"   $ whnf (insertSA 5 10)       sa10,+           bench "slow"   $ whnf (insertSASlow 5 10)   sa10,+           bench "unsafe" $ whnf (insertSAUnsafe 5 10) sa10            ],         bgroup "100" [-           bench "prim"   $ whnf (insertSA 50 10)     sa100,-           bench "slow"   $ whnf (insertSASlow 50 10) sa100-           -- bench "unsafe" $ whnf (insertSAUnsafe 50 10) sa10+           bench "prim"   $ whnf (insertSA 50 10)       sa100,+           bench "slow"   $ whnf (insertSASlow 50 10)   sa100,+           bench "unsafe" $ whnf (insertSAUnsafe 50 10) sa100            ],         bgroup "1000" [-           bench "prim"   $ whnf (insertSA 500 10)     sa1000,-           bench "slow"   $ whnf (insertSASlow 500 10) sa1000-           -- bench "unsafe" $ whnf (insertSAUnsafe 500 10) sa10+           bench "prim"   $ whnf (insertSA 500 10)       sa1000,+           bench "slow"   $ whnf (insertSASlow 500 10)   sa1000,+           bench "unsafe" $ whnf (insertSAUnsafe 500 10) sa1000            ]         ]      ],@@ -174,28 +174,28 @@      bgroup "SmallArray" [         bgroup "2" [            bench "prim"   $ whnf (deleteSA 0)       sa2,-           bench "slow"   $ whnf (deleteSASlow 0)   sa2-           -- bench "unsafe" $ whnf (deleteSAUnsafe 5) sa10+           bench "slow"   $ whnf (deleteSASlow 0)   sa2,+           bench "unsafe" $ whnf (deleteSAUnsafe 0) sa10            ],         bgroup "5" [            bench "prim"   $ whnf (deleteSA 2)       sa5,-           bench "slow"   $ whnf (deleteSASlow 2)   sa5-           -- bench "unsafe" $ whnf (deleteSAUnsafe 5) sa10+           bench "slow"   $ whnf (deleteSASlow 2)   sa5,+           bench "unsafe" $ whnf (deleteSAUnsafe 2) sa5            ],         bgroup "10" [            bench "prim"   $ whnf (deleteSA 5)       sa10,-           bench "slow"   $ whnf (deleteSASlow 5)   sa10-           -- bench "unsafe" $ whnf (deleteSAUnsafe 5) sa10+           bench "slow"   $ whnf (deleteSASlow 5)   sa10,+           bench "unsafe" $ whnf (deleteSAUnsafe 5) sa10            ],         bgroup "100" [            bench "prim"   $ whnf (deleteSA 50)     sa100,-           bench "slow"   $ whnf (deleteSASlow 50) sa100-           -- bench "unsafe" $ whnf (deleteSAUnsafe 50) sa10+           bench "slow"   $ whnf (deleteSASlow 50) sa100,+           bench "unsafe" $ whnf (deleteSAUnsafe 50) sa100            ],         bgroup "1000" [-           bench "prim"   $ whnf (deleteSA 500)     sa1000,-           bench "slow"   $ whnf (deleteSASlow 500) sa1000-           -- bench "unsafe" $ whnf (deleteSAUnsafe 500) sa10+           bench "prim"   $ whnf (deleteSA 500)       sa1000,+           bench "slow"   $ whnf (deleteSASlow 500)   sa1000,+           bench "unsafe" $ whnf (deleteSAUnsafe 500) sa1000            ]         ]      ]