Skip to content

HLS breaks cabals tool detection #3730

Open
@hasufell

Description

@hasufell

Reproduce:

  1. cabal unpack filepath
  2. cd filepath-*/
  3. echo -e 'packages: .\nwith-compiler: ghc-9.4.5\ndocumentation: True' > cabal.project
  4. ghcup install ghc 9.4.5
  5. ghcup run -i --ghc 8.10.7 --hls latest -- haskell-language-server-wrapper typecheck

Error:

  Installing unordered-containers-0.2.19.1 (lib)
  Completed unordered-containers-0.2.19.1 (lib)

  Error: cabal-3.10.1.0: Haddock's internal GHC version must match the
  configured GHC version.
  The GHC version is 9.4.5 but haddock is using GHC version 8.10.7

  Warning: Failed to build documentation for filepath-1.4.100.3 (which is
  required by test:abstract-filepath from filepath-1.4.100.3).


  Process Environment:
  HIE_BIOS_GHC: /home/hasufell/.ghcup/ghc/9.4.5/lib/ghc-9.4.5/bin/ghc-9.4.5
  HIE_BIOS_GHC_ARGS: -B/home/hasufell/.ghcup/ghc/9.4.5/lib/ghc-9.4.5/lib

We invoke cabal via:

cabal
  --builddir=/home/hasufell/.cache/hie-bios/dist-filepath-1.4.100-0ff2db8e132055d383407b5377ae4045
  v2-repl --with-compiler /home/hasufell/.cache/hie-bios/wrapper-b54f81dea4c0e6d1626911c526bc4e36
  --with-hc-pkg /home/hasufell/.cache/hie-bios/ghc-pkg-af203fda954acac33325522618af549f

Following that, I believe this part of the cabal code fails to find qualified tool binaries (see takeVersionSuffix): https://github.com/haskell/cabal/blob/4aa5f88618a29cb53b988a8ae859caa2c70a6e62/Cabal/src/Distribution/Simple/GHC.hs#L278-L340

It's not clear whether to consider this a cabal issue or a HLS issue. It might work if we name the wrapper script wrapper-b54f81dea4c0e6d1626911c526bc4e36_-9.4.5 or so.


First reported by @merijn in haskell IRC.

Metadata

Metadata

Assignees

No one assigned

    Labels

    component: hie-biostype: bugSomething isn't right: doesn't work as intended, documentation is missing/outdated, etc..

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions