haskell / haskell-ide-engine

The engine for haskell ide-integration. Not an IDE
BSD 3-Clause "New" or "Revised" License
2.38k stars 213 forks source link

HIE not working with vscode. Stuck on "Typechecking ... " #1720

Closed abhishekvaid closed 4 years ago

abhishekvaid commented 4 years ago

steps to reproduce:

image
fendor commented 4 years ago

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

abhishekvaid commented 4 years ago

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 .

fendor commented 4 years ago

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

abhishekvaid commented 4 years ago

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 .

abhishekvaid commented 4 years ago

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 $libexecdir1. 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
fendor commented 4 years ago

Version 0.13.0.0

This version is old, please update to latest 1.2.

fendor commented 4 years ago

Feel free to reopen if another issue arises.

abhishekvaid commented 4 years ago

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 .

fendor commented 4 years ago

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

abhishekvaid commented 4 years ago

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 .

fendor commented 4 years ago

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...

abhishekvaid commented 4 years ago

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 .

fendor commented 4 years ago

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

abhishekvaid commented 4 years ago

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 .