Haskell-ide-engine: HIE not working with vscode. Stuck on "Typechecking ... "

Created on 4 Apr 2020  Â·  14Comments  Â·  Source: haskell/haskell-ide-engine

steps to reproduce:

  • install hie: git clone https://github.com/haskell/haskell-ide-engine --recurse-submodules
  • install vscode latest (as of 4th April 2020)
  • install vscode haskell language server plugin
  • make a new project with stack stack new resolver=nightly-2020-03-01 new-project
  • open the project the in vscode and create a new file src->Test.hs with the code:
module Test where
sayHello :: String -> IO ()
sayHello x = putStrLn ("Hello" ++ x ++ "!")
  • Hover over the IO and observe the hanged Loading state. At the bottom bar it shows Typechecking Test.hs

image

Most helpful comment

Ok, for clarification, this repository is only for Haskell IDE Engine. The successor project, called Haskell Language Server (HLS), is located here https://github.com/haskell/haskell-language-server/ but is not stable yet.

First things first, you are using stack, seemingly? Assuming this is true, stack uses snapshots for package resolving and installs a GHC automatically based on this snapshot. See https://docs.haskellstack.org/en/stable/README/#quick-start-guide for reference and https://www.stackage.org/ for a mapping from snapshot (lts-*) to GHC version.

So, depending on your resolver entry in stack.yaml, you need to install a different HIE version.
E.g., if you have an entry in your stack.yaml

resolver: lts-14.29

then stack is going to use GHC 8.6.5 to build your project.

You need to install HIE compiled with GHC 8.6.5 to properly work on your project.
To do that you run

$ stack ./install.hs hie-8.6.5 

This will copy the executables hie-wrapper, hie, hie-8.6 and hie-8.6.5 to ~/.local/bin, overriding any existing executables at that location.
Then the plugin should pick-up the correct executable and you should be ready to get hacking on the project.
For your initial post, you are using resolver nightly-2020-03-01, which according to https://www.stackage.org/nightly-2020-03-01 uses GHC 8.8.2.
Therefore, you need to install hie with:

$ stack ./install.hs hie-8.8.2

Then everything ought to work.

To be sure that no old version is picked up, remove all executables hie, hie-wrapper and hie-* from ~/.local/bin

All 14 comments

Thank you for your bug report!
Please paste the output of haskell-ide-engine.
Either execute: hie --debug . in the project root or follow the instructions https://github.com/alanz/vscode-hie-server#investigating-and-reporting-problems

Attached the SS of running this command.

On Sat, Apr 4, 2020 at 4:09 PM fendor notifications@github.com wrote:

Thank you for your bug report!
Please paste the output of haskell-ide-engine.
Either execute: hie --debug . in the project root or follow the
instructions
https://github.com/alanz/vscode-hie-server#investigating-and-reporting-problems

—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/haskell/haskell-ide-engine/issues/1720#issuecomment-609009590,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AATJ45BF6XKIQOXM4ABAVIDRK4E7JANCNFSM4L5QPFQQ
.

@abhishekvaid You are in the Problem tab, that doesnt contain anything. You have to go to the OUTPUT tab and select "Haskell HIE".

This is not a vscode tab, it's the terminal. Can you give me precise
instructions on what exactly to do ?

On Mon, Apr 6, 2020 at 2:24 PM fendor notifications@github.com wrote:

@abhishekvaid https://github.com/abhishekvaid You are in the Problem
tab, that doesnt contain anything. You have to go to the OUTPUT tab and
select "Haskell HIE".

—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/haskell/haskell-ide-engine/issues/1720#issuecomment-609663736,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AATJ45BBIBZU3MFPFI2L74LRLGKFDANCNFSM4L5QPFQQ
.

File is attached. Hope this helps.

On Tue, Apr 7, 2020 at 1:04 AM Abhishek Vaid vaid.abhi@gmail.com wrote:

This is not a vscode tab, it's the terminal. Can you give me precise
instructions on what exactly to do ?

On Mon, Apr 6, 2020 at 2:24 PM fendor notifications@github.com wrote:

@abhishekvaid https://github.com/abhishekvaid You are in the Problem
tab, that doesnt contain anything. You have to go to the OUTPUT tab and
select "Haskell HIE".

—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/haskell/haskell-ide-engine/issues/1720#issuecomment-609663736,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AATJ45BBIBZU3MFPFI2L74LRLGKFDANCNFSM4L5QPFQQ
.

