
When compiling programs (ghc --make) that use regex-parsec I trigger an error in GHC 6.6:
ghc-6.6: panic! (the 'impossible' happened) (GHC version 6.6 for powerpc-apple-darwin): simplCore/Simplify.lhs:(1772,0)-(1788,47): Non-exhaustive patterns in function bind_args
I don't have a simple test case yet, but will try to make one if requested. -- Chris

Oh yes, please do make a test case. That should never happen. Also use -dcore-lint, which might well nail it closer to source Simon | -----Original Message----- | From: glasgow-haskell-users-bounces@haskell.org [mailto:glasgow-haskell-users-bounces@haskell.org] On | Behalf Of Chris Kuklewicz | Sent: 23 January 2007 12:23 | To: glasgow-haskell-users@haskell.org | Subject: BUG: GHC compiler error for 6.6 | | When compiling programs (ghc --make) that use regex-parsec I trigger an error in | GHC 6.6: | | > ghc-6.6: panic! (the 'impossible' happened) | > (GHC version 6.6 for powerpc-apple-darwin): | > simplCore/Simplify.lhs:(1772,0)-(1788,47): Non-exhaustive patterns in function bind_args | | I don't have a simple test case yet, but will try to make one if requested. | | -- | Chris | _______________________________________________ | Glasgow-haskell-users mailing list | Glasgow-haskell-users@haskell.org | http://www.haskell.org/mailman/listinfo/glasgow-haskell-users

Simon Peyton-Jones wrote:
Oh yes, please do make a test case. That should never happen. Also use -dcore-lint, which might well nail it closer to source
Simon
I'll do that, but I am busy with work, so delivery of test case will be within a week instead of within a day. -- Chris

