Clean up and remove todo.
authorJoel Burget <joel@khanacademy.org>
Tue, 7 Oct 2014 13:51:13 +0000 (08:51 -0500)
committerAustin Seipp <austin@well-typed.com>
Tue, 7 Oct 2014 13:51:14 +0000 (08:51 -0500)
Summary:
The code is equivalent, just formatted nicely and without the
enthusiastic message to clean it up.

Test Plan: None

Reviewers: austin

Reviewed By: austin

Subscribers: simonmar, ezyang, carter, thomie

Differential Revision: https://phabricator.haskell.org/D307

compiler/basicTypes/Module.lhs
compiler/ghci/ByteCodeLink.lhs

index d403c87..edd2986 100644 (file)
@@ -46,7 +46,7 @@ module Module
         wiredInPackageKeys,
 
         -- * The Module type
-        Module,
+        Module(Module),
         modulePackageKey, moduleName,
         pprModule,
         mkModule,
index af31dc1..9656dfb 100644 (file)
@@ -257,25 +257,28 @@ linkFail who what
                 , "  glasgow-haskell-bugs@haskell.org"
                 ])
 
--- HACKS!!!  ToDo: cleaner
-nameToCLabel :: Name -> String{-suffix-} -> String
-nameToCLabel n suffix
-   = if pkgid /= mainPackageKey
-        then package_part ++ '_': qual_name
-        else qual_name
-  where
-        pkgid = modulePackageKey mod
-        mod = ASSERT( isExternalName n ) nameModule n
-        package_part = zString (zEncodeFS (packageKeyFS (modulePackageKey mod)))
-        module_part  = zString (zEncodeFS (moduleNameFS (moduleName mod)))
-        occ_part     = zString (zEncodeFS (occNameFS (nameOccName n)))
-        qual_name = module_part ++ '_':occ_part ++ '_':suffix
-
-
-primopToCLabel :: PrimOp -> String{-suffix-} -> String
-primopToCLabel primop suffix
-   = let str = "ghczmprim_GHCziPrimopWrappers_" ++ zString (zEncodeFS (occNameFS (primOpOcc primop))) ++ '_':suffix
-     in --trace ("primopToCLabel: " ++ str)
-        str
+
+nameToCLabel :: Name -> String -> String
+nameToCLabel n suffix = label where
+    encodeZ = zString . zEncodeFS
+    (Module pkgKey modName) = ASSERT( isExternalName n ) nameModule n
+    packagePart = encodeZ (packageKeyFS pkgKey)
+    modulePart  = encodeZ (moduleNameFS modName)
+    occPart     = encodeZ (occNameFS (nameOccName n))
+
+    label = concat
+        [ if pkgKey == mainPackageKey then "" else packagePart ++ "_"
+        , modulePart
+        , '_':occPart
+        , '_':suffix
+        ]
+
+
+primopToCLabel :: PrimOp -> String -> String
+primopToCLabel primop suffix = concat
+    [ "ghczmprim_GHCziPrimopWrappers_"
+    , zString (zEncodeFS (occNameFS (primOpOcc primop)))
+    , '_':suffix
+    ]
 \end{code}