Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

0.10.1 fails to build with transformers 0.5.6.2 #2738

Open
hasufell opened this issue Apr 22, 2024 · 7 comments
Open

0.10.1 fails to build with transformers 0.5.6.2 #2738

hasufell opened this issue Apr 22, 2024 · 7 comments

Comments

@hasufell
Copy link
Contributor

  1. cabal unpack streamly-0.10.1
  2. cd streamly-0.10.1
  3. cabal build -w ghc-9.6.5 --constraint='transformers == 0.5.6.2'
[36 of 72] Compiling Streamly.Internal.Data.Stream.Serial ( src/Streamly/Internal/Data/Stream/Serial.hs, dist-newstyle/build/x86_64-linux/ghc-9.6.5/streamly-0.10.1/build/Streamly/Internal/Data/Stream/Serial.o, dist-newstyle/build/x86_64-linux/ghc-9.6.5/streamly-0.10.1/build/Streamly/Internal/Data/Stream/Serial.dyn_o ) [Control.Monad.Base changed]

src/Streamly/Internal/Data/Stream/Serial.hs:56:1: error:
    Could not load module ‘Control.Monad.Base’
    It is a member of the hidden package ‘transformers-base-0.4.6’.
    Perhaps you need to add ‘transformers-base’ to the build-depends in your .cabal file.
    It is a member of the hidden package ‘transformers-base-0.4.6’.
    Perhaps you need to add ‘transformers-base’ to the build-depends in your .cabal file.
    It is a member of the hidden package ‘transformers-base-0.4.6’.
    Perhaps you need to add ‘transformers-base’ to the build-depends in your .cabal file.
    It is a member of the hidden package ‘transformers-base-0.4.6’.
    Perhaps you need to add ‘transformers-base’ to the build-depends in your .cabal file.
    It is a member of the hidden package ‘transformers-base-0.4.6’.
    Perhaps you need to add ‘transformers-base’ to the build-depends in your .cabal file.
    Use -v (or `:set -v` in ghci) to see a list of the files searched for.
   |
56 | import Control.Monad.Base (MonadBase(..), liftBaseDefault)
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@harendra-kumar
Copy link
Member

GHC 9.6 does not support transformers < 0.6 - https://gitlab.haskell.org/ghc/ghc/-/wikis/commentary/libraries/version-history .

@hasufell
Copy link
Contributor Author

GHC 9.6 does not support transformers < 0.6 - https://gitlab.haskell.org/ghc/ghc/-/wikis/commentary/libraries/version-history .

That is incorrect.

$ cabal unpack transformers-0.5.6.2
Unpacking to transformers-0.5.6.2/
$ cd transformers-0.5.6.2/
$ cabal build -w ghc-9.6.5
Resolving dependencies...
Build profile: -w ghc-9.6.5 -O1
In order, the following will be built (use -v for more details):
 - transformers-0.5.6.2 (lib:transformers) (first run)
Warning: transformers.cabal:43:30: version operators used. To use version
operators the package needs to specify at least 'cabal-version: >= 1.8'.
Configuring transformers-0.5.6.2...
Preprocessing library for transformers-0.5.6.2...
Building library for transformers-0.5.6.2...

Control/Applicative/Backwards.hs:9:14: warning: [-Wdeprecated-flags]
    -XAutoDeriveTypeable is deprecated: Typeable instances are created automatically for all types since GHC 8.2.
  |
