Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

HLS Uses Wrong GHC for Stack Builds #1782

Closed
emilypi opened this issue Apr 30, 2021 · 8 comments · Fixed by #1783
Closed

HLS Uses Wrong GHC for Stack Builds #1782

emilypi opened this issue Apr 30, 2021 · 8 comments · Fixed by #1783
Assignees
Labels
component: ghcide type: bug Something isn't right: doesn't work as intended, documentation is missing/outdated, etc..

Comments

@emilypi
Copy link
Member

emilypi commented Apr 30, 2021

Your environment

Output of haskell-language-server --probe-tools or haskell-language-server-wrapper --probe-tools:

haskell-language-server version: 1.1.0.0 (GHC: 8.10.4) (PATH: /Users/emilypi/.ghcup/bin/haskell-language-server-wrapper-1.1.0) (GIT hash: f1c096927186a93d8e3ccd4fe8385cc1b070350b)
Tool versions found on the $PATH
cabal:		3.4.0.0
stack:		2.5.1
ghc:		8.8.4

Which OS do you use:

MacOS Big Sur

Which lsp-client do you use:
Emacs

Describe your project (alternative: link to the project):
All of stack.yaml, cabal.project, *.cabal.

See: https://github.com/kadena-io/pact

Contents of hie.yaml:
NA

Steps to reproduce

Manage a GHC in $PATH that does not match the existing GHC defined by the stack LTS in the stack.yaml.

Expected behaviour

When generating an implicit hie.yaml, if the Stack build is preferred, then HLS should not use $PATH GHC, but rather, defer to the GHC defined for the LTS.

Actual behaviour

See here: $PATH GHC is reported, but the stack build results in an implicit cradle for 8.8.3 (the GHC associated with the Stack lts) but the build is initiated with $PATH GHC, resulting in an out of sync build:

Module "/Users/emilypi/kadena/pact/a" is loaded by Cradle: Cradle {cradleRootDir = "/Users/emilypi/kadena/pact", cradleOptsProg = CradleAction: Stack}
Run entered for haskell-language-server-wrapper(haskell-language-server-wrapper) Version 1.1.0.0, Git revision f1c096927186a93d8e3ccd4fe8385cc1b070350b (dirty) x86_64 ghc-8.10.4
Current directory: /Users/emilypi/kadena/pact
Operating system: darwin
Arguments: []
Cradle directory: /Users/emilypi/kadena/pact
Cradle type: Stack

Tool versions found on the $PATH
cabal:		3.4.0.0
stack:		2.5.1
ghc:		8.8.4


Consulting the cradle to get project GHC version...
Project GHC version: 8.8.3
haskell-language-server exe candidates: ["haskell-language-server-8.8.3","haskell-language-server-8.8","haskell-language-server"]
Launching haskell-language-server exe at:/Users/emilypi/.ghcup/bin/haskell-language-server-8.8.3
haskell-language-server version: 1.1.0.0 (GHC: 8.8.3) (PATH: /Users/emilypi/.ghcup/bin/haskell-language-server-8.8.3~1.1.0) (GIT hash: f1c096927186a93d8e3ccd4fe8385cc1b070350b)
 ghcide setup tester in /Users/emilypi/kadena/pact.
Report bugs at https://github.com/haskell/haskell-language-server/issues

Step 1/4: Finding files to test in /Users/emilypi/kadena/pact
Found 154 files

Step 2/4: Looking for hie.yaml files that control setup
Found 1 cradle
  ()

Step 3/4: Initializing the IDE

