ghc-mod icon indicating copy to clipboard operation
ghc-mod copied to clipboard

cradleDistDir and stack

Open d12frosted opened this issue 10 years ago • 7 comments

Hey,

I am not sure how to test it properly, but looks like cradleDistDir is wrong when you are using stack. My initial problem is that when I am using stack - Paths_name module can't be found, which brings troubles which flycheck.

Also, Paths_name is in other-modules section in .cabal file. When I start process with haskell-mode and try to navigate to Paths_name module - it brings me to it! This module is in /path/to/project/.stack-work/dist/x86_64-osx/Cabal-1.22.4.0/build/autogen/.

I don't have bare cabal right now - so can't test if it's working when I am building with cabal.

d12frosted avatar Sep 29 '15 19:09 d12frosted

rm -rf dist/ or cabal clean is your friend: https://github.com/kazu-yamamoto/ghc-mod/blob/master/Language/Haskell/GhcMod/Cradle.hs#L90

DanielG avatar Sep 29 '15 19:09 DanielG

As I told - I don't use cabal. I use stack. So I don't have dist directory. Everything goes into .stack-work.

λ la
total 88
drwxr-xr-x  16 d12frosted  staff   544B Oct  2 11:55 .
drwxr-xr-x  28 d12frosted  staff   952B Sep 25 20:25 ..
-rw-r--r--@  1 d12frosted  staff    10K Oct  3 11:28 .DS_Store
drwxr-xr-x  14 d12frosted  staff   476B Oct  3 11:41 .git
-rw-r--r--   1 d12frosted  staff   235B Sep 17 11:23 .gitignore
drwxr-xr-x   6 d12frosted  staff   204B Oct  1 15:59 .stack-work
-rw-r--r--   1 d12frosted  staff   1.5K Sep 17 11:14 LICENSE
-rw-r--r--   1 d12frosted  staff   1.4K Oct  1 22:38 README.org
-rw-r--r--   1 d12frosted  staff    46B Sep 17 11:14 Setup.hs
-rw-r--r--   1 d12frosted  staff   4.5K Oct  2 12:25 TAGS
drwxr-xr-x   5 d12frosted  staff   170B Oct  1 19:15 app
drwxr-xr-x   8 d12frosted  staff   272B Sep 30 12:19 assets
-rw-r--r--   1 d12frosted  staff   2.4K Oct  1 19:35 proj.cabal
drwxr-xr-x   4 d12frosted  staff   136B Oct  1 19:08 lib
-rw-r--r--   1 d12frosted  staff    59B Sep 17 11:25 stack.yaml
drwxr-xr-x   3 d12frosted  staff   102B Sep 17 11:14 test

d12frosted avatar Oct 03 '15 08:10 d12frosted

Well people tend to have those left over from their cabal-install days so I have to ask. Give me the output of ghc-mod debug in that directory then.

DanielG avatar Oct 03 '15 09:10 DanielG

Well people tend to have those left over from their cabal-install days so I have to ask.

Ah, I see. Well, we are at the same page then :)

The output of ghc-mod debug is

λ ghc-mod debug
Root directory:       /Users/d12frosted/project
Current directory:    /Users/d12frosted/project
GHC Package flags:
    -fbuilding-cabal-package -O -outputdir
    .stack-work/dist/x86_64-osx/Cabal-1.22.4.0/build -odir
    .stack-work/dist/x86_64-osx/Cabal-1.22.4.0/build -hidir
    .stack-work/dist/x86_64-osx/Cabal-1.22.4.0/build -stubdir
    .stack-work/dist/x86_64-osx/Cabal-1.22.4.0/build -i
    -i.stack-work/dist/x86_64-osx/Cabal-1.22.4.0/build -ilib
    -i.stack-work/dist/x86_64-osx/Cabal-1.22.4.0/build/autogen
    -I.stack-work/dist/x86_64-osx/Cabal-1.22.4.0/build/autogen
    -I.stack-work/dist/x86_64-osx/Cabal-1.22.4.0/build -optP-include
    -optP.stack-work/dist/x86_64-osx/Cabal-1.22.4.0/build/autogen/cabal_macros.h
    -hide-all-packages -no-user-package-db -package-db
    /Users/d12frosted/.stack/snapshots/x86_64-osx/lts-3.4/7.10.2/pkgdb/
    -package-db
    /Users/d12frosted/project/.stack-work/install/x86_64-osx/lts-3.4/7.10.2/pkgdb/
    -package-id
    optparse-applicative-0.11.0.2-ce4d886898c708632851113f5d4d211f
    -package-id optparse-simple-0.0.3-de0bc3ab0b3de13581fcd0c1aff752e6
    -package-id text-1.2.1.3-2395ef415c1b20175aae83b50060e389
    -package-id aeson-0.8.0.2-85507016086edfeeee941f8a8eed5cd2
    -package-id base-4.8.1.0-075aa0db10075facc5aaa59a7991ca2f
    -package-id basic-prelude-0.5.0-90c2dc621123b6997039fb5cdc75ea31
    -package-id containers-0.5.6.2-2b49cce16f8a2908df8454387e550b93
    -package-id monad-logger-0.3.13.2-15d1996af63d4b1a2f9e4d414b3c04ca
    -package-id mtl-2.2.1-5cf332b11edb88a6040af20fd6a58acb -package-id
    scientific-0.3.3.8-6eb85cb64de9dfedbefd51cace55550b -package-id
    turtle-1.2.1-8e8cf707ad44fce0ea8b258c1fb5cc3c -package-id
    unordered-containers-0.2.5.1-09ed02f61ed89449c8cd4b51d7f295c2
    -package-id uuid-1.3.11-b4b14c31d5a419b20e07567306c5ad9f
    -XHaskell2010
GHC System libraries: /Users/d12frosted/.stack/programs/x86_64-osx/ghc-7.10.2/lib/ghc-7.10.2
GHC user options:

Stack ghc executable:    Just "/Users/d12frosted/.stack/programs/x86_64-osx/ghc-7.10.2/bin/ghc"
Stack ghc-pkg executable:Just "/Users/d12frosted/.stack/programs/x86_64-osx/ghc-7.10.2/bin/ghc-pkg"
Cabal file:           Just "/Users/d12frosted/project/project.cabal"
Project:   StackProject (StackEnv {seDistDir = ".stack-work/dist/x86_64-osx/Cabal-1.22.4.0", seBinPath = ["/Users/d12frosted/.stack/snapshots/x86_64-osx/lts-3.4/7.10.2/bin","/Users/d12frosted/.stack/programs/x86_64-osx/ghc-7.10.2/bin","/Users/d12frosted/.local/bin","/usr/texbin","/usr/local/bin","/usr/bin","/bin","/usr/sbin","/sbin","/opt/X11/bin","/Library/TeX/texbin","."], seSnapshotPkgDb = "/Users/d12frosted/.stack/snapshots/x86_64-osx/lts-3.4/7.10.2/pkgdb", seLocalPkgDb = "/Users/d12frosted/project/.stack-work/install/x86_64-osx/lts-3.4/7.10.2/pkgdb"})
Cabal entrypoints:
    Setup.hs
        Main (/Users/d12frosted/project/Setup.hs)
    library
        Project.Types (/Users/d12frosted/project/lib/Project/Types.hs)
        Paths_project (/Users/d12frosted/project/.stack-work/dist/x86_64-osx/Cabal-1.22.4.0/build/autogen/Paths_project.hs)
        Project.File (/Users/d12frosted/project/lib/Project/File.hs)
        Project.Prelude (/Users/d12frosted/project/lib/Project/Prelude.hs)
        Project.Types.Internal (/Users/d12frosted/project/lib/Project/Types/Internal.hs)
        Project.Types.Note (/Users/d12frosted/project/lib/Project/Types/Note.hs)
        Project.Types.Note.InternalInfo (/Users/d12frosted/project/lib/Project/Types/Note/InternalInfo.hs)
        Project.Types.Note.MetaInfo (/Users/d12frosted/project/lib/Project/Types/Note/MetaInfo.hs)
        Project.Types.UUID (/Users/d12frosted/project/lib/Project/Types/UUID.hs)
    exe:project
        Paths_project (/Users/d12frosted/project/.stack-work/dist/x86_64-osx/Cabal-1.22.4.0/build/autogen/Paths_project.hs)
        Main (/Users/d12frosted/project/app/Main.hs)
        Version (/Users/d12frosted/project/app/Version.hs)
    test:project-test
        Main (/Users/d12frosted/project/test/Spec.hs)
