This is intended only for debugging use: it makes it easier to
compare two variants without the variations between uniques mattering.
(Of course, you can't actually feed the output to the C compiler
or assembler and expect anything sensible to happen!)
import BasicTypes
import FastString
import Outputable
import BasicTypes
import FastString
import Outputable
\begin{code}
pprUnique :: Unique -> SDoc
pprUnique uniq
\begin{code}
pprUnique :: Unique -> SDoc
pprUnique uniq
+#ifdef DEBUG
+ | opt_SuppressUniques
+ = empty -- Used exclusively to suppress uniques so you
+ | otherwise -- can compare output easily
+#endif
= case unpkUnique uniq of
(tag, u) -> finish_ppr tag u (text (iToBase62 u))
= case unpkUnique uniq of
(tag, u) -> finish_ppr tag u (text (iToBase62 u))
-- Output style options
opt_PprUserLength,
-- Output style options
opt_PprUserLength,
opt_PprStyle_Debug,
-- profiling opts
opt_PprStyle_Debug,
-- profiling opts
-- ToDo: user ways
------ Debugging ----------------------------------------------------
-- ToDo: user ways
------ Debugging ----------------------------------------------------
- , ( "dppr-debug", PassFlag addOpt )
- , ( "dppr-user-length", AnySuffix addOpt )
+ , ( "dppr-debug", PassFlag addOpt )
+ , ( "dsuppress-uniques", PassFlag addOpt )
+ , ( "dppr-user-length", AnySuffix addOpt )
-- rest of the debugging flags are dynamic
--------- Profiling --------------------------------------------------
-- rest of the debugging flags are dynamic
--------- Profiling --------------------------------------------------
opt_IgnoreDotGhci = lookUp FSLIT("-ignore-dot-ghci")
-- debugging opts
opt_IgnoreDotGhci = lookUp FSLIT("-ignore-dot-ghci")
-- debugging opts
+opt_SuppressUniques = lookUp FSLIT("-dsuppress-uniques")
opt_PprStyle_Debug = lookUp FSLIT("-dppr-debug")
opt_PprUserLength = lookup_def_int "-dppr-user-length" 5 --ToDo: give this a name
opt_PprStyle_Debug = lookUp FSLIT("-dppr-debug")
opt_PprUserLength = lookup_def_int "-dppr-user-length" 5 --ToDo: give this a name