GHC compiler error for 6.6

Simon Peyton-Jones simonpj at microsoft.com
Tue Jan 23 09:38:32 EST 2007


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 at list.mightyreason.com]
| Sent: 23 January 2007 14:28
| To: Simon Peyton-Jones
| Cc: glasgow-haskell-users at 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$



More information about the Glasgow-haskell-users mailing list