9 | {-# LANGUAGE AutoDeriveTypeable #-}
  |              ^^^^^^^^^^^^^^^^^^

Control/Applicative/Lift.hs:6:14: warning: [-Wdeprecated-flags]
    -XAutoDeriveTypeable is deprecated: Typeable instances are created automatically for all types since GHC 8.2.
  |
6 | {-# LANGUAGE AutoDeriveTypeable #-}
  |              ^^^^^^^^^^^^^^^^^^

Control/Monad/Trans/Accum.hs:6:14: warning: [-Wdeprecated-flags]
    -XAutoDeriveTypeable is deprecated: Typeable instances are created automatically for all types since GHC 8.2.
  |
6 | {-# LANGUAGE AutoDeriveTypeable #-}
  |              ^^^^^^^^^^^^^^^^^^

Control/Monad/Trans/Class.hs:6:14: warning: [-Wdeprecated-flags]
    -XAutoDeriveTypeable is deprecated: Typeable instances are created automatically for all types since GHC 8.2.
  |
6 | {-# LANGUAGE AutoDeriveTypeable #-}
  |              ^^^^^^^^^^^^^^^^^^

Control/Monad/Trans/Cont.hs:9:14: warning: [-Wdeprecated-flags]
    -XAutoDeriveTypeable is deprecated: Typeable instances are created automatically for all types since GHC 8.2.
  |
9 | {-# LANGUAGE AutoDeriveTypeable #-}
  |              ^^^^^^^^^^^^^^^^^^

Control/Monad/Trans/Except.hs:6:14: warning: [-Wdeprecated-flags]
    -XAutoDeriveTypeable is deprecated: Typeable instances are created automatically for all types since GHC 8.2.
  |
6 | {-# LANGUAGE AutoDeriveTypeable #-}
  |              ^^^^^^^^^^^^^^^^^^

Control/Monad/Trans/Error.hs:6:14: warning: [-Wdeprecated-flags]
    -XAutoDeriveTypeable is deprecated: Typeable instances are created automatically for all types since GHC 8.2.
  |
6 | {-# LANGUAGE AutoDeriveTypeable #-}
  |              ^^^^^^^^^^^^^^^^^^

Control/Monad/Trans/Identity.hs:9:14: warning: [-Wdeprecated-flags]
    -XAutoDeriveTypeable is deprecated: Typeable instances are created automatically for all types since GHC 8.2.
  |
9 | {-# LANGUAGE AutoDeriveTypeable #-}
  |              ^^^^^^^^^^^^^^^^^^

Control/Monad/Trans/List.hs:6:14: warning: [-Wdeprecated-flags]
    -XAutoDeriveTypeable is deprecated: Typeable instances are created automatically for all types since GHC 8.2.
  |
6 | {-# LANGUAGE AutoDeriveTypeable #-}
  |              ^^^^^^^^^^^^^^^^^^

Control/Monad/Trans/Maybe.hs:6:14: warning: [-Wdeprecated-flags]
    -XAutoDeriveTypeable is deprecated: Typeable instances are created automatically for all types since GHC 8.2.
  |
6 | {-# LANGUAGE AutoDeriveTypeable #-}
  |              ^^^^^^^^^^^^^^^^^^

Control/Monad/Trans/Reader.hs:6:14: warning: [-Wdeprecated-flags]
    -XAutoDeriveTypeable is deprecated: Typeable instances are created automatically for all types since GHC 8.2.
  |
6 | {-# LANGUAGE AutoDeriveTypeable #-}
  |              ^^^^^^^^^^^^^^^^^^

Control/Monad/Trans/RWS/CPS.hs:6:14: warning: [-Wdeprecated-flags]
    -XAutoDeriveTypeable is deprecated: Typeable instances are created automatically for all types since GHC 8.2.
  |
6 | {-# LANGUAGE AutoDeriveTypeable #-}
  |              ^^^^^^^^^^^^^^^^^^

Control/Monad/Trans/RWS/Lazy.hs:6:14: warning: [-Wdeprecated-flags]
    -XAutoDeriveTypeable is deprecated: Typeable instances are created automatically for all types since GHC 8.2.
  |
6 | {-# LANGUAGE AutoDeriveTypeable #-}
  |              ^^^^^^^^^^^^^^^^^^

Control/Monad/Trans/RWS/Strict.hs:6:14: warning: [-Wdeprecated-flags]
    -XAutoDeriveTypeable is deprecated: Typeable instances are created automatically for all types since GHC 8.2.
  |
6 | {-# LANGUAGE AutoDeriveTypeable #-}
  |              ^^^^^^^^^^^^^^^^^^

Control/Monad/Trans/Select.hs:9:14: warning: [-Wdeprecated-flags]
    -XAutoDeriveTypeable is deprecated: Typeable instances are created automatically for all types since GHC 8.2.
  |
9 | {-# LANGUAGE AutoDeriveTypeable #-}
  |              ^^^^^^^^^^^^^^^^^^

Control/Monad/Trans/State/Lazy.hs:6:14: warning: [-Wdeprecated-flags]
    -XAutoDeriveTypeable is deprecated: Typeable instances are created automatically for all types since GHC 8.2.
  |
6 | {-# LANGUAGE AutoDeriveTypeable #-}
  |              ^^^^^^^^^^^^^^^^^^

Control/Monad/Trans/State/Strict.hs:6:14: warning: [-Wdeprecated-flags]
    -XAutoDeriveTypeable is deprecated: Typeable instances are created automatically for all types since GHC 8.2.
  |
6 | {-# LANGUAGE AutoDeriveTypeable #-}
  |              ^^^^^^^^^^^^^^^^^^

Control/Monad/Trans/Writer/CPS.hs:6:14: warning: [-Wdeprecated-flags]
    -XAutoDeriveTypeable is deprecated: Typeable instances are created automatically for all types since GHC 8.2.
  |
6 | {-# LANGUAGE AutoDeriveTypeable #-}
  |              ^^^^^^^^^^^^^^^^^^

Control/Monad/Trans/Writer/Lazy.hs:6:14: warning: [-Wdeprecated-flags]
    -XAutoDeriveTypeable is deprecated: Typeable instances are created automatically for all types since GHC 8.2.
  |
6 | {-# LANGUAGE AutoDeriveTypeable #-}
  |              ^^^^^^^^^^^^^^^^^^

Control/Monad/Trans/Writer/Strict.hs:6:14: warning: [-Wdeprecated-flags]
    -XAutoDeriveTypeable is deprecated: Typeable instances are created automatically for all types since GHC 8.2.
  |
6 | {-# LANGUAGE AutoDeriveTypeable #-}
  |              ^^^^^^^^^^^^^^^^^^

Data/Functor/Constant.hs:9:14: warning: [-Wdeprecated-flags]
    -XAutoDeriveTypeable is deprecated: Typeable instances are created automatically for all types since GHC 8.2.
  |
9 | {-# LANGUAGE AutoDeriveTypeable #-}
  |              ^^^^^^^^^^^^^^^^^^

Data/Functor/Reverse.hs:9:14: warning: [-Wdeprecated-flags]
    -XAutoDeriveTypeable is deprecated: Typeable instances are created automatically for all types since GHC 8.2.
  |
9 | {-# LANGUAGE AutoDeriveTypeable #-}
  |              ^^^^^^^^^^^^^^^^^^
[ 1 of 26] Compiling Control.Applicative.Backwards ( Control/Applicative/Backwards.hs, dist-newstyle/build/x86_64-linux/ghc-9.6.5/transformers-0.5.6.2/build/Control/Applicative/Backwards.o, dist-newstyle/build/x86_64-linux/ghc-9.6.5/transformers-0.5.6.2/build/Control/Applicative/Backwards.dyn_o )
[ 2 of 26] Compiling Control.Monad.Signatures ( Control/Monad/Signatures.hs, dist-newstyle/build/x86_64-linux/ghc-9.6.5/transformers-0.5.6.2/build/Control/Monad/Signatures.o, dist-newstyle/build/x86_64-linux/ghc-9.6.5/transformers-0.5.6.2/build/Control/Monad/Signatures.dyn_o )
[ 3 of 26] Compiling Control.Monad.Trans.Class ( Control/Monad/Trans/Class.hs, dist-newstyle/build/x86_64-linux/ghc-9.6.5/transformers-0.5.6.2/build/Control/Monad/Trans/Class.o, dist-newstyle/build/x86_64-linux/ghc-9.6.5/transformers-0.5.6.2/build/Control/Monad/Trans/Class.dyn_o )
[ 4 of 26] Compiling Control.Monad.Trans.Cont ( Control/Monad/Trans/Cont.hs, dist-newstyle/build/x86_64-linux/ghc-9.6.5/transformers-0.5.6.2/build/Control/Monad/Trans/Cont.o, dist-newstyle/build/x86_64-linux/ghc-9.6.5/transformers-0.5.6.2/build/Control/Monad/Trans/Cont.dyn_o )
[ 5 of 26] Compiling Control.Monad.Trans.Error ( Control/Monad/Trans/Error.hs, dist-newstyle/build/x86_64-linux/ghc-9.6.5/transformers-0.5.6.2/build/Control/Monad/Trans/Error.o, dist-newstyle/build/x86_64-linux/ghc-9.6.5/transformers-0.5.6.2/build/Control/Monad/Trans/Error.dyn_o )
[ 6 of 26] Compiling Control.Monad.Trans.Except ( Control/Monad/Trans/Except.hs, dist-newstyle/build/x86_64-linux/ghc-9.6.5/transformers-0.5.6.2/build/Control/Monad/Trans/Except.o, dist-newstyle/build/x86_64-linux/ghc-9.6.5/transformers-0.5.6.2/build/Control/Monad/Trans/Except.dyn_o )
[ 7 of 26] Compiling Control.Monad.Trans.Identity ( Control/Monad/Trans/Identity.hs, dist-newstyle/build/x86_64-linux/ghc-9.6.5/transformers-0.5.6.2/build/Control/Monad/Trans/Identity.o, dist-newstyle/build/x86_64-linux/ghc-9.6.5/transformers-0.5.6.2/build/Control/Monad/Trans/Identity.dyn_o )
[ 8 of 26] Compiling Control.Monad.Trans.List ( Control/Monad/Trans/List.hs, dist-newstyle/build/x86_64-linux/ghc-9.6.5/transformers-0.5.6.2/build/Control/Monad/Trans/List.o, dist-newstyle/build/x86_64-linux/ghc-9.6.5/transformers-0.5.6.2/build/Control/Monad/Trans/List.dyn_o )
[ 9 of 26] Compiling Control.Monad.Trans.Maybe ( Control/Monad/Trans/Maybe.hs, dist-newstyle/build/x86_64-linux/ghc-9.6.5/transformers-0.5.6.2/build/Control/Monad/Trans/Maybe.o, dist-newstyle/build/x86_64-linux/ghc-9.6.5/transformers-0.5.6.2/build/Control/Monad/Trans/Maybe.dyn_o )
[10 of 26] Compiling Control.Monad.Trans.RWS.CPS ( Control/Monad/Trans/RWS/CPS.hs, dist-newstyle/build/x86_64-linux/ghc-9.6.5/transformers-0.5.6.2/build/Control/Monad/Trans/RWS/CPS.o, dist-newstyle/build/x86_64-linux/ghc-9.6.5/transformers-0.5.6.2/build/Control/Monad/Trans/RWS/CPS.dyn_o )
[11 of 26] Compiling Control.Monad.Trans.RWS.Lazy ( Control/Monad/Trans/RWS/Lazy.hs, dist-newstyle/build/x86_64-linux/ghc-9.6.5/transformers-0.5.6.2/build/Control/Monad/Trans/RWS/Lazy.o, dist-newstyle/build/x86_64-linux/ghc-9.6.5/transformers-0.5.6.2/build/Control/Monad/Trans/RWS/Lazy.dyn_o )
[12 of 26] Compiling Control.Monad.Trans.RWS ( Control/Monad/Trans/RWS.hs, dist-newstyle/build/x86_64-linux/ghc-9.6.5/transformers-0.5.6.2/build/Control/Monad/Trans/RWS.o, dist-newstyle/build/x86_64-linux/ghc-9.6.5/transformers-0.5.6.2/build/Control/Monad/Trans/RWS.dyn_o )
[13 of 26] Compiling Control.Monad.Trans.RWS.Strict ( Control/Monad/Trans/RWS/Strict.hs, dist-newstyle/build/x86_64-linux/ghc-9.6.5/transformers-0.5.6.2/build/Control/Monad/Trans/RWS/Strict.o, dist-newstyle/build/x86_64-linux/ghc-9.6.5/transformers-0.5.6.2/build/Control/Monad/Trans/RWS/Strict.dyn_o )
[14 of 26] Compiling Control.Monad.Trans.Reader ( Control/Monad/Trans/Reader.hs, dist-newstyle/build/x86_64-linux/ghc-9.6.5/transformers-0.5.6.2/build/Control/Monad/Trans/Reader.o, dist-newstyle/build/x86_64-linux/ghc-9.6.5/transformers-0.5.6.2/build/Control/Monad/Trans/Reader.dyn_o )
[15 of 26] Compiling Control.Monad.Trans.Select ( Control/Monad/Trans/Select.hs, dist-newstyle/build/x86_64-linux/ghc-9.6.5/transformers-0.5.6.2/build/Control/Monad/Trans/Select.o, dist-newstyle/build/x86_64-linux/ghc-9.6.5/transformers-0.5.6.2/build/Control/Monad/Trans/Select.dyn_o )
[16 of 26] Compiling Control.Monad.Trans.State.Lazy ( Control/Monad/Trans/State/Lazy.hs, dist-newstyle/build/x86_64-linux/ghc-9.6.5/transformers-0.5.6.2/build/Control/Monad/Trans/State/Lazy.o, dist-newstyle/build/x86_64-linux/ghc-9.6.5/transformers-0.5.6.2/build/Control/Monad/Trans/State/Lazy.dyn_o )
[17 of 26] Compiling Control.Monad.Trans.State ( Control/Monad/Trans/State.hs, dist-newstyle/build/x86_64-linux/ghc-9.6.5/transformers-0.5.6.2/build/Control/Monad/Trans/State.o, dist-newstyle/build/x86_64-linux/ghc-9.6.5/transformers-0.5.6.2/build/Control/Monad/Trans/State.dyn_o )
[18 of 26] Compiling Control.Monad.Trans.State.Strict ( Control/Monad/Trans/State/Strict.hs, dist-newstyle/build/x86_64-linux/ghc-9.6.5/transformers-0.5.6.2/build/Control/Monad/Trans/State/Strict.o, dist-newstyle/build/x86_64-linux/ghc-9.6.5/transformers-0.5.6.2/build/Control/Monad/Trans/State/Strict.dyn_o )
[19 of 26] Compiling Control.Monad.Trans.Writer.CPS ( Control/Monad/Trans/Writer/CPS.hs, dist-newstyle/build/x86_64-linux/ghc-9.6.5/transformers-0.5.6.2/build/Control/Monad/Trans/Writer/CPS.o, dist-newstyle/build/x86_64-linux/ghc-9.6.5/transformers-0.5.6.2/build/Control/Monad/Trans/Writer/CPS.dyn_o )
[20 of 26] Compiling Control.Monad.Trans.Writer.Lazy ( Control/Monad/Trans/Writer/Lazy.hs, dist-newstyle/build/x86_64-linux/ghc-9.6.5/transformers-0.5.6.2/build/Control/Monad/Trans/Writer/Lazy.o, dist-newstyle/build/x86_64-linux/ghc-9.6.5/transformers-0.5.6.2/build/Control/Monad/Trans/Writer/Lazy.dyn_o )
[21 of 26] Compiling Control.Monad.Trans.Writer ( Control/Monad/Trans/Writer.hs, dist-newstyle/build/x86_64-linux/ghc-9.6.5/transformers-0.5.6.2/build/Control/Monad/Trans/Writer.o, dist-newstyle/build/x86_64-linux/ghc-9.6.5/transformers-0.5.6.2/build/Control/Monad/Trans/Writer.dyn_o )
[22 of 26] Compiling Control.Monad.Trans.Accum ( Control/Monad/Trans/Accum.hs, dist-newstyle/build/x86_64-linux/ghc-9.6.5/transformers-0.5.6.2/build/Control/Monad/Trans/Accum.o, dist-newstyle/build/x86_64-linux/ghc-9.6.5/transformers-0.5.6.2/build/Control/Monad/Trans/Accum.dyn_o )
[23 of 26] Compiling Control.Monad.Trans.Writer.Strict ( Control/Monad/Trans/Writer/Strict.hs, dist-newstyle/build/x86_64-linux/ghc-9.6.5/transformers-0.5.6.2/build/Control/Monad/Trans/Writer/Strict.o, dist-newstyle/build/x86_64-linux/ghc-9.6.5/transformers-0.5.6.2/build/Control/Monad/Trans/Writer/Strict.dyn_o )
[24 of 26] Compiling Data.Functor.Constant ( Data/Functor/Constant.hs, dist-newstyle/build/x86_64-linux/ghc-9.6.5/transformers-0.5.6.2/build/Data/Functor/Constant.o, dist-newstyle/build/x86_64-linux/ghc-9.6.5/transformers-0.5.6.2/build/Data/Functor/Constant.dyn_o )
[25 of 26] Compiling Control.Applicative.Lift ( Control/Applicative/Lift.hs, dist-newstyle/build/x86_64-linux/ghc-9.6.5/transformers-0.5.6.2/build/Control/Applicative/Lift.o, dist-newstyle/build/x86_64-linux/ghc-9.6.5/transformers-0.5.6.2/build/Control/Applicative/Lift.dyn_o )
[26 of 26] Compiling Data.Functor.Reverse ( Data/Functor/Reverse.hs, dist-newstyle/build/x86_64-linux/ghc-9.6.5/transformers-0.5.6.2/build/Data/Functor/Reverse.o, dist-newstyle/build/x86_64-linux/ghc-9.6.5/transformers-0.5.6.2/build/Data/Functor/Reverse.dyn_o )

@hasufell
Copy link
Contributor Author

Also see: haskell/cabal#9669

It is mostly irrelevant with what boot packages GHC ships.

@harendra-kumar
Copy link
Member

We have had trouble in the past because of multiple boot library versions and for that reason we made a convention to use lower bound of boot libraries match with GHC. If it helps your use case we can try to make it work with the older version of transformers and release a 0.10.2 with that. Though, I am not sure if that might create some other problem.

@harendra-kumar
Copy link
Member

The constraints are up to transformers-0.5.5:

                     , transformers      >= 0.5.5 && < 0.7

Let's see if a small fix can make it work.

@harendra-kumar
Copy link
Member

I fixed the issue (#2741) we can make a revision on hackage.

Is there a way to have a dependency in cabal file conditional on the version on another package? In this case we need to depend on transformers-base only if transformers version is less than 0.6 .

@hasufell
Copy link
Contributor Author

hasufell commented Apr 30, 2024

Is there a way to have a dependency in cabal file conditional on the version on another package?

No. That is what automatic cabal flags are for.

But these don't mix well with --allow-newer.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants