Add DEBUG-only flag -dsuppress-uniques to suppress printing of uniques
authorsimonpj@microsoft.com <unknown>
Fri, 16 Nov 2007 15:24:46 +0000 (15:24 +0000)
committersimonpj@microsoft.com <unknown>
Fri, 16 Nov 2007 15:24:46 +0000 (15:24 +0000)
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!)

compiler/basicTypes/Unique.lhs
compiler/main/StaticFlags.hs

index 1926f5c..5f9f668 100644 (file)
@@ -57,6 +57,7 @@ module Unique (
 
 #include "HsVersions.h"
 
+import StaticFlags
 import BasicTypes
 import FastString
 import Outputable
@@ -197,6 +198,11 @@ We do sometimes make strings with @Uniques@ in them:
 \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))
 
index 43f630c..039051b 100644 (file)
@@ -26,6 +26,7 @@ module StaticFlags (
 
        -- Output style options
        opt_PprUserLength,
+       opt_SuppressUniques,
        opt_PprStyle_Debug,
 
        -- profiling opts
@@ -169,8 +170,9 @@ static_flags = [
        -- 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 --------------------------------------------------
@@ -282,6 +284,7 @@ unpacked_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