From: Simon Marlow Date: Wed, 17 Feb 2010 13:32:50 +0000 (+0000) Subject: Fix a recompilation checking bug when a package dependency changes X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=commitdiff_plain;h=f3e080507db6130c983fc86485661e0f14fba565 Fix a recompilation checking bug when a package dependency changes We weren't forcing enough recompilationg when package dependencies changed, with the result that bumping a package version could lead to linking failures or other problems later. The problem/solutation are described on the wiki: http://hackage.haskell.org/trac/ghc/wiki/Commentary/Compiler/RecompilationAvoidance#Packageversionchanges --- diff --git a/compiler/iface/MkIface.lhs b/compiler/iface/MkIface.lhs index 702a744..9263bae 100644 --- a/compiler/iface/MkIface.lhs +++ b/compiler/iface/MkIface.lhs @@ -512,7 +512,12 @@ addFingerprints hsc_env mb_old_fingerprint iface0 new_decls -- the export list hash doesn't depend on the fingerprints of -- the Names it mentions, only the Names themselves, hence putNameLiterally. export_hash <- computeFingerprint dflags putNameLiterally - (mi_exports iface0, orphan_hash, dep_orphan_hashes) + (mi_exports iface0, + orphan_hash, + dep_orphan_hashes, + dep_pkgs (mi_deps iface0)) + -- dep_pkgs: see "Package Version Changes" on + -- wiki/Commentary/Compiler/RecompilationAvoidance -- put the declarations in a canonical order, sorted by OccName let sorted_decls = eltsFM $ listToFM $