Simon Peyton-Jones wrote:
Oh yes, please do make a test case. That should never happen. Also use -dcore-lint, which might well nail it closer to source
Simon
It may have been some weird version skew -- recompiling regex-parsec against the current regex-base seems to have cured it. So there is no problem now. Before I did that the error only occurred with -O1 and -O2 but not with -O0. The -dcore-lint results from when it failed: Reason:~/Documents/projects/haskell/develop/regex-unstable/regex-devel/regex-devel/quickcheck chrisk$ ghc -O1 -dcore-lint --make TestCase3.hs Reason:~/Documents/projects/haskell/develop/regex-unstable/regex-devel/regex-devel/quickcheck chrisk$ ghc -O1 -dcore-lint --make TestCase2.hs [1 of 1] Compiling Main ( TestCase2.hs, TestCase2.o ) TestCase2.hs:31:0: Warning: No explicit method nor default method for `coarbitrary' In the instance declaration for `Arbitrary RegexSource' TestCase2.hs:58:0: Warning: No explicit method nor default method for `coarbitrary' In the instance declaration for `Arbitrary RegexString' ghc-6.6: panic! (the 'impossible' happened) (GHC version 6.6 for powerpc-apple-darwin): Iface Lint failure Unfolding of regex-parsec-0.85:Text.Regex.Parsec.String.$f1{v rUs} <no location info>: In the expression: regex-base-0.80:Text.Regex.Base.RegexLike.:DRegexLike{v r1Ws} [gid] @ regex-parsec-0.85:Text.Regex.Parsec.Common.Regex{tc rVM} @ base:GHC.Base.String{tc rJ7} regex-base-0.80:Text.Regex.Base.RegexLike.$f4{v r1WS} [gid] regex-parsec-0.85:Text.Regex.Parsec.String.matchAll{v rVc} [gid] Argument value doesn't match argument type: Fun type: (regex-parsec-0.85:Text.Regex.Parsec.Common.Regex{tc rVM} -> base:GHC.Base.String{tc rJ7} -> base:Data.Maybe.Maybe{tc rY9} regex-base-0.80:Text.Regex.Base.RegexLike.MatchArray{tc rVT}) -> (regex-parsec-0.85:Text.Regex.Parsec.Common.Regex{tc rVM} -> base:GHC.Base.String{tc rJ7} -> [regex-base-0.80:Text.Regex.Base.RegexLike.MatchArray{tc rVT}]) -> (regex-parsec-0.85:Text.Regex.Parsec.Common.Regex{tc rVM} -> base:GHC.Base.String{tc rJ7} -> base:GHC.Base.Int{(w) tc 3J}) -> (regex-parsec-0.85:Text.Regex.Parsec.Common.Regex{tc rVM} -> base:GHC.Base.String{tc rJ7} -> base:GHC.Base.Bool{(w) tc 3c}) -> (regex-parsec-0.85:Text.Regex.Parsec.Common.Regex{tc rVM} -> base:GHC.Base.String{tc rJ7} -> [regex-base-0.80:Text.Regex.Base.RegexLike.MatchText{tc rVS} base:GHC.Base.String{tc rJ7}]) -> (regex-parsec-0.85:Text.Regex.Parsec.Common.Regex{tc rVM} -> base:GHC.Base.String{tc rJ7} -> base:Data.Maybe.Maybe{tc rY9} (base:GHC.Base.String{tc rJ7}, regex-base-0.80:Text.Regex.Base.RegexLike.MatchText{tc rVS} base:GHC.Base.String{tc rJ7}, base:GHC.Base.String{tc rJ7})) -> (regex-base-0.80:Text.Regex.Base.RegexLike.:TRegexLike{tc r1Wo}) regex-parsec-0.85:Text.Regex.Parsec.Common.Regex{tc rVM} base:GHC.Base.String{tc rJ7} Arg type: regex-parsec-0.85:Text.Regex.Parsec.Common.Regex{tc rVM} -> base:GHC.Base.String{tc rJ7} -> [regex-base-0.80:Text.Regex.Base.RegexLike.MatchArray{tc rVT}] Arg: regex-parsec-0.85:Text.Regex.Parsec.String.matchAll{v rVc} [gid] Please report this as a GHC bug: http://www.haskell.org/ghc/reportabug Reason:~/Documents/projects/haskell/develop/regex-unstable/regex-devel/regex-devel/quickcheck chrisk$ ghc -O1 -dcore-lint --make TestCase4.hs [1 of 1] Compiling Main ( TestCase4.hs, TestCase4.o ) TestCase4.hs:31:0: Warning: No explicit method nor default method for `coarbitrary' In the instance declaration for `Arbitrary RegexSource' TestCase4.hs:58:0: Warning: No explicit method nor default method for `coarbitrary' In the instance declaration for `Arbitrary RegexString' ghc-6.6: panic! (the 'impossible' happened) (GHC version 6.6 for powerpc-apple-darwin): Iface Lint failure Unfolding of regex-parsec-0.85:Text.Regex.Parsec.Wrap.=~{v rVd} <no location info>: In the pattern of a case alternative: (regex-base-0.80:Text.Regex.Base.RegexLike.:DRegexMaker{d r1Wf} tpl5{v a2Jm} [lid] :: {regex-base-0.80:Text.Regex.Base.RegexLike.RegexOptions{tc rVJ} regex-parsec-0.85:Text.Regex.Parsec.Common.Regex{tc rVM} regex-parsec-0.85:Text.Regex.Parsec.Common.CompOption{tc rWm} <nt>regex-parsec-0.85:Text.Regex.Parsec.Common.ExecOption{tc rWv}}, tpl6{v a2Jn} [lid] :: source{tv a2J8} [tv] -> regex-parsec-0.85:Text.Regex.Parsec.Common.Regex{tc rVM}, tpl7{v a2Jo} [lid] :: regex-parsec-0.85:Text.Regex.Parsec.Common.CompOption{tc rWm} -> <nt>regex-parsec-0.85:Text.Regex.Parsec.Common.ExecOption{tc rWv} -> source{tv a2J8} [tv] -> regex-parsec-0.85:Text.Regex.Parsec.Common.Regex{tc rVM}) In a case alternative, pattern result type doesn't match scrutinee type: Pattern result type: (forall e{tv a2Jq} [tv] (m{tv a2Jr} [tv] :: * -> *). (mtl-1.0:Control.Monad.Error.MonadError{tc rji} e{tv a2Jq} [tv] m{tv a2Jr} [tv]) => source{tv a2J8} [tv] -> m{tv a2Jr} [tv] regex-parsec-0.85:Text.Regex.Parsec.Common.Regex{tc rVM}) -> (forall e{tv a2Js} [tv] (m{tv a2Jt} [tv] :: * -> *). (mtl-1.0:Control.Monad.Error.MonadError{tc rji} e{tv a2Js} [tv] m{tv a2Jt} [tv]) => regex-parsec-0.85:Text.Regex.Parsec.Common.CompOption{tc rWm} -> <nt>regex-parsec-0.85:Text.Regex.Parsec.Common.ExecOption{tc rWv} -> source{tv a2J8} [tv] -> m{tv a2Jt} [tv] regex-parsec-0.85:Text.Regex.Parsec.Common.Regex{tc rVM}) -> (regex-base-0.80:Text.Regex.Base.RegexLike.:TRegexMaker{tc r1Wd}) regex-parsec-0.85:Text.Regex.Parsec.Common.Regex{tc rVM} regex-parsec-0.85:Text.Regex.Parsec.Common.CompOption{tc rWm} <nt>regex-parsec-0.85:Text.Regex.Parsec.Common.ExecOption{tc rWv} source{tv a2J8} [tv] Scrutinee type: {regex-base-0.80:Text.Regex.Base.RegexLike.RegexMaker{tc rSw} regex-parsec-0.85:Text.Regex.Parsec.Common.Regex{tc rVM} regex-parsec-0.85:Text.Regex.Parsec.Common.CompOption{tc rWm} <nt>regex-parsec-0.85:Text.Regex.Parsec.Common.ExecOption{tc rWv} source{tv a2J8} [tv]} Please report this as a GHC bug: http://www.haskell.org/ghc/reportabug Reason:~/Documents/projects/haskell/develop/regex-unstable/regex-devel/regex-devel/quickcheck chrisk$

Ah well.... If we can't reproduce it I guess we'll have to just hope it's ok. Certainly .hi files that are inconsistently recompiled can give rise to bizarre things.
Simon
| -----Original Message-----
| From: Chris Kuklewicz [mailto:haskell@list.mightyreason.com]
| Sent: 23 January 2007 14:28
| To: Simon Peyton-Jones
| Cc: glasgow-haskell-users@haskell.org
| Subject: Re: GHC compiler error for 6.6
|
| Simon Peyton-Jones wrote:
| > Oh yes, please do make a test case. That should never happen. Also use
| > -dcore-lint, which might well nail it closer to source
| >
| > Simon
|
| It may have been some weird version skew -- recompiling regex-parsec against the
| current regex-base seems to have cured it. So there is no problem now.
|
| Before I did that the error only occurred with -O1 and -O2 but not with -O0.
|
| The -dcore-lint results from when it failed:
|
| Reason:~/Documents/projects/haskell/develop/regex-unstable/regex-devel/regex-devel/quickcheck
| chrisk$ ghc -O1 -dcore-lint --make TestCase3.hs
| Reason:~/Documents/projects/haskell/develop/regex-unstable/regex-devel/regex-devel/quickcheck
| chrisk$ ghc -O1 -dcore-lint --make TestCase2.hs
| [1 of 1] Compiling Main ( TestCase2.hs, TestCase2.o )
|
| TestCase2.hs:31:0:
| Warning: No explicit method nor default method for `coarbitrary'
| In the instance declaration for `Arbitrary RegexSource'
|
| TestCase2.hs:58:0:
| Warning: No explicit method nor default method for `coarbitrary'
| In the instance declaration for `Arbitrary RegexString'
| ghc-6.6: panic! (the 'impossible' happened)
| (GHC version 6.6 for powerpc-apple-darwin):
| Iface Lint failure
| Unfolding of regex-parsec-0.85:Text.Regex.Parsec.String.$f1{v rUs}
participants (2)
-
Chris Kuklewicz
-
Simon Peyton-Jones