diff options
Diffstat (limited to 'libraries')
m--------- | libraries/Cabal | 0 | ||||
-rw-r--r-- | libraries/base/base.cabal | 2 | ||||
-rw-r--r-- | libraries/ghc-boot/GHC/PackageDb.hs | 83 | ||||
-rw-r--r-- | libraries/ghc-prim/ghc-prim.cabal | 2 | ||||
-rw-r--r-- | libraries/integer-gmp/integer-gmp.cabal | 2 | ||||
-rw-r--r-- | libraries/integer-simple/integer-simple.cabal | 4 | ||||
-rw-r--r-- | libraries/template-haskell/template-haskell.cabal | 9 |
7 files changed, 41 insertions, 61 deletions
diff --git a/libraries/Cabal b/libraries/Cabal -Subproject a8a121ea4d78783dd303dd2992d8e73ef337e7e +Subproject ecdf65a3c1e01b798e9d073258a6d1c8ff63a6d diff --git a/libraries/base/base.cabal b/libraries/base/base.cabal index cd77e55ee6..7d9367a6be 100644 --- a/libraries/base/base.cabal +++ b/libraries/base/base.cabal @@ -362,4 +362,4 @@ Library -- We need to set the unit id to base (without a version number) -- as it's magic. - ghc-options: -this-package-key base + ghc-options: -this-unit-id base diff --git a/libraries/ghc-boot/GHC/PackageDb.hs b/libraries/ghc-boot/GHC/PackageDb.hs index 2be20b2405..cc03c3b17f 100644 --- a/libraries/ghc-boot/GHC/PackageDb.hs +++ b/libraries/ghc-boot/GHC/PackageDb.hs @@ -64,15 +64,14 @@ import System.Directory -- | This is a subset of Cabal's 'InstalledPackageInfo', with just the bits -- that GHC is interested in. -- -data InstalledPackageInfo instpkgid srcpkgid srcpkgname pkgkey modulename +data InstalledPackageInfo srcpkgid srcpkgname unitid modulename = InstalledPackageInfo { - componentId :: instpkgid, + unitId :: unitid, sourcePackageId :: srcpkgid, packageName :: srcpkgname, packageVersion :: Version, - unitId :: pkgkey, abiHash :: String, - depends :: [pkgkey], + depends :: [unitid], importDirs :: [FilePath], hsLibraries :: [String], extraLibraries :: [String], @@ -86,9 +85,8 @@ data InstalledPackageInfo instpkgid srcpkgid srcpkgname pkgkey modulename includeDirs :: [FilePath], haddockInterfaces :: [FilePath], haddockHTMLs :: [FilePath], - exposedModules :: [ExposedModule pkgkey modulename], + exposedModules :: [ExposedModule unitid modulename], hiddenModules :: [modulename], - instantiatedWith :: [(modulename,OriginalModule pkgkey modulename)], exposed :: Bool, trusted :: Bool } @@ -98,40 +96,30 @@ data InstalledPackageInfo instpkgid srcpkgid srcpkgname pkgkey modulename -- plus module name) representing where a module was *originally* defined -- (i.e., the 'exposedReexport' field of the original ExposedModule entry should -- be 'Nothing'). Invariant: an OriginalModule never points to a reexport. -data OriginalModule pkgkey modulename +data OriginalModule unitid modulename = OriginalModule { - originalPackageId :: pkgkey, + originalPackageId :: unitid, originalModuleName :: modulename } deriving (Eq, Show) -- | Represents a module name which is exported by a package, stored in the --- 'exposedModules' field. A module export may be a reexport (in which --- case 'exposedReexport' is filled in with the original source of the module), --- and may be a signature (in which case 'exposedSignature is filled in with --- what the signature was compiled against). Thus: +-- 'exposedModules' field. A module export may be a reexport (in which case +-- 'exposedReexport' is filled in with the original source of the module). +-- Thus: -- --- * @ExposedModule n Nothing Nothing@ represents an exposed module @n@ which +-- * @ExposedModule n Nothing@ represents an exposed module @n@ which -- was defined in this package. -- --- * @ExposedModule n (Just o) Nothing@ represents a reexported module @n@ +-- * @ExposedModule n (Just o)@ represents a reexported module @n@ -- which was originally defined in @o@. -- --- * @ExposedModule n Nothing (Just s)@ represents an exposed signature @n@ --- which was compiled against the implementation @s@. --- --- * @ExposedModule n (Just o) (Just s)@ represents a reexported signature --- which was originally defined in @o@ and was compiled against the --- implementation @s@. --- --- We use two 'Maybe' data types instead of an ADT with four branches or --- four fields because this representation allows us to treat --- reexports/signatures uniformly. -data ExposedModule pkgkey modulename +-- We use a 'Maybe' data types instead of an ADT with two branches because this +-- representation allows us to treat reexports uniformly. +data ExposedModule unitid modulename = ExposedModule { exposedName :: modulename, - exposedReexport :: Maybe (OriginalModule pkgkey modulename), - exposedSignature :: Maybe (OriginalModule pkgkey modulename) + exposedReexport :: Maybe (OriginalModule unitid modulename) } deriving (Eq, Show) @@ -140,15 +128,14 @@ class BinaryStringRep a where toStringRep :: a -> BS.ByteString emptyInstalledPackageInfo :: (BinaryStringRep a, BinaryStringRep b, - BinaryStringRep c, BinaryStringRep d) - => InstalledPackageInfo a b c d e + BinaryStringRep c) + => InstalledPackageInfo a b c d emptyInstalledPackageInfo = InstalledPackageInfo { - componentId = fromStringRep BS.empty, + unitId = fromStringRep BS.empty, sourcePackageId = fromStringRep BS.empty, packageName = fromStringRep BS.empty, packageVersion = Version [] [], - unitId = fromStringRep BS.empty, abiHash = "", depends = [], importDirs = [], @@ -166,7 +153,6 @@ emptyInstalledPackageInfo = haddockHTMLs = [], exposedModules = [], hiddenModules = [], - instantiatedWith = [], exposed = False, trusted = False } @@ -174,8 +160,8 @@ emptyInstalledPackageInfo = -- | Read the part of the package DB that GHC is interested in. -- readPackageDbForGhc :: (BinaryStringRep a, BinaryStringRep b, BinaryStringRep c, - BinaryStringRep d, BinaryStringRep e) => - FilePath -> IO [InstalledPackageInfo a b c d e] + BinaryStringRep d) => + FilePath -> IO [InstalledPackageInfo a b c d] readPackageDbForGhc file = decodeFromFile file getDbForGhc where @@ -208,8 +194,8 @@ readPackageDbForGhcPkg file = -- | Write the whole of the package DB, both parts. -- writePackageDb :: (Binary pkgs, BinaryStringRep a, BinaryStringRep b, - BinaryStringRep c, BinaryStringRep d, BinaryStringRep e) => - FilePath -> [InstalledPackageInfo a b c d e] -> pkgs -> IO () + BinaryStringRep c, BinaryStringRep d) => + FilePath -> [InstalledPackageInfo a b c d] -> pkgs -> IO () writePackageDb file ghcPkgs ghcPkgPart = writeFileAtomic file (runPut putDbForGhcPkg) where @@ -296,20 +282,19 @@ writeFileAtomic targetPath content = do renameFile tmpPath targetPath) instance (BinaryStringRep a, BinaryStringRep b, BinaryStringRep c, - BinaryStringRep d, BinaryStringRep e) => - Binary (InstalledPackageInfo a b c d e) where + BinaryStringRep d) => + Binary (InstalledPackageInfo a b c d) where put (InstalledPackageInfo - componentId sourcePackageId - packageName packageVersion unitId + unitId sourcePackageId + packageName packageVersion abiHash depends importDirs hsLibraries extraLibraries extraGHCiLibraries libraryDirs frameworks frameworkDirs ldOptions ccOptions includes includeDirs haddockInterfaces haddockHTMLs - exposedModules hiddenModules instantiatedWith + exposedModules hiddenModules exposed trusted) = do - put (toStringRep componentId) put (toStringRep sourcePackageId) put (toStringRep packageName) put packageVersion @@ -331,12 +316,10 @@ instance (BinaryStringRep a, BinaryStringRep b, BinaryStringRep c, put haddockHTMLs put exposedModules put (map toStringRep hiddenModules) - put (map (\(k,v) -> (toStringRep k, v)) instantiatedWith) put exposed put trusted get = do - componentId <- get sourcePackageId <- get packageName <- get packageVersion <- get @@ -358,14 +341,12 @@ instance (BinaryStringRep a, BinaryStringRep b, BinaryStringRep c, haddockHTMLs <- get exposedModules <- get hiddenModules <- get - instantiatedWith <- get exposed <- get trusted <- get return (InstalledPackageInfo - (fromStringRep componentId) + (fromStringRep unitId) (fromStringRep sourcePackageId) (fromStringRep packageName) packageVersion - (fromStringRep unitId) abiHash (map fromStringRep depends) importDirs @@ -376,7 +357,6 @@ instance (BinaryStringRep a, BinaryStringRep b, BinaryStringRep c, haddockInterfaces haddockHTMLs exposedModules (map fromStringRep hiddenModules) - (map (\(k,v) -> (fromStringRep k, v)) instantiatedWith) exposed trusted) instance (BinaryStringRep a, BinaryStringRep b) => @@ -392,14 +372,11 @@ instance (BinaryStringRep a, BinaryStringRep b) => instance (BinaryStringRep a, BinaryStringRep b) => Binary (ExposedModule a b) where - put (ExposedModule exposedName exposedReexport exposedSignature) = do + put (ExposedModule exposedName exposedReexport) = do put (toStringRep exposedName) put exposedReexport - put exposedSignature get = do exposedName <- get exposedReexport <- get - exposedSignature <- get return (ExposedModule (fromStringRep exposedName) - exposedReexport - exposedSignature) + exposedReexport) diff --git a/libraries/ghc-prim/ghc-prim.cabal b/libraries/ghc-prim/ghc-prim.cabal index 1f09b45fca..2077e6d799 100644 --- a/libraries/ghc-prim/ghc-prim.cabal +++ b/libraries/ghc-prim/ghc-prim.cabal @@ -68,4 +68,4 @@ Library -- We need to set the unit ID to ghc-prim (without a version number) -- as it's magic. - ghc-options: -this-package-key ghc-prim + ghc-options: -this-unit-id ghc-prim diff --git a/libraries/integer-gmp/integer-gmp.cabal b/libraries/integer-gmp/integer-gmp.cabal index 5b5fb56ffe..377efb39f9 100644 --- a/libraries/integer-gmp/integer-gmp.cabal +++ b/libraries/integer-gmp/integer-gmp.cabal @@ -48,7 +48,7 @@ library UnliftedFFITypes build-depends: ghc-prim hs-source-dirs: src/ - ghc-options: -this-package-key integer-gmp -Wall + ghc-options: -this-unit-id integer-gmp -Wall cc-options: -std=c99 -Wall include-dirs: include diff --git a/libraries/integer-simple/integer-simple.cabal b/libraries/integer-simple/integer-simple.cabal index f958aa8201..0c05ad71ec 100644 --- a/libraries/integer-simple/integer-simple.cabal +++ b/libraries/integer-simple/integer-simple.cabal @@ -26,6 +26,6 @@ Library other-modules: GHC.Integer.Type default-extensions: CPP, MagicHash, BangPatterns, UnboxedTuples, UnliftedFFITypes, NoImplicitPrelude - -- We need to set the package name to integer-simple + -- We need to set the unit ID to integer-simple -- (without a version number) as it's magic. - ghc-options: -this-package-key integer-simple -Wall + ghc-options: -this-unit-id integer-simple -Wall diff --git a/libraries/template-haskell/template-haskell.cabal b/libraries/template-haskell/template-haskell.cabal index aae8afee59..b96e122610 100644 --- a/libraries/template-haskell/template-haskell.cabal +++ b/libraries/template-haskell/template-haskell.cabal @@ -55,7 +55,10 @@ Library -- version number) as it's magic. ghc-options: -Wall - if impl( ghc >= 7.9 ) - ghc-options: -this-package-key template-haskell + if impl( ghc >= 7.11 ) + ghc-options: -this-unit-id template-haskell else - ghc-options: -package-name template-haskell + if impl( ghc >= 7.9 ) + ghc-options: -this-package-key template-haskell + else + ghc-options: -package-name template-haskell |