Version conflicts despite hiding

Hello all, I have a little problem I haven't run into yet. I'm not sure if it's Reactive related, but that's what caused it for me, so I'm writing here. I managed to run Tetris.hs with reactive-0.10.3 and reactive-glut-0.1.4 with success (also observing the problems mentioned by Claus Reinke). Now I ran an update, and ghc -v says the following as expected: hiding package reactive-0.10.3 to avoid conflict with later version reactive-0.10.5 hiding package reactive-glut-0.1.4 to avoid conflict with later version reactive-glut-0.1.6 However, when I try to compile Tetris or load it into ghci, it says that it can't match 'UI' (expected) with 'reactive-glut-0.1.4:FRP.Reactive.GLUT.UI.UI' (inferred) in dropPiece, and I've no idea where it is getting the latter from. There are no leftover .hi files or anything else in reach. Is reactive-fieldtrip a possible culprit? Gergely -- http://www.fastmail.fm - One of many happy users: http://www.fastmail.fm/docs/quotes.html

On 17 Dec 2008, at 17:51, Patai Gergely wrote:
Hello all,
I have a little problem I haven't run into yet. I'm not sure if it's Reactive related, but that's what caused it for me, so I'm writing here. I managed to run Tetris.hs with reactive-0.10.3 and reactive- glut-0.1.4 with success (also observing the problems mentioned by Claus Reinke). Now I ran an update, and ghc -v says the following as expected:
hiding package reactive-0.10.3 to avoid conflict with later version reactive-0.10.5 hiding package reactive-glut-0.1.4 to avoid conflict with later version reactive-glut-0.1.6
However, when I try to compile Tetris or load it into ghci, it says that it can't match 'UI' (expected) with 'reactive-glut-0.1.4:FRP.Reactive.GLUT.UI.UI' (inferred) in dropPiece, and I've no idea where it is getting the latter from. There are no leftover .hi files or anything else in reach. Is reactive-fieldtrip a possible culprit?
That sounds like you've recompiled reactive-glut, but not reactive- fieldtrip afterwards (which depends on reactive glut). The result being that reactive-fieldtrip was type checked against an earlier version of reactive-glut than Tetris is being. Bob

However, when I try to compile Tetris or load it into ghci, it says that it can't match 'UI' (expected) with 'reactive-glut-0.1.4:FRP.Reactive.GLUT.UI.UI' (inferred) in dropPiece, and I've no idea where it is getting the latter from. There are no leftover .hi files or anything else in reach. Is reactive-fieldtrip a possible culprit? Yep, that was it. I reinstalled reactive-fieldtrip, and it works again.
-- http://www.fastmail.fm - Or how I learned to stop worrying and love email again

I'd like to improve my release process to avoid problems like this. I could
re-release reactive-glut & reactive-fieldtrip whenever there's a new
reactive release, and re-release reactive-fieldtrip whenever there's a new
reactive-glut. While manageable for me, other people who build on any of
these libraries--or *any* library--will have the same problem. I wonder
what's causing the fragility here.
Any ideas?
- Conal
On Wed, Dec 17, 2008 at 8:56 AM, Patai Gergely
However, when I try to compile Tetris or load it into ghci, it says that it can't match 'UI' (expected) with 'reactive-glut-0.1.4:FRP.Reactive.GLUT.UI.UI' (inferred) in dropPiece, and I've no idea where it is getting the latter from. There are no leftover .hi files or anything else in reach. Is reactive-fieldtrip a possible culprit? Yep, that was it. I reinstalled reactive-fieldtrip, and it works again.

So this is happening when people do cabal-install?
I'm rather surprised it doesn't run through the installed libraries
that it knows about and checks if they have a dependency on an updated
package, recompiling if they do.
2008/12/17 Conal Elliott
I'd like to improve my release process to avoid problems like this. I could re-release reactive-glut & reactive-fieldtrip whenever there's a new reactive release, and re-release reactive-fieldtrip whenever there's a new reactive-glut. While manageable for me, other people who build on any of these libraries--or any library--will have the same problem. I wonder what's causing the fragility here.
Any ideas?
- Conal
On Wed, Dec 17, 2008 at 8:56 AM, Patai Gergely
wrote: However, when I try to compile Tetris or load it into ghci, it says that it can't match 'UI' (expected) with 'reactive-glut-0.1.4:FRP.Reactive.GLUT.UI.UI' (inferred) in dropPiece, and I've no idea where it is getting the latter from. There are no leftover .hi files or anything else in reach. Is reactive-fieldtrip a possible culprit? Yep, that was it. I reinstalled reactive-fieldtrip, and it works again.
_______________________________________________ Reactive mailing list Reactive@haskell.org http://www.haskell.org/mailman/listinfo/reactive

So this is happening when people do cabal-install? I'm rather surprised it doesn't run through the installed libraries that it knows about and checks if they have a dependency on an updated package, recompiling if they do. But the dependency says "reactive >= 0.10.2, reactive-glut >= 0.0.4", which certainly doesn't change due to the update. Isn't linking to a specific version a limitation imposed by ghc itself?
-- http://www.fastmail.fm - A fast, anti-spam email service.
participants (4)
-
Conal Elliott
-
Creighton Hogg
-
Patai Gergely
-
Thomas Davie