Warning: Module `Prelude' is deprecated:

So lately when I use cabal to install something get Text/CSV.hs:1:0: Warning: Module `Prelude' is deprecated: You are using the old package `base' version 3.x. Future GHC versions will not support base version 3.x. You should update your code to use the new base version 4.x. how do I implement cabal's advice?

On 27 August 2010 10:17, Michael Litchard
So lately when I use cabal to install something get
Text/CSV.hs:1:0: Warning: Module `Prelude' is deprecated: You are using the old package `base' version 3.x. Future GHC versions will not support base version 3.x. You should update your code to use the new base version 4.x.
how do I implement cabal's advice?
Tell upstream to fix their package to use base-4 rather than base-3. -- Ivan Lazar Miljenovic Ivan.Miljenovic@gmail.com IvanMiljenovic.wordpress.com

As said, this is an issue with the package maintainer who explicitly used
base 3.0 as a dependancy
I believe that base 3 is gonna be killed in ghc 6.14 iirc
On 27/08/2010 10:17 AM, "Michael Litchard"

On 27 August 2010 11:42, Mathew de Detrich
As said, this is an issue with the package maintainer who explicitly used base 3.0 as a dependancy
Or they have no upper bound on the version of base in their .cabal file, so cabal-install tries to be clever and defaults to base-3 to be safe (from when base-4 was introduced and many packages wouldn't build with it). Nowadays, is there any reason why we need to consider base-3 compatibility any more? Is it viable to just use base-4 and not bother with extensible-exceptions as a compatibility layer? -- Ivan Lazar Miljenovic Ivan.Miljenovic@gmail.com IvanMiljenovic.wordpress.com

On Thu, Aug 26, 2010 at 6:45 PM, Ivan Lazar Miljenovic < ivan.miljenovic@gmail.com> wrote:
On 27 August 2010 11:42, Mathew de Detrich
wrote: As said, this is an issue with the package maintainer who explicitly used base 3.0 as a dependancy
Or they have no upper bound on the version of base in their .cabal file, so cabal-install tries to be clever and defaults to base-3 to be safe (from when base-4 was introduced and many packages wouldn't build with it).
Cabal-install further has a bug here where --constraint="base>=4" will have no effect. Instead you have to say you "prefer" base 4. So, cabal install --preference="base>=4". I don't understand why preferences override constraints, but that's the way it works for parsec and base (most other packages are not handled in this buggy way).
Nowadays, is there any reason why we need to consider base-3 compatibility any more? Is it viable to just use base-4 and not bother with extensible-exceptions as a compatibility layer?
I've added preference: base >= 4, in my global cabal-install config and I haven't had a single issue since. I HIGHLY recommend everyone to do this. I think the way cabal-install ignores constraints on base and parsec to be a rather serious bug in the hackage infrastructure. Yes, I know about the historic reason that prompted this bug to be added to cabal-install. Still, I think cabal-install should either do what the user requests, or fail with an explanation. People should be forced to fix their packages. The current behavior of ignoring constraints against base has cost me more time than it has saved, I'm sure. Note: cabal install foo --constraint="base >= 4 && base <5", might also work, specifically adding an upper bound on the command line. Once I found the preference trick I never went back to try it. Jason

On 27 August 2010 12:01, Jason Dagit
I've added preference: base >= 4, in my global cabal-install config and I haven't had a single issue since. I HIGHLY recommend everyone to do this.
Ooohhh, didn't know you could put preferences and constraints in your config file for cabal-install... -- Ivan Lazar Miljenovic Ivan.Miljenovic@gmail.com IvanMiljenovic.wordpress.com
participants (4)
-
Ivan Lazar Miljenovic
-
Jason Dagit
-
Mathew de Detrich
-
Michael Litchard