Hello community, here is the log from the commit of package ghc-extra for openSUSE:Factory checked in at 2017-07-05 23:58:49 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/ghc-extra (Old) and /work/SRC/openSUSE:Factory/.ghc-extra.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ghc-extra" Wed Jul 5 23:58:49 2017 rev:14 rq:506806 version:1.5.3 Changes: -------- --- /work/SRC/openSUSE:Factory/ghc-extra/ghc-extra.changes 2017-05-06 18:28:30.924845386 +0200 +++ /work/SRC/openSUSE:Factory/.ghc-extra.new/ghc-extra.changes 2017-07-05 23:58:51.328707230 +0200 @@ -1,0 +2,5 @@ +Mon Jun 19 21:01:51 UTC 2017 - [email protected] + +- Update to version 1.5.3. + +------------------------------------------------------------------- Old: ---- extra-1.5.2.tar.gz New: ---- extra-1.5.3.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ ghc-extra.spec ++++++ --- /var/tmp/diff_new_pack.3CaCWv/_old 2017-07-05 23:58:52.692515109 +0200 +++ /var/tmp/diff_new_pack.3CaCWv/_new 2017-07-05 23:58:52.704513420 +0200 @@ -19,7 +19,7 @@ %global pkg_name extra %bcond_with tests Name: ghc-%{pkg_name} -Version: 1.5.2 +Version: 1.5.3 Release: 0 Summary: Extra functions I use License: BSD-3-Clause ++++++ extra-1.5.2.tar.gz -> extra-1.5.3.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/extra-1.5.2/CHANGES.txt new/extra-1.5.3/CHANGES.txt --- old/extra-1.5.2/CHANGES.txt 2017-04-04 19:11:24.000000000 +0200 +++ new/extra-1.5.3/CHANGES.txt 2017-06-12 23:58:38.000000000 +0200 @@ -1,5 +1,7 @@ Changelog for Extra +1.5.3 + Add readMaybe, readEither 1.5.2 Add errorWithoutStackTrace to Control.Exception.Extra 1.5.1 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/extra-1.5.2/Generate.hs new/extra-1.5.3/Generate.hs --- old/extra-1.5.2/Generate.hs 2017-04-04 19:11:24.000000000 +0200 +++ new/extra-1.5.3/Generate.hs 2017-06-12 23:58:38.000000000 +0200 @@ -6,18 +6,18 @@ import Data.List.Extra import System.IO.Extra import Control.Monad.Extra -import Control.Applicative import System.FilePath import System.Directory import Data.Char import Data.Maybe +import Data.Functor import Prelude main :: IO () main = do src <- readFile "extra.cabal" - mods <- return $ filter (isSuffixOf ".Extra") $ map trim $ lines src + let mods = filter (isSuffixOf ".Extra") $ map trim $ lines src ifaces <- forM mods $ \mod -> do src <- readFile $ joinPath ("src" : split (== '.') mod) <.> "hs" let funcs = filter validIdentifier $ takeWhile (/= "where") $ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/extra-1.5.2/extra.cabal new/extra-1.5.3/extra.cabal --- old/extra-1.5.2/extra.cabal 2017-04-04 19:11:24.000000000 +0200 +++ new/extra-1.5.3/extra.cabal 2017-06-12 23:58:38.000000000 +0200 @@ -1,7 +1,7 @@ cabal-version: >= 1.18 build-type: Simple name: extra -version: 1.5.2 +version: 1.5.3 license: BSD3 license-file: LICENSE category: Development @@ -58,6 +58,7 @@ System.IO.Extra System.Process.Extra System.Time.Extra + Text.Read.Extra test-suite extra-test type: exitcode-stdio-1.0 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/extra-1.5.2/src/Control/Concurrent/Extra.hs new/extra-1.5.3/src/Control/Concurrent/Extra.hs --- old/extra-1.5.2/src/Control/Concurrent/Extra.hs 2017-04-04 19:11:24.000000000 +0200 +++ new/extra-1.5.3/src/Control/Concurrent/Extra.hs 2017-06-12 23:58:38.000000000 +0200 @@ -28,6 +28,9 @@ import Control.Exception.Extra import Control.Monad.Extra import Data.Maybe +import Data.Either.Extra +import Data.Functor +import Prelude -- | On GHC 7.6 and above with the @-threaded@ flag, brackets a call to 'setNumCapabilities'. @@ -133,7 +136,7 @@ -- | Create a new 'Lock'. newLock :: IO Lock -newLock = fmap Lock $ newMVar () +newLock = Lock <$> newMVar () -- | Perform some operation while holding 'Lock'. Will prevent all other -- operations from using the 'Lock' while the action is ongoing. @@ -224,7 +227,7 @@ -- | Write a value into the Barrier, releasing anyone at 'waitBarrier'. -- Any subsequent attempts to signal the 'Barrier' will throw an exception. signalBarrier :: Barrier a -> a -> IO () -signalBarrier (Barrier var) v = mask_ $ do -- use mask so never in an inconsistent state +signalBarrier (Barrier var) v = mask_ $ -- use mask so never in an inconsistent state join $ modifyVar var $ \x -> case x of Left bar -> return (Right v, putMVar bar ()) Right res -> error "Control.Concurrent.Extra.signalBarrier, attempt to signal a barrier that has already been signaled" @@ -247,4 +250,4 @@ -- | A version of 'waitBarrier' that never blocks, returning 'Nothing' -- if the barrier has not yet been signaled. waitBarrierMaybe :: Barrier a -> IO (Maybe a) -waitBarrierMaybe (Barrier bar) = fmap (either (const Nothing) Just) $ readVar bar +waitBarrierMaybe (Barrier bar) = eitherToMaybe <$> readVar bar diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/extra-1.5.2/src/Control/Exception/Extra.hs new/extra-1.5.3/src/Control/Exception/Extra.hs --- old/extra-1.5.2/src/Control/Exception/Extra.hs 2017-04-04 19:11:24.000000000 +0200 +++ new/extra-1.5.3/src/Control/Exception/Extra.hs 2017-06-12 23:58:38.000000000 +0200 @@ -20,6 +20,8 @@ import Control.Exception import Control.Monad import Data.List.Extra +import Data.Functor +import Prelude -- | Fully evaluate an input String. If the String contains embedded exceptions it will produce @\<Exception\>@. @@ -34,7 +36,7 @@ case r of Left e -> return "<Exception>" Right [] -> return [] - Right (x:xs) -> fmap (x:) $ stringException xs + Right (x:xs) -> (x:) <$> stringException xs -- | Show a value, but if the result contains exceptions, produce diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/extra-1.5.2/src/Control/Monad/Extra.hs new/extra-1.5.3/src/Control/Monad/Extra.hs --- old/extra-1.5.2/src/Control/Monad/Extra.hs 2017-04-04 19:11:24.000000000 +0200 +++ new/extra-1.5.3/src/Control/Monad/Extra.hs 2017-06-12 23:58:38.000000000 +0200 @@ -1,4 +1,3 @@ -{-# LANGUAGE UnboxedTuples #-} -- | Extra functions for "Control.Monad". -- These functions provide looping, list operations and booleans. @@ -18,8 +17,8 @@ ) where import Control.Monad -import Control.Applicative import Data.Maybe +import Control.Applicative import Data.Monoid import Prelude diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/extra-1.5.2/src/Data/IORef/Extra.hs new/extra-1.5.3/src/Data/IORef/Extra.hs --- old/extra-1.5.2/src/Data/IORef/Extra.hs 2017-04-04 19:11:24.000000000 +0200 +++ new/extra-1.5.3/src/Data/IORef/Extra.hs 2017-06-12 23:58:38.000000000 +0200 @@ -46,7 +46,7 @@ -- 'atomicModifyIORef' has. atomicWriteIORef :: IORef a -> a -> IO () atomicWriteIORef ref a = do - x <- atomicModifyIORef ref (\_ -> (a, ())) + x <- atomicModifyIORef ref $ const (a, ()) x `seq` return () #endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/extra-1.5.2/src/Data/List/Extra.hs new/extra-1.5.3/src/Data/List/Extra.hs --- old/extra-1.5.2/src/Data/List/Extra.hs 2017-04-04 19:11:24.000000000 +0200 +++ new/extra-1.5.3/src/Data/List/Extra.hs 2017-06-12 23:58:38.000000000 +0200 @@ -28,13 +28,13 @@ replace, merge, mergeBy, ) where -import Control.Applicative import Data.List import Data.Maybe import Data.Function import Data.Char import Data.Tuple.Extra import Data.Monoid +import Data.Functor import Prelude @@ -510,7 +510,7 @@ -- > stripSuffix "" "baz" == Just "baz" -- > stripSuffix "foo" "quux" == Nothing stripSuffix :: Eq a => [a] -> [a] -> Maybe [a] -stripSuffix a b = fmap reverse $ stripPrefix (reverse a) (reverse b) +stripSuffix a b = reverse <$> stripPrefix (reverse a) (reverse b) -- | Return the the string before and after the search string, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/extra-1.5.2/src/Extra.hs new/extra-1.5.3/src/Extra.hs --- old/extra-1.5.2/src/Extra.hs 2017-04-04 19:11:24.000000000 +0200 +++ new/extra-1.5.3/src/Extra.hs 2017-06-12 23:58:38.000000000 +0200 @@ -54,6 +54,9 @@ -- * System.Time.Extra -- | Extra functions available in @"System.Time.Extra"@. Seconds, sleep, timeout, subtractTime, showDuration, offsetTime, offsetTimeIncrease, duration, + -- * Text.Read.Extra + -- | Extra functions available in @"Text.Read.Extra"@. + readEither, readMaybe, ) where import Control.Concurrent.Extra @@ -72,3 +75,4 @@ import System.IO.Extra import System.Process.Extra import System.Time.Extra +import Text.Read.Extra diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/extra-1.5.2/src/System/Environment/Extra.hs new/extra-1.5.3/src/System/Environment/Extra.hs --- old/extra-1.5.2/src/System/Environment/Extra.hs 2017-04-04 19:11:24.000000000 +0200 +++ new/extra-1.5.3/src/System/Environment/Extra.hs 2017-06-12 23:58:38.000000000 +0200 @@ -13,6 +13,7 @@ #if __GLASGOW_HASKELL__ < 706 import Control.Exception.Extra import System.IO.Error +import Data.Functor -- | Alias for 'getProgName' in GHC 7.4 and below, otherwise -- returns the absolute pathname of the current executable. @@ -21,5 +22,5 @@ -- | Return the value of the environment variable var, or Nothing if there is no such value. lookupEnv :: String -> IO (Maybe String) -lookupEnv x = catchBool isDoesNotExistError (fmap Just $ getEnv x) (const $ return Nothing) +lookupEnv x = catchBool isDoesNotExistError (Just <$> getEnv x) (const $ return Nothing) #endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/extra-1.5.2/src/System/Process/Extra.hs new/extra-1.5.3/src/System/Process/Extra.hs --- old/extra-1.5.2/src/System/Process/Extra.hs 2017-04-04 19:11:24.000000000 +0200 +++ new/extra-1.5.3/src/System/Process/Extra.hs 2017-06-12 23:58:38.000000000 +0200 @@ -11,6 +11,8 @@ import System.IO.Extra import System.Process import System.Exit +import Data.Functor +import Prelude -- | A version of 'system' that also captures the output, both 'stdout' and 'stderr'. @@ -20,7 +22,7 @@ exit <- withFile file WriteMode $ \h -> do (_, _, _, pid) <- createProcess (shell x){std_out=UseHandle h, std_err=UseHandle h} waitForProcess pid - fmap (exit,) $ readFile' file + (exit,) <$> readFile' file -- | A version of 'system' that throws an error if the 'ExitCode' is not 'ExitSuccess'. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/extra-1.5.2/src/System/Time/Extra.hs new/extra-1.5.3/src/System/Time/Extra.hs --- old/extra-1.5.2/src/System/Time/Extra.hs 2017-04-04 19:11:24.000000000 +0200 +++ new/extra-1.5.3/src/System/Time/Extra.hs 2017-06-12 23:58:38.000000000 +0200 @@ -68,7 +68,7 @@ handleBool (== ex) (const $ return Nothing) (bracket (forkIOWithUnmask $ \unmask -> unmask $ sleep n >> throwTo pid ex) - (killThread) + killThread (\_ -> fmap Just f)) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/extra-1.5.2/src/Text/Read/Extra.hs new/extra-1.5.3/src/Text/Read/Extra.hs --- old/extra-1.5.2/src/Text/Read/Extra.hs 1970-01-01 01:00:00.000000000 +0100 +++ new/extra-1.5.3/src/Text/Read/Extra.hs 2017-06-12 23:58:38.000000000 +0200 @@ -0,0 +1,38 @@ +{-# LANGUAGE CPP #-} +{-# OPTIONS_GHC -fno-warn-duplicate-exports #-} + +-- | This module provides "Text.Read" with functions added in later versions. +module Text.Read.Extra( + module Text.Read, + readEither, readMaybe + ) where + +import Text.Read + +#if __GLASGOW_HASKELL__ < 706 + +import Text.ParserCombinators.ReadP as P + +-- | Parse a string using the 'Read' instance. +-- Succeeds if there is exactly one valid result. +-- A 'Left' value indicates a parse error. +readEither :: Read a => String -> Either String a +readEither s = + case [ x | (x,"") <- readPrec_to_S read' minPrec s ] of + [x] -> Right x + [] -> Left "Prelude.read: no parse" + _ -> Left "Prelude.read: ambiguous parse" + where + read' = + do x <- readPrec + lift P.skipSpaces + return x + +-- | Parse a string using the 'Read' instance. +-- Succeeds if there is exactly one valid result. +readMaybe :: Read a => String -> Maybe a +readMaybe s = case readEither s of + Left _ -> Nothing + Right a -> Just a + +#endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/extra-1.5.2/test/TestUtil.hs new/extra-1.5.3/test/TestUtil.hs --- old/extra-1.5.2/test/TestUtil.hs 2017-04-04 19:11:24.000000000 +0200 +++ new/extra-1.5.3/test/TestUtil.hs 2017-06-12 23:58:38.000000000 +0200 @@ -54,7 +54,9 @@ erroneousIO x = unsafePerformIO $ fmap isLeft $ try_ $ evaluate . length . show =<< x (====) :: (Show a, Eq a) => a -> a -> Bool -a ==== b = if a == b then True else error $ "Not equal!\n" ++ show a ++ "\n" ++ show b +a ==== b + | a == b = True + | otherwise = error $ "Not equal!\n" ++ show a ++ "\n" ++ show b #if __GLASGOW_HASKELL__ < 707 instance Eq ErrorCall where @@ -101,4 +103,4 @@ arbitrary = fmap ModifiedJulianDay arbitrary instance Arbitrary DiffTime where - arbitrary = fmap realToFrac $ choose (0 :: Double, 86401) + arbitrary = realToFrac <$> choose (0 :: Double, 86401)
