Use existing function uniqAway instead of duplicating code
[ghc-hetmet.git] / compiler / ghci / ByteCodeLink.lhs
index fe4f6c3..fd66545 100644 (file)
@@ -1,10 +1,9 @@
 %
-% (c) The University of Glasgow 2000
+% (c) The University of Glasgow 2000-2006
 %
-\section[ByteCodeLink]{Bytecode assembler and linker}
+ByteCodeLink: Bytecode assembler and linker
 
 \begin{code}
-
 {-# OPTIONS -optc-DNON_POSIX_SOURCE #-}
 
 module ByteCodeLink ( 
@@ -15,21 +14,20 @@ module ByteCodeLink (
 
 #include "HsVersions.h"
 
-import ByteCodeItbls   ( ItblEnv, ItblPtr )
-import ByteCodeAsm     ( UnlinkedBCO(..), BCOPtr(..), sizeSS, ssElts )
-import ObjLink         ( lookupSymbol )
+import ByteCodeItbls
+import ByteCodeAsm
+import ObjLink
 
-import Name            ( Name,  nameModule, nameOccName )
+import Name
 import NameEnv
-import OccName         ( occNameFS )
-import PrimOp          ( PrimOp, primOpOcc )
+import OccName
+import PrimOp
 import Module
-import PackageConfig    ( mainPackageId, packageIdFS )
-import FastString      ( FastString(..), unpackFS, zEncodeFS )
-import Panic            ( GhcException(..) )
+import PackageConfig
+import FastString
+import Panic
 
 #ifdef DEBUG
-import Name             ( isExternalName )
 import Outputable
 #endif
 
@@ -157,10 +155,8 @@ mkPtrsArray ie ce n_ptrs ptrs = do
 
 newtype IOArray i e = IOArray (STArray RealWorld i e)
 
-instance HasBounds IOArray where
-    bounds (IOArray marr) = bounds marr
-
 instance MArray IOArray e IO where
+    getBounds (IOArray marr) = stToIO $ getBounds marr
     newArray lu init = stToIO $ do
         marr <- newArray lu init; return (IOArray marr)
     newArray_ lu = stToIO $ do
@@ -274,7 +270,7 @@ nameToCLabel n suffix
 
 primopToCLabel :: PrimOp -> String{-suffix-} -> String
 primopToCLabel primop suffix
-   = let str = "GHCziPrimopWrappers_" ++ unpackFS (zEncodeFS (occNameFS (primOpOcc primop))) ++ '_':suffix
+   = let str = "base_GHCziPrimopWrappers_" ++ unpackFS (zEncodeFS (occNameFS (primOpOcc primop))) ++ '_':suffix
      in --trace ("primopToCLabel: " ++ str)
         str
 \end{code}