ndmitchell / hlint

Haskell source code suggestions
Other
1.47k stars 196 forks source link

Still can't compile with GHC 9.10.1 #1613

Open LeventErkok opened 2 months ago

LeventErkok commented 2 months ago

I know this was closed in #1593. But I'm still having issues:

$ cabal new-install hlint
Resolving dependencies...
Error: [Cabal-7107]
Could not resolve dependencies:
[__0] trying: hlint-3.8 (user goal)
[__1] next goal: ghc-lib-parser (dependency of hlint +/-ghc-lib)
[__1] rejecting: ghc-lib-parser-9.10.1.20240511 (conflict: hlint +/-ghc-lib => ghc-lib-parser>=9.8 && <9.9)
[__1] trying: ghc-lib-parser-9.8.2.20240223
[__2] next goal: pretty (dependency of ghc-lib-parser)
[__2] rejecting: pretty-1.1.3.6/installed-b893 (conflict: ghc-lib-parser => base>=4.17 && <4.20, pretty => base==4.20.0.0/installed-8a80)
[__2] trying: pretty-1.1.3.6
[__3] next goal: base (dependency of hlint)
[__3] rejecting: base-4.20.0.0/installed-8a80 (conflict: ghc-lib-parser => base>=4.17 && <4.20)
[__3] skipping: base; 4.20.0.1, 4.20.0.0 (has the same characteristics that caused the previous version to fail: excluded by constraint '>=4.17 && <4.20' from 'ghc-lib-parser')
[__3] rejecting: base; 4.19.1.0, 4.19.0.0, 4.18.2.1, 4.18.2.0, 4.18.1.0, 4.18.0.0, 4.17.2.1, 4.17.2.0, 4.17.1.0, 4.17.0.0, 4.16.4.0, 4.16.3.0, 4.16.2.0, 4.16.1.0, 4.16.0.0, 4.15.1.0, 4.15.0.0, 4.14.3.0, 4.14.2.0, 4.14.1.0, 4.14.0.0, 4.13.0.0, 4.12.0.0, 4.11.1.0, 4.11.0.0, 4.10.1.0, 4.10.0.0, 4.9.1.0, 4.9.0.0, 4.8.2.0, 4.8.1.0, 4.8.0.0, 4.7.0.2, 4.7.0.1, 4.7.0.0, 4.6.0.1, 4.6.0.0, 4.5.1.0, 4.5.0.0, 4.4.1.0, 4.4.0.0, 4.3.1.0, 4.3.0.0, 4.2.0.2, 4.2.0.1, 4.2.0.0, 4.1.0.0, 4.0.0.0, 3.0.3.2, 3.0.3.1 (constraint from non-reinstallable package requires installed instance)
[__3] fail (backjumping, conflict set: base, ghc-lib-parser, hlint)
After searching the rest of the dependency tree exhaustively, these were the goals I've had most trouble fulfilling: base, ghc-lib-parser, hlint, haskell-src-exts, template-haskell, aeson, pretty, haskell-src-exts:setup.Cabal
Try running with --minimize-conflict-set to improve the error message.

Also tried with allow-never:

$ cabal new-install hlint --allow-newer --overwrite-policy=always
... many lines deleted ...
Configuring library for hlint-3.8...
Preprocessing library for hlint-3.8...
Building library for hlint-3.8...
[ 1 of 62] Compiling EmbedData        ( src/EmbedData.hs, dist/build/EmbedData.o, dist/build/EmbedData.dyn_o )
[ 2 of 62] Compiling Extension        ( src/Extension.hs, dist/build/Extension.o, dist/build/Extension.dyn_o )
[ 3 of 62] Compiling Fixity           ( src/Fixity.hs, dist/build/Fixity.o, dist/build/Fixity.dyn_o )
src/Fixity.hs:55:49: error: [GHC-83865]
    • Couldn't match type ‘NoExtField’ with ‘NamespaceSpecifier’
      Expected: XFixitySig GhcPs
        Actual: NoExtField
    • In the first argument of ‘FixitySig’, namely ‘noExtField’
      In the expression:
        FixitySig noExtField [noLocA $ mkRdrUnqual (mkVarOcc name)] x
      In an equation for ‘toFixitySig’:
          toFixitySig (toFixity -> (name, x))
            = FixitySig noExtField [noLocA $ mkRdrUnqual (mkVarOcc name)] x
   |
55 | toFixitySig (toFixity -> (name, x)) = FixitySig noExtField [noLocA $ mkRdrUnqual (mkVarOcc name)] x
   |                                                 ^^^^^^^^^^

... many lines deleted ...

Versions I have:

$ ghc --version
The Glorious Glasgow Haskell Compilation System, version 9.10.1
$ cabal --version
cabal-install version 3.12.1.0
compiled using version 3.12.1.0 of the Cabal library

Any help would be appreciated..

shayne-fletcher commented 2 months ago

@LeventErkok https://github.com/ndmitchell/hlint/issues/1593 got closed since the changes got landed . there hasn't been a release yet however. if you are stuck there's always the option of building from git

git clone https://github.com/ndmitchell/hlint.git
cd hlint
PATH=~/.ghcup/ghc/9.10.1/bin:~/.ghcup/bin:~/.cabal/bin:$PATH;export PATH
cabal build
cabal run exe:hlint -- --test # test
cabal install exe:hlint --overwrite-policy=always # install binary to ~/.cabal/bin/hlint

note that apply-refact remains unsupported with ghc-9.10.1 so if you rely on refactor it needs to be preinstalled using an older ghc. there's a poll on threads right now to help understand user sentiment on whether this should block a hlint ghc-9.10.1 release or not.