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

Compilation fails with GHC 9.4.5 #456

Open
gn0 opened this issue Jun 5, 2023 · 2 comments
Open

Compilation fails with GHC 9.4.5 #456

gn0 opened this issue Jun 5, 2023 · 2 comments

Comments

@gn0
Copy link

gn0 commented Jun 5, 2023

stylish-haskell 0.14.4.0 fails to compile with GHC 9.4.5. This breaks ghcup compile hls --version 2.0.0.0 --ghc 9.4.5.

The output of cabal install stylish-haskell:

$ cabal install stylish-haskell
Resolving dependencies...
Build profile: -w ghc-9.4.5 -O1
In order, the following will be built (use -v for more details):
 - prettyprinter-ansi-terminal-1.1.3 (lib) (requires build)
 - stylish-haskell-0.14.4.0 (lib) (requires build)
 - prettyprinter-compat-ansi-wl-pprint-1.0.2 (lib) (requires build)
 - ansi-wl-pprint-1.0.2 (lib) (requires build)
 - optparse-applicative-0.17.1.0 (lib) (requires build)
 - stylish-haskell-0.14.4.0 (exe:stylish-haskell) (requires build)
Starting     prettyprinter-ansi-terminal-1.1.3 (lib)
Starting     stylish-haskell-0.14.4.0 (lib)
Building     prettyprinter-ansi-terminal-1.1.3 (lib)
Building     stylish-haskell-0.14.4.0 (lib)
Installing   prettyprinter-ansi-terminal-1.1.3 (lib)
Completed    prettyprinter-ansi-terminal-1.1.3 (lib)

Failed to build stylish-haskell-0.14.4.0.
Build log (
/home/gn0/.cabal/logs/ghc-9.4.5/stylish-haskell-0.14.4.0-c11a98df49ff817c217b04dec4518f3e390517e33cbfef16f01b0095a8abbcd5.log
):
Configuring library for stylish-haskell-0.14.4.0..
Preprocessing library for stylish-haskell-0.14.4.0..
Building library for stylish-haskell-0.14.4.0..
[ 1 of 26] Compiling Language.Haskell.Stylish.Block ( lib/Language/Haskell/Stylish/Block.hs, dist/build/Language/Haskell/Stylish/Block.o, dist/build/Language/Haskell/Stylish/Block.dyn_o )
[ 2 of 26] Compiling Language.Haskell.Stylish.Config.Internal ( lib/Language/Haskell/Stylish/Config/Internal.hs, dist/build/Language/Haskell/Stylish/Config/Internal.o, dist/build/Language/Haskell/Stylish/Config/Internal.dyn_o )
[ 3 of 26] Compiling Language.Haskell.Stylish.Editor ( lib/Language/Haskell/Stylish/Editor.hs, dist/build/Language/Haskell/Stylish/Editor.o, dist/build/Language/Haskell/Stylish/Editor.dyn_o )
[ 4 of 26] Compiling Language.Haskell.Stylish.GHC ( lib/Language/Haskell/Stylish/GHC.hs, dist/build/Language/Haskell/Stylish/GHC.o, dist/build/Language/Haskell/Stylish/GHC.dyn_o )

lib/Language/Haskell/Stylish/GHC.hs:71:32: error:
    • Couldn't match expected type ‘GHC.Settings’
                  with actual type ‘ghc-lib-parser-9.4.5.20230430:GHC.Settings.Settings’
      NB: ‘GHC.Settings’
            is defined in ‘GHC.Settings’ in package ‘ghc-9.4.5’
          ‘ghc-lib-parser-9.4.5.20230430:GHC.Settings.Settings’
            is defined in ‘GHC.Settings’
                in package ‘ghc-lib-parser-9.4.5.20230430’
    • In the first argument of ‘defaultDynFlags’, namely
        ‘GHCEx.fakeSettings’
      In the expression:
        defaultDynFlags GHCEx.fakeSettings GHCEx.fakeLlvmConfig
      In an equation for ‘baseDynFlags’:
          baseDynFlags
            = defaultDynFlags GHCEx.fakeSettings GHCEx.fakeLlvmConfig
   |
71 | baseDynFlags = defaultDynFlags GHCEx.fakeSettings GHCEx.fakeLlvmConfig
   |                                ^^^^^^^^^^^^^^^^^^

lib/Language/Haskell/Stylish/GHC.hs:71:51: error:
    • Couldn't match expected type ‘GHC.LlvmConfig’
                  with actual type ‘ghc-lib-parser-9.4.5.20230430:GHC.Driver.Session.LlvmConfig’
      NB: ‘GHC.LlvmConfig’
            is defined in ‘GHC.Driver.Session’ in package ‘ghc-9.4.5’
          ‘ghc-lib-parser-9.4.5.20230430:GHC.Driver.Session.LlvmConfig’
            is defined in ‘GHC.Driver.Session’
                in package ‘ghc-lib-parser-9.4.5.20230430’
    • In the second argument of ‘defaultDynFlags’, namely
        ‘GHCEx.fakeLlvmConfig’
      In the expression:
        defaultDynFlags GHCEx.fakeSettings GHCEx.fakeLlvmConfig
      In an equation for ‘baseDynFlags’:
          baseDynFlags
            = defaultDynFlags GHCEx.fakeSettings GHCEx.fakeLlvmConfig
   |
71 | baseDynFlags = defaultDynFlags GHCEx.fakeSettings GHCEx.fakeLlvmConfig
   |                                                   ^^^^^^^^^^^^^^^^^^^^
[22 of 26] Compiling Language.Haskell.Stylish.Verbose ( lib/Language/Haskell/Stylish/Verbose.hs, dist/build/Language/Haskell/Stylish/Verbose.o, dist/build/Language/Haskell/Stylish/Verbose.dyn_o )
[23 of 26] Compiling Language.Haskell.Stylish.Config.Cabal ( lib/Language/Haskell/Stylish/Config/Cabal.hs, dist/build/Language/Haskell/Stylish/Config/Cabal.o, dist/build/Language/Haskell/Stylish/Config/Cabal.dyn_o )
[25 of 26] Compiling Paths_stylish_haskell ( dist/build/autogen/Paths_stylish_haskell.hs, dist/build/Paths_stylish_haskell.o, dist/build/Paths_stylish_haskell.dyn_o )
Error: cabal: Failed to build stylish-haskell-0.14.4.0 (which is required by
exe:stylish-haskell from stylish-haskell-0.14.4.0). See the build log above
for details.

@Lev135
Copy link
Contributor

Lev135 commented Jun 6, 2023

It seems you should add +ghc-lib flag to stylish-haskell. See #405 with the same error for GHC 9.2.3. This flag is defolted to be true by #445, but unfortunately new hackage version has not been provided yet #451.

@gn0
Copy link
Author

gn0 commented Jun 9, 2023

Thanks, @Lev135! This solved the issue for me:

$ ghcup compile hls --version 2.0.0.0 --ghc 9.4.5 -- --constraint "stylish-haskell +ghc-lib"

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