diff --git a/compiler/main/DynFlags.hs b/compiler/main/DynFlags.hs index 446381e2070c4bf10dd51e78cd05f28fa051cc99..094984be2e9d5992866c6ab27c07cab146fc473e 100644 --- a/compiler/main/DynFlags.hs +++ b/compiler/main/DynFlags.hs @@ -157,7 +157,7 @@ import Module import PackageConfig import {-# SOURCE #-} Hooks import {-# SOURCE #-} PrelNames ( mAIN ) -import {-# SOURCE #-} Packages (PackageState) +import {-# SOURCE #-} Packages (PackageState, emptyPackageState) import DriverPhases ( Phase(..), phaseInputExt ) import Config import CmdLineParser @@ -1480,7 +1480,8 @@ defaultDynFlags mySettings = packageFlags = [], packageEnv = Nothing, pkgDatabase = Nothing, - pkgState = panic "no package state yet: call GHC.setSessionDynFlags", + -- This gets filled in with GHC.setSessionDynFlags + pkgState = emptyPackageState, ways = defaultWays mySettings, buildTag = mkBuildTag (defaultWays mySettings), rtsBuildTag = mkBuildTag (defaultWays mySettings), diff --git a/compiler/main/Packages.hs b/compiler/main/Packages.hs index 985a11a36c1d9f85a693890c850fecfda3824e35..16ee352243bf49b031e800622b1867ed822a5c07 100644 --- a/compiler/main/Packages.hs +++ b/compiler/main/Packages.hs @@ -8,6 +8,7 @@ module Packages ( -- * Reading the package config, and processing cmdline args PackageState(preloadPackages), + emptyPackageState, initPackages, readPackageConfigs, getPackageConfRefs, @@ -287,6 +288,14 @@ data PackageState = PackageState { installedPackageIdMap :: InstalledPackageIdMap } +emptyPackageState :: PackageState +emptyPackageState = PackageState { + pkgIdMap = emptyUFM, + preloadPackages = [], + moduleNameDb = Map.empty, + installedPackageIdMap = Map.empty + } + type InstalledPackageIdMap = Map InstalledPackageId PackageKey type InstalledPackageIndex = Map InstalledPackageId PackageConfig diff --git a/compiler/main/Packages.hs-boot b/compiler/main/Packages.hs-boot index f2343b66c9d739e8f3417d0b7ff8b8f499b38ef8..bac04bc20ad1111bbf7250e1bfd0bace309e6c5f 100644 --- a/compiler/main/Packages.hs-boot +++ b/compiler/main/Packages.hs-boot @@ -4,3 +4,4 @@ import {-# SOURCE #-} Module (PackageKey) import {-# SOURCE #-} DynFlags (DynFlags) data PackageState packageKeyPackageIdString :: DynFlags -> PackageKey -> Maybe String +emptyPackageState :: PackageState