Step 4/4: Type checking the files
2021-04-30 15:03:36.660893 [ThreadId 150] INFO hls:	Consulting the cradle for "src/Pact/Repl.hs"
2021-04-30 15:03:36.661953 [ThreadId 150] WARNING hls:	No [cradle](https://github.com/mpickering/hie-bios#hie-bios) found for src/Pact/Repl.hs.
 Proceeding with [implicit cradle](https://hackage.haskell.org/package/implicit-hie).
You should ignore this message, unless you see a 'Multi Cradle: No prefixes matched' error.
Output from setting up the cradle Cradle {cradleRootDir = "/Users/emilypi/kadena/pact", cradleOptsProg = CradleAction: Cabal}
> Build profile: -w ghc-8.8.4 -O0
> In order, the following will be built (use -v for more details):
>  - Boolean-0.2.4 (lib:Boolean) (requires build)
>  - Decimal-0.5.2 (lib) (requires build)
>  - NumInstances-1.4 (lib) (requires build)
>  - Only-0.1 (lib) (requires build)
>  - blaze-builder-0.4.2.1 (lib) (requires build)
... etc

Include debug information

Execute in the root of your project the command haskell-language-server --debug . and paste the logs here:

Debug output:
λ P pact → λ git fix-modref-json → haskell-language-server-wrapper --debug
Module "/Users/emilypi/kadena/pact/a" is loaded by Cradle: Cradle {cradleRootDir = "/Users/emilypi/kadena/pact", cradleOptsProg = CradleAction: Stack}
Run entered for haskell-language-server-wrapper(haskell-language-server-wrapper) Version 1.1.0.0, Git revision f1c096927186a93d8e3ccd4fe8385cc1b070350b (dirty) x86_64 ghc-8.10.4
Current directory: /Users/emilypi/kadena/pact
Operating system: darwin
Arguments: ["--debug"]
Cradle directory: /Users/emilypi/kadena/pact
Cradle type: Stack

Tool versions found on the $PATH
cabal:		3.4.0.0
stack:		2.5.1
ghc:		8.8.4


Consulting the cradle to get project GHC version...
Project GHC version: 8.8.3
haskell-language-server exe candidates: ["haskell-language-server-8.8.3","haskell-language-server-8.8","haskell-language-server"]
Launching haskell-language-server exe at:/Users/emilypi/.ghcup/bin/haskell-language-server-8.8.3
haskell-language-server version: 1.1.0.0 (GHC: 8.8.3) (PATH: /Users/emilypi/.ghcup/bin/haskell-language-server-8.8.3~1.1.0) (GIT hash: f1c096927186a93d8e3ccd4fe8385cc1b070350b)
 ghcide setup tester in /Users/emilypi/kadena/pact.
Report bugs at https://github.com/haskell/haskell-language-server/issues

Step 1/4: Finding files to test in /Users/emilypi/kadena/pact
Found 154 files

Step 2/4: Looking for hie.yaml files that control setup
Found 1 cradle
  ()

Step 3/4: Initializing the IDE

Step 4/4: Type checking the files
2021-04-30 15:07:53.20436 [ThreadId 4] DEBUG hls:	Set files of interest to: [(NormalizedFilePath "/Users/emilypi/kadena/pact/src/Pact/Analyze/Types.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/src-ghc/Pact/Types/Server.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/tests/Blake2Spec.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/tests/TypesSpec.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/src/Pact/Types/SizeOf.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/src/Pact/Native/Keysets.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/src/Pact/Types/Names.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/src/Pact/Types/Parser.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/src/Pact/Native/SPV.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/HLint.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/src-ghc/Pact/PersistPactDb/Regression.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/src/Pact/Native/Decrypt.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/executables/Repl.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/tests/Analyze/Eval.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/src/Pact/Repl/Lib.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/Setup.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/tests/hspec-ghcjs.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/tests/hspec.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/src/Pact/Native/Time.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/src/Pact/Types/Command.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/src-ghc/Pact/GasModel/Utils.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/src/Pact/Types/Hash.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/src/Pact/Types/ExpParser.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/src-ghc/Pact/Server/ApiServer.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/src-ghc/Pact/GasModel/GasModel.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/src/Pact/Analyze/Types/Languages.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/tests/SchemeSpec.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/src/Pact/Types/Version.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/executables/ReplGhcjs.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/tests/AnalyzePropertiesSpec.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/src/Pact/Analyze/Types/Shared.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/src-ghc/Pact/Types/Crypto.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/src/Pact/Analyze/Parse/Invariant.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/tests/GasModelSpec.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/src-ghc/Pact/Server/History/Persistence.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/src-ghc/Pact/ReplTools.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/src/Pact/Types/Exp.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/src/Pact/Types/Scheme.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/src/Pact/Analyze/Eval/Core.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/src/Pact/Types/Gas.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/src/Pact/Analyze/Types/Eval.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/src/Pact/Types/Guard.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/src/Pact/Analyze/LegacySFunArray.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/src/Pact/Native/Internal.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/tests/PersistSpec.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/tests/Analyze/Gen.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/src/Pact/Analyze/Types/Types.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/src/Pact/Analyze.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/src/Pact/Types/API.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/tests/Analyze/TimeGen.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/tests/ParserSpec.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/src/Pact/Analyze/Parse/Prop.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/src/Pact/Persist/Pure.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/src/Pact/Analyze/Types/Capability.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/src/Pact/Analyze/Model/Graph.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/tests/AnalyzeSpec.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/src/Pact/Analyze/Util.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/src/Pact/Types/Purity.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/src/Pact/Analyze/Eval/Prop.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/src-ghc/Pact/GasModel/Types.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/src-ghc/Pact/ApiReq.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/src/Pact/Types/Term.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/src/Crypto/Hash/Blake2Native.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/src/Pact/PersistPactDb.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/src/Pact/Analyze/Eval/Invariant.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/src/Pact/Analyze/Parse/Types.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/executables/Bench.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/executables/GasModel.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/src-ghc/Pact/Main.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/src/Pact/Types/Typecheck.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/src-ghc/Pact/MockDb.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/src/Pact/Gas.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/src-ghc/Pact/Types/ECDSA.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/src/Pact/Runtime/Typecheck.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/src/Pact/Persist/MockPersist.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/src-ghc/Pact/Server/Test.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/src/Pact/Analyze/Eval.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/src/Pact/Types/RPC.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/src/Pact/Runtime/Capabilities.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/src/Pact/Types/Continuation.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/src/Pact/Analyze/Check.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/src/Pact/Types/Logger.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/src/Pact/Native/Db.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/src/Pact/Analyze/Errors.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/src/Pact/Native/Capabilities.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/src/Pact/Types/Util.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/tests/PactTestsSpec.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/src/Pact/Analyze/Patterns.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/src/Pact/Types/Runtime.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/tests/GoldenSpec.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/src-ghc/Pact/Server/PactService.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/src/Pact/Analyze/Types/Model.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/src/Pact/Types/Lang.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/tests/RemoteVerifySpec.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/src/Pact/Analyze/Remote/Types.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/tests/Analyze/Translate.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/src/Pact/Repl.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/src-ghc/Pact/Bench.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/src-ghc/Pact/Types/SQLite.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/src-ghc/Pact/Server/History/Service.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/src/Pact/Types/Persistence.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/src/Pact/Eval.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/src/Pact/Analyze/Alloc.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/src/Pact/Types/Swagger.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/src/Pact/Analyze/Model/Text.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/tests/KeysetSpec.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/src-ghc/Pact/Server/Server.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/src/Pact/Analyze/Parse.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/src/Pact/Typechecker.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/src/Pact/Compile.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/src-ghc/Pact/Interpreter.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/src/Pact/Analyze/Remote/Client.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/src/Pact/Native.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/src/Pact/Analyze/Types/Numerical.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/src/Pact/Types/SPV.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/src/Pact/Types/PactValue.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/src/Pact/Types/ChainMeta.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/src/Pact/Analyze/Eval/Numerical.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/src/Pact/Docgen.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/src/Pact/Types/Type.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/src/Pact/Analyze/Eval/Term.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/src/Pact/Runtime/Utils.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/src/Pact/Types/Capability.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/src/Pact/Types/ChainId.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/src-ghc/Pact/GasModel/GasTests.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/src/Pact/Analyze/Types/ObjUtil.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/src/Pact/Gas/Table.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/tests/PactContinuationSpec.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/src/Pact/Analyze/Model.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/src/Pact/Analyze/Model/Dot.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/tests/HistoryServiceSpec.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/tests/DocgenSpec.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/tests/SignatureSpec.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/src/Pact/Repl/Types.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/src/Pact/Analyze/Feature.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/src/Pact/Types/Codec.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/src-ghc/Pact/Persist/SQLite.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/src/Pact/Types/Pretty.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/src/Pact/Server/API.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/src/Pact/Analyze/PrenexNormalize.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/src/Pact/Types/PactError.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/src/Pact/Persist.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/tests/ClientSpec.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/src/Pact/Native/Ops.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/src/Pact/Analyze/Model/Tags.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/src/Pact/Types/Info.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/src/Pact/Analyze/Translate.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/src/Pact/Types/Orphans.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/src/Pact/Analyze/Remote/Server.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/src-ghc/Pact/Server/History/Types.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/tests/TypecheckSpec.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/src/Pact/Parse.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/src/Pact/Types/Native.hs",OnDisk),(NormalizedFilePath "/Users/emilypi/kadena/pact/src/Pact/Types/Perf.hs",OnDisk)]
2021-04-30 15:07:53.210207 [ThreadId 34] DEBUG hls:	hlint:getIdeas:file:NormalizedFilePath "/Users/emilypi/kadena/pact/tests/RemoteVerifySpec.hs"
2021-04-30 15:07:53.210198 [ThreadId 30] DEBUG hls:	hlint:getIdeas:file:NormalizedFilePath "/Users/emilypi/kadena/pact/src/Pact/Analyze/Parse/Prop.hs"
2021-04-30 15:07:53.21029 [ThreadId 33] DEBUG hls:	hlint:getIdeas:file:NormalizedFilePath "/Users/emilypi/kadena/pact/src/Pact/Analyze/Parse.hs"
2021-04-30 15:07:53.210296 [ThreadId 35] DEBUG hls:	hlint:getIdeas:file:NormalizedFilePath "/Users/emilypi/kadena/pact/src/Pact/Analyze/Remote/Server.hs"
2021-04-30 15:07:53.210302 [ThreadId 25] DEBUG hls:	hlint:getIdeas:file:NormalizedFilePath "/Users/emilypi/kadena/pact/src/Pact/Repl/Lib.hs"
2021-04-30 15:07:53.210316 [ThreadId 31] DEBUG hls:	hlint:getIdeas:file:NormalizedFilePath "/Users/emilypi/kadena/pact/executables/Bench.hs"
2021-04-30 15:07:53.210329 [ThreadId 32] DEBUG hls:	hlint:getIdeas:file:NormalizedFilePath "/Users/emilypi/kadena/pact/src/Pact/Types/Util.hs"
2021-04-30 15:07:53.210362 [ThreadId 34] DEBUG hls:	hlint:getIdeas:file:NormalizedFilePath "/Users/emilypi/kadena/pact/src-ghc/Pact/Server/ApiServer.hs"
2021-04-30 15:07:53.210413 [ThreadId 30] DEBUG hls:	hlint:getIdeas:file:NormalizedFilePath "/Users/emilypi/kadena/pact/src-ghc/Pact/Bench.hs"
2021-04-30 15:07:53.210456 [ThreadId 33] DEBUG hls:	hlint:getIdeas:file:NormalizedFilePath "/Users/emilypi/kadena/pact/tests/ClientSpec.hs"
2021-04-30 15:07:53.210504 [ThreadId 35] DEBUG hls:	hlint:getIdeas:file:NormalizedFilePath "/Users/emilypi/kadena/pact/src/Pact/Docgen.hs"
2021-04-30 15:07:53.210549 [ThreadId 25] DEBUG hls:	hlint:getIdeas:file:NormalizedFilePath "/Users/emilypi/kadena/pact/tests/PactTestsSpec.hs"
2021-04-30 15:07:53.210626 [ThreadId 31] DEBUG hls:	hlint:getIdeas:file:NormalizedFilePath "/Users/emilypi/kadena/pact/src-ghc/Pact/PersistPactDb/Regression.hs"
2021-04-30 15:07:53.21066 [ThreadId 32] DEBUG hls:	hlint:getIdeas:file:NormalizedFilePath "/Users/emilypi/kadena/pact/src/Pact/Native/Capabilities.hs"
2021-04-30 15:07:53.210694 [ThreadId 34] DEBUG hls:	hlint:getIdeas:file:NormalizedFilePath "/Users/emilypi/kadena/pact/src-ghc/Pact/GasModel/GasTests.hs"
2021-04-30 15:07:53.210724 [ThreadId 30] DEBUG hls:	hlint:getIdeas:file:NormalizedFilePath "/Users/emilypi/kadena/pact/tests/AnalyzeSpec.hs"
2021-04-30 15:07:53.210824 [ThreadId 33] DEBUG hls:	hlint:getIdeas:file:NormalizedFilePath "/Users/emilypi/kadena/pact/tests/ParserSpec.hs"
2021-04-30 15:07:53.21085 [ThreadId 25] DEBUG hls:	hlint:getIdeas:file:NormalizedFilePath "/Users/emilypi/kadena/pact/src/Pact/Native/Keysets.hs"
2021-04-30 15:07:53.210863 [ThreadId 35] DEBUG hls:	hlint:getIdeas:file:NormalizedFilePath "/Users/emilypi/kadena/pact/tests/SignatureSpec.hs"
2021-04-30 15:07:53.210849 [ThreadId 31] DEBUG hls:	hlint:getIdeas:file:NormalizedFilePath "/Users/emilypi/kadena/pact/src/Pact/Repl/Types.hs"
2021-04-30 15:07:53.210926 [ThreadId 32] DEBUG hls:	hlint:getIdeas:file:NormalizedFilePath "/Users/emilypi/kadena/pact/tests/TypesSpec.hs"
2021-04-30 15:07:53.210951 [ThreadId 34] DEBUG hls:	hlint:getIdeas:file:NormalizedFilePath "/Users/emilypi/kadena/pact/src/Pact/Analyze/Translate.hs"
2021-04-30 15:07:53.211043 [ThreadId 33] DEBUG hls:	hlint:getIdeas:file:NormalizedFilePath "/Users/emilypi/kadena/pact/src/Pact/Types/Orphans.hs"
2021-04-30 15:07:53.211287 [ThreadId 32] DEBUG hls:	hlint:getIdeas:file:NormalizedFilePath "/Users/emilypi/kadena/pact/src-ghc/Pact/Types/Crypto.hs"
2021-04-30 15:07:53.211439 [ThreadId 25] DEBUG hls:	hlint:getIdeas:file:NormalizedFilePath "/Users/emilypi/kadena/pact/src/Pact/Types/Command.hs"
2021-04-30 15:07:53.211522 [ThreadId 31] DEBUG hls:	hlint:getIdeas:file:NormalizedFilePath "/Users/emilypi/kadena/pact/src-ghc/Pact/ApiReq.hs"
2021-04-30 15:07:53.21155 [ThreadId 32] DEBUG hls:	hlint:getIdeas:file:NormalizedFilePath "/Users/emilypi/kadena/pact/src/Pact/Types/Logger.hs"
2021-04-30 15:07:53.211608 [ThreadId 35] DEBUG hls:	hlint:getIdeas:file:NormalizedFilePath "/Users/emilypi/kadena/pact/src/Crypto/Hash/Blake2Native.hs"
2021-04-30 15:07:53.211959 [ThreadId 34] DEBUG hls:	hlint:getIdeas:file:NormalizedFilePath "/Users/emilypi/kadena/pact/src/Pact/Types/Continuation.hs"
2021-04-30 15:07:53.211984 [ThreadId 32] DEBUG hls:	hlint:getIdeas:file:NormalizedFilePath "/Users/emilypi/kadena/pact/HLint.hs"
2021-04-30 15:07:53.212008 [ThreadId 25] DEBUG hls:	hlint:getIdeas:file:NormalizedFilePath "/Users/emilypi/kadena/pact/src-ghc/Pact/ReplTools.hs"
2021-04-30 15:07:53.212454 [ThreadId 25] DEBUG hls:	hlint:getIdeas:file:NormalizedFilePath "/Users/emilypi/kadena/pact/src/Pact/Gas.hs"
2021-04-30 15:07:53.212516 [ThreadId 35] DEBUG hls:	hlint:getIdeas:file:NormalizedFilePath "/Users/emilypi/kadena/pact/src/Pact/Analyze/LegacySFunArray.hs"
2021-04-30 15:07:53.212853 [ThreadId 35] DEBUG hls:	hlint:getIdeas:file:NormalizedFilePath "/Users/emilypi/kadena/pact/tests/Analyze/Eval.hs"
2021-04-30 15:07:53.213147 [ThreadId 30] DEBUG hls:	hlint:getIdeas:file:NormalizedFilePath "/Users/emilypi/kadena/pact/src-ghc/Pact/Server/Server.hs"
2021-04-30 15:07:53.213434 [ThreadId 34] DEBUG hls:	hlint:getIdeas:file:NormalizedFilePath "/Users/emilypi/kadena/pact/src/Pact/Analyze/Types/ObjUtil.hs"
2021-04-30 15:07:53.213655 [ThreadId 34] DEBUG hls:	hlint:getIdeas:file:NormalizedFilePath "/Users/emilypi/kadena/pact/src/Pact/Analyze/Eval.hs"
2021-04-30 15:07:53.213682 [ThreadId 30] DEBUG hls:	hlint:getIdeas:file:NormalizedFilePath "/Users/emilypi/kadena/pact/src-ghc/Pact/Persist/SQLite.hs"
2021-04-30 15:07:53.213873 [ThreadId 34] DEBUG hls:	hlint:getIdeas:file:NormalizedFilePath "/Users/emilypi/kadena/pact/executables/GasModel.hs"
2021-04-30 15:07:53.214041 [ThreadId 32] DEBUG hls:	hlint:getIdeas:file:NormalizedFilePath "/Users/emilypi/kadena/pact/src/Pact/Analyze/Check.hs"
2021-04-30 15:07:53.214178 [ThreadId 25] DEBUG hls:	hlint:getIdeas:file:NormalizedFilePath "/Users/emilypi/kadena/pact/executables/Repl.hs"
2021-04-30 15:07:53.21429 [ThreadId 32] DEBUG hls:	hlint:getIdeas:file:NormalizedFilePath "/Users/emilypi/kadena/pact/src/Pact/Types/Type.hs"
2021-04-30 15:07:53.21442 [ThreadId 25] DEBUG hls:	hlint:getIdeas:file:NormalizedFilePath "/Users/emilypi/kadena/pact/src/Pact/Types/Persistence.hs"
2021-04-30 15:07:53.214541 [ThreadId 32] DEBUG hls:	hlint:getIdeas:file:NormalizedFilePath "/Users/emilypi/kadena/pact/src-ghc/Pact/Server/History/Service.hs"
2021-04-30 15:07:53.214547 [ThreadId 30] DEBUG hls:	hlint:getIdeas:file:NormalizedFilePath "/Users/emilypi/kadena/pact/src/Pact/Analyze/Remote/Types.hs"
2021-04-30 15:07:53.214775 [ThreadId 25] DEBUG hls:	hlint:getIdeas:file:NormalizedFilePath "/Users/emilypi/kadena/pact/src/Pact/Types/RPC.hs"
2021-04-30 15:07:53.214933 [ThreadId 30] DEBUG hls:	hlint:getIdeas:file:NormalizedFilePath "/Users/emilypi/kadena/pact/src/Pact/Types/Lang.hs"
2021-04-30 15:07:53.215133 [ThreadId 25] DEBUG hls:	hlint:getIdeas:file:NormalizedFilePath "/Users/emilypi/kadena/pact/src/Pact/Analyze/Feature.hs"
2021-04-30 15:07:53.215201 [ThreadId 35] DEBUG hls:	hlint:getIdeas:file:NormalizedFilePath "/Users/emilypi/kadena/pact/src-ghc/Pact/Types/SQLite.hs"
2021-04-30 15:07:53.215396 [ThreadId 34] DEBUG hls:	hlint:getIdeas:file:NormalizedFilePath "/Users/emilypi/kadena/pact/src/Pact/Types/API.hs"
2021-04-30 15:07:53.215614 [ThreadId 32] DEBUG hls:	hlint:getIdeas:file:NormalizedFilePath "/Users/emilypi/kadena/pact/src/Pact/Analyze/Errors.hs"
2021-04-30 15:07:53.215644 [ThreadId 34] DEBUG hls:	hlint:getIdeas:file:NormalizedFilePath "/Users/emilypi/kadena/pact/src/Pact/Types/PactError.hs"
2021-04-30 15:07:53.215892 [ThreadId 33] DEBUG hls:	hlint:getIdeas:file:NormalizedFilePath "/Users/emilypi/kadena/pact/src/Pact/Types/ChainId.hs"
2021-04-30 15:07:53.216189 [ThreadId 33] DEBUG hls:	hlint:getIdeas:file:NormalizedFilePath "/Users/emilypi/kadena/pact/src/Pact/Types/Parser.hs"
2021-04-30 15:07:53.216377 [ThreadId 32] DEBUG hls:	hlint:getIdeas:file:NormalizedFilePath "/Users/emilypi/kadena/pact/tests/Blake2Spec.hs"
2021-04-30 15:07:53.216607 [ThreadId 32] DEBUG hls:	hlint:getIdeas:file:NormalizedFilePath "/Users/emilypi/kadena/pact/src-ghc/Pact/Server/PactService.hs"
2021-04-30 15:07:53.216999 [ThreadId 35] DEBUG hls:	hlint:getIdeas:file:NormalizedFilePath "/Users/emilypi/kadena/pact/tests/DocgenSpec.hs"
2021-04-30 15:07:53.217048 [ThreadId 25] DEBUG hls:	hlint:getIdeas:file:NormalizedFilePath "/Users/emilypi/kadena/pact/src/Pact/Types/Runtime.hs"
2021-04-30 15:07:53.217514 [ThreadId 34] DEBUG hls:	hlint:getIdeas:file:NormalizedFilePath "/Users/emilypi/kadena/pact/src/Pact/Native/Ops.hs"
2021-04-30 15:07:53.217644 [ThreadId 30] DEBUG hls:	hlint:getIdeas:file:NormalizedFilePath "/Users/emilypi/kadena/pact/src-ghc/Pact/Types/Server.hs"
2021-04-30 15:07:53.217664 [ThreadId 35] DEBUG hls:	hlint:getIdeas:file:NormalizedFilePath "/Users/emilypi/kadena/pact/src/Pact/Server/API.hs"
2021-04-30 15:07:53.217676 [ThreadId 25] DEBUG hls:	hlint:getIdeas:file:NormalizedFilePath "/Users/emilypi/kadena/pact/src/Pact/Analyze/Types/Languages.hs"
2021-04-30 15:07:53.217864 [ThreadId 33] DEBUG hls:	hlint:getIdeas:file:NormalizedFilePath "/Users/emilypi/kadena/pact/src/Pact/Analyze/Alloc.hs"
2021-04-30 15:07:53.218092 [ThreadId 33] DEBUG hls:	hlint:getIdeas:file:NormalizedFilePath "/Users/emilypi/kadena/pact/src/Pact/Analyze/Model/Tags.hs"
2021-04-30 15:07:53.2181 [ThreadId 34] DEBUG hls:	hlint:getIdeas:file:NormalizedFilePath "/Users/emilypi/kadena/pact/src-ghc/Pact/Main.hs"
2021-04-30 15:07:53.218334 [ThreadId 34] DEBUG hls:	hlint:getIdeas:file:NormalizedFilePath "/Users/emilypi/kadena/pact/src/Pact/Analyze/Remote/Client.hs"
2021-04-30 15:07:53.218941 [ThreadId 33] DEBUG hls:	hlint:getIdeas:file:NormalizedFilePath "/Users/emilypi/kadena/pact/src/Pact/Repl.hs"
2021-04-30 15:07:53.218951 [ThreadId 30] DEBUG hls:	hlint:getIdeas:file:NormalizedFilePath "/Users/emilypi/kadena/pact/src/Pact/Types/ExpParser.hs"
2021-04-30 15:07:53.220101 [ThreadId 113] INFO hls:	Consulting the cradle for "tests/hspec.hs"
2021-04-30 15:07:53.220165 [ThreadId 113] WARNING hls:	No [cradle](https://github.com/mpickering/hie-bios#hie-bios) found for tests/hspec.hs.
 Proceeding with [implicit cradle](https://hackage.haskell.org/package/implicit-hie).
You should ignore this message, unless you see a 'Multi Cradle: No prefixes matched' error.
Output from setting up the cradle Cradle {cradleRootDir = "/Users/emilypi/kadena/pact", cradleOptsProg = CradleAction: Cabal}
> Build profile: -w ghc-8.8.4 -O0
> In order, the following will be built (use -v for more details):
>  - Boolean-0.2.4 (lib:Boolean) (requires build)
>  - Decimal-0.5.2 (lib) (requires build)
@Ailrun
Copy link
Member

Ailrun commented Apr 30, 2021

Thank you for the report, Emily!

This is related to implicit cradle, as it uses Cabal action as you can see in the last few lines of the logs in "Actual behaviour" section.

Could you try to add explicit hie.yaml to your project?

@Ailrun Ailrun added component: implicit-hie type: bug Something isn't right: doesn't work as intended, documentation is missing/outdated, etc.. labels Apr 30, 2021
@emilypi
Copy link
Member Author

emilypi commented Apr 30, 2021

@Ailrun Explicitly adding a hie.yaml does fix it. But there seems to be an impedance mismatch between what implicit Cradle is produced vs what hls version is chosen. It sees $PATH GHC as 8.8.4, and initiates a build with 8.8.4, but chooses HLS-8.8.3 using what looks like the stack yaml.

@fendor
Copy link
Collaborator

fendor commented Apr 30, 2021

I don't think this is implicit-hie's fault. Afaict the wrapper doesn't use implicit-hie: https://github.com/haskell/haskell-language-server/blob/master/exe/Wrapper.hs#L144

which is defined here: https://github.com/haskell/haskell-language-server/blob/master/ghcide/session-loader/Development/IDE/Session.hs#L120

Why isn't it using implicit-hie? (Assuming I didn't misread the code)

It is using implicit-hie, I missed the line at https://github.com/haskell/haskell-language-server/blob/master/exe/Wrapper.hs#L149

@Ailrun
Copy link
Member

Ailrun commented Apr 30, 2021

Oh, that's the root of the mismatch. @pepeiborra, could you take a look?

@fendor
Copy link
Collaborator

fendor commented Apr 30, 2021

Maybe the commit 700b316 introduced this change?

EDIT: It didn't, commit was completely fine.

@pepeiborra
Copy link
Collaborator

Maybe it did, maybe it didn't. Feel free to bisect it and send a patch. I'm not inclined to look at this any time soon since I don't use stack.

@fendor
Copy link
Collaborator

fendor commented Apr 30, 2021

To be more precise: I think this line 700b316#diff-d7140bbfca1b7aaafd8c82d1d6aa21a3f941eb27ba8f08e4d9fb13766b21b418R82 should use implicit-hie as a fallback, e.g.: https://github.com/haskell/haskell-language-server/blob/master/ghcide/session-loader/Development/IDE/Session.hs#L131

Or, just the invocation location should use it as a fallback

EDIT: nice, forget everything I wrote, I can't read, invocation uses the fallback correctly, see https://github.com/haskell/haskell-language-server/blob/master/exe/Wrapper.hs#L149

@fendor
Copy link
Collaborator

fendor commented Apr 30, 2021

Could it be? Shouldn't this line https://github.com/haskell/haskell-language-server/blob/master/exe/Wrapper.hs#L149 just be loadImplicitHieCradle $ addTrailingPathSeparator dir?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
component: ghcide type: bug Something isn't right: doesn't work as intended, documentation is missing/outdated, etc..
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants