From: simonmar Date: Wed, 13 Feb 2002 15:45:25 +0000 (+0000) Subject: [project @ 2002-02-13 15:45:25 by simonmar] X-Git-Tag: Approximately_9120_patches~71 X-Git-Url: http://git.megacz.com/?a=commitdiff_plain;h=eed458c7e317b5dcd4aa25679cf54e2fa25e0199;p=ghc-hetmet.git [project @ 2002-02-13 15:45:25 by simonmar] Packages that come in by way of -package-conf files override default packages (requested by Manuel Chakravarty). --- diff --git a/ghc/compiler/main/DriverState.hs b/ghc/compiler/main/DriverState.hs index c64e2f6..f95dac5 100644 --- a/ghc/compiler/main/DriverState.hs +++ b/ghc/compiler/main/DriverState.hs @@ -1,5 +1,5 @@ ----------------------------------------------------------------------------- --- $Id: DriverState.hs,v 1.68 2002/02/12 15:17:15 simonmar Exp $ +-- $Id: DriverState.hs,v 1.69 2002/02/13 15:45:25 simonmar Exp $ -- -- Settings for the driver -- @@ -440,12 +440,13 @@ readPackageConf conf_file = do top_dir <- getTopDir let pkg_details = mungePackagePaths top_dir proto_pkg_details old_pkg_details <- readIORef v_Package_details - let intersection = filter (`elem` map name old_pkg_details) - (map name pkg_details) - if (not (null intersection)) - then throwDyn (InstallationError ("package `" ++ head intersection ++ "' is already defined")) - else do - writeIORef v_Package_details (pkg_details ++ old_pkg_details) + + let -- new package override old ones + new_pkg_names = map name pkg_details + filtered_old_pkg_details = + filter (\p -> name p `notElem` new_pkg_names) old_pkg_details + + writeIORef v_Package_details (pkg_details ++ filtered_old_pkg_details) addPackage :: String -> IO () addPackage package