Hello community, here is the log from the commit of package ghc-vector-algorithms for openSUSE:Factory checked in at 2019-12-27 13:59:00 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/ghc-vector-algorithms (Old) and /work/SRC/openSUSE:Factory/.ghc-vector-algorithms.new.6675 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ghc-vector-algorithms" Fri Dec 27 13:59:00 2019 rev:11 rq:759556 version:0.8.0.3 Changes: -------- --- /work/SRC/openSUSE:Factory/ghc-vector-algorithms/ghc-vector-algorithms.changes 2019-06-19 21:13:15.086792275 +0200 +++ /work/SRC/openSUSE:Factory/.ghc-vector-algorithms.new.6675/ghc-vector-algorithms.changes 2019-12-27 13:59:02.052822564 +0100 @@ -1,0 +2,13 @@ +Tue Dec 3 09:19:16 UTC 2019 - psim...@suse.com + +- Update vector-algorithms to version 0.8.0.3. + Upstream added a new change log file in this release. With no + previous version to compare against, the automatic updater cannot + reliable determine the relevante entries for this release. + +------------------------------------------------------------------- +Fri Nov 8 16:15:10 UTC 2019 - Peter Simons <psim...@suse.com> + +- Drop obsolete group attributes. + +------------------------------------------------------------------- Old: ---- vector-algorithms-0.8.0.1.tar.gz vector-algorithms.cabal New: ---- vector-algorithms-0.8.0.3.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ ghc-vector-algorithms.spec ++++++ --- /var/tmp/diff_new_pack.HYIXPj/_old 2019-12-27 13:59:04.992823984 +0100 +++ /var/tmp/diff_new_pack.HYIXPj/_new 2019-12-27 13:59:04.996823986 +0100 @@ -19,14 +19,12 @@ %global pkg_name vector-algorithms %bcond_with tests Name: ghc-%{pkg_name} -Version: 0.8.0.1 +Version: 0.8.0.3 Release: 0 Summary: Efficient algorithms for vector arrays License: BSD-3-Clause -Group: Development/Libraries/Haskell URL: https://hackage.haskell.org/package/%{pkg_name} Source0: https://hackage.haskell.org/package/%{pkg_name}-%{version}/%{pkg_name}-%{version}.tar.gz -Source1: https://hackage.haskell.org/package/%{pkg_name}-%{version}/revision/2.cabal#/%{pkg_name}.cabal BuildRequires: ghc-Cabal-devel BuildRequires: ghc-bytestring-devel BuildRequires: ghc-primitive-devel @@ -43,7 +41,6 @@ %package devel Summary: Haskell %{pkg_name} library development files -Group: Development/Libraries/Haskell Requires: %{name} = %{version}-%{release} Requires: ghc-compiler = %{ghc_version} Requires(post): ghc-compiler = %{ghc_version} @@ -55,7 +52,6 @@ %prep %setup -q -n %{pkg_name}-%{version} -cp -p %{SOURCE1} %{pkg_name}.cabal %build %ghc_lib_build @@ -76,5 +72,6 @@ %license LICENSE %files devel -f %{name}-devel.files +%doc CHANGELOG.md %changelog ++++++ vector-algorithms-0.8.0.1.tar.gz -> vector-algorithms-0.8.0.3.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vector-algorithms-0.8.0.1/CHANGELOG.md new/vector-algorithms-0.8.0.3/CHANGELOG.md --- old/vector-algorithms-0.8.0.1/CHANGELOG.md 1970-01-01 01:00:00.000000000 +0100 +++ new/vector-algorithms-0.8.0.3/CHANGELOG.md 2001-09-09 03:46:40.000000000 +0200 @@ -0,0 +1,10 @@ +## Version 0.8.0.3 (2019-12-02) + +- Fix out-of-bounds access in Timsort. + +## Version 0.8.0.2 (2019-11-28) + +- Bump upper bounds on primitive and QuickCheck. +- Expose 'terminate' function from 'AmericanFlag' module. +- Fix an off-by-one error in Data.Vector.Algorithms.Heaps.heapInsert. + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vector-algorithms-0.8.0.1/src/Data/Vector/Algorithms/AmericanFlag.hs new/vector-algorithms-0.8.0.3/src/Data/Vector/Algorithms/AmericanFlag.hs --- old/vector-algorithms-0.8.0.1/src/Data/Vector/Algorithms/AmericanFlag.hs 2018-10-09 03:32:06.000000000 +0200 +++ new/vector-algorithms-0.8.0.3/src/Data/Vector/Algorithms/AmericanFlag.hs 2001-09-09 03:46:40.000000000 +0200 @@ -28,6 +28,7 @@ module Data.Vector.Algorithms.AmericanFlag ( sort , sortBy + , terminate , Lexicographic(..) ) where diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vector-algorithms-0.8.0.1/src/Data/Vector/Algorithms/Heap.hs new/vector-algorithms-0.8.0.3/src/Data/Vector/Algorithms/Heap.hs --- old/vector-algorithms-0.8.0.1/src/Data/Vector/Algorithms/Heap.hs 2018-10-09 03:32:06.000000000 +0200 +++ new/vector-algorithms-0.8.0.3/src/Data/Vector/Algorithms/Heap.hs 2001-09-09 03:46:40.000000000 +0200 @@ -265,8 +265,8 @@ where sift k | k <= 0 = unsafeWrite v l e - | otherwise = let pi = l + shiftR (k-1) 2 - in unsafeRead v pi >>= \p -> case cmp p e of + | otherwise = let pi = shiftR (k-1) 2 + in unsafeRead v (l + pi) >>= \p -> case cmp p e of LT -> unsafeWrite v (l + k) p >> sift pi _ -> unsafeWrite v (l + k) e {-# INLINE heapInsert #-} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vector-algorithms-0.8.0.1/src/Data/Vector/Algorithms/Tim.hs new/vector-algorithms-0.8.0.3/src/Data/Vector/Algorithms/Tim.hs --- old/vector-algorithms-0.8.0.1/src/Data/Vector/Algorithms/Tim.hs 2018-10-09 03:32:06.000000000 +0200 +++ new/vector-algorithms-0.8.0.3/src/Data/Vector/Algorithms/Tim.hs 2001-09-09 03:46:40.000000000 +0200 @@ -241,34 +241,41 @@ gt a b = cmp a b == GT gte a b = cmp a b /= LT tmpBufLen = m - l - iter _ i _ _ _ _ _ _ | i >= tmpBufLen = return () - iter tmpBuf i j k _ _ _ _ | j >= u = do + + finalize tmpBuf i k = do let from = unsafeSlice i (tmpBufLen-i) tmpBuf to = unsafeSlice k (tmpBufLen-i) vec unsafeCopy to from + + iter _ i _ _ _ _ _ _ | i >= tmpBufLen = return () + iter tmpBuf i j k _ _ _ _ | j >= u = finalize tmpBuf i k iter tmpBuf i j k _ vj 0 _ = do i' <- gallopingSearchLeftPBounds (`gt` vj) tmpBuf i tmpBufLen let gallopLen = i' - i from = unsafeSlice i gallopLen tmpBuf to = unsafeSlice k gallopLen vec unsafeCopy to from - vi' <- unsafeRead tmpBuf i' - iter tmpBuf i' j (k+gallopLen) vi' vj minGallop minGallop + when (i' < tmpBufLen) $ do + vi' <- unsafeRead tmpBuf i' + iter tmpBuf i' j (k+gallopLen) vi' vj minGallop minGallop iter tmpBuf i j k vi _ _ 0 = do j' <- gallopingSearchLeftPBounds (`gte` vi) vec j u let gallopLen = j' - j from = slice j gallopLen vec to = slice k gallopLen vec unsafeMove to from - vj' <- unsafeRead vec j' - iter tmpBuf i j' (k+gallopLen) vi vj' minGallop minGallop + if j' >= u then finalize tmpBuf i (k + gallopLen) else do + vj' <- unsafeRead vec j' + iter tmpBuf i j' (k+gallopLen) vi vj' minGallop minGallop iter tmpBuf i j k vi vj ga gb | vj `gte` vi = do unsafeWrite vec k vi - vi' <- unsafeRead tmpBuf (i+1) - iter tmpBuf (i+1) j (k+1) vi' vj (ga-1) minGallop + when (i + 1 < tmpBufLen) $ do + vi' <- unsafeRead tmpBuf (i+1) + iter tmpBuf (i+1) j (k+1) vi' vj (ga-1) minGallop | otherwise = do unsafeWrite vec k vj - vj' <- unsafeRead vec (j+1) - iter tmpBuf i (j+1) (k+1) vi vj' minGallop (gb-1) + if j + 1 >= u then finalize tmpBuf i (k + 1) else do + vj' <- unsafeRead vec (j+1) + iter tmpBuf i (j+1) (k+1) vi vj' minGallop (gb-1) {-# INLINE mergeLo #-} -- | Merge the adjacent sorted slices [l,m) and [m,u) in vec. This is done by @@ -292,34 +299,41 @@ gt a b = cmp a b == GT gte a b = cmp a b /= LT tmpBufLen = u - m - iter _ _ j _ _ _ _ _ | j < 0 = return () - iter tmpBuf i j _ _ _ _ _ | i < l = do + + finalize tmpBuf j = do let from = unsafeSlice 0 (j+1) tmpBuf to = unsafeSlice l (j+1) vec unsafeCopy to from + + iter _ _ j _ _ _ _ _ | j < 0 = return () + iter tmpBuf i j _ _ _ _ _ | i < l = finalize tmpBuf j iter tmpBuf i j k _ vj 0 _ = do i' <- gallopingSearchRightPBounds (`gt` vj) vec l i let gallopLen = i - i' from = slice (i'+1) gallopLen vec to = slice (k-gallopLen+1) gallopLen vec unsafeMove to from - vi' <- unsafeRead vec i' - iter tmpBuf i' j (k-gallopLen) vi' vj minGallop minGallop + if i' < l then finalize tmpBuf j else do + vi' <- unsafeRead vec i' + iter tmpBuf i' j (k-gallopLen) vi' vj minGallop minGallop iter tmpBuf i j k vi _ _ 0 = do j' <- gallopingSearchRightPBounds (`gte` vi) tmpBuf 0 j let gallopLen = j - j' from = slice (j'+1) gallopLen tmpBuf to = slice (k-gallopLen+1) gallopLen vec unsafeCopy to from - vj' <- unsafeRead tmpBuf j' - iter tmpBuf i j' (k-gallopLen) vi vj' minGallop minGallop + when (j' >= 0) $ do + vj' <- unsafeRead tmpBuf j' + iter tmpBuf i j' (k-gallopLen) vi vj' minGallop minGallop iter tmpBuf i j k vi vj ga gb | vi `gt` vj = do unsafeWrite vec k vi - vi' <- unsafeRead vec (i-1) - iter tmpBuf (i-1) j (k-1) vi' vj (ga-1) minGallop + if i - 1 < l then finalize tmpBuf j else do + vi' <- unsafeRead vec (i-1) + iter tmpBuf (i-1) j (k-1) vi' vj (ga-1) minGallop | otherwise = do unsafeWrite vec k vj - vj' <- unsafeRead tmpBuf (j-1) - iter tmpBuf i (j-1) (k-1) vi vj' minGallop (gb-1) + when (j - 1 >= 0) $ do + vj' <- unsafeRead tmpBuf (j-1) + iter tmpBuf i (j-1) (k-1) vi vj' minGallop (gb-1) {-# INLINE mergeHi #-} -- | Merge the adjacent sorted slices A=[l,m) and B=[m,u) in vec. This begins diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vector-algorithms-0.8.0.1/vector-algorithms.cabal new/vector-algorithms-0.8.0.3/vector-algorithms.cabal --- old/vector-algorithms-0.8.0.1/vector-algorithms.cabal 2018-10-09 03:32:06.000000000 +0200 +++ new/vector-algorithms-0.8.0.3/vector-algorithms.cabal 2001-09-09 03:46:40.000000000 +0200 @@ -1,5 +1,5 @@ name: vector-algorithms -version: 0.8.0.1 +version: 0.8.0.3 license: BSD3 license-file: LICENSE author: Dan Doel @@ -14,6 +14,8 @@ other vector algorithms may be added. build-type: Simple cabal-version: >= 1.9.2 +extra-source-files: CHANGELOG.md + flag BoundsChecks description: Enable bounds checking @@ -55,7 +57,7 @@ build-depends: base >= 4.5 && < 5, vector >= 0.6 && < 0.13, - primitive >=0.3 && <0.7, + primitive >=0.3 && <0.8, bytestring >= 0.9 && < 1.0 if ! impl (ghc >= 7.8) @@ -139,7 +141,7 @@ base, bytestring, containers, - QuickCheck > 2.9 && < 2.13, + QuickCheck > 2.9 && < 2.14, vector, vector-algorithms