
#8036: Demand analyser is unpacking too deeply ---------------------------------+------------------------------------------ Reporter: simonpj | Owner: Type: bug | Status: new Priority: normal | Milestone: Component: Compiler | Version: 7.6.3 Keywords: | Os: Unknown/Multiple Architecture: Unknown/Multiple | Failure: None/Unknown Difficulty: Unknown | Testcase: Blockedby: | Blocking: Related: | ---------------------------------+------------------------------------------ The demand analyser reports that fixpoint iterations are sometimes going on forever; in particular, this debug trace trips: {{{ | + = -- pprTrace "dmdFix loop" (ppr n <+> (vcat | + -- [ text "Sigs:" <+> ppr [ (id,lookupVarEnv | (sigEnv env) id, | + -- lookupVarEnv | (sigEnv env') id) | + -- | (id,_) <- pairs], | + -- text "env:" <+> ppr env, | + -- text "binds:" <+> pprCoreBinding (Rec }}} This happens during bootsrapping GHC itself, and maybe somewhere in the testsuite; I forget. The reason is that I thought a neater way to control unpacking of recursive products would work (see the `ae_rec_tc` field of `AnalEnv`) but I was wrong. This doesn't bite often but it's plainly wrong and needs fixing. -- Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/8036 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler