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} <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$
participants (2)
-
Chris Kuklewicz -
Simon Peyton-Jones