From 723f34f0849b329c3c8e2736a0326f0ab3b82efd Mon Sep 17 00:00:00 2001 From: Michael Snoyman Date: Tue, 19 Aug 2014 07:38:35 +0300 Subject: [PATCH] Remove old Haskell Platform code --- Stackage/HaskellPlatform.hs | 71 -------------------- Stackage/InstallInfo.hs | 22 ++----- hp/haskell-platform-7.4.cabal | 113 -------------------------------- hp/haskell-platform-7.6.cabal | 118 ---------------------------------- stackage.cabal | 1 - 5 files changed, 5 insertions(+), 320 deletions(-) delete mode 100644 Stackage/HaskellPlatform.hs delete mode 100644 hp/haskell-platform-7.4.cabal delete mode 100644 hp/haskell-platform-7.6.cabal diff --git a/Stackage/HaskellPlatform.hs b/Stackage/HaskellPlatform.hs deleted file mode 100644 index f5f406fe..00000000 --- a/Stackage/HaskellPlatform.hs +++ /dev/null @@ -1,71 +0,0 @@ -module Stackage.HaskellPlatform - ( loadHaskellPlatform - ) where - -import Control.Monad (guard) -import Data.Char (isSpace) -import Data.List (foldl', isInfixOf, isPrefixOf, stripPrefix) -import Data.Maybe (mapMaybe) -import Data.Monoid (Monoid (..)) -import Data.Set (singleton) -import Distribution.Text (simpleParse) -import Stackage.Types -import System.Directory (doesFileExist) -import System.FilePath (()) - -loadHaskellPlatform :: SelectSettings -> IO (Maybe HaskellPlatform) -loadHaskellPlatform ss = do - e <- doesFileExist fp - if e - then fmap (Just . parseHP) $ readFile fp - else do - putStrLn "Warning: No Haskell Platform found for current GHC version" - return Nothing - where - GhcMajorVersion x y = selectGhcVersion ss - - fp = haskellPlatformDir ss (concat - [ "haskell-platform-" - , show x - , "." - , show y - , ".cabal" - ]) - -data HPLine = HPLPackage PackageIdentifier - | HPLBeginCore - | HPLEndCore - | HPLBeginPlatform - | HPLEndPlatform - deriving Show - -toHPLine :: String -> Maybe HPLine -toHPLine s - | "begin core packages" `isInfixOf` s = Just HPLBeginCore - | "end core packages" `isInfixOf` s = Just HPLEndCore - | "begin platform packages" `isInfixOf` s = Just HPLBeginPlatform - | "end platform packages" `isInfixOf` s = Just HPLEndPlatform - | otherwise = do - let s1 = dropWhile isSpace s - guard $ not $ "--" `isPrefixOf` s1 - guard $ not $ null s1 - guard $ "==" `isInfixOf` s1 - let (package', s2) = break (== '=') s1 - package = takeWhile (not . isSpace) package' - s3 <- stripPrefix "==" s2 - version <- simpleParse $ takeWhile (/= ',') s3 - Just $ HPLPackage $ PackageIdentifier (PackageName package) version - -parseHP :: String -> HaskellPlatform -parseHP = - snd . foldl' addLine (notInBlock, mempty) . mapMaybe toHPLine . lines - where - notInBlock _ = mempty - inCore x = HaskellPlatform (singleton x) mempty - inPlatform x = HaskellPlatform mempty (singleton x) - - addLine (fromPackage, hp) (HPLPackage vp) = (fromPackage, fromPackage vp `mappend` hp) - addLine (_, hp) HPLBeginCore = (inCore, hp) - addLine (_, hp) HPLEndCore = (notInBlock, hp) - addLine (_, hp) HPLBeginPlatform = (inPlatform, hp) - addLine (_, hp) HPLEndPlatform = (notInBlock, hp) diff --git a/Stackage/InstallInfo.hs b/Stackage/InstallInfo.hs index 9755f8fb..92dbe885 100644 --- a/Stackage/InstallInfo.hs +++ b/Stackage/InstallInfo.hs @@ -14,7 +14,6 @@ import Data.Version (showVersion) import qualified Distribution.Text import Distribution.Version (simplifyVersionRange, withinRange) import Stackage.GhcPkg -import Stackage.HaskellPlatform import Stackage.LoadDatabase import Stackage.NarrowDatabase import Stackage.ServerFiles @@ -36,25 +35,17 @@ dropExcluded bs m0 = getInstallInfo :: SelectSettings -> IO InstallInfo getInstallInfo settings = do putStrLn "Loading Haskell Platform" - mhp <- loadHaskellPlatform settings - core <- - case mhp of - Just hp | not (useGlobalDatabase settings) -> return $ hpcore hp - _ -> do - putStrLn "Loading core packages from global database" - getGlobalPackages $ selectGhcVersion settings + core <- do + putStrLn "Loading core packages from global database" + getGlobalPackages $ selectGhcVersion settings underlay <- getDBPackages (selectUnderlayPackageDirs settings) (selectGhcVersion settings) let underlaySet = Set.map pkgName underlay coreMap = Map.unions $ map (\(PackageIdentifier k v) -> Map.singleton k v) $ Set.toList core allPackages' = - case mhp of - Just hp | requireHaskellPlatform settings -> - Map.union (stablePackages settings $ requireHaskellPlatform settings) - $ identsToRanges (hplibs hp) - _ -> stablePackages settings $ requireHaskellPlatform settings + stablePackages settings $ requireHaskellPlatform settings allPackages = dropExcluded settings allPackages' totalCore | ignoreUpgradeableCore settings = @@ -99,10 +90,7 @@ getInstallInfo settings = do let ii = InstallInfo { iiCore = totalCore , iiPackages = Map.map biToSPI final - , iiOptionalCore = maybe - Map.empty - (Map.fromList . map (\(PackageIdentifier p v) -> (p, v)) . Set.toList . hplibs) - mhp + , iiOptionalCore = Map.empty , iiPackageDB = pdb } diff --git a/hp/haskell-platform-7.4.cabal b/hp/haskell-platform-7.4.cabal deleted file mode 100644 index 23d1f7a0..00000000 --- a/hp/haskell-platform-7.4.cabal +++ /dev/null @@ -1,113 +0,0 @@ -name: haskell-platform -version: 2012.4.0.0 -homepage: http://haskell.org/platform -license: BSD3 -license-file: LICENSE -author: libraries@haskell.org -maintainer: haskell-platform@projects.haskell.org -category: System -synopsis: The Haskell Platform -description: - The Haskell Platform (HP) is the blessed set of libraries and tools on - which to build further Haskell libraries and applications. It is - intended to provide a comprehensive, stable, and quality tested base for - Haskell projects to work from. - . - This version specifies the following additional developer tools be - installed, for a system to be in full compliance: - . - * cabal-install - * alex - * happy - * haddock - -cabal-version: >= 1.8 -build-type: Custom -tested-with: GHC ==7.4.2 - -flag include-ghc-depends - description: Include all the GHC provided packages in the dependencies - default: False - -library - if flag(include-ghc-depends) - build-depends: - ghc ==7.4.2, - - -- Core libraries: provided by every ghc installation - -- We don't include "non-API" packages here. - -- begin core packages - array ==0.4.0.0, - base ==4.5.1.0, - bytestring ==0.9.2.1, - Cabal ==1.14.0, - containers ==0.4.2.1, - deepseq ==1.3.0.0, - directory ==1.1.0.2, - extensible-exceptions ==0.1.1.4, - filepath ==1.3.0.0, - haskell2010 ==1.1.0.1, - haskell98 ==2.0.0.1, - hpc ==0.5.1.1, - old-locale ==1.0.0.4, - old-time ==1.1.0.0, - pretty ==1.1.1.0, - process ==1.1.0.1, - template-haskell ==2.7.0.0, - time ==1.4 - if !os(windows) - build-depends: - unix ==2.5.1.1 - -- end core packages - else - build-depends: - Win32 ==2.2.2.0 - - build-depends: - -- Libraries in addition to what GHC provides: - -- Note: newer versions of cgi need monad-catchio. - -- begin platform packages - async ==2.0.1.3, - cgi ==3001.1.7.4, - fgl ==5.4.2.4, - GLUT ==2.1.2.1, - haskell-src ==1.0.1.5, - html ==1.0.1.2, - HTTP ==4000.2.5, - HUnit ==1.2.5.1, - mtl ==2.1.2, - network ==2.3.1.0, - OpenGL ==2.2.3.1, - parallel ==3.2.0.3, - parsec ==3.1.3, - QuickCheck ==2.5.1.1, - random ==1.0.1.1, - regex-base ==0.93.2, - regex-compat ==0.95.1, - regex-posix ==0.95.2, - split ==0.2.1.1, - stm ==2.4, - syb ==0.3.7, - text ==0.11.2.3, - transformers ==0.3.0.0, - vector ==0.10.0.1, - xhtml ==3000.2.1, - zlib ==0.5.4.0, - - -- Libraries that are needed to support the above, - -- though are not officially part of the platform - primitive ==0.5.0.1 - - -- Depending on programs does not work, they are not registered - -- We list them to help distro packaging. - build-tools: - cabal-install ==0.14.0, - alex ==3.0.2, - happy ==1.18.10 - -- end platform packages - -- hscolour ==1.19 -- ??? - -- haddock ==2.11.0 -- need to use the one shipped with ghc - --- N.B.: The begin/end comment annotations are used to build the source --- installer: Packages that are part of the core are checked at build time. --- Source of packages that are part of the platform are included in the tarball. diff --git a/hp/haskell-platform-7.6.cabal b/hp/haskell-platform-7.6.cabal deleted file mode 100644 index cf676ab1..00000000 --- a/hp/haskell-platform-7.6.cabal +++ /dev/null @@ -1,118 +0,0 @@ -name: haskell-platform -version: 2013.2.0.0 -homepage: http://haskell.org/platform -license: BSD3 -license-file: LICENSE -author: libraries@haskell.org -maintainer: haskell-platform@projects.haskell.org -category: System -synopsis: The Haskell Platform -description: - The Haskell Platform (HP) is the blessed set of libraries and tools on - which to build further Haskell libraries and applications. It is - intended to provide a comprehensive, stable, and quality tested base for - Haskell projects to work from. - . - This version specifies the following additional developer tools be - installed, for a system to be in full compliance: - . - * cabal-install - * alex - * happy - * haddock - -cabal-version: >= 1.8 -build-type: Custom -tested-with: GHC ==7.6.3 - -flag include-ghc-depends - description: Include all the GHC provided packages in the dependencies - default: False - -library - if flag(include-ghc-depends) - build-depends: - ghc ==7.6.3, - - -- Core libraries: provided by every ghc installation - -- We don't include "non-API" packages here. - -- begin core packages - array ==0.4.0.1, - base ==4.6.0.1, - bytestring ==0.10.0.2, - Cabal ==1.16.0, - containers ==0.5.0.0, - deepseq ==1.3.0.1, - directory ==1.2.0.1, - filepath ==1.3.0.1, - haskell2010 ==1.1.1.0, - haskell98 ==2.0.0.2, - hpc ==0.6.0.0, - old-locale ==1.0.0.5, - old-time ==1.1.0.1, - pretty ==1.1.1.0, - process ==1.1.0.2, - template-haskell ==2.8.0.0, - time ==1.4.0.1 - if !os(windows) - build-depends: - unix ==2.6.0.1 - -- end core packages - else - build-depends: - Win32 ==2.3.0.0 - - build-depends: - -- Libraries in addition to what GHC provides: - -- Note: newer versions of cgi need monad-catchio. - -- begin platform packages - async ==2.0.1.4, - attoparsec ==0.10.4.0, - case-insensitive ==1.0.0.1, - cgi ==3001.1.7.5, - fgl ==5.4.2.4, - GLUT ==2.4.0.0, - GLURaw ==1.3.0.0, - haskell-src ==1.0.1.5, - hashable ==1.1.2.5, - html ==1.0.1.2, - HTTP ==4000.2.8, - HUnit ==1.2.5.2, - mtl ==2.1.2, - network ==2.4.1.2, - OpenGL ==2.8.0.0, - OpenGLRaw ==1.3.0.0, - parallel ==3.2.0.3, - parsec ==3.1.3, - QuickCheck ==2.6, - random ==1.0.1.1, - regex-base ==0.93.2, - regex-compat ==0.95.1, - regex-posix ==0.95.2, - split ==0.2.2, - stm ==2.4.2, - syb ==0.4.0, - text ==0.11.3.1, - transformers ==0.3.0.0, - unordered-containers ==0.2.3.0, - vector ==0.10.0.1, - xhtml ==3000.2.1, - zlib ==0.5.4.1, - - -- Libraries that are needed to support the above, - -- though are not officially part of the platform - primitive ==0.5.0.1 - - -- Depending on programs does not work, they are not registered - -- We list them to help distro packaging. - build-tools: - cabal-install ==1.16.0.2, - alex ==3.0.5, - happy ==1.18.10 - -- end platform packages - -- hscolour ==1.20.3 -- ??? - -- haddock ==2.13.2 -- need to use the one shipped with ghc - --- N.B.: The begin/end comment annotations are used to build the source --- installer: Packages that are part of the core are checked at build time. --- Source of packages that are part of the platform are included in the tarball. diff --git a/stackage.cabal b/stackage.cabal index 61e66fa5..7b0150e5 100644 --- a/stackage.cabal +++ b/stackage.cabal @@ -14,7 +14,6 @@ cabal-version: >=1.8 library exposed-modules: Stackage.NarrowDatabase Stackage.LoadDatabase - Stackage.HaskellPlatform Stackage.ModuleNameConflict Stackage.Util Stackage.Types