Skip to content

hdevtools still does not play nice with stack #78

@maksbotan

Description

@maksbotan

Hi. I'm trying to use hdevtools on stack project with lts-9.1. Unfortunately, I can't install it with stack build, as it gives me this error:

    • Couldn't match type ‘[email protected]:GHC.PackageDb.ExposedModule
                             GHC.UnitId GHC.ModuleName’
                     with ‘GHC.PackageDb.ExposedModule unitid0 GHC.ModuleName’
      NB: ‘GHC.PackageDb.ExposedModule’
            is defined in ‘GHC.PackageDb’
                in package ‘[email protected]’
          ‘[email protected]:GHC.PackageDb.ExposedModule’
            is defined in ‘GHC.PackageDb’
                in package ‘[email protected]’
      Expected type: [GHC.PackageDb.ExposedModule unitid0 GHC.ModuleName]
        Actual type: [[email protected]:GHC.PackageDb.ExposedModule
                        GHC.UnitId GHC.ModuleName]
    • In the second argument of ‘map’, namely
        ‘(concatMap exposedModules pkgConfigs)’
      In the second argument of ‘($)’, namely
        ‘map exposedName (concatMap exposedModules pkgConfigs)’
      In a stmt of a 'do' block:
        return $ map exposedName (concatMap exposedModules pkgConfigs)

And a bunch of warning about package versons as well:

Warning: This package indirectly depends on multiple versions of the same
package. This is highly likely to cause a compile failure.
package process-1.4.3.0 requires directory-1.3.0.0
package hpc-0.6.0.3 requires directory-1.3.0.0
package ghc-boot-8.0.2 requires directory-1.3.0.0
package ghc-8.0.2 requires directory-1.3.0.0
package process-1.4.3.0 requires directory-1.3.1.0
package hdevtools-0.1.5.0 requires directory-1.3.1.0
package ghc-boot-8.0.2 requires directory-1.3.1.0
package Cabal-1.24.2.0 requires directory-1.3.1.0
...

I tried two different configurations:

  • Use system-wide hdevtools (I'm on Gentoo with ghc-8.0.2) with my stack project. When I try this, I get an error:
Cabal file: Just "/home/maks/Projects/***/***.cabal"
Stack file: Just "/home/maks/Projects/***/stack.yaml"
Socket file: "/home/maks/Projects/***/.hdevtools.sock"
can't load .so/.DLL for: /home/maks/IDE/stack/programs/x86_64-linux/ghc-tinfo6-nopie-8.0.2/lib/ghc-8.0.2/bytestring-0.10.8.1/libHSbytestring-0.10.8.1-ghc8.0.2.so (/home/maks/IDE/stack/programs/x86_64-linux/ghc-tinfo6-nopie-8.0.2/lib/ghc-8.0.2/bytestring-0.10.8.1/libHSbytestring-0.10.8.1-ghc8.0.2.so: undefined symbol: base_GHCziIOziHandleziInternals_ioezuEOF2_closure)
  • Build latest hdevtools from this repo with stack hackery (basically, I got configure command from stack build -v and changed --dependency=ghc-boot=... pointing to ghc-boot inside .stack-work to point to one in ~/.stack/...). This way I could build hdevtools and run it with stack exec, but I get another error when I try to check a file:
Cabal file: Just "/home/maks/Projects/***/***.cabal"
Stack file: Just "/home/maks/Projects/***/stack.yaml"
Socket file: "/home/maks/Projects/***/.hdevtools.sock"
Cabal error: Use of GHC's environment variable GHC_PACKAGE_PATH is incompatible with Cabal. Use the flag --package-db to specify a package database (it can be used multiple times).

Can something be done about it? I'd actually prefer if system-wide hdevtools (from portage) could work any stack-based project.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions