summaryrefslogtreecommitdiff
path: root/compiler/profiling
diff options
context:
space:
mode:
authorSimon Marlow <marlowsd@gmail.com>2011-11-04 16:02:17 +0000
committerSimon Marlow <marlowsd@gmail.com>2011-11-07 09:17:33 +0000
commit630b89551b14324fb1bfea853be700d8f32106c2 (patch)
treeeda0cecc7062ce3ff12905099d12920c3eeb8257 /compiler/profiling
parent1ece7b27a11c6947f0ae3a11703e22b7065a6b6c (diff)
downloadhaskell-630b89551b14324fb1bfea853be700d8f32106c2.tar.gz
Cost centre names are now in UTF-8 (#5559)
So the .prof file will be UTF-8. This is mostly ok, except that the RTS doesn't calculate the column widths correctly (it assumes bytes = chars). hp2ps doesn't do anything sensible with Unicode strings, it just dumps the bytes into the .ps file.
Diffstat (limited to 'compiler/profiling')
-rw-r--r--compiler/profiling/CostCentre.lhs16
1 files changed, 10 insertions, 6 deletions
diff --git a/compiler/profiling/CostCentre.lhs b/compiler/profiling/CostCentre.lhs
index 9545b2eb89..2a44121dfd 100644
--- a/compiler/profiling/CostCentre.lhs
+++ b/compiler/profiling/CostCentre.lhs
@@ -24,7 +24,7 @@ module CostCentre (
isCafCCS, isCafCC, isSccCountCC, sccAbleCC, ccFromThisModule,
pprCostCentreCore,
- costCentreUserName,
+ costCentreUserName, costCentreUserNameFS,
cmpCostCentre -- used for removing dups in a list
) where
@@ -280,9 +280,13 @@ ppCostCentreLbl (NormalCC {cc_name = n, cc_mod = m, cc_is_caf = is_caf})
-- This is the name to go in the user-displayed string,
-- recorded in the cost centre declaration
costCentreUserName :: CostCentre -> String
-costCentreUserName (NoCostCentre) = "NO_CC"
-costCentreUserName (AllCafsCC {}) = "CAF"
-costCentreUserName (NormalCC {cc_name = name, cc_is_caf = is_caf})
- = case is_caf of { CafCC -> "CAF:"; _ -> "" } ++ unpackFS name
-
+costCentreUserName = unpackFS . costCentreUserNameFS
+
+costCentreUserNameFS :: CostCentre -> FastString
+costCentreUserNameFS (NoCostCentre) = mkFastString "NO_CC"
+costCentreUserNameFS (AllCafsCC {}) = mkFastString "CAF"
+costCentreUserNameFS (NormalCC {cc_name = name, cc_is_caf = is_caf})
+ = case is_caf of
+ CafCC -> mkFastString "CAF:" `appendFS` name
+ _ -> name
\end{code}