An interesting and delicate point, as I mentioned.  I believe I have now fixed 
it.

Simon

| -----Original Message-----
| From: Claus Reinke [mailto:[EMAIL PROTECTED]
| Sent: 03 September 2008 23:22
| To: Simon Peyton-Jones; [email protected]
| Subject: Re: patch applied (ghc): Major change in compilation of 
instancedeclarations (fix
| Trac #955, #2328)
|
|
| I'm not sure whether it is this patch, but regex-base is now broken.
| From the fragment of your exchange with Serge, I understand that
| overlap handling has changed in some way?
|
| Browsing through the code indicated in the first error message, it
| seems as if the implementation of method 'match' calls 'matchM'
| with exactly the same 'regex', 'source', and 'target' types, so if those
| types are sufficient to select that instance for 'match', why would
| there be an unresolved overlap when 'match' calls 'matchM'?
|
| Claus (who is still convinced that extralibs provide a good test for ghc;-)
|
|
| -- last lines of make for ghc head on windows
|
| c:/fptools/ghc/ghc/stage1-inplace/ghc.exe -package-name
| regex-base-0.72.0.1 -hide-all-packages -no-user-package-conf -i -idist/build 
-i. -
| idist/build/autogen
|  -Idist/build/autogen -Idist/build -optP-include 
-optPdist/build/autogen/cabal_macros.h -odir
| dist/build -hidir dist/build -stubdir dist/build -package array-0.1 -package 
base-3.0.3.0 -
| package
| bytestring-0.9 -O -Wall -O2 -XMultiParamTypeClasses -XFunctionalDependencies 
-XCPP -
| idist/build  -H32m
|  -O2  -Wall -fno-warn-deprecated-flags -c Text/Regex/Base/Context.hs -o
| dist/build/Text/Regex/Base/Context.o  -ohi 
dist/build/Text/Regex/Base/Context.hi
|
| Text\Regex\Base\Context.hs:200:34:
|     Overlapping instances for RegexContext a b (Array Int b)
|       arising from a use of `matchM'
|                    at Text\Regex\Base\Context.hs:200:34-43
|     Matching instances:
|       instance (RegexLike a b) => RegexContext a b (Array Int b)
|         -- Defined at Text\Regex\Base\Context.hs:199:9-57
|       instance (RegexLike a b) => RegexContext a b MatchArray
|         -- Defined at Text\Regex\Base\Context.hs:190:9-54
|     (The choice depends on the instantiation of `a, b'
|      To pick the first instance above, use -XIncoherentInstances
|      when compiling the other instance declarations)
|     In the third argument of `maybe', namely `(matchM r s)'
|     In the expression: maybe nullArray id (matchM r s)
|     In the definition of `match':
|         match r s = maybe nullArray id (matchM r s)
|
| Text\Regex\Base\Context.hs:230:11:
|     Overlapping instances for RegexContext a b [MatchArray]
|       arising from a use of `nullFail'
|                    at Text\Regex\Base\Context.hs:230:11-18
|     Matching instances:
|       instance (RegexLike a b) => RegexContext a b [MatchArray]
|         -- Defined at Text\Regex\Base\Context.hs:228:9-56
|       instance (RegexLike a b) => RegexContext a b [Array Int b]
|         -- Defined at Text\Regex\Base\Context.hs:248:9-57
|       instance (RegexLike a b) => RegexContext a b [b]
|         -- Defined at Text\Regex\Base\Context.hs:244:9-47
|     (The choice depends on the instantiation of `a, b'
|      To pick the first instance above, use -XIncoherentInstances
|      when compiling the other instance declarations)
|     In the expression: nullFail
|     In the definition of `matchM': matchM = nullFail
|     In the instance declaration for `RegexContext a b [MatchArray]'
|
| Text\Regex\Base\Context.hs:241:11:
|     Overlapping instances for RegexContext
|                                 a b [(MatchOffset, MatchLength)]
|       arising from a use of `nullFail'
|                    at Text\Regex\Base\Context.hs:241:11-18
|     Matching instances:
|       instance (RegexLike a b) =>
|                RegexContext a b [(MatchOffset, MatchLength)]
|         -- Defined at Text\Regex\Base\Context.hs:239:9-71
|       instance (RegexLike a b) => RegexContext a b [b]
|         -- Defined at Text\Regex\Base\Context.hs:244:9-47
|     (The choice depends on the instantiation of `a, b'
|      To pick the first instance above, use -XIncoherentInstances
|      when compiling the other instance declarations)
|     In the expression: nullFail
|     In the definition of `matchM': matchM = nullFail
|     In the instance declaration for `RegexContext
|                                        a b [(MatchOffset, MatchLength)]'
|
| Text\Regex\Base\Context.hs:246:11:
|     Overlapping instances for RegexContext a b [b]
|       arising from a use of `nullFail'
|                    at Text\Regex\Base\Context.hs:246:11-18
|     Matching instances:
|       instance (RegexLike a b) => RegexContext a b [b]
|         -- Defined at Text\Regex\Base\Context.hs:244:9-47
|       instance (RegexLike a b) =>
|                RegexContext a b [(MatchOffset, MatchLength)]
|         -- Defined at Text\Regex\Base\Context.hs:239:9-71
|       instance (RegexLike a b) => RegexContext a b [MatchArray]
|         -- Defined at Text\Regex\Base\Context.hs:228:9-56
|     (The choice depends on the instantiation of `a, b'
|      To pick the first instance above, use -XIncoherentInstances
|      when compiling the other instance declarations)
|     In the expression: nullFail
|     In the definition of `matchM': matchM = nullFail
|     In the instance declaration for `RegexContext a b [b]'
|
| Text\Regex\Base\Context.hs:250:11:
|     Overlapping instances for RegexContext a b [Array Int b]
|       arising from a use of `nullFail'
|                    at Text\Regex\Base\Context.hs:250:11-18
|     Matching instances:
|       instance (RegexLike a b) => RegexContext a b [Array Int b]
|         -- Defined at Text\Regex\Base\Context.hs:248:9-57
|       instance (RegexLike a b) => RegexContext a b [MatchArray]
|         -- Defined at Text\Regex\Base\Context.hs:228:9-56
|     (The choice depends on the instantiation of `a, b'
|      To pick the first instance above, use -XIncoherentInstances
|      when compiling the other instance declarations)
|     In the expression: nullFail
|     In the definition of `matchM': matchM = nullFail
|     In the instance declaration for `RegexContext a b [Array Int b]'
|
| make[2]: *** [dist/build/Text/Regex/Base/Context.o] Error 1
| make[2]: Leaving directory `/cygdrive/c/fptools/ghc/libraries/regex-base'
| make[1]: *** [make.library.regex-base] Error 2
| make[1]: Leaving directory `/cygdrive/c/fptools/ghc/libraries'
| make: *** [stage1] Error 2
|

_______________________________________________
Cvs-ghc mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/cvs-ghc

Reply via email to