Cabal components:
    Setup.hs
        Main (/Users/d12frosted/project/Setup.hs)
    library
        Project.Types (/Users/d12frosted/project/lib/Project/Types.hs)
            Project.Types.Internal
            Project.Types.Note
            Project.Types.UUID
            Project.Types.Config
        Paths_project (/Users/d12frosted/project/.stack-work/dist/x86_64-osx/Cabal-1.22.4.0/build/autogen/Paths_project.hs)
        Project.File (/Users/d12frosted/project/lib/Project/File.hs)
            Project.Types
            Project.Prelude
        Project.Prelude (/Users/d12frosted/project/lib/Project/Prelude.hs)
        Project.Types.Internal (/Users/d12frosted/project/lib/Project/Types/Internal.hs)
            Project.Prelude
        Project.Types.Note (/Users/d12frosted/project/lib/Project/Types/Note.hs)
            Project.Types.Note.InternalInfo
            Project.Types.Note.MetaInfo
            Project.Types.UUID
        Project.Types.Note.InternalInfo (/Users/d12frosted/project/lib/Project/Types/Note/InternalInfo.hs)
        Project.Types.Note.MetaInfo (/Users/d12frosted/project/lib/Project/Types/Note/MetaInfo.hs)
        Project.Types.UUID (/Users/d12frosted/project/lib/Project/Types/UUID.hs)
        Project.Types.Config (/Users/d12frosted/project/lib/Project/Types/Config.hs)
            Project.Prelude
            Project.Types.Internal
    exe:project
        Paths_project (/Users/d12frosted/project/.stack-work/dist/x86_64-osx/Cabal-1.22.4.0/build/autogen/Paths_project.hs)
        Main (/Users/d12frosted/project/app/Main.hs)
            Version
        Version (/Users/d12frosted/project/app/Version.hs)
            Paths_project
    test:project-test
        Main (/Users/d12frosted/project/test/Spec.hs)
