X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=compiler%2Fghci%2FLinker.lhs;h=d2c7fe10810dd1510d673826352a3fe34931b315;hb=47ec5807dfabbe140b60fcb35af8a105b78ba140;hp=f59eecc0b048276224c7973c67f9ec16ebc7dcb7;hpb=60ade746bb87a5aa76f5d6d2ca97027fc6356dc7;p=ghc-hetmet.git diff --git a/compiler/ghci/Linker.lhs b/compiler/ghci/Linker.lhs index f59eecc..d2c7fe1 100644 --- a/compiler/ghci/Linker.lhs +++ b/compiler/ghci/Linker.lhs @@ -750,22 +750,14 @@ linkSomeBCOs toplevs_only ie ce_in de_in ul_bcos -- closure environment, which leads to trouble. ASSERT (all (not . (`elemNameEnv` ce_in)) (map fst ce_additions)) extendClosureEnv ce_in ce_additions - refs = goForRefs ul_bcos - names = nub$ concatMap (ssElts . unlinkedBCOItbls) (ul_bcos ++ refs) + names = concatMap (ssElts . unlinkedBCOItbls) ul_bcos addresses <- mapM (lookupIE ie) names let de_additions = [(address, name) | (address, name) <- zip addresses names , not(address `elemAddressEnv` de_in) ] de_out = extendAddressEnvList de_in de_additions return ( ce_out, de_out, hvals) - where - goForRefs = getRefs [] - getRefs acc [] = acc - getRefs acc new = getRefs (new++acc) - [bco | BCOPtrBCO bco <- concatMap (ssElts . unlinkedBCOPtrs) new - , notElemBy bco (new ++ acc) nameEq] - ul1 `nameEq` ul2 = unlinkedBCOName ul1 == unlinkedBCOName ul2 - (x1 `notElemBy` x2) eq = null$ intersectBy eq [x1] x2 + \end{code}