Repository : ssh://darcs.haskell.org//srv/darcs/ghc On branch : master
http://hackage.haskell.org/trac/ghc/changeset/ba38f995d6312aa0cfe15873c8e5e9475e03f19c >--------------------------------------------------------------- commit ba38f995d6312aa0cfe15873c8e5e9475e03f19c Author: Ian Lynagh <i...@well-typed.com> Date: Fri Nov 2 22:54:12 2012 +0000 Avoid putting uniqs in specconstr rules; part of #4012 There's no need to have the uniq in the rule, but its presence can cause spurious ABI changes. >--------------------------------------------------------------- compiler/specialise/SpecConstr.lhs | 10 +++++++--- 1 files changed, 7 insertions(+), 3 deletions(-) diff --git a/compiler/specialise/SpecConstr.lhs b/compiler/specialise/SpecConstr.lhs index 60c40e8..7a01ee2 100644 --- a/compiler/specialise/SpecConstr.lhs +++ b/compiler/specialise/SpecConstr.lhs @@ -1378,9 +1378,13 @@ spec_one env fn arg_bndrs body (call_pat@(qvars, pats), rule_number) (arg_bndrs `zip` pats) fn_name = idName fn fn_loc = nameSrcSpan fn_name - spec_occ = mkSpecOcc (nameOccName fn_name) - dflags = sc_dflags env - rule_name = mkFastString ("SC:" ++ showSDoc dflags (ppr fn <> int rule_number)) + fn_occ = nameOccName fn_name + spec_occ = mkSpecOcc fn_occ + -- We use fn_occ rather than fn in the rule_name string + -- as we don't want the uniq to end up in the rule, and + -- hence in the ABI, as that can cause spurious ABI + -- changes (#4012). + rule_name = mkFastString ("SC:" ++ occNameString fn_occ ++ show rule_number) spec_name = mkInternalName spec_uniq spec_occ fn_loc -- ; pprTrace "{spec_one" (ppr (sc_count env) <+> ppr fn <+> ppr pats <+> text "-->" <+> ppr spec_name) $ -- return () _______________________________________________ Cvs-ghc mailing list Cvs-ghc@haskell.org http://www.haskell.org/mailman/listinfo/cvs-ghc