GHC Cabal options:
    Setup.hs
    library
        -fbuilding-cabal-package -O -outputdir
        .stack-work/dist/x86_64-osx/Cabal-1.22.4.0/build -odir
        .stack-work/dist/x86_64-osx/Cabal-1.22.4.0/build -hidir
        .stack-work/dist/x86_64-osx/Cabal-1.22.4.0/build -stubdir
        .stack-work/dist/x86_64-osx/Cabal-1.22.4.0/build -i
        -i.stack-work/dist/x86_64-osx/Cabal-1.22.4.0/build -ilib
        -i.stack-work/dist/x86_64-osx/Cabal-1.22.4.0/build/autogen
        -I.stack-work/dist/x86_64-osx/Cabal-1.22.4.0/build/autogen
        -I.stack-work/dist/x86_64-osx/Cabal-1.22.4.0/build -optP-include
        -optP.stack-work/dist/x86_64-osx/Cabal-1.22.4.0/build/autogen/cabal_macros.h
        -hide-all-packages -no-user-package-db -package-db
        /Users/d12frosted/.stack/snapshots/x86_64-osx/lts-3.4/7.10.2/pkgdb/
        -package-db
        /Users/d12frosted/project/.stack-work/install/x86_64-osx/lts-3.4/7.10.2/pkgdb/
        -package-id aeson-0.8.0.2-85507016086edfeeee941f8a8eed5cd2
        -package-id base-4.8.1.0-075aa0db10075facc5aaa59a7991ca2f
        -package-id basic-prelude-0.5.0-90c2dc621123b6997039fb5cdc75ea31
        -package-id containers-0.5.6.2-2b49cce16f8a2908df8454387e550b93
        -package-id monad-logger-0.3.13.2-15d1996af63d4b1a2f9e4d414b3c04ca
        -package-id mtl-2.2.1-5cf332b11edb88a6040af20fd6a58acb -package-id
        scientific-0.3.3.8-6eb85cb64de9dfedbefd51cace55550b -package-id
        turtle-1.2.1-8e8cf707ad44fce0ea8b258c1fb5cc3c -package-id
        unordered-containers-0.2.5.1-09ed02f61ed89449c8cd4b51d7f295c2
        -package-id uuid-1.3.11-b4b14c31d5a419b20e07567306c5ad9f
        -XHaskell2010
    exe:project
        -fbuilding-cabal-package -O -outputdir
        .stack-work/dist/x86_64-osx/Cabal-1.22.4.0/build -odir
        .stack-work/dist/x86_64-osx/Cabal-1.22.4.0/build -hidir
        .stack-work/dist/x86_64-osx/Cabal-1.22.4.0/build -stubdir
        .stack-work/dist/x86_64-osx/Cabal-1.22.4.0/build -i
        -i.stack-work/dist/x86_64-osx/Cabal-1.22.4.0/build/project/project-tmp
        -iapp -i.stack-work/dist/x86_64-osx/Cabal-1.22.4.0/build -ilib
        -i.stack-work/dist/x86_64-osx/Cabal-1.22.4.0/build/autogen
        -I.stack-work/dist/x86_64-osx/Cabal-1.22.4.0/build/project/project-tmp
        -I.stack-work/dist/x86_64-osx/Cabal-1.22.4.0/build/autogen
        -I.stack-work/dist/x86_64-osx/Cabal-1.22.4.0/build -optP-include
        -optP.stack-work/dist/x86_64-osx/Cabal-1.22.4.0/build/autogen/cabal_macros.h
        -hide-all-packages -no-user-package-db -package-db
        /Users/d12frosted/.stack/snapshots/x86_64-osx/lts-3.4/7.10.2/pkgdb/
        -package-db
        /Users/d12frosted/project/.stack-work/install/x86_64-osx/lts-3.4/7.10.2/pkgdb/
        -package-id
        optparse-applicative-0.11.0.2-ce4d886898c708632851113f5d4d211f
        -package-id optparse-simple-0.0.3-de0bc3ab0b3de13581fcd0c1aff752e6
        -package-id text-1.2.1.3-2395ef415c1b20175aae83b50060e389
        -package-id aeson-0.8.0.2-85507016086edfeeee941f8a8eed5cd2
        -package-id base-4.8.1.0-075aa0db10075facc5aaa59a7991ca2f
        -package-id basic-prelude-0.5.0-90c2dc621123b6997039fb5cdc75ea31
        -package-id containers-0.5.6.2-2b49cce16f8a2908df8454387e550b93
        -package-id monad-logger-0.3.13.2-15d1996af63d4b1a2f9e4d414b3c04ca
        -package-id mtl-2.2.1-5cf332b11edb88a6040af20fd6a58acb -package-id
        scientific-0.3.3.8-6eb85cb64de9dfedbefd51cace55550b -package-id
        turtle-1.2.1-8e8cf707ad44fce0ea8b258c1fb5cc3c -package-id
        unordered-containers-0.2.5.1-09ed02f61ed89449c8cd4b51d7f295c2
        -package-id uuid-1.3.11-b4b14c31d5a419b20e07567306c5ad9f
        -XHaskell2010 -threaded -rtsopts -with-rtsopts=-N
    test:project-test
        -fbuilding-cabal-package -O -outputdir
        .stack-work/dist/x86_64-osx/Cabal-1.22.4.0/build -odir
        .stack-work/dist/x86_64-osx/Cabal-1.22.4.0/build -hidir
        .stack-work/dist/x86_64-osx/Cabal-1.22.4.0/build -stubdir
        .stack-work/dist/x86_64-osx/Cabal-1.22.4.0/build -i
        -i.stack-work/dist/x86_64-osx/Cabal-1.22.4.0/build/project-test/project-test-tmp
        -itest -i.stack-work/dist/x86_64-osx/Cabal-1.22.4.0/build -ilib
        -i.stack-work/dist/x86_64-osx/Cabal-1.22.4.0/build/autogen
        -I.stack-work/dist/x86_64-osx/Cabal-1.22.4.0/build/project-test/project-test-tmp
        -I.stack-work/dist/x86_64-osx/Cabal-1.22.4.0/build/autogen
        -I.stack-work/dist/x86_64-osx/Cabal-1.22.4.0/build -optP-include
        -optP.stack-work/dist/x86_64-osx/Cabal-1.22.4.0/build/autogen/cabal_macros.h
        -hide-all-packages -no-user-package-db -package-db
        /Users/d12frosted/.stack/snapshots/x86_64-osx/lts-3.4/7.10.2/pkgdb/
        -package-db
        /Users/d12frosted/project/.stack-work/install/x86_64-osx/lts-3.4/7.10.2/pkgdb/
        -package-id aeson-0.8.0.2-85507016086edfeeee941f8a8eed5cd2
        -package-id base-4.8.1.0-075aa0db10075facc5aaa59a7991ca2f
        -package-id basic-prelude-0.5.0-90c2dc621123b6997039fb5cdc75ea31
        -package-id containers-0.5.6.2-2b49cce16f8a2908df8454387e550b93
        -package-id monad-logger-0.3.13.2-15d1996af63d4b1a2f9e4d414b3c04ca
        -package-id mtl-2.2.1-5cf332b11edb88a6040af20fd6a58acb -package-id
        scientific-0.3.3.8-6eb85cb64de9dfedbefd51cace55550b -package-id
        turtle-1.2.1-8e8cf707ad44fce0ea8b258c1fb5cc3c -package-id
        unordered-containers-0.2.5.1-09ed02f61ed89449c8cd4b51d7f295c2
        -package-id uuid-1.3.11-b4b14c31d5a419b20e07567306c5ad9f
        -XHaskell2010 -threaded -rtsopts -with-rtsopts=-N