2020-04-07 01:05:39.782995 [ThreadId 4] - run entered for hie-wrapper(hie-wrapper) Version 0.13.0.0, Git revision 11ed2eddfc35c0743181f119010d4d24764ef9a9 (3116 commits) x86_64 ghc-8.6.5
2020-04-07 01:05:39.785557 [ThreadId 4] - Current directory:/Users/abhishekvaid/GoogleDrive/moocs/haskell/haskell_first_principles/first-project
2020-04-07 01:05:39.78604 [ThreadId 4] - Operating system:darwin
2020-04-07 01:05:40.437088 [ThreadId 4] - Cradle directory:/Users/abhishekvaid/GoogleDrive/moocs/haskell/haskell_first_principles/first-project
2020-04-07 01:05:40.438117 [ThreadId 4] - Using stack GHC version
2020-04-07 01:05:40.913164 [ThreadId 4] - Project GHC version:8.6.5
2020-04-07 01:05:40.913564 [ThreadId 4] - hie exe candidates :["hie-8.6.5","hie-8.6","hie"]
2020-04-07 01:05:40.915196 [ThreadId 4] - found hie exe at:/Users/abhishekvaid/.local/bin/hie-8.6.5
2020-04-07 01:05:40.915836 [ThreadId 4] - args:["--lsp"]
2020-04-07 01:05:40.916034 [ThreadId 4] - launching ....

2020-04-07 01:05:41.098848 [ThreadId 4] - Using stack GHC version
2020-04-07 01:05:41.998907 [ThreadId 4] - Run entered for HIE(hie-8.6.5) Version 0.13.0.0, Git revision c1e57f5c11c504badb7a0aaf5897e6433d6243e3 (3114 commits) x86_64 ghc-8.6.5
2020-04-07 01:05:42.00009 [ThreadId 4] - Current directory:/Users/abhishekvaid/GoogleDrive/moocs/haskell/haskell_first_principles/first-project
2020-04-07 01:05:42.000821 [ThreadId 4] - args:["--lsp"]
2020-04-07 01:05:42.033224 [ThreadId 10] -Using hie version: Version 0.13.0.0, Git revision c1e57f5c11c504badb7a0aaf5897e6433d6243e3 (3114 commits) x86_64 ghc-8.6.5
Using stack GHC version
Using hoogle db at: /Users/abhishekvaid/.hoogle/default-haskell-5.0.17.hoo
hie-8.6.5: Could not find $libexecdir/cabal-helper-wrapper

