Skip to content

hdevtools still does not play nice with stack #78

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 ‘ghc-boot-8.0.2@ghc-boot-8.0.2: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 ‘ghc-boot-8.0.2@ghc-boot-8.0.2-4rYN8vhmXwAFBTxhAB5vWV’
          ‘ghc-boot-8.0.2@ghc-boot-8.0.2:GHC.PackageDb.ExposedModule’
            is defined in ‘GHC.PackageDb’
                in package ‘ghc-boot-8.0.2@ghc-boot-8.0.2’
      Expected type: [GHC.PackageDb.ExposedModule unitid0 GHC.ModuleName]
        Actual type: [ghc-boot-8.0.2@ghc-boot-8.0.2: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

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions