From 33c0d90ee41e25a4713b865b09a285c5fec8df5b Mon Sep 17 00:00:00 2001 From: Mikhail Glushenkov <mikhail.glushenkov@gmail.com> Date: Fri, 23 Aug 2013 06:13:17 +0200 Subject: [PATCH] Merge 'D.Compat.Exception' and 'D.Client.Compat.Exception'. --- Cabal/Cabal.cabal | 2 +- Cabal/Distribution/Compat/Exception.hs | 27 ++++++++++++-- .../Distribution/Client/Compat/Environment.hs | 2 +- .../Distribution/Client/Compat/Exception.hs | 35 ------------------- .../Distribution/Client/Compat/Semaphore.hs | 2 +- cabal-install/Distribution/Client/Config.hs | 6 ++-- .../Distribution/Client/IndexUtils.hs | 2 +- cabal-install/Distribution/Client/Install.hs | 2 +- .../Distribution/Client/InstallSymlink.hs | 2 +- .../Distribution/Client/JobControl.hs | 2 +- .../Client/Sandbox/PackageEnvironment.hs | 3 +- .../Distribution/Client/Sandbox/Timestamp.hs | 2 +- .../Distribution/Client/SetupWrapper.hs | 2 +- cabal-install/Distribution/Client/Utils.hs | 2 +- cabal-install/Distribution/Client/World.hs | 2 +- cabal-install/cabal-install.cabal | 1 - 16 files changed, 39 insertions(+), 55 deletions(-) delete mode 100644 cabal-install/Distribution/Client/Compat/Exception.hs diff --git a/Cabal/Cabal.cabal b/Cabal/Cabal.cabal index 8c820f4ec6..88598a59f0 100644 --- a/Cabal/Cabal.cabal +++ b/Cabal/Cabal.cabal @@ -141,6 +141,7 @@ library exposed-modules: Distribution.Compat.Environment + Distribution.Compat.Exception Distribution.Compat.ReadP Distribution.Compiler Distribution.InstalledPackageInfo @@ -208,7 +209,6 @@ library other-modules: Distribution.Compat.CopyFile - Distribution.Compat.Exception Distribution.Compat.TempFile Distribution.GetOpt Distribution.Simple.GHC.IPI641 diff --git a/Cabal/Distribution/Compat/Exception.hs b/Cabal/Distribution/Compat/Exception.hs index 2949b1635f..a1e3eeb18e 100644 --- a/Cabal/Distribution/Compat/Exception.hs +++ b/Cabal/Distribution/Compat/Exception.hs @@ -1,12 +1,33 @@ +{-# LANGUAGE CPP #-} module Distribution.Compat.Exception ( - catchIO, - catchExit, - tryIO, + mask, + mask_, + catchIO, + catchExit, + tryIO, ) where import System.Exit import qualified Control.Exception as Exception +#if MIN_VERSION_base(4,3,0) +-- it's much less of a headache if we re-export the "real" mask and mask_ +-- so there's never more than one definition to conflict +import Control.Exception (mask, mask_) +#else +import Control.Exception (block, unblock) +#endif + +#if !MIN_VERSION_base(4,3,0) +-- note: less polymorphic than 'real' mask, to avoid RankNTypes +-- we don't need the full generality where we use it +mask :: ((IO a -> IO a) -> IO b) -> IO b +mask handler = block (handler unblock) + +mask_ :: IO a -> IO a +mask_ = block +#endif + tryIO :: IO a -> IO (Either Exception.IOException a) tryIO = Exception.try diff --git a/cabal-install/Distribution/Client/Compat/Environment.hs b/cabal-install/Distribution/Client/Compat/Environment.hs index 1070b767bc..20a3f29c43 100644 --- a/cabal-install/Distribution/Client/Compat/Environment.hs +++ b/cabal-install/Distribution/Client/Compat/Environment.hs @@ -33,7 +33,7 @@ import Foreign.C.Error (throwErrnoIfMinus1_) import System.Environment (lookupEnv) #else import System.Environment (getEnv) -import Distribution.Client.Compat.Exception (catchIO) +import Distribution.Compat.Exception (catchIO) #endif import System.Posix.Internals ( withFilePath ) diff --git a/cabal-install/Distribution/Client/Compat/Exception.hs b/cabal-install/Distribution/Client/Compat/Exception.hs deleted file mode 100644 index b4896df6a9..0000000000 --- a/cabal-install/Distribution/Client/Compat/Exception.hs +++ /dev/null @@ -1,35 +0,0 @@ -{-# LANGUAGE CPP #-} -{-# OPTIONS_HADDOCK hide #-} -module Distribution.Client.Compat.Exception ( - mask, - mask_, - catchIO, - catchExit, - ) where - -import System.Exit -import qualified Control.Exception as Exception - -#if MIN_VERSION_base(4,3,0) --- it's much less of a headache if we re-export the "real" mask and mask_ --- so there's never more than one definition to conflict -import Control.Exception (mask, mask_) -#else -import Control.Exception (block, unblock) -#endif - -#if !MIN_VERSION_base(4,3,0) --- note: less polymorphic than 'real' mask, to avoid RankNTypes --- we don't need the full generality where we use it -mask :: ((IO a -> IO a) -> IO b) -> IO b -mask handler = block (handler unblock) - -mask_ :: IO a -> IO a -mask_ = block -#endif - -catchIO :: IO a -> (Exception.IOException -> IO a) -> IO a -catchIO = Exception.catch - -catchExit :: IO a -> (ExitCode -> IO a) -> IO a -catchExit = Exception.catch diff --git a/cabal-install/Distribution/Client/Compat/Semaphore.hs b/cabal-install/Distribution/Client/Compat/Semaphore.hs index 71e4c818c7..274cc2e244 100644 --- a/cabal-install/Distribution/Client/Compat/Semaphore.hs +++ b/cabal-install/Distribution/Client/Compat/Semaphore.hs @@ -13,7 +13,7 @@ import Control.Exception (onException) import Control.Monad (join, when) import Data.Typeable (Typeable) -import Distribution.Client.Compat.Exception (mask_) +import Distribution.Compat.Exception (mask_) -- | 'QSem' is a quantity semaphore in which the resource is aqcuired -- and released in units of one. It provides guaranteed FIFO ordering diff --git a/cabal-install/Distribution/Client/Config.hs b/cabal-install/Distribution/Client/Config.hs index 12ee5f0395..2e5267ed8a 100644 --- a/cabal-install/Distribution/Client/Config.hs +++ b/cabal-install/Distribution/Client/Config.hs @@ -100,11 +100,11 @@ import Network.URI ( URI(..), URIAuth(..) ) import System.FilePath ( (<.>), (</>), takeDirectory ) -import Distribution.Compat.Environment - ( getEnvironment ) import System.IO.Error ( isDoesNotExistError ) -import Distribution.Client.Compat.Exception +import Distribution.Compat.Environment + ( getEnvironment ) +import Distribution.Compat.Exception ( catchIO ) -- diff --git a/cabal-install/Distribution/Client/IndexUtils.hs b/cabal-install/Distribution/Client/IndexUtils.hs index 50950fe0fb..158cad3b02 100644 --- a/cabal-install/Distribution/Client/IndexUtils.hs +++ b/cabal-install/Distribution/Client/IndexUtils.hs @@ -70,7 +70,7 @@ import qualified Data.ByteString.Char8 as BSS import Data.ByteString.Lazy (ByteString) import Distribution.Client.GZipUtils (maybeDecompress) import Distribution.Client.Utils (byteStringToFilePath) -import Distribution.Client.Compat.Exception (catchIO) +import Distribution.Compat.Exception (catchIO) import Distribution.Client.Compat.Time import System.FilePath ((</>), takeExtension, splitDirectories, normalise) import System.FilePath.Posix as FilePath.Posix diff --git a/cabal-install/Distribution/Client/Install.hs b/cabal-install/Distribution/Client/Install.hs index 2b84250a4f..24068f9224 100644 --- a/cabal-install/Distribution/Client/Install.hs +++ b/cabal-install/Distribution/Client/Install.hs @@ -37,7 +37,7 @@ import Control.Exception as Exception , IOException, SomeException ) import System.Exit ( ExitCode ) -import Distribution.Client.Compat.Exception +import Distribution.Compat.Exception ( catchIO, catchExit ) import Control.Monad ( when, unless ) diff --git a/cabal-install/Distribution/Client/InstallSymlink.hs b/cabal-install/Distribution/Client/InstallSymlink.hs index c8eac4ed01..b51a5fb14d 100644 --- a/cabal-install/Distribution/Client/InstallSymlink.hs +++ b/cabal-install/Distribution/Client/InstallSymlink.hs @@ -65,7 +65,7 @@ import System.FilePath import Prelude hiding (ioError) import System.IO.Error ( isDoesNotExistError, ioError ) -import Distribution.Client.Compat.Exception ( catchIO ) +import Distribution.Compat.Exception ( catchIO ) import Control.Exception ( assert ) import Data.Maybe diff --git a/cabal-install/Distribution/Client/JobControl.hs b/cabal-install/Distribution/Client/JobControl.hs index 4f8229c00a..326f8e04df 100644 --- a/cabal-install/Distribution/Client/JobControl.hs +++ b/cabal-install/Distribution/Client/JobControl.hs @@ -29,7 +29,7 @@ module Distribution.Client.JobControl ( import Control.Monad import Control.Concurrent hiding (QSem, newQSem, waitQSem, signalQSem) import Control.Exception (SomeException, bracket_, throw, try) -import Distribution.Client.Compat.Exception (mask) +import Distribution.Compat.Exception (mask) import Distribution.Client.Compat.Semaphore data JobControl m a = JobControl { diff --git a/cabal-install/Distribution/Client/Sandbox/PackageEnvironment.hs b/cabal-install/Distribution/Client/Sandbox/PackageEnvironment.hs index d4d41cbcd9..db0a6145da 100644 --- a/cabal-install/Distribution/Client/Sandbox/PackageEnvironment.hs +++ b/cabal-install/Distribution/Client/Sandbox/PackageEnvironment.hs @@ -53,8 +53,7 @@ import Distribution.Verbosity ( Verbosity, normal ) import Control.Monad ( foldM, when, unless ) import Data.List ( partition ) import Data.Monoid ( Monoid(..) ) -import Distribution.Client.Compat.Exception - ( catchIO ) +import Distribution.Compat.Exception ( catchIO ) import System.Directory ( doesDirectoryExist, doesFileExist, renameFile ) import System.FilePath ( (<.>), (</>), takeDirectory ) diff --git a/cabal-install/Distribution/Client/Sandbox/Timestamp.hs b/cabal-install/Distribution/Client/Sandbox/Timestamp.hs index a5b105d174..e6e4d30d60 100644 --- a/cabal-install/Distribution/Client/Sandbox/Timestamp.hs +++ b/cabal-install/Distribution/Client/Sandbox/Timestamp.hs @@ -50,7 +50,7 @@ import Distribution.Client.SetupWrapper (SetupScriptOptions (..), import Distribution.Client.Utils (inDir, removeExistingFile, tryCanonicalizePath) -import Distribution.Client.Compat.Exception (catchIO) +import Distribution.Compat.Exception (catchIO) import Distribution.Client.Compat.Time (EpochTime, getCurTime, getModTime) diff --git a/cabal-install/Distribution/Client/SetupWrapper.hs b/cabal-install/Distribution/Client/SetupWrapper.hs index 68d94451fa..4e279b2adc 100644 --- a/cabal-install/Distribution/Client/SetupWrapper.hs +++ b/cabal-install/Distribution/Client/SetupWrapper.hs @@ -78,7 +78,7 @@ import Distribution.Text ( display ) import Distribution.Verbosity ( Verbosity ) -import Distribution.Client.Compat.Exception +import Distribution.Compat.Exception ( catchIO ) import System.Directory ( doesFileExist ) diff --git a/cabal-install/Distribution/Client/Utils.hs b/cabal-install/Distribution/Client/Utils.hs index e134762275..b025c1143f 100644 --- a/cabal-install/Distribution/Client/Utils.hs +++ b/cabal-install/Distribution/Client/Utils.hs @@ -9,7 +9,7 @@ module Distribution.Client.Utils ( MergeResult(..) , canonicalizePathNoThrow ) where -import Distribution.Client.Compat.Exception ( catchIO ) +import Distribution.Compat.Exception ( catchIO ) import qualified Data.ByteString.Lazy as BS import Control.Monad ( when ) diff --git a/cabal-install/Distribution/Client/World.hs b/cabal-install/Distribution/Client/World.hs index 8ef77827b9..f77828e805 100644 --- a/cabal-install/Distribution/Client/World.hs +++ b/cabal-install/Distribution/Client/World.hs @@ -40,7 +40,7 @@ import Distribution.Simple.Utils import Distribution.Text ( Text(..), display, simpleParse ) import qualified Distribution.Compat.ReadP as Parse -import Distribution.Client.Compat.Exception ( catchIO ) +import Distribution.Compat.Exception ( catchIO ) import qualified Text.PrettyPrint as Disp import Text.PrettyPrint ( (<>), (<+>) ) diff --git a/cabal-install/cabal-install.cabal b/cabal-install/cabal-install.cabal index a787e14b2d..5a170f1182 100644 --- a/cabal-install/cabal-install.cabal +++ b/cabal-install/cabal-install.cabal @@ -105,7 +105,6 @@ executable cabal Distribution.Client.Utils Distribution.Client.World Distribution.Client.Win32SelfUpgrade - Distribution.Client.Compat.Exception Distribution.Client.Compat.Environment Distribution.Client.Compat.FilePerms Distribution.Client.Compat.Semaphore -- GitLab