unordered-containers 0.1.4.3 → 0.1.4.4
raw patch · 5 files changed
+26/−15 lines, 5 filesdep ~base
Dependency ranges changed: base
Files
- Data/HashMap/Lazy.hs +1/−1
- Data/HashSet.hs +10/−6
- benchmarks/Benchmarks.hs +4/−0
- benchmarks/Makefile +9/−6
- unordered-containers.cabal +2/−2
Data/HashMap/Lazy.hs view
@@ -127,7 +127,7 @@ lookupDefault def k t = case lookup k t of Just v -> v _ -> def-{-# INLINE lookupDefault #-}+{-# INLINABLE lookupDefault #-} -- | /O(1)/ Construct a map with a single element. singleton :: Hashable k => k -> v -> HashMap k v
Data/HashSet.hs view
@@ -136,26 +136,30 @@ member a s = case H.lookup a (asMap s) of Just _ -> True _ -> False-{-# INLINE member #-}+#if __GLASGOW_HASKELL__ >= 700+{-# INLINABLE member #-}+#endif -- | /O(min(n,W))/ Add the specified value to this set. insert :: (Eq a, Hashable a) => a -> HashSet a -> HashSet a insert a = HashSet . H.insert a () . asMap-{-# INLINE insert #-}+#if __GLASGOW_HASKELL__ >= 700+{-# INLINABLE insert #-}+#endif -- | /O(min(n,W))/ Remove the specified value from this set if -- present. delete :: (Eq a, Hashable a) => a -> HashSet a -> HashSet a delete a = HashSet . H.delete a . asMap-{-# INLINE delete #-}+#if __GLASGOW_HASKELL__ >= 700+{-# INLINABLE delete #-}+#endif -- | /O(n)/ Transform this set by applying a function to every value. -- The resulting set may be smaller than the source. map :: (Hashable b, Eq b) => (a -> b) -> HashSet a -> HashSet b map f = fromList . List.map f . toList-#if __GLASGOW_HASKELL__ >= 700-{-# INLINABLE map #-}-#endif+{-# INLINE map #-} -- | /O(n)/ Difference of two sets. Return elements of the first set -- not existing in the second.
benchmarks/Benchmarks.hs view
@@ -128,6 +128,10 @@ -- Transformations , bench "map" $ whnf (HM.map (\ v -> v + 1)) hmi + -- * Difference and intersection+ , bench "difference" $ whnf (HM.difference hmi) hmi2+ , bench "intersection" $ whnf (HM.intersection hmi) hmi2+ -- Folds , bench "foldl'" $ whnf (HM.foldl' (+) 0) hmi , bench "foldr" $ whnf (HM.foldr (:) []) hmi
benchmarks/Makefile view
@@ -6,11 +6,8 @@ lib-suffix := endif -ifdef GHC- ghc:= $(GHC)-else- ghc := ghc-endif+ghc := ghc+extra-ghc-flags := package := unordered-containers version := $(shell awk '/^version:/{print $$2}' ../$(package).cabal)@@ -19,7 +16,9 @@ -package-conf ../dist/package.conf.inplace -package base -package mtl \ -package unordered-containers -package containers -package criterion \ -package deepseq -package hashable -package random -package bytestring \- $(ghc-prof-flags)+ $(ghc-prof-flags) -rtsopts+ghc-flags += $(extra-ghc-flags)+criterion-flags := %.o: %.hs $(ghc) $(ghc-flags) -c -o $@ $<@@ -32,6 +31,10 @@ bench: $(lib) Benchmarks.o Util/Int.o Util/ByteString.o Util/String.o ranlib $(lib) $(ghc) $(ghc-flags) -threaded -o $@ $(filter %.o,$^) $(lib)++.PHONY: bench-all+bench-all: bench+ ./bench $(criterion-flags) +RTS -H -RTS `./bench -l | sed 's/ *\(.*\)/\1/' | grep -v "Benchmarks:\|IntMap\|Map"` .PHONY: clean clean:
unordered-containers.cabal view
@@ -1,5 +1,5 @@ name: unordered-containers-version: 0.1.4.3+version: 0.1.4.4 synopsis: Efficient hashing-based container types description: Efficient hashing-based container types. The containers have been@@ -35,7 +35,7 @@ Data.HashSet build-depends:- base >= 4 && < 4.5,+ base >= 4 && < 4.6, deepseq >= 1.1 && < 1.3, hashable >= 1.0.1.1 && < 1.2