Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package ghc-unordered-containers for
openSUSE:Factory checked in at 2021-12-19 17:34:17
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ghc-unordered-containers (Old)
and /work/SRC/openSUSE:Factory/.ghc-unordered-containers.new.2520 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ghc-unordered-containers"
Sun Dec 19 17:34:17 2021 rev:25 rq:932801 version:0.2.15.0
Changes:
--------
---
/work/SRC/openSUSE:Factory/ghc-unordered-containers/ghc-unordered-containers.changes
2021-06-01 10:40:36.173133917 +0200
+++
/work/SRC/openSUSE:Factory/.ghc-unordered-containers.new.2520/ghc-unordered-containers.changes
2021-12-19 17:34:22.504262343 +0100
@@ -1,0 +2,14 @@
+Wed Nov 10 10:04:09 UTC 2021 - [email protected]
+
+- Update unordered-containers to version 0.2.15.0.
+ ## [0.2.15.0]
+
+ * [Add security advisory regarding hash collision
attacks](https://github.com/haskell-unordered-containers/unordered-containers/pull/320)
+
+ * [Add support for hashable
1.4](https://github.com/haskell-unordered-containers/unordered-containers/pull/324)
+
+ * [Drop support for GHC <
8](https://github.com/haskell-unordered-containers/unordered-containers/pull/323)
+
+ [0.2.15.0]:
https://github.com/haskell-unordered-containers/unordered-containers/compare/v0.2.14.0...v0.2.15.0
+
+-------------------------------------------------------------------
Old:
----
unordered-containers-0.2.14.0.tar.gz
New:
----
unordered-containers-0.2.15.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ghc-unordered-containers.spec ++++++
--- /var/tmp/diff_new_pack.a42PoJ/_old 2021-12-19 17:34:22.980262678 +0100
+++ /var/tmp/diff_new_pack.a42PoJ/_new 2021-12-19 17:34:22.988262684 +0100
@@ -19,7 +19,7 @@
%global pkg_name unordered-containers
%bcond_with tests
Name: ghc-%{pkg_name}
-Version: 0.2.14.0
+Version: 0.2.15.0
Release: 0
Summary: Efficient hashing-based container types
License: BSD-3-Clause
@@ -49,6 +49,12 @@
The declared cost of each operation is either worst-case or amortized, but
remains valid even if structures are shared.
+/Security/
+
+This package currently provides no defenses against hash collision attacks such
+as HashDoS. Users who need to store input from untrusted sources are advised to
+use 'Data.Map' or 'Data.Set' from the 'containers' package instead.
+
%package devel
Summary: Haskell %{pkg_name} library development files
Requires: %{name} = %{version}-%{release}
++++++ unordered-containers-0.2.14.0.tar.gz ->
unordered-containers-0.2.15.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/unordered-containers-0.2.14.0/CHANGES.md
new/unordered-containers-0.2.15.0/CHANGES.md
--- old/unordered-containers-0.2.14.0/CHANGES.md 2001-09-09
03:46:40.000000000 +0200
+++ new/unordered-containers-0.2.15.0/CHANGES.md 2001-09-09
03:46:40.000000000 +0200
@@ -1,3 +1,13 @@
+## [0.2.15.0]
+
+* [Add security advisory regarding hash collision
attacks](https://github.com/haskell-unordered-containers/unordered-containers/pull/320)
+
+* [Add support for hashable
1.4](https://github.com/haskell-unordered-containers/unordered-containers/pull/324)
+
+* [Drop support for GHC <
8](https://github.com/haskell-unordered-containers/unordered-containers/pull/323)
+
+[0.2.15.0]:
https://github.com/haskell-unordered-containers/unordered-containers/compare/v0.2.14.0...v0.2.15.0
+
## [0.2.14.0]
* [Add
`HashMap.mapKeys`.](https://github.com/haskell-unordered-containers/unordered-containers/pull/308)
Thanks, Marco Perone!
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/unordered-containers-0.2.14.0/Data/HashMap/Internal/Array.hs
new/unordered-containers-0.2.15.0/Data/HashMap/Internal/Array.hs
--- old/unordered-containers-0.2.14.0/Data/HashMap/Internal/Array.hs
2001-09-09 03:46:40.000000000 +0200
+++ new/unordered-containers-0.2.15.0/Data/HashMap/Internal/Array.hs
2001-09-09 03:46:40.000000000 +0200
@@ -71,35 +71,19 @@
, fromList
) where
-#if !MIN_VERSION_base(4,8,0)
-import Control.Applicative (Applicative (..), (<$>))
-#endif
import Control.Applicative (liftA2)
import Control.DeepSeq (NFData (..))
import GHC.Exts(Int(..), Int#, reallyUnsafePtrEquality#, tagToEnum#,
unsafeCoerce#, State#)
import GHC.ST (ST(..))
-import Control.Monad.ST (stToIO)
+import Control.Monad.ST (runST, stToIO)
-#if __GLASGOW_HASKELL__ >= 709
import Prelude hiding (filter, foldMap, foldr, foldl, length, map, read,
traverse, all)
-#else
-import Prelude hiding (filter, foldr, foldl, length, map, read, all)
-#endif
-#if __GLASGOW_HASKELL__ >= 710
import GHC.Exts (SmallArray#, newSmallArray#, readSmallArray#,
writeSmallArray#,
indexSmallArray#, unsafeFreezeSmallArray#,
unsafeThawSmallArray#,
SmallMutableArray#, sizeofSmallArray#, copySmallArray#,
thawSmallArray#,
sizeofSmallMutableArray#, copySmallMutableArray#,
cloneSmallMutableArray#)
-#else
-import GHC.Exts (Array#, newArray#, readArray#, writeArray#,
- indexArray#, unsafeFreezeArray#, unsafeThawArray#,
- MutableArray#, sizeofArray#, copyArray#, thawArray#,
- sizeofMutableArray#, copyMutableArray#, cloneMutableArray#)
-import Data.Monoid (Monoid (..))
-#endif
-
#if defined(ASSERTS)
import qualified Prelude
#endif
@@ -108,11 +92,9 @@
import qualified Control.DeepSeq as NF
#endif
-import Data.HashMap.Internal.Unsafe (runST)
import Control.Monad ((>=>))
-#if __GLASGOW_HASKELL__ >= 710
type Array# a = SmallArray# a
type MutableArray# a = SmallMutableArray# a
@@ -175,7 +157,6 @@
-> State# d
-> State# d
copyMutableArray# = copySmallMutableArray#
-#endif
------------------------------------------------------------------------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/unordered-containers-0.2.14.0/Data/HashMap/Internal/Strict.hs
new/unordered-containers-0.2.15.0/Data/HashMap/Internal/Strict.hs
--- old/unordered-containers-0.2.14.0/Data/HashMap/Internal/Strict.hs
2001-09-09 03:46:40.000000000 +0200
+++ new/unordered-containers-0.2.15.0/Data/HashMap/Internal/Strict.hs
2001-09-09 03:46:40.000000000 +0200
@@ -118,11 +118,9 @@
, fromListWithKey
) where
+import Control.Monad.ST (runST)
import Data.Bits ((.&.), (.|.))
-#if !MIN_VERSION_base(4,8,0)
-import Control.Applicative (Applicative (..), (<$>))
-#endif
import qualified Data.List as L
import Data.Hashable (Hashable)
import Prelude hiding (map, lookup)
@@ -135,10 +133,7 @@
differenceWith, intersectionWith, intersectionWithKey, map, mapWithKey,
mapMaybe, mapMaybeWithKey, singleton, update, unionWith, unionWithKey,
traverseWithKey)
-import Data.HashMap.Internal.Unsafe (runST)
-#if MIN_VERSION_base(4,8,0)
import Data.Functor.Identity
-#endif
import Control.Applicative (Const (..))
import Data.Coerce
@@ -329,7 +324,6 @@
-- don't fire.
{-# INLINABLE [0] alterF #-}
-#if MIN_VERSION_base(4,8,0)
-- See notes in Data.HashMap.Internal
test_bottom :: a
test_bottom = error "Data.HashMap.alterF internal error: hit test_bottom"
@@ -424,7 +418,6 @@
Absent -> Nothing
Present v _ -> Just v
{-# INLINABLE alterFEager #-}
-#endif
------------------------------------------------------------------------
-- * Combine
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/unordered-containers-0.2.14.0/Data/HashMap/Internal/Unsafe.hs
new/unordered-containers-0.2.15.0/Data/HashMap/Internal/Unsafe.hs
--- old/unordered-containers-0.2.14.0/Data/HashMap/Internal/Unsafe.hs
2001-09-09 03:46:40.000000000 +0200
+++ new/unordered-containers-0.2.15.0/Data/HashMap/Internal/Unsafe.hs
1970-01-01 01:00:00.000000000 +0100
@@ -1,55 +0,0 @@
-{-# LANGUAGE CPP #-}
-
-#if !MIN_VERSION_base(4,9,0)
-{-# LANGUAGE MagicHash, Rank2Types, UnboxedTuples #-}
-#endif
-
-{-# OPTIONS_HADDOCK not-home #-}
-
--- | = WARNING
---
--- This module is considered __internal__.
---
--- The Package Versioning Policy __does not apply__.
---
--- The contents of this module may change __in any way whatsoever__
--- and __without any warning__ between minor versions of this package.
---
--- Authors importing this module are expected to track development
--- closely.
---
--- = Description
---
--- This module exports a workaround for this bug:
---
--- http://hackage.haskell.org/trac/ghc/ticket/5916
---
--- Please read the comments in ghc/libraries/base/GHC/ST.lhs to
--- understand what's going on here.
---
--- Code that uses this module should be compiled with -fno-full-laziness
-module Data.HashMap.Internal.Unsafe
- ( runST
- ) where
-
-#if MIN_VERSION_base(4,9,0)
--- The GHC issue was fixed in GHC 8.0/base 4.9
-import Control.Monad.ST
-
-#else
-
-import GHC.Base (realWorld#)
-import qualified GHC.ST as ST
-
--- | Return the value computed by a state transformer computation.
--- The @forall@ ensures that the internal state used by the 'ST'
--- computation is inaccessible to the rest of the program.
-runST :: (forall s. ST.ST s a) -> a
-runST st = runSTRep (case st of { ST.ST st_rep -> st_rep })
-{-# INLINE runST #-}
-
-runSTRep :: (forall s. ST.STRep s a) -> a
-runSTRep st_rep = case st_rep realWorld# of
- (# _, r #) -> r
-{-# INLINE [0] runSTRep #-}
-#endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/unordered-containers-0.2.14.0/Data/HashMap/Internal.hs
new/unordered-containers-0.2.15.0/Data/HashMap/Internal.hs
--- old/unordered-containers-0.2.14.0/Data/HashMap/Internal.hs 2001-09-09
03:46:40.000000000 +0200
+++ new/unordered-containers-0.2.15.0/Data/HashMap/Internal.hs 2001-09-09
03:46:40.000000000 +0200
@@ -137,17 +137,11 @@
, adjust#
) where
-#if __GLASGOW_HASKELL__ < 710
-import Control.Applicative ((<$>), Applicative(pure))
-import Data.Monoid (Monoid(mempty, mappend))
-import Data.Traversable (Traversable(..))
-import Data.Word (Word)
-#endif
-#if __GLASGOW_HASKELL__ >= 711
+#if !MIN_VERSION_base(4,11,0)
import Data.Semigroup (Semigroup((<>)))
#endif
import Control.DeepSeq (NFData(rnf))
-import Control.Monad.ST (ST)
+import Control.Monad.ST (ST, runST)
import Data.Bits ((.&.), (.|.), complement, popCount, unsafeShiftL,
unsafeShiftR)
import Data.Data hiding (Typeable)
import qualified Data.Foldable as Foldable
@@ -162,17 +156,14 @@
import qualified Data.HashMap.Internal.Array as A
import qualified Data.Hashable as H
import Data.Hashable (Hashable)
-import Data.HashMap.Internal.Unsafe (runST)
import Data.HashMap.Internal.List (isPermutationBy, unorderedCompare)
import Data.Typeable (Typeable)
import GHC.Exts (isTrue#)
import qualified GHC.Exts as Exts
-#if MIN_VERSION_base(4,9,0)
import Data.Functor.Classes
import GHC.Stack
-#endif
#if MIN_VERSION_hashable(1,2,5)
import qualified Data.Hashable.Lifted as H
@@ -186,9 +177,7 @@
import GHC.Exts (TYPE, Int (..), Int#)
#endif
-#if MIN_VERSION_base(4,8,0)
import Data.Functor.Identity (Identity (..))
-#endif
import Control.Applicative (Const (..))
import Data.Coerce (coerce)
@@ -265,12 +254,10 @@
{-# INLINE foldr' #-}
foldl' = foldl'
{-# INLINE foldl' #-}
-#if MIN_VERSION_base(4,8,0)
null = null
{-# INLINE null #-}
length = size
{-# INLINE length #-}
-#endif
#if MIN_VERSION_base(4,10,0)
-- | @since 0.2.11
@@ -283,7 +270,6 @@
{-# INLINE bifoldl #-}
#endif
-#if __GLASGOW_HASKELL__ >= 711
-- | '<>' = 'union'
--
-- If a key occurs in both maps, the mapping from the first will be the
mapping in the result.
@@ -295,7 +281,6 @@
instance (Eq k, Hashable k) => Semigroup (HashMap k v) where
(<>) = union
{-# INLINE (<>) #-}
-#endif
-- | 'mempty' = 'empty'
--
@@ -310,11 +295,7 @@
instance (Eq k, Hashable k) => Monoid (HashMap k v) where
mempty = empty
{-# INLINE mempty #-}
-#if __GLASGOW_HASKELL__ >= 711
mappend = (<>)
-#else
- mappend = union
-#endif
{-# INLINE mappend #-}
instance (Data k, Data v, Eq k, Hashable k) => Data (HashMap k v) where
@@ -336,7 +317,6 @@
type Bitmap = Word
type Shift = Int
-#if MIN_VERSION_base(4,9,0)
instance Show2 HashMap where
liftShowsPrec2 spk slk spv slv d m =
showsUnaryWith (liftShowsPrec sp sl) "fromList" d (toList m)
@@ -353,7 +333,6 @@
where
rp' = liftReadsPrec rp rl
rl' = liftReadList rp rl
-#endif
instance (Eq k, Hashable k, Read k, Read e) => Read (HashMap k e) where
readPrec = parens $ prec 10 $ do
@@ -371,13 +350,11 @@
traverse f = traverseWithKey (const f)
{-# INLINABLE traverse #-}
-#if MIN_VERSION_base(4,9,0)
instance Eq2 HashMap where
liftEq2 = equal2
instance Eq k => Eq1 (HashMap k) where
liftEq = equal1
-#endif
-- | Note that, in the presence of hash collisions, equal @HashMap@s may
-- behave differently, i.e. substitutivity may be violated:
@@ -441,13 +418,11 @@
leafEq (L k v) (L k' v') = eqk k k' && eqv v v'
-#if MIN_VERSION_base(4,9,0)
instance Ord2 HashMap where
liftCompare2 = cmp
instance Ord k => Ord1 (HashMap k) where
liftCompare = cmp compare
-#endif
-- | The ordering is total and consistent with the `Eq` instance. However,
-- nothing else about the ordering is specified, and it may change from
@@ -775,11 +750,7 @@
-- | /O(log n)/ Return the value to which the specified key is mapped.
-- Calls 'error' if this map contains no mapping for the key.
-#if MIN_VERSION_base(4,9,0)
(!) :: (Eq k, Hashable k, HasCallStack) => HashMap k v -> k -> v
-#else
-(!) :: (Eq k, Hashable k) => HashMap k v -> k -> v
-#endif
(!) m k = case lookup k m of
Just v -> v
Nothing -> error "Data.HashMap.Internal.(!): key not found"
@@ -1331,7 +1302,6 @@
-- rule from firing.
{-# INLINABLE [0] alterF #-}
-#if MIN_VERSION_base(4,8,0)
-- This is just a bottom value. See the comment on the "alterFWeird"
-- rule.
test_bottom :: a
@@ -1448,7 +1418,6 @@
Absent -> Nothing
Present v _ -> Just v
{-# INLINABLE alterFEager #-}
-#endif
-- | /O(n*log m)/ Inclusion of maps. A map is included in another map if the
keys
-- are subsets and the corresponding values are equal:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/unordered-containers-0.2.14.0/Data/HashSet/Internal.hs
new/unordered-containers-0.2.15.0/Data/HashSet/Internal.hs
--- old/unordered-containers-0.2.14.0/Data/HashSet/Internal.hs 2001-09-09
03:46:40.000000000 +0200
+++ new/unordered-containers-0.2.15.0/Data/HashSet/Internal.hs 2001-09-09
03:46:40.000000000 +0200
@@ -1,11 +1,7 @@
{-# LANGUAGE CPP, DeriveDataTypeable #-}
-#if __GLASGOW_HASKELL__ >= 708
{-# LANGUAGE RoleAnnotations #-}
{-# LANGUAGE TypeFamilies #-}
-#endif
-#if __GLASGOW_HASKELL__ >= 702
{-# LANGUAGE Trustworthy #-}
-#endif
{-# OPTIONS_HADDOCK not-home #-}
------------------------------------------------------------------------
@@ -94,16 +90,16 @@
import Control.DeepSeq (NFData(..))
import Data.Data hiding (Typeable)
+import Data.Functor.Classes
import Data.HashMap.Internal
( HashMap, foldMapWithKey, foldlWithKey, foldrWithKey
, equalKeys, equalKeys1)
import Data.Hashable (Hashable(hashWithSalt))
-#if __GLASGOW_HASKELL__ >= 711
+#if !MIN_VERSION_base(4,11,0)
import Data.Semigroup (Semigroup(..))
-#elif __GLASGOW_HASKELL__ < 709
-import Data.Monoid (Monoid(..))
#endif
import GHC.Exts (build)
+import qualified GHC.Exts as Exts
import Prelude hiding (filter, foldr, foldl, map, null)
import qualified Data.Foldable as Foldable
import qualified Data.HashMap.Internal as H
@@ -111,14 +107,6 @@
import Data.Typeable (Typeable)
import Text.Read
-#if __GLASGOW_HASKELL__ >= 708
-import qualified GHC.Exts as Exts
-#endif
-
-#if MIN_VERSION_base(4,9,0)
-import Data.Functor.Classes
-#endif
-
#if MIN_VERSION_hashable(1,2,5)
import qualified Data.Hashable.Lifted as H
#endif
@@ -127,16 +115,12 @@
import qualified Control.DeepSeq as NF
#endif
-import Data.Functor ((<$))
-
-- | A set of values. A set cannot contain duplicate values.
newtype HashSet a = HashSet {
asMap :: HashMap a ()
} deriving (Typeable)
-#if __GLASGOW_HASKELL__ >= 708
type role HashSet nominal
-#endif
instance (NFData a) => NFData (HashSet a) where
rnf = rnf . asMap
@@ -170,19 +154,15 @@
HashSet a == HashSet b = equalKeys a b
{-# INLINE (==) #-}
-#if MIN_VERSION_base(4,9,0)
instance Eq1 HashSet where
liftEq eq (HashSet a) (HashSet b) = equalKeys1 eq a b
-#endif
instance (Ord a) => Ord (HashSet a) where
compare (HashSet a) (HashSet b) = compare a b
{-# INLINE compare #-}
-#if MIN_VERSION_base(4,9,0)
instance Ord1 HashSet where
liftCompare c (HashSet a) (HashSet b) = liftCompare2 c compare a b
-#endif
instance Foldable.Foldable HashSet where
foldMap f = foldMapWithKey (\a _ -> f a) . asMap
@@ -194,16 +174,13 @@
{-# INLINE foldl' #-}
foldr' = foldr'
{-# INLINE foldr' #-}
-#if MIN_VERSION_base(4,8,0)
toList = toList
{-# INLINE toList #-}
null = null
{-# INLINE null #-}
length = size
{-# INLINE length #-}
-#endif
-#if __GLASGOW_HASKELL__ >= 711
-- | '<>' = 'union'
--
-- /O(n+m)/
@@ -218,7 +195,6 @@
instance (Hashable a, Eq a) => Semigroup (HashSet a) where
(<>) = union
{-# INLINE (<>) #-}
-#endif
-- | 'mempty' = 'empty'
--
@@ -236,11 +212,7 @@
instance (Hashable a, Eq a) => Monoid (HashSet a) where
mempty = empty
{-# INLINE mempty #-}
-#if __GLASGOW_HASKELL__ >= 711
mappend = (<>)
-#else
- mappend = union
-#endif
{-# INLINE mappend #-}
instance (Eq a, Hashable a, Read a) => Read (HashSet a) where
@@ -251,11 +223,9 @@
readListPrec = readListPrecDefault
-#if MIN_VERSION_base(4,9,0)
instance Show1 HashSet where
liftShowsPrec sp sl d m =
showsUnaryWith (liftShowsPrec sp sl) "fromList" d (toList m)
-#endif
instance (Show a) => Show (HashSet a) where
showsPrec d m = showParen (d > 10) $
@@ -486,9 +456,7 @@
fromList = HashSet . List.foldl' (\ m k -> H.insert k () m) H.empty
{-# INLINE fromList #-}
-#if __GLASGOW_HASKELL__ >= 708
instance (Eq a, Hashable a) => Exts.IsList (HashSet a) where
type Item (HashSet a) = a
fromList = fromList
toList = toList
-#endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/unordered-containers-0.2.14.0/Data/HashSet.hs
new/unordered-containers-0.2.15.0/Data/HashSet.hs
--- old/unordered-containers-0.2.14.0/Data/HashSet.hs 2001-09-09
03:46:40.000000000 +0200
+++ new/unordered-containers-0.2.15.0/Data/HashSet.hs 2001-09-09
03:46:40.000000000 +0200
@@ -1,7 +1,5 @@
{-# LANGUAGE CPP #-}
-#if __GLASGOW_HASKELL__ >= 702
{-# LANGUAGE Safe #-}
-#endif
------------------------------------------------------------------------
{-|
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/unordered-containers-0.2.14.0/benchmarks/Benchmarks.hs
new/unordered-containers-0.2.15.0/benchmarks/Benchmarks.hs
--- old/unordered-containers-0.2.14.0/benchmarks/Benchmarks.hs 2001-09-09
03:46:40.000000000 +0200
+++ new/unordered-containers-0.2.15.0/benchmarks/Benchmarks.hs 2001-09-09
03:46:40.000000000 +0200
@@ -21,10 +21,6 @@
import qualified Util.Int as UI
import qualified Util.String as US
-#if !MIN_VERSION_bytestring(0,10,0)
-instance NFData BS.ByteString
-#endif
-
data B where
B :: NFData a => a -> B
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/unordered-containers-0.2.14.0/tests/HashMapProperties.hs
new/unordered-containers-0.2.15.0/tests/HashMapProperties.hs
--- old/unordered-containers-0.2.14.0/tests/HashMapProperties.hs
2001-09-09 03:46:40.000000000 +0200
+++ new/unordered-containers-0.2.15.0/tests/HashMapProperties.hs
2001-09-09 03:46:40.000000000 +0200
@@ -27,9 +27,7 @@
import Test.QuickCheck (Arbitrary(..), Property, (==>), (===), forAll,
elements)
import Test.Framework (Test, defaultMain, testGroup)
import Test.Framework.Providers.QuickCheck2 (testProperty)
-#if MIN_VERSION_base(4,8,0)
import Data.Functor.Identity (Identity (..))
-#endif
import Control.Applicative (Const (..))
import Test.QuickCheck.Function (Fun, apply)
import Test.QuickCheck.Poly (A, B)
@@ -197,12 +195,6 @@
===
fmap toAscList (HM.alterF (apply f) k (HM.fromList xs))
-#if !MIN_VERSION_base(4,8,0)
-newtype Identity a = Identity {runIdentity :: a}
-instance Functor Identity where
- fmap f (Identity x) = Identity (f x)
-#endif
-
pAlterFAdjust :: Key -> [(Key, Int)] -> Bool
pAlterFAdjust k =
runIdentity . M.alterF (Identity . fmap succ) k `eq_`
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/unordered-containers-0.2.14.0/tests/HashSetProperties.hs
new/unordered-containers-0.2.15.0/tests/HashSetProperties.hs
--- old/unordered-containers-0.2.14.0/tests/HashSetProperties.hs
2001-09-09 03:46:40.000000000 +0200
+++ new/unordered-containers-0.2.15.0/tests/HashSetProperties.hs
2001-09-09 03:46:40.000000000 +0200
@@ -136,21 +136,13 @@
(L.sort . S.foldr (:) [])
foldrSet :: (a -> b -> b) -> b -> Set.Set a -> b
-#if MIN_VERSION_containers(0,4,2)
foldrSet = Set.foldr
-#else
-foldrSet = Foldable.foldr
-#endif
pFoldl' :: Int -> [Int] -> Bool
pFoldl' z0 = foldl'Set (+) z0 `eq` S.foldl' (+) z0
foldl'Set :: (a -> b -> a) -> a -> Set.Set b -> a
-#if MIN_VERSION_containers(0,4,2)
foldl'Set = Set.foldl'
-#else
-foldl'Set = Foldable.foldl'
-#endif
------------------------------------------------------------------------
-- ** Filter
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/unordered-containers-0.2.14.0/tests/Regressions.hs
new/unordered-containers-0.2.15.0/tests/Regressions.hs
--- old/unordered-containers-0.2.14.0/tests/Regressions.hs 2001-09-09
03:46:40.000000000 +0200
+++ new/unordered-containers-0.2.15.0/tests/Regressions.hs 2001-09-09
03:46:40.000000000 +0200
@@ -3,7 +3,6 @@
{-# LANGUAGE UnboxedTuples #-}
module Main where
-import Control.Applicative ((<$>))
import Control.Exception (evaluate)
import Control.Monad (replicateM)
import Data.Hashable (Hashable(..))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/unordered-containers-0.2.14.0/tests/Strictness.hs
new/unordered-containers-0.2.15.0/tests/Strictness.hs
--- old/unordered-containers-0.2.14.0/tests/Strictness.hs 2001-09-09
03:46:40.000000000 +0200
+++ new/unordered-containers-0.2.15.0/tests/Strictness.hs 2001-09-09
03:46:40.000000000 +0200
@@ -14,11 +14,6 @@
import Control.Arrow (second)
import Control.Monad (guard)
import Data.Foldable (foldl')
-#if !MIN_VERSION_base(4,8,0)
-import Data.Functor ((<$))
-import Data.Foldable (all)
-import Prelude hiding (all)
-#endif
import Data.HashMap.Strict (HashMap)
import qualified Data.HashMap.Strict as HM
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/unordered-containers-0.2.14.0/unordered-containers.cabal
new/unordered-containers-0.2.15.0/unordered-containers.cabal
--- old/unordered-containers-0.2.14.0/unordered-containers.cabal
2001-09-09 03:46:40.000000000 +0200
+++ new/unordered-containers-0.2.15.0/unordered-containers.cabal
2001-09-09 03:46:40.000000000 +0200
@@ -1,5 +1,5 @@
name: unordered-containers
-version: 0.2.14.0
+version: 0.2.15.0
synopsis: Efficient hashing-based container types
description:
Efficient hashing-based container types. The containers have been
@@ -8,6 +8,13 @@
.
The declared cost of each operation is either worst-case or
amortized, but remains valid even if structures are shared.
+ .
+ /Security/
+ .
+ This package currently provides no defenses against hash collision attacks
+ such as HashDoS.
+ Users who need to store input from untrusted sources are advised to use
+ @Data.Map@ or @Data.Set@ from the @containers@ package instead.
license: BSD3
license-file: LICENSE
author: Johan Tibell
@@ -22,15 +29,14 @@
extra-source-files: CHANGES.md
tested-with:
- GHC ==9.0.1
- || ==8.10.4
+ GHC ==9.2.1
+ || ==9.0.1
+ || ==8.10.7
|| ==8.8.4
|| ==8.6.5
|| ==8.4.4
|| ==8.2.2
|| ==8.0.2
- || ==7.10.3
- || ==7.8.4
flag debug
description: Enable debug support
@@ -42,16 +48,15 @@
Data.HashMap.Internal.Array
Data.HashMap.Internal.List
Data.HashMap.Internal.Strict
- Data.HashMap.Internal.Unsafe
Data.HashMap.Lazy
Data.HashMap.Strict
Data.HashSet
Data.HashSet.Internal
build-depends:
- base >= 4.7 && < 5,
+ base >= 4.9 && < 5,
deepseq >= 1.1,
- hashable >= 1.0.1.1 && < 1.4
+ hashable >= 1.0.1.1 && < 1.5
default-language: Haskell2010
@@ -115,7 +120,7 @@
build-depends:
base,
- containers >= 0.4,
+ containers >= 0.4.2.0,
hashable >= 1.0.1.1,
QuickCheck >= 2.4.0.1,
test-framework >= 0.3.3,
@@ -195,7 +200,7 @@
build-depends:
base >= 4.8.0,
- bytestring,
+ bytestring >= 0.10.0.0,
containers,
gauge >= 0.2.5 && < 0.3,
deepseq >= 1.4,