X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=compiler%2Fghci%2FByteCodeLink.lhs;h=5e39fdef1064e13ad51e0588a9fe07f6be4f23d8;hb=d436c70d43fb905c63220040168295e473f4b90a;hp=939b9b62788dc845368895af97549c59bc4888a3;hpb=78e55cb0e0d8c252e87df296e58d3cea385b3c3d;p=ghc-hetmet.git diff --git a/compiler/ghci/ByteCodeLink.lhs b/compiler/ghci/ByteCodeLink.lhs index 939b9b6..5e39fde 100644 --- a/compiler/ghci/ByteCodeLink.lhs +++ b/compiler/ghci/ByteCodeLink.lhs @@ -42,7 +42,6 @@ import GHC.Word ( Word(..) ) import Data.Array.Base import GHC.Arr ( STArray(..) ) -import Control.Exception ( throwDyn ) import Control.Monad ( zipWithM ) import Control.Monad.ST ( stToIO ) @@ -121,13 +120,13 @@ linkBCO' ie ce (UnlinkedBCO nm arity insns_barr bitmap literalsSS ptrsSS) ptrs_arr <- mkPtrsArray ie ce n_ptrs ptrs let - ptrs_parr = case ptrs_arr of Array _lo _hi _n parr -> parr + !ptrs_parr = case ptrs_arr of Array _lo _hi _n parr -> parr literals_arr = listArray (0, n_literals-1) linked_literals :: UArray Int Word - literals_barr = case literals_arr of UArray _lo _hi _n barr -> barr + !literals_barr = case literals_arr of UArray _lo _hi _n barr -> barr - (I# arity#) = arity + !(I# arity#) = arity newBCO insns_barr literals_barr ptrs_parr arity# bitmap @@ -245,7 +244,7 @@ lookupIE ie con_nm linkFail :: String -> String -> IO a linkFail who what - = throwDyn (ProgramError $ + = ghcError (ProgramError $ unlines [ "" , "During interactive linking, GHCi couldn't find the following symbol:" , ' ' : ' ' : what @@ -266,7 +265,7 @@ nameToCLabel n suffix else qual_name where pkgid = modulePackageId mod - mod = nameModule n + mod = ASSERT( isExternalName n ) nameModule n package_part = unpackFS (zEncodeFS (packageIdFS (modulePackageId mod))) module_part = unpackFS (zEncodeFS (moduleNameFS (moduleName mod))) occ_part = unpackFS (zEncodeFS (occNameFS (nameOccName n))) @@ -275,7 +274,7 @@ nameToCLabel n suffix primopToCLabel :: PrimOp -> String{-suffix-} -> String primopToCLabel primop suffix - = let str = "base_GHCziPrimopWrappers_" ++ unpackFS (zEncodeFS (occNameFS (primOpOcc primop))) ++ '_':suffix + = let str = "ghczmprim_GHCziPrimopWrappers_" ++ unpackFS (zEncodeFS (occNameFS (primOpOcc primop))) ++ '_':suffix in --trace ("primopToCLabel: " ++ str) str \end{code}