#4012: Compilation results are not deterministic -------------------------------+-------------------------------------------- Reporter: kili | Owner: igloo Type: bug | Status: new Priority: high | Milestone: 7.6.2 Component: Compiler | Version: 6.12.2 Resolution: | Keywords: Os: Unknown/Multiple | Architecture: Unknown/Multiple Failure: Other | Difficulty: Difficult (2-5 days) Testcase: | Blockedby: Blocking: | Related: -------------------------------+--------------------------------------------
Comment(by simonmar): Actually you're right. I said that we do alpha-renaming, but in fact the current algorithm keeps the original names when they don't clash, and that gives rise to the `lvl2/lvl3` difference in your example. We should not be using the original `OccName` when tidying a local binder, we should just always use "x", or use a different `OccName` for different kinds of binders (e.g. "x" for let-binders, "y" for lambdas, and "z" for case binders). Relevant code is in `coreSyn/CoreTidy.lhs:tidyIdBndr`. -- Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/4012#comment:30> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler _______________________________________________ Glasgow-haskell-bugs mailing list Glasgow-haskell-bugs@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs