Hello community, here is the log from the commit of package ghc-splitmix for openSUSE:Factory checked in at 2020-07-09 13:19:41 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/ghc-splitmix (Old) and /work/SRC/openSUSE:Factory/.ghc-splitmix.new.3060 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ghc-splitmix" Thu Jul 9 13:19:41 2020 rev:6 rq:819591 version:0.1 Changes: -------- --- /work/SRC/openSUSE:Factory/ghc-splitmix/ghc-splitmix.changes 2020-06-19 17:18:40.295099294 +0200 +++ /work/SRC/openSUSE:Factory/.ghc-splitmix.new.3060/ghc-splitmix.changes 2020-07-09 13:20:10.381422352 +0200 @@ -1,0 +2,9 @@ +Tue Jul 7 11:19:12 UTC 2020 - [email protected] + +- Update splitmix to version 0.1. + # 0.1 + + - Drop `random` dependency unconditionally. + https://github.com/phadej/splitmix/issues/34 + +------------------------------------------------------------------ @@ -37 +45,0 @@ - Old: ---- splitmix-0.0.5.tar.gz New: ---- splitmix-0.1.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ ghc-splitmix.spec ++++++ --- /var/tmp/diff_new_pack.M2U2oO/_old 2020-07-09 13:20:11.697426512 +0200 +++ /var/tmp/diff_new_pack.M2U2oO/_new 2020-07-09 13:20:11.701426524 +0200 @@ -19,7 +19,7 @@ %global pkg_name splitmix %bcond_with tests Name: ghc-%{pkg_name} -Version: 0.0.5 +Version: 0.1 Release: 0 Summary: Fast Splittable PRNG License: BSD-3-Clause @@ -27,7 +27,6 @@ Source0: https://hackage.haskell.org/package/%{pkg_name}-%{version}/%{pkg_name}-%{version}.tar.gz BuildRequires: ghc-Cabal-devel BuildRequires: ghc-deepseq-devel -BuildRequires: ghc-random-devel BuildRequires: ghc-rpm-macros BuildRequires: ghc-time-devel %if %{with tests} @@ -39,6 +38,7 @@ BuildRequires: ghc-containers-devel BuildRequires: ghc-math-functions-devel BuildRequires: ghc-process-devel +BuildRequires: ghc-random-devel BuildRequires: ghc-test-framework-devel BuildRequires: ghc-test-framework-hunit-devel BuildRequires: ghc-tf-random-devel ++++++ splitmix-0.0.5.tar.gz -> splitmix-0.1.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/splitmix-0.0.5/Changelog.md new/splitmix-0.1/Changelog.md --- old/splitmix-0.0.5/Changelog.md 2001-09-09 03:46:40.000000000 +0200 +++ new/splitmix-0.1/Changelog.md 2001-09-09 03:46:40.000000000 +0200 @@ -1,3 +1,8 @@ +# 0.1 + +- Drop `random` dependency unconditionally. + https://github.com/phadej/splitmix/issues/34 + # 0.0.5 - Add `nextInteger` diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/splitmix-0.0.5/bench/Bench.hs new/splitmix-0.1/bench/Bench.hs --- old/splitmix-0.0.5/bench/Bench.hs 2001-09-09 03:46:40.000000000 +0200 +++ new/splitmix-0.1/bench/Bench.hs 2001-09-09 03:46:40.000000000 +0200 @@ -16,36 +16,37 @@ ------------------------------------------------------------------------------- -- infinite list -genList :: R.RandomGen g => g -> [Int] -genList = unfoldr (Just . R.next) +genList :: (g -> (Int, g)) -> g -> [Int] +genList next = unfoldr (Just . next) -- truncated -genListN :: R.RandomGen g => g -> [Int] -genListN = take 2048 . genList +genListN :: (g -> (Int, g)) -> g -> [Int] +genListN next = take 2048 . genList next randomList :: Int -> [Int] -randomList = genListN . R.mkStdGen +randomList = genListN R.random . R.mkStdGen tfRandomList :: Word64 -> [Int] -tfRandomList w64 = genListN $ TF.seedTFGen (w64, w64, w64, w64) +tfRandomList w64 = genListN R.random $ TF.seedTFGen (w64, w64, w64, w64) splitMixList :: Word64 -> [Int] -splitMixList w64 = genListN $ SM.mkSMGen w64 +splitMixList w64 = genListN SM.nextInt $ SM.mkSMGen w64 splitMix32List :: Word64 -> [Int] -splitMix32List w64 = genListN $ SM32.mkSMGen $ fromIntegral w64 +splitMix32List w64 = genListN SM32.nextInt $ SM32.mkSMGen $ fromIntegral w64 ------------------------------------------------------------------------------- -- Tree ------------------------------------------------------------------------------- -genTree :: R.RandomGen g => g -> T.Tree Int -genTree g = case R.next g of - ~(i, g') -> T.Node i $ case R.split g' of - (ga, gb) -> [genTree ga, genTree gb] +genTree :: (g -> (Int, g)) -> (g -> (g, g)) -> g -> T.Tree Int +genTree next split = go where + go g = case next g of + ~(i, g') -> T.Node i $ case split g' of + (ga, gb) -> [go ga, go gb] -genTreeN :: R.RandomGen g => g -> T.Tree Int -genTreeN = cutTree 9 . genTree +genTreeN :: (g -> (Int, g)) -> (g -> (g, g)) -> g -> T.Tree Int +genTreeN next split = cutTree 9 . genTree next split where cutTree :: Int -> T.Tree a -> T.Tree a cutTree n (T.Node x forest) @@ -53,16 +54,16 @@ | otherwise = T.Node x (map (cutTree (n - 1)) forest) randomTree :: Int -> T.Tree Int -randomTree = genTreeN . R.mkStdGen +randomTree = genTreeN R.next R.split . R.mkStdGen tfRandomTree :: Word64 -> T.Tree Int -tfRandomTree w64 = genTreeN $ TF.seedTFGen (w64, w64, w64, w64) +tfRandomTree w64 = genTreeN R.next R.split $ TF.seedTFGen (w64, w64, w64, w64) splitMixTree :: Word64 -> T.Tree Int -splitMixTree w64 = genTreeN $ SM.mkSMGen w64 +splitMixTree w64 = genTreeN SM.nextInt SM.splitSMGen $ SM.mkSMGen w64 splitMix32Tree :: Word64 -> T.Tree Int -splitMix32Tree w64 = genTreeN $ SM32.mkSMGen $ fromIntegral w64 +splitMix32Tree w64 = genTreeN SM32.nextInt SM32.splitSMGen $ SM32.mkSMGen $ fromIntegral w64 ------------------------------------------------------------------------------- -- List Word64 @@ -92,14 +93,14 @@ -- Tree Word64 ------------------------------------------------------------------------------- -genTree64 :: R.RandomGen g => (g -> (Word64, g)) -> g -> T.Tree Word64 -genTree64 r = go where +genTree64 ::(g -> (Word64, g)) -> (g -> (g, g)) -> g -> T.Tree Word64 +genTree64 r split = go where go g = case r g of - ~(i, g') -> T.Node i $ case R.split g' of + ~(i, g') -> T.Node i $ case split g' of (ga, gb) -> [go ga, go gb] -genTreeN64 :: R.RandomGen g => (g -> (Word64, g)) -> g -> T.Tree Word64 -genTreeN64 r = cutTree 9 . genTree64 r +genTreeN64 :: (g -> (Word64, g)) -> (g -> (g, g)) -> g -> T.Tree Word64 +genTreeN64 r split = cutTree 9 . genTree64 r split where cutTree :: Word64 -> T.Tree a -> T.Tree a cutTree n (T.Node x forest) @@ -107,16 +108,16 @@ | otherwise = T.Node x (map (cutTree (n - 1)) forest) randomTree64 :: Int -> T.Tree Word64 -randomTree64 = genTreeN64 R.random . R.mkStdGen +randomTree64 = genTreeN64 R.random R.split . R.mkStdGen tfRandomTree64 :: Word64 -> T.Tree Word64 -tfRandomTree64 w64 = genTreeN64 TF.random $ TF.seedTFGen (w64, w64, w64, w64) +tfRandomTree64 w64 = genTreeN64 TF.random R.split $ TF.seedTFGen (w64, w64, w64, w64) splitMixTree64 :: Word64 -> T.Tree Word64 -splitMixTree64 w64 = genTreeN64 SM.nextWord64 $ SM.mkSMGen w64 +splitMixTree64 w64 = genTreeN64 SM.nextWord64 SM.splitSMGen $ SM.mkSMGen w64 splitMix32Tree64 :: Word64 -> T.Tree Word64 -splitMix32Tree64 w64 = genTreeN64 SM32.nextWord64 $ SM32.mkSMGen $ fromIntegral w64 +splitMix32Tree64 w64 = genTreeN64 SM32.nextWord64 SM32.splitSMGen $ SM32.mkSMGen $ fromIntegral w64 ------------------------------------------------------------------------------- -- Main diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/splitmix-0.0.5/bench/Range.hs new/splitmix-0.1/bench/Range.hs --- old/splitmix-0.0.5/bench/Range.hs 2001-09-09 03:46:40.000000000 +0200 +++ new/splitmix-0.1/bench/Range.hs 2001-09-09 03:46:40.000000000 +0200 @@ -8,7 +8,6 @@ import Data.List (unfoldr) import Data.Word (Word32, Word64) -import qualified System.Random as R import qualified System.Random.SplitMix32 as SM #if defined(__GHCJS__) @@ -21,7 +20,7 @@ main = do gen <- SM.newSMGen - bench gen (\g h -> R.randomR (0, pred h) g) + -- bench gen (\g h -> R (0, pred h) g) bench gen classicMod bench gen intMult bench gen bitmaskWithRejection diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/splitmix-0.0.5/splitmix.cabal new/splitmix-0.1/splitmix.cabal --- old/splitmix-0.0.5/splitmix.cabal 2001-09-09 03:46:40.000000000 +0200 +++ new/splitmix-0.1/splitmix.cabal 2001-09-09 03:46:40.000000000 +0200 @@ -1,6 +1,6 @@ cabal-version: >=1.10 name: splitmix -version: 0.0.5 +version: 0.1 synopsis: Fast Splittable PRNG description: Pure Haskell implementation of SplitMix described in @@ -58,11 +58,6 @@ manual: True default: False -flag random - description: Providen RandomGen SMGen instance - manual: True - default: True - library default-language: Haskell2010 ghc-options: -Wall @@ -81,9 +76,6 @@ , deepseq >=1.3.0.0 && <1.5 , time >=1.2.0.3 && <1.10 - if flag(random) - build-depends: random >=1.0 && <1.2 - if flag(optimised-mixer) cpp-options: -DOPTIMISED_MIX32=1 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/splitmix-0.0.5/src/System/Random/SplitMix.hs new/splitmix-0.1/src/System/Random/SplitMix.hs --- old/splitmix-0.0.5/src/System/Random/SplitMix.hs 2001-09-09 03:46:40.000000000 +0200 +++ new/splitmix-0.1/src/System/Random/SplitMix.hs 2001-09-09 03:46:40.000000000 +0200 @@ -69,10 +69,6 @@ import Control.DeepSeq (NFData (..)) #endif -#ifdef MIN_VERSION_random -import qualified System.Random as R -#endif - #if !__GHCJS__ import System.CPUTime (cpuTimePrecision, getCPUTime) #endif @@ -398,16 +394,6 @@ return $ fromIntegral hi `shiftL` 32 .|. fromIntegral lo ------------------------------------------------------------------------------- --- System.Random -------------------------------------------------------------------------------- - -#ifdef MIN_VERSION_random -instance R.RandomGen SMGen where - next = nextInt - split = splitSMGen -#endif - -------------------------------------------------------------------------------- -- Hugs ------------------------------------------------------------------------------- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/splitmix-0.0.5/src/System/Random/SplitMix32.hs new/splitmix-0.1/src/System/Random/SplitMix32.hs --- old/splitmix-0.0.5/src/System/Random/SplitMix32.hs 2001-09-09 03:46:40.000000000 +0200 +++ new/splitmix-0.1/src/System/Random/SplitMix32.hs 2001-09-09 03:46:40.000000000 +0200 @@ -53,10 +53,6 @@ import Control.DeepSeq (NFData (..)) #endif -#ifdef MIN_VERSION_random -import qualified System.Random as R -#endif - #if !__GHCJS__ import System.CPUTime (cpuTimePrecision, getCPUTime) #endif @@ -375,13 +371,3 @@ let hi = fromIntegral (cpu `div` cpuTimePrecision) :: Word32 #endif return $ fromIntegral hi `shiftL` 32 .|. fromIntegral lo - -------------------------------------------------------------------------------- --- System.Random -------------------------------------------------------------------------------- - -#ifdef MIN_VERSION_random -instance R.RandomGen SMGen where - next = nextInt - split = splitSMGen -#endif
