hashtables 1.2.4.2 → 1.3
raw patch · 4 files changed
+48/−33 lines, 4 filesdep ~hashablePVP ok
version bump matches the API change (PVP)
Dependency ranges changed: hashable
API changes (from Hackage documentation)
Files
- cabal.project +4/−0
- changelog.md +11/−0
- hashtables.cabal +3/−3
- src/Data/HashTable/IO.hs +30/−30
cabal.project view
@@ -1,1 +1,5 @@ packages: .++tests: True++test-show-details: direct
changelog.md view
@@ -1,5 +1,16 @@ # Hashtables changelog +## 1.3++Support Hashable 1.4. This new version of Hashable drops the Eq constraint, so the Eq constraint+needs to be dropped in the SPECIALIZE statements in Hashtables.++## 1.2.4.2++Cabal file: add missing other-modules+Silence import warnings. Know that we require ghc >= 7.8.+Fix build with GHC 9.2+ ## 1.2.4.1 Update some test suite dep upper bounds.
hashtables.cabal view
@@ -1,6 +1,6 @@ Cabal-Version: 2.2 Name: hashtables-Version: 1.2.4.2+Version: 1.3 Synopsis: Mutable hash tables in the ST monad Homepage: http://github.com/gregorycollins/hashtables License: BSD-3-Clause@@ -192,7 +192,7 @@ Data.HashTable.Internal.Linear.Bucket Build-depends: base >= 4.7 && <5,- hashable >= 1.1 && <1.2 || >= 1.2.1 && <1.4,+ hashable >= 1.4 && < 1.5, primitive, vector >= 0.7 && <0.13 @@ -270,7 +270,7 @@ cpp-options: -DBOUNDS_CHECKING Build-depends: base >= 4 && <5,- hashable >= 1.1 && <1.2 || >= 1.2.1 && <1.4,+ hashable >= 1.4 && < 1.5, mwc-random >= 0.8 && <0.16, primitive, QuickCheck >= 2.3.0.2,
src/Data/HashTable/IO.hs view
@@ -123,11 +123,11 @@ IOHashTable h k v -> k -> v -> IO () insert h k v = stToIO $ C.insert h k v {-# INLINE insert #-}-{-# SPECIALIZE INLINE insert :: (Eq k, Hashable k) =>+{-# SPECIALIZE INLINE insert :: Hashable k => BasicHashTable k v -> k -> v -> IO () #-}-{-# SPECIALIZE INLINE insert :: (Eq k, Hashable k) =>+{-# SPECIALIZE INLINE insert :: Hashable k => LinearHashTable k v -> k -> v -> IO () #-}-{-# SPECIALIZE INLINE insert :: (Eq k, Hashable k) =>+{-# SPECIALIZE INLINE insert :: Hashable k => CuckooHashTable k v -> k -> v -> IO () #-} @@ -137,11 +137,11 @@ IOHashTable h k v -> k -> IO () delete h k = stToIO $ C.delete h k {-# INLINE delete #-}-{-# SPECIALIZE INLINE delete :: (Eq k, Hashable k) =>+{-# SPECIALIZE INLINE delete :: Hashable k => BasicHashTable k v -> k -> IO () #-}-{-# SPECIALIZE INLINE delete :: (Eq k, Hashable k) =>+{-# SPECIALIZE INLINE delete :: Hashable k => LinearHashTable k v -> k -> IO () #-}-{-# SPECIALIZE INLINE delete :: (Eq k, Hashable k) =>+{-# SPECIALIZE INLINE delete :: Hashable k => CuckooHashTable k v -> k -> IO () #-} @@ -151,11 +151,11 @@ IOHashTable h k v -> k -> IO (Maybe v) lookup h k = stToIO $ C.lookup h k {-# INLINE lookup #-}-{-# SPECIALIZE INLINE lookup :: (Eq k, Hashable k) =>+{-# SPECIALIZE INLINE lookup :: Hashable k => BasicHashTable k v -> k -> IO (Maybe v) #-}-{-# SPECIALIZE INLINE lookup :: (Eq k, Hashable k) =>+{-# SPECIALIZE INLINE lookup :: Hashable k => LinearHashTable k v -> k -> IO (Maybe v) #-}-{-# SPECIALIZE INLINE lookup :: (Eq k, Hashable k) =>+{-# SPECIALIZE INLINE lookup :: Hashable k => CuckooHashTable k v -> k -> IO (Maybe v) #-} ------------------------------------------------------------------------------@@ -164,11 +164,11 @@ IOHashTable h k v -> k -> IO (Maybe Word) lookupIndex h k = stToIO $ C.lookupIndex h k {-# INLINE lookupIndex #-}-{-# SPECIALIZE INLINE lookupIndex :: (Eq k, Hashable k) =>+{-# SPECIALIZE INLINE lookupIndex :: Hashable k => BasicHashTable k v -> k -> IO (Maybe Word) #-}-{-# SPECIALIZE INLINE lookupIndex :: (Eq k, Hashable k) =>+{-# SPECIALIZE INLINE lookupIndex :: Hashable k => LinearHashTable k v -> k -> IO (Maybe Word) #-}-{-# SPECIALIZE INLINE lookupIndex :: (Eq k, Hashable k) =>+{-# SPECIALIZE INLINE lookupIndex :: Hashable k => CuckooHashTable k v -> k -> IO (Maybe Word) #-} ------------------------------------------------------------------------------@@ -177,11 +177,11 @@ IOHashTable h k v -> Word -> IO (Maybe (Word,k,v)) nextByIndex h k = stToIO $ C.nextByIndex h k {-# INLINE nextByIndex #-}-{-# SPECIALIZE INLINE nextByIndex :: (Eq k, Hashable k) =>+{-# SPECIALIZE INLINE nextByIndex :: Hashable k => BasicHashTable k v -> Word -> IO (Maybe (Word,k,v)) #-}-{-# SPECIALIZE INLINE nextByIndex :: (Eq k, Hashable k) =>+{-# SPECIALIZE INLINE nextByIndex :: Hashable k => LinearHashTable k v -> Word -> IO (Maybe (Word,k,v)) #-}-{-# SPECIALIZE INLINE nextByIndex :: (Eq k, Hashable k) =>+{-# SPECIALIZE INLINE nextByIndex :: Hashable k => CuckooHashTable k v -> Word -> IO (Maybe (Word,k,v)) #-} ------------------------------------------------------------------------------@@ -190,11 +190,11 @@ IOHashTable h k v -> k -> (Maybe v -> IO (Maybe v, a)) -> IO a mutateIO h k f = stToIO $ C.mutateST h k (ioToST . f) {-# INLINE mutateIO #-}-{-# SPECIALIZE INLINE mutateIO :: (Eq k, Hashable k) =>+{-# SPECIALIZE INLINE mutateIO :: Hashable k => BasicHashTable k v -> k -> (Maybe v -> IO (Maybe v, a)) -> IO a #-}-{-# SPECIALIZE INLINE mutateIO :: (Eq k, Hashable k) =>+{-# SPECIALIZE INLINE mutateIO :: Hashable k => LinearHashTable k v -> k -> (Maybe v -> IO (Maybe v, a)) -> IO a #-}-{-# SPECIALIZE INLINE mutateIO :: (Eq k, Hashable k) =>+{-# SPECIALIZE INLINE mutateIO :: Hashable k => CuckooHashTable k v -> k -> (Maybe v -> IO (Maybe v, a)) -> IO a #-} ------------------------------------------------------------------------------@@ -203,11 +203,11 @@ IOHashTable h k v -> k -> (Maybe v -> (Maybe v, a)) -> IO a mutate h k f = stToIO $ C.mutate h k f {-# INLINE mutate #-}-{-# SPECIALIZE INLINE mutate :: (Eq k, Hashable k) =>+{-# SPECIALIZE INLINE mutate :: Hashable k => BasicHashTable k v -> k -> (Maybe v -> (Maybe v, a)) -> IO a #-}-{-# SPECIALIZE INLINE mutate :: (Eq k, Hashable k) =>+{-# SPECIALIZE INLINE mutate :: Hashable k => LinearHashTable k v -> k -> (Maybe v -> (Maybe v, a)) -> IO a #-}-{-# SPECIALIZE INLINE mutate :: (Eq k, Hashable k) =>+{-# SPECIALIZE INLINE mutate :: Hashable k => CuckooHashTable k v -> k -> (Maybe v -> (Maybe v, a)) -> IO a #-} @@ -218,11 +218,11 @@ [(k,v)] -> IO (IOHashTable h k v) fromList = stToIO . C.fromList {-# INLINE fromList #-}-{-# SPECIALIZE INLINE fromList :: (Eq k, Hashable k) =>+{-# SPECIALIZE INLINE fromList :: Hashable k => [(k,v)] -> IO (BasicHashTable k v) #-}-{-# SPECIALIZE INLINE fromList :: (Eq k, Hashable k) =>+{-# SPECIALIZE INLINE fromList :: Hashable k => [(k,v)] -> IO (LinearHashTable k v) #-}-{-# SPECIALIZE INLINE fromList :: (Eq k, Hashable k) =>+{-# SPECIALIZE INLINE fromList :: Hashable k => [(k,v)] -> IO (CuckooHashTable k v) #-} @@ -233,11 +233,11 @@ Int -> [(k,v)] -> IO (IOHashTable h k v) fromListWithSizeHint n = stToIO . C.fromListWithSizeHint n {-# INLINE fromListWithSizeHint #-}-{-# SPECIALIZE INLINE fromListWithSizeHint :: (Eq k, Hashable k) =>+{-# SPECIALIZE INLINE fromListWithSizeHint :: Hashable k => Int -> [(k,v)] -> IO (BasicHashTable k v) #-}-{-# SPECIALIZE INLINE fromListWithSizeHint :: (Eq k, Hashable k) =>+{-# SPECIALIZE INLINE fromListWithSizeHint :: Hashable k => Int -> [(k,v)] -> IO (LinearHashTable k v) #-}-{-# SPECIALIZE INLINE fromListWithSizeHint :: (Eq k, Hashable k) =>+{-# SPECIALIZE INLINE fromListWithSizeHint :: Hashable k => Int -> [(k,v)] -> IO (CuckooHashTable k v) #-} @@ -247,11 +247,11 @@ IOHashTable h k v -> IO [(k,v)] toList = stToIO . C.toList {-# INLINE toList #-}-{-# SPECIALIZE INLINE toList :: (Eq k, Hashable k) =>+{-# SPECIALIZE INLINE toList :: Hashable k => BasicHashTable k v -> IO [(k,v)] #-}-{-# SPECIALIZE INLINE toList :: (Eq k, Hashable k) =>+{-# SPECIALIZE INLINE toList :: Hashable k => LinearHashTable k v -> IO [(k,v)] #-}-{-# SPECIALIZE INLINE toList :: (Eq k, Hashable k) =>+{-# SPECIALIZE INLINE toList :: Hashable k => CuckooHashTable k v -> IO [(k,v)] #-}