If you are a cabal-helper developer you can set the environment variable
`cabal_helper_libexecdir' to override $libexecdir[1]. The following will
work in the cabal-helper source tree:

$ export cabal_helper_libexecdir=$PWD/dist/build/cabal-helper-wrapper

/Users/abhishekvaid/haskell/haskell-ide-engine/.stack-work/install/x86_64-osx/b82eaa397769e517045414edaf7e8f8c3d1e0c9748e0572d8ecdf43eb9ba5956/8.6.5/libexec/x86_64-osx-ghc-8.6.5/cabal-helper-0.9.0.0/cabal-helper-wrapper
junk/build/cabal-helper-wrapper/cabal-helper-wrapper
/Users/abhishekvaid/haskell/haskell-ide-engine/.stack-work/install/x86_64-osx/b82eaa397769e517045414edaf7e8f8c3d1e0c9748e0572d8ecdf43eb9ba5956/8.6.5/bin/cabal-helper-wrapper

If you don't know what I'm talking about something went wrong with your
installation. Please report this problem here:

https://github.com/DanielG/cabal-helper/issues

Version 0.13.0.0

This version is old, please update to latest 1.2.

Feel free to reopen if another issue arises.

You mean haskell language server or HIE ? Also, I installed language server
from vscode plugins.

On Tue, Apr 7, 2020 at 2:51 PM fendor notifications@github.com wrote:

Version 0.13.0.0

This version is old, please update to latest 1.2.

—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/haskell/haskell-ide-engine/issues/1720#issuecomment-610276749,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AATJ45GHMLIITE5GYPOKD4DRLLWA3ANCNFSM4L5QPFQQ
.

You need to re-install haskell-ide-engine. I dont know how you previously installed it but here are some instructions https://github.com/haskell/haskell-ide-engine#installation

I cloned the repo and ran

stack ./install.hs

and

stack ./install.hs hie

The installation downloaded ~265 mb worth of content and seem to finish.

but when I do 'which hie' I get '.local/bin/hie' which shows:

[first-project]$ ~/.local/bin/hie --version
Version 1.2, Git revision b7fd5fb04b1711d433fc203751bc61624edc8dd0
(3843 commits) x86_64 ghc-8.8.2

but still 0.13.0.0 shows up in Output ?

Vaid, Abhishek

On Tue, Apr 7, 2020 at 6:36 PM fendor notifications@github.com wrote:

You need to re-install haskell-ide-engine. I dont know how you previously
installed it but here are some instructions
https://github.com/haskell/haskell-ide-engine#installation

—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/haskell/haskell-ide-engine/issues/1720#issuecomment-610374977,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AATJ45DK2A4UIXF45JXSPQDRLMQMXANCNFSM4L5QPFQQ
.

You installed hie now for the GHC version 8.8.2 but maybe you are using hie on a project that is not using 8.6.5? In that case, the invocation ought to be stack ./install.hs hie-8.6.5, or something like that.
You need to install hie for each GHC version that you are using individually, due to differences in the AST, ABI changes, core library versions, etc...

This is so so so confusing. Can you please tell me how to install the
entire the entire toolchain from scratch?
I'm new to haskell and this is all really non-intuitive.

A clear set of instruction to run hie with HLS on vscode on stack project
is all I'm looking for

Vaid, Abhishek

On Tue, Apr 7, 2020 at 8:27 PM fendor notifications@github.com wrote:

You installed hie now for the GHC version 8.8.2 but maybe you are using
hie on a project that is not using 8.6.5? In that case, the invocation
ought to be stack ./install.hs hie-8.6.5, or something like that.
You need to install hie for each GHC version that you are using
individually, due to differences in the AST, ABI changes, core library
versions, etc...

—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/haskell/haskell-ide-engine/issues/1720#issuecomment-610436121,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AATJ45HVHQRG4B4FU5K62TDRLM5MRANCNFSM4L5QPFQQ
.

Ok, for clarification, this repository is only for Haskell IDE Engine. The successor project, called Haskell Language Server (HLS), is located here https://github.com/haskell/haskell-language-server/ but is not stable yet.

First things first, you are using stack, seemingly? Assuming this is true, stack uses snapshots for package resolving and installs a GHC automatically based on this snapshot. See https://docs.haskellstack.org/en/stable/README/#quick-start-guide for reference and https://www.stackage.org/ for a mapping from snapshot (lts-*) to GHC version.

So, depending on your resolver entry in stack.yaml, you need to install a different HIE version.
E.g., if you have an entry in your stack.yaml

resolver: lts-14.29

then stack is going to use GHC 8.6.5 to build your project.

You need to install HIE compiled with GHC 8.6.5 to properly work on your project.
To do that you run

$ stack ./install.hs hie-8.6.5 

This will copy the executables hie-wrapper, hie, hie-8.6 and hie-8.6.5 to ~/.local/bin, overriding any existing executables at that location.
Then the plugin should pick-up the correct executable and you should be ready to get hacking on the project.
For your initial post, you are using resolver nightly-2020-03-01, which according to https://www.stackage.org/nightly-2020-03-01 uses GHC 8.8.2.
Therefore, you need to install hie with:

$ stack ./install.hs hie-8.8.2

Then everything ought to work.

To be sure that no old version is picked up, remove all executables hie, hie-wrapper and hie-* from ~/.local/bin

This is exactly what I wanted. Thanks a lot. It's working fine now.

On Tue, Apr 7, 2020 at 8:50 PM fendor notifications@github.com wrote:

Ok, for clarification, this repository is only for Haskell IDE Engine.
The successor project, called Haskell Language Server (HLS), is located
here https://github.com/haskell/haskell-language-server/ but is not
stable yet.

First things first, you are using stack, seemingly? Assuming this is
true, stack uses snapshots for package resolving and installs a GHC
automatically based on this snapshot. See
https://docs.haskellstack.org/en/stable/README/#quick-start-guide for
reference and https://www.stackage.org/ for a mapping from snapshot
(lts-*) to GHC version.

So, depending on your resolver entry in stack.yaml, you need to install a
different HIE version.
E.g., if you have an entry in your stack.yaml

resolver: lts-14.29

then stack is going to use GHC 8.6.5 to build your project.

You need to install HIE compiled with GHC 8.6.5 to properly work on your
project.
To do that you run

$ stack ./install.hs hie-8.6.5

This will copy the executables hie-wrapper, hie, hie-8.6 and hie-8.6.5 to
~/.local/bin, overriding any existing executables at that location.
Then the plugin should pick-up the correct executable and you should be
ready to get hacking on the project.
For your initial post, you are using resolver nightly-2020-03-01, which
according to https://www.stackage.org/nightly-2020-03-01 uses GHC 8.8.2.
Therefore, you need to install hie with:

$ stack ./install.hs hie-8.8.2

Then everything ought to work.

To be sure that no old version is picked up, remove all executables hie,
hie-wrapper and hie-* from ~/.local/bin

—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/haskell/haskell-ide-engine/issues/1720#issuecomment-610449384,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AATJ45BA7BMJZSXOROGL6BLRLNACZANCNFSM4L5QPFQQ
.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

xgrommx picture xgrommx  Â·  4Comments

alanz picture alanz  Â·  3Comments

flip111 picture flip111  Â·  4Comments

alanz picture alanz  Â·  4Comments

raxod502 picture raxod502  Â·  4Comments