X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=blobdiff_plain;f=compiler%2Fmain%2FPackages.lhs;h=1402db10408f79212c867a1c33c626df10c94b2a;hp=80ab2446dc3f26dd380b2e0c5adfd588ece54b10;hb=1a7d1b77334529ca96ed4cbc03fcb5f55dc2de4a;hpb=17b297d97d327620ed6bfab942f8992b2446f1bf diff --git a/compiler/main/Packages.lhs b/compiler/main/Packages.lhs index 80ab244..1402db1 100644 --- a/compiler/main/Packages.lhs +++ b/compiler/main/Packages.lhs @@ -4,11 +4,11 @@ % Package manipulation % \begin{code} -{-# OPTIONS_GHC -w #-} +{-# 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/WorkingConventions#Warnings +-- http://hackage.haskell.org/trac/ghc/wiki/Commentary/CodingStyle#Warnings -- for details module Packages ( @@ -527,7 +527,11 @@ mkPackageState dflags orig_pkg_db preload0 this_package = do -- add base & rts to the preload packages basicLinkedPackages = filter (flip elemUFM pkg_db) [basePackageId,rtsPackageId] - preload2 = nub (basicLinkedPackages ++ map mkPackageId preload1) + -- but in any case remove the current package from the set of + -- preloaded packages so that base/rts does not end up in the + -- set up preloaded package when we are just building it + preload2 = nub (filter (/= new_this_pkg) + (basicLinkedPackages ++ map mkPackageId preload1)) -- Close the preload packages with their dependencies dep_preload <- closeDeps pkg_db (zip preload2 (repeat Nothing)) @@ -553,12 +557,12 @@ mkModuleMap pkg_db = foldr extend_modmap emptyUFM pkgids extend_modmap pkgid modmap = addListToUFM_C (++) modmap - [(m, [(pkg, m `elem` exposed_mods)]) | m <- all_mods] + ([(m, [(pkg, True)]) | m <- exposed_mods] ++ + [(m, [(pkg, False)]) | m <- hidden_mods]) where pkg = expectJust "mkModuleMap" (lookupPackage pkg_db pkgid) - exposed_mods = map mkModuleName (exposedModules pkg) - hidden_mods = map mkModuleName (hiddenModules pkg) - all_mods = exposed_mods ++ hidden_mods + exposed_mods = exposedModules pkg + hidden_mods = hiddenModules pkg pprPkg :: PackageConfig -> SDoc pprPkg p = text (showPackageId (package p)) @@ -700,5 +704,10 @@ dumpPackages :: DynFlags -> IO () dumpPackages dflags = do let pkg_map = pkgIdMap (pkgState dflags) putMsg dflags $ - vcat (map (text.showInstalledPackageInfo) (eltsUFM pkg_map)) + vcat (map (text.showInstalledPackageInfo.to_ipi) (eltsUFM pkg_map)) + where + to_ipi pkgconf@InstalledPackageInfo_{ exposedModules = e, + hiddenModules = h } = + pkgconf{ exposedModules = map moduleNameString e, + hiddenModules = map moduleNameString h } \end{code}