GHC search path options:
    Setup.hs
    library
        -i -i.stack-work/dist/x86_64-osx/Cabal-1.22.4.0/build -ilib
        -i.stack-work/dist/x86_64-osx/Cabal-1.22.4.0/build/autogen
        -I.stack-work/dist/x86_64-osx/Cabal-1.22.4.0/build/autogen
        -I.stack-work/dist/x86_64-osx/Cabal-1.22.4.0/build -optP-include
        -optP.stack-work/dist/x86_64-osx/Cabal-1.22.4.0/build/autogen/cabal_macros.h
    exe:project
        -i
        -i.stack-work/dist/x86_64-osx/Cabal-1.22.4.0/build/project/project-tmp
        -iapp -i.stack-work/dist/x86_64-osx/Cabal-1.22.4.0/build/autogen
        -I.stack-work/dist/x86_64-osx/Cabal-1.22.4.0/build/autogen
        -I.stack-work/dist/x86_64-osx/Cabal-1.22.4.0/build/project/project-tmp
        -optP-include
        -optP.stack-work/dist/x86_64-osx/Cabal-1.22.4.0/build/autogen/cabal_macros.h
    test:project-test
        -i
        -i.stack-work/dist/x86_64-osx/Cabal-1.22.4.0/build/project-test/project-test-tmp
        -itest -i.stack-work/dist/x86_64-osx/Cabal-1.22.4.0/build/autogen
        -I.stack-work/dist/x86_64-osx/Cabal-1.22.4.0/build/autogen
        -I.stack-work/dist/x86_64-osx/Cabal-1.22.4.0/build/project-test/project-test-tmp
        -optP-include
        -optP.stack-work/dist/x86_64-osx/Cabal-1.22.4.0/build/autogen/cabal_macros.h

d12frosted avatar Oct 03 '15 09:10 d12frosted

Looks perfectly fine to me:

Project:   StackProject (StackEnv {
seDistDir = ".stack-work/dist/x86_64-osx/Cabal-1.22.4.0",
seBinPath = ["/Users/d12frosted/.stack/snapshots/x86_64-osx/lts-3.4/7.10.2/bin", "/Users/d12frosted/.stack/programs/x86_64-osx/ghc-7.10.2/bin","/Users/d12frosted/.local/bin","/usr/texbin","/usr/local/bin","/usr/bin","/bin","/usr/sbin","/sbin","/opt/X11/bin","/Library/TeX/texbin","."], 
seSnapshotPkgDb = "/Users/d12frosted/.stack/snapshots/x86_64-osx/lts-3.4/7.10.2/pkgdb",
seLocalPkgDb = "/Users/d12frosted/project/.stack-work/install/x86_64-osx/lts-3.4/7.10.2/pkgdb"
})

Must be something different.

DanielG avatar Oct 03 '15 09:10 DanielG

Indeed. Well, I'll try to dig into it deeper. I'll let you know about results.

d12frosted avatar Oct 03 '15 09:10 d12frosted

@d12frosted Any news on this issue?

DanielG avatar Jan 03 '16 17:01 DanielG