Use MD5 checksums for recompilation checking (fixes #1372, #1959)
[ghc-hetmet.git] / compiler / basicTypes / Name.lhs
index 7dc6fe9..7dfed64 100644 (file)
@@ -35,23 +35,18 @@ module Name (
        getSrcLoc, getSrcSpan, getOccString
     ) where
 
-#include "HsVersions.h"
-
 import {-# SOURCE #-} TypeRep( TyThing )
 
 import OccName
 import Module
 import SrcLoc
-import UniqFM
 import Unique
 import Maybes
 import Binary
-import FastMutInt
 import FastTypes
 import FastString
 import Outputable
 
-import Data.IORef
 import Data.Array
 \end{code}
 
@@ -311,20 +306,9 @@ instance NamedThing Name where
 
 \begin{code}
 instance Binary Name where
-   put_ bh name = do
-      case getUserData bh of { 
-        UserData { ud_symtab_map = symtab_map_ref,
-                   ud_symtab_next = symtab_next } -> do
-         symtab_map <- readIORef symtab_map_ref
-         case lookupUFM symtab_map name of
-           Just (off,_) -> put_ bh off
-           Nothing -> do
-              off <- readFastMutInt symtab_next
-              writeFastMutInt symtab_next (off+1)
-              writeIORef symtab_map_ref
-                  $! addToUFM symtab_map name (off,name)
-              put_ bh off          
-     }
+   put_ bh name =
+      case getUserData bh of 
+        UserData{ ud_put_name = put_name } -> put_name bh name
 
    get bh = do
         i <- get bh
@@ -361,7 +345,7 @@ pprExternal sty uniq mod occ is_wired is_builtin
        -- ToDo: maybe we could print all wired-in things unqualified
        --       in code style, to reduce symbol table bloat?
  | debugStyle sty       = ppr mod <> dot <> ppr_occ_name occ
-               <> braces (hsep [if is_wired then ptext SLIT("(w)") else empty,
+               <> braces (hsep [if is_wired then ptext (sLit "(w)") else empty,
                                 pprNameSpaceBrief (occNameSpace occ), 
                                 pprUnique uniq])
   | BuiltInSyntax <- is_builtin  = ppr_occ_name occ
@@ -411,8 +395,8 @@ pprNameLoc :: Name -> SDoc
 pprNameLoc name
   | isGoodSrcSpan loc = pprDefnLoc loc
   | isInternalName name || isSystemName name 
-                      = ptext SLIT("<no location info>")
-  | otherwise         = ptext SLIT("Defined in ") <> ppr (nameModule name)
+                      = ptext (sLit "<no location info>")
+  | otherwise         = ptext (sLit "Defined in ") <> ppr (nameModule name)
   where loc = nameSrcSpan name
 \end{code}