Cabal 1.18.0 → 1.18.1
raw patch · 7 files changed
+48/−39 lines, 7 files
Files
- Cabal.cabal +1/−1
- Distribution/Compat/ReadP.hs +7/−3
- Distribution/Compiler.hs +1/−1
- Distribution/Simple/BuildTarget.hs +5/−1
- Distribution/Simple/PackageIndex.hs +2/−0
- Distribution/Simple/SrcDist.hs +27/−29
- Distribution/Version.hs +5/−4
Cabal.cabal view
@@ -1,5 +1,5 @@ name: Cabal-version: 1.18.0+version: 1.18.1 copyright: 2003-2006, Isaac Jones 2005-2011, Duncan Coutts license: BSD3
Distribution/Compat/ReadP.hs view
@@ -69,9 +69,9 @@ ) where -import Control.Monad( MonadPlus(..), liftM2, ap )+import Control.Monad( MonadPlus(..), liftM, liftM2, ap ) import Data.Char (isSpace)-import Control.Applicative (Applicative(..))+import Control.Applicative (Applicative(..), Alternative(empty, (<|>))) infixr 5 +++, <++ @@ -89,7 +89,7 @@ -- Monad, MonadPlus instance Functor (P s) where- fmap f x = x >>= return . f+ fmap = liftM instance Applicative (P s) where pure = return@@ -105,6 +105,10 @@ (Final r) >>= k = final [ys' | (x,s) <- r, ys' <- run (k x) s] fail _ = Fail++instance Alternative (P s) where+ empty = mzero+ (<|>) = mplus instance MonadPlus (P s) where mzero = Fail
Distribution/Compiler.hs view
@@ -20,7 +20,7 @@ -- Unfortunately we cannot make this change yet without breaking the -- 'UserHooks' api, which would break all custom @Setup.hs@ files, so for the -- moment we just have to live with this deficiency. If you're interested, see--- ticket #50.+-- ticket #57. {- All rights reserved.
Distribution/Simple/BuildTarget.hs view
@@ -55,7 +55,7 @@ ( partitionEithers ) import qualified Data.Map as Map import Control.Monad-import Control.Applicative (Applicative(..))+import Control.Applicative (Applicative(..), Alternative(..)) import qualified Distribution.Compat.ReadP as Parse import Distribution.Compat.ReadP ( (+++), (<++) )@@ -744,6 +744,10 @@ | MatchErrorNoSuch String String deriving (Show, Eq) ++instance Alternative Match where+ empty = mzero+ (<|>) = mplus instance MonadPlus Match where mzero = matchZero
Distribution/Simple/PackageIndex.hs view
@@ -106,6 +106,8 @@ -- of the same package version. These are unique by InstalledPackageId -- and are kept in preference order. --+ -- FIXME: Clarify what "preference order" means. Check that this invariant is+ -- preserved. See #1463 for discussion. !(Map PackageName (Map Version [InstalledPackageInfo])) deriving (Show, Read)
Distribution/Simple/SrcDist.hs view
@@ -124,7 +124,6 @@ case (sDistListSources flags) of Flag path -> withFile path WriteMode $ \outHandle -> do (ordinary, maybeExecutable) <- listPackageSources verbosity pkg pps- DontCreateDefaultSetupScript mapM_ (hPutStrLn outHandle) ordinary mapM_ (hPutStrLn outHandle) maybeExecutable notice verbosity $ "List of package sources written to file '"@@ -168,11 +167,6 @@ targetPref = distPref tmpTargetDir = mkTmpDir distPref --- | Should a default @Setup.hs@ be created if none exists? We do this in--- @sdist@, but not in @sdist --list-sources@.-data CreateDefaultSetupScript = CreateDefaultSetupScript- | DontCreateDefaultSetupScript- -- | List all source files of a package. Returns a tuple of lists: first -- component is a list of ordinary files, second one is a list of those files -- that may be executable.@@ -180,13 +174,10 @@ -> PackageDescription -- ^ info from the cabal file -> [PPSuffixHandler] -- ^ extra preprocessors (include -- suffixes)- -> CreateDefaultSetupScript -- ^ create a default- -- @Setup.hs@ ? -> IO ([FilePath], [FilePath])-listPackageSources verbosity pkg_descr0 pps createSetup = do+listPackageSources verbosity pkg_descr0 pps = do -- Call helpers that actually do all work. ordinary <- listPackageSourcesOrdinary verbosity pkg_descr pps- createSetup maybeExecutable <- listPackageSourcesMaybeExecutable pkg_descr return (ordinary, maybeExecutable) where@@ -202,9 +193,8 @@ listPackageSourcesOrdinary :: Verbosity -> PackageDescription -> [PPSuffixHandler]- -> CreateDefaultSetupScript -> IO [FilePath]-listPackageSourcesOrdinary verbosity pkg_descr pps createSetup =+listPackageSourcesOrdinary verbosity pkg_descr pps = fmap concat . sequence $ [ -- Library sources.@@ -259,27 +249,24 @@ . forM (dataFiles pkg_descr) $ \filename -> matchFileGlob (dataDir pkg_descr </> filename) + -- Extra doc files.+ , fmap concat+ . forM (extraDocFiles pkg_descr) $ \ filename ->+ matchFileGlob filename+ -- License file. , return $ case [licenseFile pkg_descr] of [[]] -> [] l -> l+ -- Install-include files. , withLib $ \ l -> do let lbi = libBuildInfo l relincdirs = "." : filter (not.isAbsolute) (includeDirs lbi) mapM (fmap snd . findIncludeFile relincdirs) (installIncludes lbi) - -- Setup script.- , do mSetupFile <- findSetupFile- case mSetupFile of- Just setupFile -> return [setupFile]- Nothing -> case createSetup of- DontCreateDefaultSetupScript -> return []- CreateDefaultSetupScript -> do- writeUTF8File "Setup.hs" $ unlines [- "import Distribution.Simple",- "main = defaultMain"]- return ["Setup.hs"]+ -- Setup script, if it exists.+ , fmap (maybe [] (\f -> [f])) $ findSetupFile "" -- The .cabal file itself. , fmap (\d -> [d]) (defaultPackageDesc verbosity)@@ -312,17 +299,17 @@ _ -> return () (ordinary, mExecutable) <- listPackageSources verbosity pkg_descr0 pps- CreateDefaultSetupScript installOrdinaryFiles verbosity targetDir (zip (repeat []) ordinary) installMaybeExecutableFiles verbosity targetDir (zip (repeat []) mExecutable)+ maybeCreateDefaultSetupScript targetDir where pkg_descr = filterAutogenModule pkg_descr0 -- | Find the setup script file, if it exists.-findSetupFile :: IO (Maybe FilePath)-findSetupFile = do- hsExists <- doesFileExist setupHs+findSetupFile :: FilePath -> IO (Maybe FilePath)+findSetupFile targetDir = do+ hsExists <- doesFileExist setupHs lhsExists <- doesFileExist setupLhs if hsExists then return (Just setupHs)@@ -330,8 +317,19 @@ then return (Just setupLhs) else return Nothing where- setupHs = "Setup.hs"- setupLhs = "Setup.lhs"+ setupHs = targetDir </> "Setup.hs"+ setupLhs = targetDir </> "Setup.lhs"++-- | Create a default setup script in the target directory, if it doesn't exist.+maybeCreateDefaultSetupScript :: FilePath -> IO ()+maybeCreateDefaultSetupScript targetDir = do+ mSetupFile <- findSetupFile targetDir+ case mSetupFile of+ Just _setupFile -> return ()+ Nothing -> do+ writeUTF8File (targetDir </> "Setup.hs") $ unlines [+ "import Distribution.Simple",+ "main = defaultMain"] -- | Find the main executable file. findMainExeFile :: BuildInfo -> [PPSuffixHandler] -> FilePath -> IO FilePath
Distribution/Version.hs view
@@ -1,4 +1,4 @@-{-# LANGUAGE DeriveDataTypeable, StandaloneDeriving #-}+{-# LANGUAGE CPP, DeriveDataTypeable, StandaloneDeriving #-} ----------------------------------------------------------------------------- -- | -- Module : Distribution.Version@@ -121,8 +121,10 @@ | VersionRangeParens VersionRange -- just '(exp)' parentheses syntax deriving (Show,Read,Eq,Typeable,Data) --- TODO orphan+#if __GLASGOW_HASKELL__ < 707+-- starting with ghc-7.7/base-4.7 this instance is provided in "Data.Data" deriving instance Data Version+#endif {-# DEPRECATED AnyVersion "Use 'anyVersion', 'foldVersionRange' or 'asVersionIntervals'" #-} {-# DEPRECATED ThisVersion "use 'thisVersion', 'foldVersionRange' or 'asVersionIntervals'" #-}@@ -233,8 +235,7 @@ IntersectVersionRanges (orLaterVersion v1) (orEarlierVersion v2) {-# DEPRECATED betweenVersionsInclusive- "In practice this is not very useful because we normally use inclusive lower bounds and exclusive upper bounds"- #-}+ "In practice this is not very useful because we normally use inclusive lower bounds and exclusive upper bounds" #-} -- | Fold over the basic syntactic structure of a 'VersionRange'. --