Skip to content

HLS breaks cabals tool detection #3730

@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

      pFad - Phonifier reborn

      Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

      Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


      Alternative Proxies:

      Alternative Proxy

      pFad Proxy

      pFad v3 Proxy

      pFad v4 Proxy