Suppress the alarming SpecConstr message for normal users (Trac #5125)
authorSimon Peyton Jones <simonpj@microsoft.com>
Thu, 26 May 2011 16:21:51 +0000 (17:21 +0100)
committerSimon Peyton Jones <simonpj@microsoft.com>
Thu, 26 May 2011 16:21:51 +0000 (17:21 +0100)
This is the offending message:
  SpecConstr
      Function `$wks2{v s2dJ} [lid]'
        has one call pattern, but the limit is 0
      Use -fspec-constr-count=n to set the bound
      Use -dppr-debug to see specialisations

The message isn't very good, and is for experts only. So now it
comes out only
    if you build with -DDEBUG
    or you specify -dppr-debug at runtime

compiler/specialise/SpecConstr.lhs

index 5fc0226..6cc05a3 100644 (file)
@@ -1313,8 +1313,10 @@ specialise env bind_calls (RI fn _ arg_bndrs body arg_occs)
               spec_count' = n_pats + spec_count
        ; case sc_count env of
            Just max | not (sc_force env) && spec_count' > max
               spec_count' = n_pats + spec_count
        ; case sc_count env of
            Just max | not (sc_force env) && spec_count' > max
-               -> pprTrace "SpecConstr" msg $  
-                   return (nullUsage, spec_info)
+               -> if (debugIsOn || opt_PprStyle_Debug)  -- Suppress this scary message for
+                   then pprTrace "SpecConstr" msg $     -- ordinary users!  Trac #5125
+                        return (nullUsage, spec_info)
+                   else return (nullUsage, spec_info)
                where
                   msg = vcat [ sep [ ptext (sLit "Function") <+> quotes (ppr fn)
                                    , nest 2 (ptext (sLit "has") <+> 
                where
                   msg = vcat [ sep [ ptext (sLit "Function") <+> quotes (ppr fn)
                                    , nest 2 (ptext (sLit "has") <+>