summaryrefslogtreecommitdiff
path: root/compiler/main/PackageConfig.hs
diff options
context:
space:
mode:
authorSimon Marlow <simonmar@microsoft.com>2007-10-03 16:35:36 +0000
committerSimon Marlow <simonmar@microsoft.com>2007-10-03 16:35:36 +0000
commit1a7d1b77334529ca96ed4cbc03fcb5f55dc2de4a (patch)
treec65929c6b69c13266cdc0e6965b05e1f3a1af673 /compiler/main/PackageConfig.hs
parente932508283461bfc5b6658a374fd6e9126979e49 (diff)
downloadhaskell-1a7d1b77334529ca96ed4cbc03fcb5f55dc2de4a.tar.gz
refactoring only: use the parameterised InstalledPackageInfo
This required moving PackageId from PackageConfig to Module
Diffstat (limited to 'compiler/main/PackageConfig.hs')
-rw-r--r--compiler/main/PackageConfig.hs78
1 files changed, 9 insertions, 69 deletions
diff --git a/compiler/main/PackageConfig.hs b/compiler/main/PackageConfig.hs
index 14ac6b5793..c070ca2efb 100644
--- a/compiler/main/PackageConfig.hs
+++ b/compiler/main/PackageConfig.hs
@@ -1,49 +1,37 @@
-{-# OPTIONS -w #-}
--- The above warning supression flag is a temporary kludge.
--- While working on this module you are encouraged to remove it and fix
--- any warnings in the module. See
--- http://hackage.haskell.org/trac/ghc/wiki/Commentary/CodingStyle#Warnings
--- for details
-
--
-- (c) The University of Glasgow, 2004
--
module PackageConfig (
-- * PackageId
- PackageId,
- mkPackageId, stringToPackageId, packageIdString, packageConfigId,
- packageIdFS, fsToPackageId, unpackPackageId,
+ mkPackageId, packageConfigId, unpackPackageId,
-- * The PackageConfig type: information about a package
PackageConfig,
- InstalledPackageInfo(..), showPackageId,
+ InstalledPackageInfo_(..), showPackageId,
Version(..),
PackageIdentifier(..),
defaultPackageConfig,
-
- -- * Wired-in PackageIds
- basePackageId,
- rtsPackageId,
- haskell98PackageId,
- thPackageId,
- ndpPackageId,
- mainPackageId
) where
#include "HsVersions.h"
+import Module
import Distribution.InstalledPackageInfo
import Distribution.Package
import Distribution.Version
-import FastString
import Distribution.Compat.ReadP ( readP_to_S )
+-- warning suppression
+_unused :: FS.FastString
+_unused = FSLIT("")
+
-- -----------------------------------------------------------------------------
-- Our PackageConfig type is just InstalledPackageInfo from Cabal. Later we
-- might need to extend it with some GHC-specific stuff, but for now it's fine.
-type PackageConfig = InstalledPackageInfo
+type PackageConfig = InstalledPackageInfo_ ModuleName
+defaultPackageConfig :: PackageConfig
defaultPackageConfig = emptyInstalledPackageInfo
-- -----------------------------------------------------------------------------
@@ -60,22 +48,6 @@ defaultPackageConfig = emptyInstalledPackageInfo
--
-- A PackageId is a string of the form <pkg>-<version>.
-newtype PackageId = PId FastString deriving( Eq, Ord ) -- includes the version
- -- easier not to use a newtype here, because we need instances of
- -- Binary & Outputable, and we're too early to define them
-
-fsToPackageId :: FastString -> PackageId
-fsToPackageId = PId
-
-packageIdFS :: PackageId -> FastString
-packageIdFS (PId fs) = fs
-
-stringToPackageId :: String -> PackageId
-stringToPackageId = fsToPackageId . mkFastString
-
-packageIdString :: PackageId -> String
-packageIdString = unpackFS . packageIdFS
-
mkPackageId :: PackageIdentifier -> PackageId
mkPackageId = stringToPackageId . showPackageId
@@ -88,35 +60,3 @@ unpackPackageId p
[] -> Nothing
(pid:_) -> Just pid
where str = packageIdString p
-
--- -----------------------------------------------------------------------------
--- Package Ids that are wired in
-
--- Certain packages are "known" to the compiler, in that we know about certain
--- entities that reside in these packages, and the compiler needs to
--- declare static Modules and Names that refer to these packages. Hence
--- the wired-in packages can't include version numbers, since we don't want
--- to bake the version numbers of these packages into GHC.
---
--- So here's the plan. Wired-in packages are still versioned as
--- normal in the packages database, and you can still have multiple
--- versions of them installed. However, for each invocation of GHC,
--- only a single instance of each wired-in package will be recognised
--- (the desired one is selected via -package/-hide-package), and GHC
--- will use the unversioned PackageId below when referring to it,
--- including in .hi files and object file symbols. Unselected
--- versions of wired-in packages will be ignored, as will any other
--- package that depends directly or indirectly on it (much as if you
--- had used -ignore-package).
-
-basePackageId = fsToPackageId FSLIT("base")
-rtsPackageId = fsToPackageId FSLIT("rts")
-haskell98PackageId = fsToPackageId FSLIT("haskell98")
-thPackageId = fsToPackageId FSLIT("template-haskell")
-ndpPackageId = fsToPackageId FSLIT("ndp")
-
--- This is the package Id for the program. It is the default package
--- Id if you don't specify a package name. We don't add this prefix
--- to symbol name, since there can be only one main package per program.
-mainPackageId = fsToPackageId FSLIT("main")
-