Typechecker tests failures
Simon Peyton Jones
simonpj at microsoft.com
Fri Dec 12 08:33:45 UTC 2014
Thanks. This was being tracked in Trac #9567, and I have finally gotten around to fixing it. Your proposed change is small, but it simply avoids the crash without fixing the cause. The cause was that contInputType was simply *wrong*.
https://ghc.haskell.org/trac/ghc/ticket/9567
Fixed now!
Simon
| -----Original Message-----
| From: Yuras Shumovich [mailto:shumovichy at gmail.com]
| Sent: 08 December 2014 05:48
| To: Simon Peyton Jones
| Cc: ghc-devs at haskell.org Devs
| Subject: Re: Typechecker tests failures
|
|
| Simon,
|
| I tracked T7891 and tc124 failure down to simplifier, namely
| `simplExprF1` for `Case`. Core lint catches the bug (requires -O1 at
| least), but without -dcore-lint compiler hangs in busy loop. I made it
| work with simple patch:
|
| > diff --git a/compiler/simplCore/Simplify.hs
| > b/compiler/simplCore/Simplify.hs index 7611f56..d396b60 100644
| > --- a/compiler/simplCore/Simplify.hs
| > +++ b/compiler/simplCore/Simplify.hs
| > @@ -950,8 +950,10 @@ simplExprF1 env expr@(Lam {}) cont
| > zap b | isTyVar b = b
| > | otherwise = zapLamIdInfo b
| >
| > -simplExprF1 env (Case scrut bndr _ alts) cont
| > - = simplExprF env scrut (Select NoDup bndr alts env cont)
| > +simplExprF1 env (Case scrut bndr alts_ty alts) cont
| > + = do { expr <- simplExprC env scrut (Select NoDup bndr alts env
| > + (mkBoringStop alts_ty))
| > + ; rebuild env expr cont }
| >
| > simplExprF1 env (Let (Rec pairs) body) cont
| > = do { env' <- simplRecBndrs env (map fst pairs)
|
| (I have no idea what most of this code does, but I learned a lot while
| investigating this issue :) )
|
| The relevant commit is:
|
| > commit a0b2897ee406e24a05c41768a0fc2395442dfa06
| > Author: Simon Peyton Jones <simonpj at microsoft.com>
| > Date: Tue May 27 09:09:28 2014 +0100
| >
| > Simple refactor of the case-of-case transform
| >
| > More modular, less code. No change in behaviour.
|
| The T7861 failed because additional lambda abstraction in Core. Not
| sure whether it is important.
|
| Thanks,
| Yuras
|
| On Sat, 2014-12-06 at 19:04 +0300, Yuras Shumovich wrote:
| > Hello,
| >
| > I was working on #9605, and found a number of failed tests:
| >
| > Unexpected failures:
| > should_compile T7891 [exit code non-0] (hpc,optasm,optllvm)
| > should_compile tc124 [exit code non-0] (hpc,optasm,optllvm)
| > should_run T7861 [bad exit code]
| > (normal,hpc,optasm,ghci,threaded1,threaded2,dyn,optllvm)
| >
| > They seem to be unrelated to my work, and they are skipped when
| "fast"
| > is enabled.
| >
| > T7891 and tc124 fail with Core Lint errors.
| >
| > Looks like Phabricator uses "fast" way to validate revisions, so the
| > failures were not noticed.
| >
| > Thanks,
| > Yuras
| >
| >
|
More information about the ghc-devs
mailing list