From: Ian Lynagh Date: Thu, 26 Jun 2008 20:27:49 +0000 (+0000) Subject: Follow Cabal changes X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=commitdiff_plain;h=a11bb49b97eaba892730baf1565e922715dbc07f Follow Cabal changes --- diff --git a/compat/Distribution/Compat/Exception.hs b/compat/Distribution/Compat/Exception.hs deleted file mode 100644 index 6e3922d..0000000 --- a/compat/Distribution/Compat/Exception.hs +++ /dev/null @@ -1,3 +0,0 @@ -{-# OPTIONS -cpp #-} -#include "Cabal/Distribution/Compat/Exception.hs" --- dummy comment diff --git a/compiler/ghci/Linker.lhs b/compiler/ghci/Linker.lhs index d7f3da3..ac92975 100644 --- a/compiler/ghci/Linker.lhs +++ b/compiler/ghci/Linker.lhs @@ -72,6 +72,8 @@ import System.FilePath import System.IO import System.Directory +import Distribution.Package hiding (depends) + import Control.Exception import Data.Maybe \end{code} @@ -944,10 +946,11 @@ data LibrarySpec -- of DLL handles that rts/Linker.c maintains, and that in turn is -- used by lookupSymbol. So we must call addDLL for each library -- just to get the DLL handle into the list. -partOfGHCi :: [String] +partOfGHCi :: [PackageName] partOfGHCi | isWindowsTarget || isDarwinTarget = [] - | otherwise = [ "base", "haskell98", "template-haskell", "editline" ] + | otherwise = map PackageName + ["base", "haskell98", "template-haskell", "editline"] showLS :: LibrarySpec -> String showLS (Object nm) = "(static) " ++ nm @@ -1022,7 +1025,7 @@ linkPackage dflags pkg maybePutStr dflags ("Loading package " ++ display (package pkg) ++ " ... ") -- See comments with partOfGHCi - when (pkgName (package pkg) `notElem` partOfGHCi) $ do + when (packageName pkg `notElem` partOfGHCi) $ do loadFrameworks pkg -- When a library A needs symbols from a library B, the order in -- extra_libraries/extra_ld_opts is "-lA -lB", because that's the diff --git a/compiler/main/Packages.lhs b/compiler/main/Packages.lhs index 712682e..41a760a 100644 --- a/compiler/main/Packages.lhs +++ b/compiler/main/Packages.lhs @@ -318,7 +318,7 @@ matchingPackages str pkgs -- version, or just the name if it is unambiguous. matches str p = str == display (package p) - || str == pkgName (package p) + || str == display (pkgName (package p)) pickPackages :: [PackageConfig] -> [String] -> [PackageConfig] pickPackages pkgs strs = @@ -387,7 +387,7 @@ findWiredInPackages dflags pkgs preload this_package = do matches :: PackageConfig -> (PackageId, [String]) -> Bool pc `matches` (pid, suffixes) - = pkgName (package pc) `elem` + = display (pkgName (package pc)) `elem` (map (packageIdString pid ++) suffixes) -- find which package corresponds to each wired-in package @@ -445,7 +445,7 @@ findWiredInPackages dflags pkgs preload this_package = do upd_pid pid = case filter ((== pid) . fst) wired_in_ids of [] -> pid - ((x, y):_) -> x{ pkgName = packageIdString y, + ((x, y):_) -> x{ pkgName = PackageName (packageIdString y), pkgVersion = Version [] [] } pkgs1 = deleteOtherWiredInPackages pkgs diff --git a/compiler/main/ParsePkgConf.y b/compiler/main/ParsePkgConf.y index ac0cebb..ea515db 100644 --- a/compiler/main/ParsePkgConf.y +++ b/compiler/main/ParsePkgConf.y @@ -10,6 +10,7 @@ module ParsePkgConf( loadPackageConfig ) where #include "HsVersions.h" +import Distribution.Package hiding ( depends ) import PackageConfig import Lexer import Module @@ -112,9 +113,15 @@ field :: { PackageConfig -> PackageConfig } } pkgid :: { PackageIdentifier } - : CONID '{' VARID '=' STRING ',' VARID '=' version '}' - { PackageIdentifier{ pkgName = unpackFS $5, - pkgVersion = $9 } } + : CONID '{' VARID '=' CONID STRING ',' VARID '=' version '}' + {% case unpackFS $5 of + "PackageName" -> + return $ PackageIdentifier { + pkgName = PackageName (unpackFS $6), + pkgVersion = $10 + } + _ -> happyError + } version :: { Version } : CONID '{' VARID '=' intlist ',' VARID '=' strlist '}' diff --git a/libraries/cabal.hs b/libraries/cabal.hs index 81c3117..85341c2 100644 --- a/libraries/cabal.hs +++ b/libraries/cabal.hs @@ -31,7 +31,7 @@ main = do Just Simple -> Simple.defaultMainArgs args Just Make -> Make.defaultMainArgs args Just Configure -> defaultMainWithHooksArgs autoconfUserHooks args - _ | pkgName (package pd) == "Cabal" -> + _ | packageName pd == PackageName "Cabal" -> -- Cabal is special...*sigh* Simple.defaultMainArgs args | otherwise -> die "cabal: Don't know what to do!" diff --git a/libraries/installPackage.hs b/libraries/installPackage.hs index 00560a7..8c66009 100644 --- a/libraries/installPackage.hs +++ b/libraries/installPackage.hs @@ -60,7 +60,7 @@ doInstall verbosity ghcpkg ghcpkgconf destdir topdir -- This is an almighty hack. We need to register -- ghc-prim:GHC.Prim, but it doesn't exist, get built, get -- haddocked, get copied, etc. - pd_reg = if pkgName (package pd) == "ghc-prim" + pd_reg = if packageName pd == PackageName "ghc-prim" then case library pd of Just lib -> let ems = "GHC.Prim" : exposedModules lib diff --git a/utils/ghc-pkg/Main.hs b/utils/ghc-pkg/Main.hs index d8b8639..91c8ade 100644 --- a/utils/ghc-pkg/Main.hs +++ b/utils/ghc-pkg/Main.hs @@ -324,7 +324,8 @@ parseGlobPackageId :: ReadP r PackageIdentifier parseGlobPackageId = parse +++ - (do n <- parsePackageName; string "-*" + (do n <- parse + string "-*" return (PackageIdentifier{ pkgName = n, pkgVersion = globVersion })) -- globVersion means "all versions" @@ -573,7 +574,7 @@ listPackages flags mPackageName mModuleName = do where doc = text (display (package p)) show_simple db_stack = do - let showPkg = if FlagNamesOnly `elem` flags then pkgName + let showPkg = if FlagNamesOnly `elem` flags then display . pkgName else display pkgs = map showPkg $ sortBy compPkgIdVer $ map package (concatMap snd db_stack)