Demand analyser is unpacking too deeply
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.
Trac metadata
Trac field | Value |
---|---|
Version | 7.6.3 |
Type | Bug |
TypeOfFailure | OtherFailure |
Priority | normal |
Resolution | Unresolved |
Component | Compiler |
Test case | |
Differential revisions | |
BlockedBy | |
Related | |
Blocking | |
CC | |
Operating system | |
Architecture |