packages feed

indexation 0.5 → 0.5.0.1

raw patch · 3 files changed

+11/−9 lines, 3 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

Files

indexation.cabal view
@@ -1,5 +1,5 @@ name: indexation-version: 0.5+version: 0.5.0.1 category: Data synopsis: Tools for entity indexation description: A set of tools for indexing entities
library/Indexation/Types.hs view
@@ -5,7 +5,7 @@ import qualified Data.HashTable.IO as HashtablesIO  -data Indexer entity = Indexer {-# UNPACK #-} !(IORef Int) {-# UNPACK #-} !(HashtablesIO.CuckooHashTable entity Int)+data Indexer entity = Indexer {-# UNPACK #-} !(IORef Int) {-# UNPACK #-} !(HashtablesIO.BasicHashTable entity Int)  data IndexTable entity = IndexTable {-# UNPACK #-} !Int {-# UNPACK #-} !(HashMap entity Int) 
library/Indexation/Vector.hs view
@@ -7,6 +7,7 @@ import qualified Data.HashMap.Strict as HashMap import qualified DeferredFolds.UnfoldM as UnfoldM import qualified Data.HashTable.IO as HashtablesIO+import qualified Data.HashTable.Class as HashtablesClass   {-|@@ -35,12 +36,13 @@ {-# INLINE indexHashMapWithSize #-} indexHashMapWithSize :: Int -> HashMap element Int -> Vector element indexHashMapWithSize size hashMap =-  unsafePerformIO $ do-    mv <- MutableVector.unsafeNew size-    let-      step () element index = unsafeDupablePerformIO (MutableVector.write mv index element)-      !() = HashMap.foldlWithKey' step () hashMap-      in freeze mv+  runST $ do+    mv <- MutableVector.new size+    HashMap.foldrWithKey+      (\ element index action -> MutableVector.write mv index element >> action)+      (return ())+      hashMap+    freeze mv  {-# NOINLINE unfoldM #-} unfoldM :: Monad m => Int -> UnfoldM m (Int, element) -> m (Vector element)@@ -53,7 +55,7 @@       !iv <- return (unsafeDupablePerformIO (unsafeFreeze mv))       return iv -hashTable :: Int -> HashtablesIO.CuckooHashTable element Int -> IO (Vector element)+hashTable :: HashtablesClass.HashTable t => Int -> HashtablesIO.IOHashTable t element Int -> IO (Vector element) hashTable size hashTable = do   mv <- MutableVector.unsafeNew size   flip HashtablesIO.mapM_ hashTable $ \ (element, index) -> MutableVector.write mv index element