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

Crash Loop in VSCode Extension using Template Haskell #1297

Closed
FinleyMcIlwaine opened this issue Feb 3, 2021 · 30 comments
Closed

Crash Loop in VSCode Extension using Template Haskell #1297

FinleyMcIlwaine opened this issue Feb 3, 2021 · 30 comments
Labels
os: macos type: bug Something isn't right: doesn't work as intended, documentation is missing/outdated, etc..

Comments

@FinleyMcIlwaine
Copy link
Collaborator

FinleyMcIlwaine commented Feb 3, 2021

I've recently started encountering something that looks like #800 using the VSCode extension. However, I was told in that thread that this issue does not seem related and that I should make another ticket.

I've attempted to create a minimum reproduction of this issue at the project linked here: https://github.com/FinleyMcIlwaine/hls-issue

That project uses some third party libraries to compile Haskell code to an alternative target using GHC plugins. The compilation function accepts a typed template haskell expression. If you comment out the addCompiled function, the project loads successfully. If you uncomment it, the server connection closes.

Similarly to what is mentioned in #800, running the HLS in debug mode only results in a segmentation fault if I use large TH splices. For the example project here, it doesn't segfault because it's splicing a simple add function. The HLS plugin in VSCode still crash-loops with the project, however. I've included all of my logs and such below and am happy to provide any more necessary info.

Thank you all for all of the work you do!

Your environment

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

haskell-language-server version: 0.9.0.0 (GHC: 8.10.2) (PATH: /Users/finley/Library/Application Support/Code/User/globalStorage/haskell.haskell/haskell-language-server-0.9.0-darwin-8.10.2) (GIT hash: 46d2a3dc7ef49ba57b2706022af1801149ab3f2b)
Tool versions found on the $PATH
cabal:          3.2.0.0
stack:          2.5.1
ghc:            8.10.2

Which lsp-client do you use: VSCode

Describe your project (alternative: link to the project): https://github.com/FinleyMcIlwaine/hls-issue is a minimum reproduction of this issue.

Contents of hie.yaml:

cradle:
  cabal:
    - path: "./src"
      component: "lib:hls-issue"

Steps to reproduce

Open the project linked above with the Haskell extension enabled in VSCode.

Expected behaviour

I would expect the project to load correctly and get all of the nice IDE features of HLS.

Actual behaviour

As soon as the plugin resolves the dependencies and starts loading in the source files, it crashes saying the connection to the server got closed and then attempts to reinitialize the project.

Include debug information

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

Debug output:
haskell-language-server version: 0.9.0.0 (GHC: 8.10.2) (PATH: /Users/finley/Library/Application Support/Code/User/globalStorage/haskell.haskell/haskell-language-server-0.9.0-darwin-8.10.2) (GIT hash: 46d2a3dc7ef49ba57b2706022af1801149ab3f2b)
(haskell-language-server)Ghcide setup tester in /Users/finley/dev/research/plutus/hls-issue.
Report bugs at https://github.com/haskell/haskell-language-server/issues

Tool versions found on the $PATH
cabal:          3.2.0.0
stack:          2.5.1
ghc:            8.10.2


Step 1/4: Finding files to test in /Users/finley/dev/research/plutus/hls-issue
Found 1 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
[INFO] Consulting the cradle for "src/Repro.hs"
Output from setting up the cradle Cradle {cradleRootDir = "/Users/finley/dev/research/plutus/hls-issue", cradleOptsProg = CradleAction: Cabal}
> Warning: The package list for 'hackage.haskell.org' is 16 days old.
> Run 'cabal update' to get the latest list of available packages.
> Resolving dependencies...
> Build profile: -w ghc-8.10.2 -O1
> In order, the following will be built (use -v for more details):
>  - cardano-crypto-1.1.0 (lib) (configuration changed)
>  - iots-export-0.1.0.0 (lib) (configuration changed)
>  - prettyprinter-configurable-0.1.0.0 (lib:prettyprinter-configurable) (configuration changed)
>  - plutus-core-0.1.0.0 (lib) (configuration changed)
>  - plutus-tx-0.1.0.0 (lib) (configuration changed)
>  - plutus-tx-plugin-0.1.0.0 (lib) (configuration changed)
>  - plutus-ledger-api-0.1.0.0 (lib) (configuration changed)
>  - plutus-ledger-0.1.0.0 (lib) (configuration changed)
>  - plutus-contract-0.1.0.0 (lib) (configuration changed)
>  - hls-issue-0.1.0.0 (lib) (configuration changed)
> Configuring library for iots-export-0.1.0.0..
> Configuring library for cardano-crypto-1.1.0..
> Preprocessing library for cardano-crypto-1.1.0..
> Preprocessing library for iots-export-0.1.0.0..
> Building library for iots-export-0.1.0.0..
> Building library for cardano-crypto-1.1.0..
> Configuring prettyprinter-configurable-0.1.0.0...
> Preprocessing library for prettyprinter-configurable-0.1.0.0..
> Building library for prettyprinter-configurable-0.1.0.0..
> Configuring library for plutus-core-0.1.0.0..
> Preprocessing library for plutus-core-0.1.0.0..
> Building library for plutus-core-0.1.0.0..
> Configuring library for plutus-tx-0.1.0.0..
> Preprocessing library for plutus-tx-0.1.0.0..
> Building library for plutus-tx-0.1.0.0..
> Configuring library for plutus-tx-plugin-0.1.0.0..
> Configuring library for plutus-ledger-api-0.1.0.0..
> Preprocessing library for plutus-tx-plugin-0.1.0.0..
> Preprocessing library for plutus-ledger-api-0.1.0.0..
> Building library for plutus-tx-plugin-0.1.0.0..
> Building library for plutus-ledger-api-0.1.0.0..
> [10 of 16] Compiling Language.PlutusTx.Compiler.Names ( src/Language/PlutusTx/Compiler/Names.hs, /Users/finley/dev/research/plutus/hls-issue/dist-newstyle/build/x86_64-osx/ghc-8.10.2/plutus-tx-plugin-0.1.0.0/build/Language/PlutusTx/Compiler/Names.o, /Users/finley/dev/research/plutus/hls-issue/dist-newstyle/build/x86_64-osx/ghc-8.10.2/plutus-tx-plugin-0.1.0.0/build/Language/PlutusTx/Compiler/Names.dyn_o ) [missing old dependency]
> 
> <no location info>: warning: [-Wunused-packages]
>     The following packages were specified via -package or -package-id flags,
>     but were not needed for compilation:
>       - hedgehog-1.0.4
> Configuring library for plutus-ledger-0.1.0.0..
> Preprocessing library for plutus-ledger-0.1.0.0..
> Building library for plutus-ledger-0.1.0.0..
> Configuring library for plutus-contract-0.1.0.0..
> Preprocessing library for plutus-contract-0.1.0.0..
> Building library for plutus-contract-0.1.0.0..
> Configuring library for hls-issue-0.1.0.0..
> Preprocessing library for hls-issue-0.1.0.0..
[INFO] Using interface files cache dir: ghcide
[INFO] Making new HscEnv[hls-issue-0.1.0.0-inplace]

Completed (1 file worked, 0 files failed)
[INFO] finish: User TypeCheck (took 1.76s)

Paste the logs from the lsp-client, e.g. for VS Code

Server logs
haskell-language-server version: 0.9.0.0 (GHC: 8.10.2) (PATH: /Users/finley/Library/Application Support/Code/User/globalStorage/haskell.haskell/haskell-language-server-0.9.0-darwin-8.10.2) (GIT hash: 46d2a3dc7ef49ba57b2706022af1801149ab3f2b)
Starting (haskell-language-server)LSP server...
  with arguments: LspArguments {argLSP = True, argsCwd = Nothing, argFiles = [], argsShakeProfiling = Nothing, argsTesting = False, argsExamplePlugin = False, argsDebugOn = True, argsLogFile = Nothing, argsThreads = 0, argsProjectGhcVersion = False}
  with plugins: [PluginId "brittany",PluginId "class",PluginId "eval",PluginId "floskell",PluginId "fourmolu",PluginId "ghcide-code-actions",PluginId "ghcide-completions",PluginId "ghcide-hover-and-symbols",PluginId "ghcide-type-lenses",PluginId "haddockComments",PluginId "hlint",PluginId "importLens",PluginId "moduleName",PluginId "ormolu",PluginId "pragmas",PluginId "retrie",PluginId "splice",PluginId "stylish-haskell",PluginId "tactic"]
  in directory: /Users/finley/dev/research/plutus/hls-issue
If you are seeing this in a terminal, you probably should have run ghcide WITHOUT the --lsp option!
 2021-02-02 16:48:39.600675 [ThreadId 5] - 




haskell-lsp:Starting up server ...
2021-02-02 16:48:39.602153 [ThreadId 5] - ---> {"jsonrpc":"2.0","id":0,"method":"initialize","params":{"processId":4641,"clientInfo":{"name":"vscode","version":"1.52.1"},"rootPath":"/Users/finley/dev/research/plutus/hls-issue","rootUri":"file:///Users/finley/dev/research/plutus/hls-issue","capabilities":{"workspace":{"applyEdit":true,"workspaceEdit":{"documentChanges":true,"resourceOperations":["create","rename","delete"],"failureHandling":"textOnlyTransactional"},"didChangeConfiguration":{"dynamicRegistration":true},"didChangeWatchedFiles":{"dynamicRegistration":true},"symbol":{"dynamicRegistration":true,"symbolKind":{"valueSet":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26]}},"executeCommand":{"dynamicRegistration":true},"configuration":true,"workspaceFolders":true},"textDocument":{"publishDiagnostics":{"relatedInformation":true,"versionSupport":false,"tagSupport":{"valueSet":[1,2]}},"synchronization":{"dynamicRegistration":true,"willSave":true,"willSaveWaitUntil":true,"didSave":true},"completion":{"dynamicRegistration":true,"contextSupport":true,"completionItem":{"snippetSupport":true,"commitCharactersSupport":true,"documentationFormat":["markdown","plaintext"],"deprecatedSupport":true,"preselectSupport":true,"tagSupport":{"valueSet":[1]}},"completionItemKind":{"valueSet":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25]}},"hover":{"dynamicRegistration":true,"contentFormat":["markdown","plaintext"]},"signatureHelp":{"dynamicRegistration":true,"signatureInformation":{"documentationFormat":["markdown","plaintext"],"parameterInformation":{"labelOffsetSupport":true}},"contextSupport":true},"definition":{"dynamicRegistration":true,"linkSupport":true},"references":{"dynamicRegistration":true},"documentHighlight":{"dynamicRegistration":true},"documentSymbol":{"dynamicRegistration":true,"symbolKind":{"valueSet":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26]},"hierarchicalDocumentSymbolSupport":true},"codeAction":{"dynamicRegistration":true,"isPreferredSupport":true,"codeActionLiteralSupport":{"codeActionKind":{"valueSet":["","quickfix","refactor","refactor.extract","refactor.inline","refactor.rewrite","source","source.organizeImports"]}}},"codeLens":{"dynamicRegistration":true},"formatting":{"dynamicRegistration":true},"rangeFormatting":{"dynamicRegistration":true},"onTypeFormatting":{"dynamicRegistration":true},"rename":{"dynamicRegistration":true,"prepareSupport":true},"documentLink":{"dynamicRegistration":true,"tooltipSupport":true},"typeDefinition":{"dynamicRegistration":true,"linkSupport":true},"implementation":{"dynamicRegistration":true,"linkSupport":true},"colorProvider":{"dynamicRegistration":true},"foldingRange":{"dynamicRegistration":true,"rangeLimit":5000,"lineFoldingOnly":true},"declaration":{"dynamicRegistration":true,"linkSupport":true},"selectionRange":{"dynamicRegistration":true},"callHierarchy":{"dynamicRegistration":true},"semanticTokens":{"dynamicRegistration":true,"tokenTypes":["comment","keyword","number","regexp","operator","namespace","type","struct","class","interface","enum","typeParameter","function","member","macro","variable","parameter","property","label"],"tokenModifiers":["declaration","documentation","static","abstract","deprecated","async","readonly"]}},"window":{"workDoneProgress":true}},"trace":"off","workspaceFolders":[{"uri":"file:///Users/finley/dev/research/plutus/hls-issue","name":"hls-issue"}]}}
2021-02-02 16:48:39.615226 [ThreadId 5] - haskell-lsp:initializeRequestHandler: setting current dir to project root:/Users/finley/dev/research/plutus/hls-issue
Started LSP server in 0.02s
2021-02-02 16:48:39.990472 [ThreadId 30] - Registering ide configuration: IdeConfiguration {workspaceFolders = fromList [NormalizedUri (-929888042191146657) "file:///Users/finley/dev/research/plutus/hls-issue"], clientSettings = hashed Nothing}
2021-02-02 16:48:39.990849 [ThreadId 7] - <--2--{"result":{"capabilities":{"typeDefinitionProvider":true,"foldingRangeProvider":false,"textDocumentSync":{"openClose":true,"change":2,"save":{}},"workspace":{"workspaceFolders":{"supported":true,"changeNotifications":true}},"implementationProvider":true,"documentRangeFormattingProvider":true,"documentHighlightProvider":true,"executeCommandProvider":{"commands":["12753:class:addMinimalMethodPlaceholders","12753:eval:evalCommand","12753:ghcide-type-lenses:typesignature.add","12753:hlint:applyOne","12753:hlint:applyAll","12753:importLens:ImportLensCommand","12753:moduleName:edit","12753:retrie:retrieCommand","12753:splice:expandTHSpliceInplace","12753:tactic:tacticsAutoCommand","12753:tactic:tacticsIntrosCommand","12753:tactic:tacticsDestructCommand","12753:tactic:tacticsHomomorphismCommand","12753:tactic:tacticsDestructLambdaCaseCommand","12753:tactic:tacticsHomomorphismLambdaCaseCommand"]},"renameProvider":false,"colorProvider":false,"definitionProvider":true,"hoverProvider":true,"codeActionProvider":true,"completionProvider":{"triggerCharacters":["."],"resolveProvider":false},"codeLensProvider":{},"documentSymbolProvider":true,"documentFormattingProvider":true}},"jsonrpc":"2.0","id":0}
2021-02-02 16:48:39.991366 [ThreadId 5] - ---> {"jsonrpc":"2.0","method":"initialized","params":{}}
2021-02-02 16:48:39.991489 [ThreadId 5] - ---> {"jsonrpc":"2.0","method":"workspace/didChangeConfiguration","params":{"settings":{"haskell":{"hlintOn":true,"maxNumberOfProblems":100,"diagnosticsOnChange":true,"liquidOn":false,"completionSnippetsOn":true,"formatOnImportOn":true,"formattingProvider":"ormolu","trace":{"server":"messages"},"logFile":"","languageServerVariant":"haskell-language-server","serverExecutablePath":"","updateBehavior":"keep-up-to-date","indentationRules":{"enabled":true}}}}}
2021-02-02 16:48:39.991619 [ThreadId 7] - <--2--{"jsonrpc":"2.0","params":{"registrations":[{"registerOptions":{"watchers":[{"kind":5,"globPattern":"**/*.hs"},{"kind":5,"globPattern":"**/*.hs-boot"},{"kind":5,"globPattern":"**/*.lhs"},{"kind":5,"globPattern":"**/*.lhs-boot"}]},"method":"workspace/didChangeWatchedFiles","id":"globalFileWatches"}]},"method":"client/registerCapability","id":0}
2021-02-02 16:48:39.991743 [ThreadId 5] - ---> {"jsonrpc":"2.0","method":"textDocument/didOpen","params":{"textDocument":{"uri":"file:///Users/finley/dev/research/plutus/hls-issue/src/Repro.hs","languageId":"haskell","version":3,"text":"{-# LANGUAGE DataKinds           #-}\n{-# LANGUAGE NoImplicitPrelude   #-}\n{-# LANGUAGE ScopedTypeVariables #-}\n{-# LANGUAGE TemplateHaskell     #-}\n\nmodule Repro where\n\nimport Language.PlutusTx.TH (compile)\nimport Language.PlutusTx.Code (CompiledCode)\nimport Language.PlutusTx.Prelude\n\none :: CompiledCode Integer\none = $$(compile [|| (1 :: Integer) ||])\n"}}}
2021-02-02 16:48:39.991746 [ThreadId 30] - Configuration changed: Object (fromList [("haskell",Object (fromList [("logFile",String ""),("updateBehavior",String "keep-up-to-date"),("hlintOn",Bool True),("formatOnImportOn",Bool True),("indentationRules",Object (fromList [("enabled",Bool True)])),("liquidOn",Bool False),("languageServerVariant",String "haskell-language-server"),("serverExecutablePath",String ""),("diagnosticsOnChange",Bool True),("completionSnippetsOn",Bool True),("maxNumberOfProblems",Number 100.0),("formattingProvider",String "ormolu"),("trace",Object (fromList [("server",String "messages")]))]))])
2021-02-02 16:48:39.992078 [ThreadId 30] - Restarting build session (aborting the previous one took 0.00s)
2021-02-02 16:48:39.992062 [ThreadId 28] - Finishing build session(exception: AsyncCancelled)
2021-02-02 16:48:39.99254 [ThreadId 30] - Set files of interest to: [(NormalizedFilePath "/Users/finley/dev/research/plutus/hls-issue/src/Repro.hs",Modified)]
2021-02-02 16:48:39.992903 [ThreadId 48] - Finishing build session(exception: AsyncCancelled)
2021-02-02 16:48:39.993169 [ThreadId 30] - Restarting build session (aborting the previous one took 0.00s)
2021-02-02 16:48:39.993707 [ThreadId 5] - ---> {"jsonrpc":"2.0","id":0,"result":null}
2021-02-02 16:48:39.99424 [ThreadId 30] - Opened text document: file:///Users/finley/dev/research/plutus/hls-issue/src/Repro.hs
2021-02-02 16:48:39.994421 [ThreadId 5] - haskell-lsp:Got reply message:"{\"jsonrpc\":\"2.0\",\"id\":0,\"result\":null}"
2021-02-02 16:48:39.995555 [ThreadId 106] - hlint:getIdeas:file:NormalizedFilePath "/Users/finley/dev/research/plutus/hls-issue/src/Repro.hs"
2021-02-02 16:48:39.99639 [ThreadId 113] - Consulting the cradle for "src/Repro.hs"
2021-02-02 16:48:39.997059 [ThreadId 5] - ---> {"jsonrpc":"2.0","id":1,"method":"textDocument/documentSymbol","params":{"textDocument":{"uri":"file:///Users/finley/dev/research/plutus/hls-issue/src/Repro.hs"}}}
Output from setting up the cradle Cradle {cradleRootDir = "/Users/finley/dev/research/plutus/hls-issue", cradleOptsProg = CradleAction: Cabal}
2021-02-02 16:48:39.99767 [ThreadId 7] - <--2--{"jsonrpc":"2.0","params":{"token":0},"method":"window/workDoneProgress/create","id":1}
2021-02-02 16:48:39.997833 [ThreadId 7] - <--2--{"jsonrpc":"2.0","params":{"value":{"kind":"begin","cancellable":false,"title":"Setting up hls-issue (for src/Repro.hs)"},"token":0},"method":"$/progress"}
2021-02-02 16:48:39.998138 [ThreadId 5] - ---> {"jsonrpc":"2.0","id":1,"result":null}
2021-02-02 16:48:39.99824 [ThreadId 5] - haskell-lsp:Got reply message:"{\"jsonrpc\":\"2.0\",\"id\":1,\"result\":null}"
2021-02-02 16:48:40.099795 [ThreadId 7] - <--2--{"jsonrpc":"2.0","params":{"token":"26"},"method":"window/workDoneProgress/create","id":2}
2021-02-02 16:48:40.099892 [ThreadId 7] - <--2--{"jsonrpc":"2.0","params":{"value":{"kind":"begin","title":"Processing"},"token":"26"},"method":"$/progress"}
2021-02-02 16:48:40.100181 [ThreadId 5] - ---> {"jsonrpc":"2.0","id":2,"result":null}
2021-02-02 16:48:40.100241 [ThreadId 5] - haskell-lsp:Got reply message:"{\"jsonrpc\":\"2.0\",\"id\":2,\"result\":null}"
2021-02-02 16:48:40.205031 [ThreadId 7] - <--2--{"jsonrpc":"2.0","params":{"value":{"kind":"report","message":"1/2"},"token":"26"},"method":"$/progress"}
> Warning: The package list for 'hackage.haskell.org' is 16 days old.
> Run 'cabal update' to get the latest list of available packages.
> Resolving dependencies...
2021-02-02 16:48:42.496927 [ThreadId 5] - ---> {"jsonrpc":"2.0","id":2,"method":"textDocument/codeLens","params":{"textDocument":{"uri":"file:///Users/finley/dev/research/plutus/hls-issue/src/Repro.hs"}}}
2021-02-02 16:48:42.497089 [ThreadId 132] - Plugin.makeCodeLens (ideLogger)
2021-02-02 16:48:42.497256 [ThreadId 133] - src/Ide/Plugin/Eval/CodeLens.hs:239:15 "fp" "/Users/finley/dev/research/plutus/hls-issue/src/Repro.hs"
2021-02-02 16:48:42.502239 [ThreadId 5] - ---> {"jsonrpc":"2.0","id":3,"method":"textDocument/codeLens","params":{"textDocument":{"uri":"file:///Users/finley/dev/research/plutus/hls-issue/src/Repro.hs"}}}
2021-02-02 16:48:42.502348 [ThreadId 152] - Plugin.makeCodeLens (ideLogger)
2021-02-02 16:48:42.502466 [ThreadId 153] - src/Ide/Plugin/Eval/CodeLens.hs:239:15 "fp" "/Users/finley/dev/research/plutus/hls-issue/src/Repro.hs"
> Build profile: -w ghc-8.10.2 -O1
> In order, the following will be built (use -v for more details):
>  - cardano-crypto-1.1.0 (lib) (configuration changed)
>  - iots-export-0.1.0.0 (lib) (configuration changed)
>  - prettyprinter-configurable-0.1.0.0 (lib:prettyprinter-configurable) (configuration changed)
>  - plutus-core-0.1.0.0 (lib) (configuration changed)
>  - plutus-tx-0.1.0.0 (lib) (configuration changed)
>  - plutus-tx-plugin-0.1.0.0 (lib) (configuration changed)
>  - plutus-ledger-api-0.1.0.0 (lib) (configuration changed)
>  - plutus-ledger-0.1.0.0 (lib) (configuration changed)
>  - plutus-contract-0.1.0.0 (lib) (configuration changed)
>  - hls-issue-0.1.0.0 (lib) (configuration changed)
> Configuring library for iots-export-0.1.0.0..
> Configuring library for cardano-crypto-1.1.0..
> Preprocessing library for iots-export-0.1.0.0..
> Preprocessing library for cardano-crypto-1.1.0..
> Building library for iots-export-0.1.0.0..
> Building library for cardano-crypto-1.1.0..
> Configuring prettyprinter-configurable-0.1.0.0...
> Preprocessing library for prettyprinter-configurable-0.1.0.0..
> Building library for prettyprinter-configurable-0.1.0.0..
> Configuring library for plutus-core-0.1.0.0..
> Preprocessing library for plutus-core-0.1.0.0..
> Building library for plutus-core-0.1.0.0..
> Configuring library for plutus-tx-0.1.0.0..
> Preprocessing library for plutus-tx-0.1.0.0..
> Building library for plutus-tx-0.1.0.0..
> Configuring library for plutus-tx-plugin-0.1.0.0..
> Configuring library for plutus-ledger-api-0.1.0.0..
> Preprocessing library for plutus-tx-plugin-0.1.0.0..
> Preprocessing library for plutus-ledger-api-0.1.0.0..
> Building library for plutus-tx-plugin-0.1.0.0..
> Building library for plutus-ledger-api-0.1.0.0..
> [10 of 16] Compiling Language.PlutusTx.Compiler.Names ( src/Language/PlutusTx/Compiler/Names.hs, /Users/finley/dev/research/plutus/hls-issue/dist-newstyle/build/x86_64-osx/ghc-8.10.2/plutus-tx-plugin-0.1.0.0/build/Language/PlutusTx/Compiler/Names.o, /Users/finley/dev/research/plutus/hls-issue/dist-newstyle/build/x86_64-osx/ghc-8.10.2/plutus-tx-plugin-0.1.0.0/build/Language/PlutusTx/Compiler/Names.dyn_o ) [missing old dependency]
> 
> <no location info>: warning: [-Wunused-packages]
>     The following packages were specified via -package or -package-id flags,
>     but were not needed for compilation:
>       - hedgehog-1.0.4
> Configuring library for plutus-ledger-0.1.0.0..
> Preprocessing library for plutus-ledger-0.1.0.0..
> Building library for plutus-ledger-0.1.0.0..
> Configuring library for plutus-contract-0.1.0.0..
> Preprocessing library for plutus-contract-0.1.0.0..
> Building library for plutus-contract-0.1.0.0..
2021-02-02 16:49:09.390523 [ThreadId 5] - ---> {"jsonrpc":"2.0","method":"$/cancelRequest","params":{"id":1}}
2021-02-02 16:49:09.390764 [ThreadId 118] - Outline was cancelled
2021-02-02 16:49:09.390846 [ThreadId 115] - Cancelled request IdInt 1
2021-02-02 16:49:09.390981 [ThreadId 7] - <--2--{"error":{"code":-32800,"message":""},"jsonrpc":"2.0","id":1}
2021-02-02 16:49:09.448182 [ThreadId 5] - ---> {"jsonrpc":"2.0","method":"$/cancelRequest","params":{"id":2}}
2021-02-02 16:49:09.448358 [ThreadId 133] - getSession was cancelled
2021-02-02 16:49:09.44837 [ThreadId 135] - codeLens was cancelled
2021-02-02 16:49:09.44845 [ThreadId 137] -  was cancelled
2021-02-02 16:49:09.448444 [ThreadId 139] - ModuleName.ghcSession was cancelled
2021-02-02 16:49:09.448555 [ThreadId 130] - Cancelled request IdInt 2
2021-02-02 16:49:09.448648 [ThreadId 7] - <--2--{"error":{"code":-32800,"message":""},"jsonrpc":"2.0","id":2}
> Configuring library for hls-issue-0.1.0.0..
> Preprocessing library for hls-issue-0.1.0.0..
2021-02-02 16:49:15.750749 [ThreadId 5] - ---> {"jsonrpc":"2.0","id":4,"method":"textDocument/codeAction","params":{"textDocument":{"uri":"file:///Users/finley/dev/research/plutus/hls-issue/src/Repro.hs"},"range":{"start":{"line":0,"character":0},"end":{"line":0,"character":0}},"context":{"diagnostics":[]}}}
2021-02-02 16:49:15.752325 [ThreadId 5] - ---> {"jsonrpc":"2.0","id":5,"method":"textDocument/documentSymbol","params":{"textDocument":{"uri":"file:///Users/finley/dev/research/plutus/hls-issue/src/Repro.hs"}}}
2021-02-02 16:49:15.985362 [ThreadId 5] - ---> {"jsonrpc":"2.0","method":"$/cancelRequest","params":{"id":4}}
2021-02-02 16:49:15.985618 [ThreadId 183] - CodeAction was cancelled
2021-02-02 16:49:15.985648 [ThreadId 185] - HaddockComments.GetAnnotatedParsedSource was cancelled
2021-02-02 16:49:15.985704 [ThreadId 191] - addPragma was cancelled
2021-02-02 16:49:15.985721 [ThreadId 189] - importLens was cancelled
2021-02-02 16:49:15.985732 [ThreadId 193] - retrie was cancelled
2021-02-02 16:49:15.985744 [ThreadId 195] - splice.codeAction.GitHieAst was cancelled
2021-02-02 16:49:15.985751 [ThreadId 197] - tactic was cancelled
2021-02-02 16:49:15.985855 [ThreadId 178] - Cancelled request IdInt 4
2021-02-02 16:49:15.985977 [ThreadId 7] - <--2--{"error":{"code":-32800,"message":""},"jsonrpc":"2.0","id":4}
2021-02-02 16:49:17.557709 [ThreadId 7] - <--2--{"jsonrpc":"2.0","params":{"value":{"kind":"end"},"token":0},"method":"$/progress"}
2021-02-02 16:49:17.55764 [ThreadId 113] - Session loading result: Right (ComponentOptions {componentOptions = ["-fbuilding-cabal-package","-O0","-outputdir","/Users/finley/dev/research/plutus/hls-issue/dist-newstyle/build/x86_64-osx/ghc-8.10.2/hls-issue-0.1.0.0/build","-odir","/Users/finley/dev/research/plutus/hls-issue/dist-newstyle/build/x86_64-osx/ghc-8.10.2/hls-issue-0.1.0.0/build","-hidir","/Users/finley/dev/research/plutus/hls-issue/dist-newstyle/build/x86_64-osx/ghc-8.10.2/hls-issue-0.1.0.0/build","-stubdir","/Users/finley/dev/research/plutus/hls-issue/dist-newstyle/build/x86_64-osx/ghc-8.10.2/hls-issue-0.1.0.0/build","-i","-i/Users/finley/dev/research/plutus/hls-issue/dist-newstyle/build/x86_64-osx/ghc-8.10.2/hls-issue-0.1.0.0/build","-isrc","-i/Users/finley/dev/research/plutus/hls-issue/dist-newstyle/build/x86_64-osx/ghc-8.10.2/hls-issue-0.1.0.0/build/autogen","-i/Users/finley/dev/research/plutus/hls-issue/dist-newstyle/build/x86_64-osx/ghc-8.10.2/hls-issue-0.1.0.0/build/global-autogen","-I/Users/finley/dev/research/plutus/hls-issue/dist-newstyle/build/x86_64-osx/ghc-8.10.2/hls-issue-0.1.0.0/build/autogen","-I/Users/finley/dev/research/plutus/hls-issue/dist-newstyle/build/x86_64-osx/ghc-8.10.2/hls-issue-0.1.0.0/build/global-autogen","-I/Users/finley/dev/research/plutus/hls-issue/dist-newstyle/build/x86_64-osx/ghc-8.10.2/hls-issue-0.1.0.0/build","-optP-include","-optP/Users/finley/dev/research/plutus/hls-issue/dist-newstyle/build/x86_64-osx/ghc-8.10.2/hls-issue-0.1.0.0/build/autogen/cabal_macros.h","-this-unit-id","hls-issue-0.1.0.0-inplace","-hide-all-packages","-Wmissing-home-modules","-no-user-package-db","-package-db","/Users/finley/.cabal/store/ghc-8.10.2/package.db","-package-db","/Users/finley/dev/research/plutus/hls-issue/dist-newstyle/packagedb/ghc-8.10.2","-package-db","/Users/finley/dev/research/plutus/hls-issue/dist-newstyle/build/x86_64-osx/ghc-8.10.2/hls-issue-0.1.0.0/package.conf.inplace","-package-id","base-4.14.1.0","-package-id","iots-export-0.1.0.0-inplace","-package-id","plutus-contract-0.1.0.0-inplace","-package-id","plutus-core-0.1.0.0-inplace","-package-id","plutus-ledger-0.1.0.0-inplace","-package-id","plutus-tx-0.1.0.0-inplace","-package-id","plutus-tx-plugin-0.1.0.0-inplace","-package-id","template-haskell-2.16.0.0","-XHaskell2010","-XExplicitForAll","-XScopedTypeVariables","-XDeriveGeneric","-XStandaloneDeriving","-XDeriveLift","-XGeneralizedNewtypeDeriving","-XDeriveFunctor","-XDeriveFoldable","-XDeriveTraversable","-XMultiParamTypeClasses","Repro","-Wall","-Wnoncanonical-monad-instances","-Wincomplete-uni-patterns","-Wincomplete-record-updates","-Wredundant-constraints","-Widentities","-fobject-code","-fno-ignore-interface-pragmas","-fno-omit-interface-pragmas","-hide-all-packages","-haddock"], componentRoot = "/Users/finley/dev/research/plutus/hls-issue", componentDependencies = ["hls-issue.cabal","cabal.project","cabal.project.local"]},"/Users/finley/.ghcup/ghc/8.10.2/lib/ghc-8.10.2")
2021-02-02 16:49:17.648182 [ThreadId 113] - Using interface files cache dir: ghcide
2021-02-02 16:49:17.648253 [ThreadId 113] - Making new HscEnv[hls-issue-0.1.0.0-inplace]
2021-02-02 16:49:17.663577 [ThreadId 113] - New Component Cache HscEnvEq: (([],Just HscEnvEq 68),fromList [("/Users/finley/dev/research/plutus/hls-issue/hie.yaml",Just 2021-02-02 23:41:37.768496455 UTC),("cabal.project",Just 2021-02-02 23:37:05.96601544 UTC),("cabal.project.local",Nothing),("hls-issue.cabal",Just 2021-02-02 23:40:47.781773693 UTC)])
2021-02-02 16:49:17.666033 [ThreadId 113] - Known files updated: fromList [(TargetModule Repro,["/Users/finley/dev/research/plutus/hls-issue/src/Repro.hs"]),(TargetFile NormalizedFilePath "/Users/finley/dev/research/plutus/hls-issue/src/Repro.hs",["/Users/finley/dev/research/plutus/hls-issue/src/Repro.hs"])]
2021-02-02 16:49:17.666439 [ThreadId 68] - Finishing build session(exception: AsyncCancelled)
2021-02-02 16:49:17.666583 [ThreadId 113] - Restarting build session (aborting the previous one took 0.00s)
2021-02-02 16:49:17.668265 [ThreadId 293] - hlint:getIdeas:file:NormalizedFilePath "/Users/finley/dev/research/plutus/hls-issue/src/Repro.hs"
2021-02-02 16:49:17.669359 [ThreadId 321] - finish: ModuleName.ghcSession (took 0.00s)
2021-02-02 16:49:17.669395 [ThreadId 322] - finish: getSession (took 0.00s)
2021-02-02 16:49:17.669937 [ThreadId 153] - src/Ide/Plugin/Eval/CodeLens.hs:239:15 "preprocessor" "0.00s"
2021-02-02 16:49:17.669997 [ThreadId 153] - src/Ide/Plugin/Eval/CodeLens.hs:239:15 "Tests" "0 tests in 0 sections 0 setups 0 lenses."
2021-02-02 16:49:17.670104 [ThreadId 153] - src/Ide/Plugin/Eval/CodeLens.hs:239:15 "tests" "0.00s"
2021-02-02 16:49:17.670147 [ThreadId 153] - src/Ide/Plugin/Eval/CodeLens.hs:239:15 "codeLens" "35.17s"
2021-02-02 16:49:17.670873 [ThreadId 343] - finish: ModuleName.GetParsedModule (took 0.00s)
2021-02-02 16:49:17.670878 [ThreadId 340] - finish: Outline (took 0.00s)
2021-02-02 16:49:17.671152 [ThreadId 7] - <--2--{"result":[{"selectionRange":{"start":{"line":5,"character":7},"end":{"line":5,"character":12}},"kind":1,"children":[{"selectionRange":{"start":{"line":7,"character":0},"end":{"line":9,"character":32}},"kind":2,"children":[{"selectionRange":{"start":{"line":7,"character":0},"end":{"line":7,"character":37}},"kind":2,"name":"import Language.PlutusTx.TH","range":{"start":{"line":7,"character":0},"end":{"line":7,"character":37}}},{"selectionRange":{"start":{"line":8,"character":0},"end":{"line":8,"character":44}},"kind":2,"name":"import Language.PlutusTx.Code","range":{"start":{"line":8,"character":0},"end":{"line":8,"character":44}}},{"selectionRange":{"start":{"line":9,"character":0},"end":{"line":9,"character":32}},"kind":2,"name":"import Language.PlutusTx.Prelude","range":{"start":{"line":9,"character":0},"end":{"line":9,"character":32}}}],"name":"imports","range":{"start":{"line":7,"character":0},"end":{"line":9,"character":32}}},{"selectionRange":{"start":{"line":12,"character":0},"end":{"line":12,"character":40}},"kind":12,"name":"one","range":{"start":{"line":12,"character":0},"end":{"line":12,"character":40}}}],"name":"Repro","range":{"start":{"line":0,"character":0},"end":{"line":9223372036854775807,"character":0}}}],"jsonrpc":"2.0","id":5}
2021-02-02 16:49:17.672633 [ThreadId 7] - <--2--{"jsonrpc":"2.0","params":{"value":{"kind":"report","message":"4/5"},"token":"26"},"method":"$/progress"}
2021-02-02 16:49:18.234494 [ThreadId 5] - ---> {"jsonrpc":"2.0","id":6,"method":"textDocument/codeLens","params":{"textDocument":{"uri":"file:///Users/finley/dev/research/plutus/hls-issue/src/Repro.hs"}}}
2021-02-02 16:49:18.234693 [ThreadId 375] - Plugin.makeCodeLens (ideLogger)
2021-02-02 16:49:18.23484 [ThreadId 376] - src/Ide/Plugin/Eval/CodeLens.hs:239:15 "fp" "/Users/finley/dev/research/plutus/hls-issue/src/Repro.hs"
2021-02-02 16:49:18.235095 [ThreadId 386] - finish: ModuleName.ghcSession (took 0.00s)
2021-02-02 16:49:18.235116 [ThreadId 390] - finish: getSession (took 0.00s)
2021-02-02 16:49:18.235284 [ThreadId 5] - ---> {"jsonrpc":"2.0","id":7,"method":"textDocument/codeLens","params":{"textDocument":{"uri":"file:///Users/finley/dev/research/plutus/hls-issue/src/Repro.hs"}}}
2021-02-02 16:49:18.235379 [ThreadId 394] - Plugin.makeCodeLens (ideLogger)
2021-02-02 16:49:18.235491 [ThreadId 395] - src/Ide/Plugin/Eval/CodeLens.hs:239:15 "fp" "/Users/finley/dev/research/plutus/hls-issue/src/Repro.hs"
2021-02-02 16:49:18.235701 [ThreadId 376] - src/Ide/Plugin/Eval/CodeLens.hs:239:15 "preprocessor" "0.00s"
2021-02-02 16:49:18.23576 [ThreadId 409] - finish: ModuleName.GetParsedModule (took 0.00s)
2021-02-02 16:49:18.235795 [ThreadId 405] - finish: ModuleName.ghcSession (took 0.00s)
2021-02-02 16:49:18.235789 [ThreadId 376] - src/Ide/Plugin/Eval/CodeLens.hs:239:15 "Tests" "0 tests in 0 sections 0 setups 0 lenses."
2021-02-02 16:49:18.235863 [ThreadId 411] - finish: getSession (took 0.00s)
2021-02-02 16:49:18.235917 [ThreadId 376] - src/Ide/Plugin/Eval/CodeLens.hs:239:15 "tests" "0.00s"
2021-02-02 16:49:18.235993 [ThreadId 376] - src/Ide/Plugin/Eval/CodeLens.hs:239:15 "codeLens" "0.00s"
2021-02-02 16:49:18.236329 [ThreadId 395] - src/Ide/Plugin/Eval/CodeLens.hs:239:15 "preprocessor" "0.00s"
2021-02-02 16:49:18.236382 [ThreadId 395] - src/Ide/Plugin/Eval/CodeLens.hs:239:15 "Tests" "0 tests in 0 sections 0 setups 0 lenses."
2021-02-02 16:49:18.236459 [ThreadId 395] - src/Ide/Plugin/Eval/CodeLens.hs:239:15 "tests" "0.00s"
2021-02-02 16:49:18.236502 [ThreadId 395] - src/Ide/Plugin/Eval/CodeLens.hs:239:15 "codeLens" "0.00s"
2021-02-02 16:49:18.236467 [ThreadId 413] - finish: ModuleName.GetParsedModule (took 0.00s)
2021-02-02 16:49:18.930704 [ThreadId 422] - finish: codeLens (took 0.70s)
2021-02-02 16:49:18.930746 [ThreadId 421] - finish: codeLens (took 0.70s)
2021-02-02 16:49:18.930679 [ThreadId 416] - finish: codeLens (took 1.26s)
2021-02-02 16:49:18.930871 [ThreadId 428] - finish:  (took 0.70s)
2021-02-02 16:49:18.93088 [ThreadId 427] - finish:  (took 0.70s)
2021-02-02 16:49:18.930896 [ThreadId 426] - finish:  (took 1.26s)
2021-02-02 16:49:18.931374 [ThreadId 7] - <--2--{"result":[{"command":{"command":"12753:importLens:ImportLensCommand","arguments":[{"changes":{"file:///Users/finley/dev/research/plutus/hls-issue/src/Repro.hs":[{"range":{"start":{"line":9,"character":0},"end":{"line":9,"character":32}},"newText":"import Language.PlutusTx.Prelude ( Integer )"}]}}],"title":"import Language.PlutusTx.Prelude ( Integer )"},"range":{"start":{"line":9,"character":0},"end":{"line":9,"character":32}}}],"jsonrpc":"2.0","id":3}
2021-02-02 16:49:18.932131 [ThreadId 7] - <--2--{"result":[{"command":{"command":"12753:importLens:ImportLensCommand","arguments":[{"changes":{"file:///Users/finley/dev/research/plutus/hls-issue/src/Repro.hs":[{"range":{"start":{"line":9,"character":0},"end":{"line":9,"character":32}},"newText":"import Language.PlutusTx.Prelude ( Integer )"}]}}],"title":"import Language.PlutusTx.Prelude ( Integer )"},"range":{"start":{"line":9,"character":0},"end":{"line":9,"character":32}}}],"jsonrpc":"2.0","id":7}
2021-02-02 16:49:18.932398 [ThreadId 7] - <--2--{"result":[{"command":{"command":"12753:importLens:ImportLensCommand","arguments":[{"changes":{"file:///Users/finley/dev/research/plutus/hls-issue/src/Repro.hs":[{"range":{"start":{"line":9,"character":0},"end":{"line":9,"character":32}},"newText":"import Language.PlutusTx.Prelude ( Integer )"}]}}],"title":"import Language.PlutusTx.Prelude ( Integer )"},"range":{"start":{"line":9,"character":0},"end":{"line":9,"character":32}}}],"jsonrpc":"2.0","id":6}
[Info  - 4:49:20 PM] Connection to server got closed. Server will restart.
.
.
.
.
Repeated five times
@Ailrun Ailrun added type: bug Something isn't right: doesn't work as intended, documentation is missing/outdated, etc.. status: needs repro labels Feb 3, 2021
@mpickering
Copy link
Contributor

@FinleyMcIlwaine What do you mean exactly by a "large TH splice"? Are you saying this only reproduces when loading the project into VSCode but not when running on the command line?

@mpickering
Copy link
Contributor

Could you also try on a commit before 0403dbf

@Ailrun
Copy link
Member

Ailrun commented Feb 3, 2021

I tried your repro, and I cannot cabal v2-build on it.

@FinleyMcIlwaine
Copy link
Collaborator Author

@FinleyMcIlwaine What do you mean exactly by a "large TH splice"? Are you saying this only reproduces when loading the project into VSCode but not when running on the command line?

Apologies for being unclear. I mean when quoting larger, more complex functions, I have had the haskell-language-server --debug command segmentation fault on me. Specifically, I just had it do it with this project, logs pasted below.

Logs from running `haskell-language-server --debug` on that project
haskell-language-server version: 0.9.0.0 (GHC: 8.10.2) (PATH: /Users/finley/Library/Application Support/Code/User/globalStorage/haskell.haskell/haskell-language-server-0.9.0-darwin-8.10.2) (GIT hash: 46d2a3dc7ef49ba57b2706022af1801149ab3f2b)
(haskell-language-server)Ghcide setup tester in /Users/finley/dev/research/plutus/sandbox.
Report bugs at https://github.com/haskell/haskell-language-server/issues

Tool versions found on the $PATH
cabal:          3.2.0.0
stack:          2.5.1
ghc:            8.10.2


Step 1/4: Finding files to test in /Users/finley/dev/research/plutus/sandbox
Found 4 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
[INFO] Consulting the cradle for "src/PlutusCore/Examples.hs"
Output from setting up the cradle Cradle {cradleRootDir = "/Users/finley/dev/research/plutus/sandbox", cradleOptsProg = CradleAction: Cabal}
> Warning: The package list for 'hackage.haskell.org' is 16 days old.
> Run 'cabal update' to get the latest list of available packages.
> Resolving dependencies...
> Build profile: -w ghc-8.10.2 -O1
> In order, the following will be built (use -v for more details):
>  - cardano-crypto-1.1.0 (lib) (configuration changed)
>  - iots-export-0.1.0.0 (lib) (configuration changed)
>  - prettyprinter-configurable-0.1.0.0 (lib:prettyprinter-configurable) (configuration changed)
>  - plutus-core-0.1.0.0 (lib) (configuration changed)
>  - plutus-tx-0.1.0.0 (lib) (configuration changed)
>  - plutus-tx-plugin-0.1.0.0 (lib) (configuration changed)
>  - plutus-ledger-api-0.1.0.0 (lib) (configuration changed)
>  - plutus-ledger-0.1.0.0 (lib) (configuration changed)
>  - plutus-contract-0.1.0.0 (lib) (configuration changed)
>  - plutus-sandbox-0.1.0.0 (lib) (configuration changed)
> Configuring library for cardano-crypto-1.1.0..
> Configuring library for iots-export-0.1.0.0..
> Preprocessing library for iots-export-0.1.0.0..
> Preprocessing library for cardano-crypto-1.1.0..
> Building library for iots-export-0.1.0.0..
> Building library for cardano-crypto-1.1.0..
> Configuring prettyprinter-configurable-0.1.0.0...
> Preprocessing library for prettyprinter-configurable-0.1.0.0..
> Building library for prettyprinter-configurable-0.1.0.0..
> Configuring library for plutus-core-0.1.0.0..
> Preprocessing library for plutus-core-0.1.0.0..
> Building library for plutus-core-0.1.0.0..
> Configuring library for plutus-tx-0.1.0.0..
> Preprocessing library for plutus-tx-0.1.0.0..
> Building library for plutus-tx-0.1.0.0..
> Configuring library for plutus-ledger-api-0.1.0.0..
> Configuring library for plutus-tx-plugin-0.1.0.0..
> Preprocessing library for plutus-tx-plugin-0.1.0.0..
> Preprocessing library for plutus-ledger-api-0.1.0.0..
> Building library for plutus-tx-plugin-0.1.0.0..
> Building library for plutus-ledger-api-0.1.0.0..
> [10 of 16] Compiling Language.PlutusTx.Compiler.Names ( src/Language/PlutusTx/Compiler/Names.hs, /Users/finley/dev/research/plutus/sandbox/dist-newstyle/build/x86_64-osx/ghc-8.10.2/plutus-tx-plugin-0.1.0.0/build/Language/PlutusTx/Compiler/Names.o, /Users/finley/dev/research/plutus/sandbox/dist-newstyle/build/x86_64-osx/ghc-8.10.2/plutus-tx-plugin-0.1.0.0/build/Language/PlutusTx/Compiler/Names.dyn_o ) [missing old dependency]
> 
> <no location info>: warning: [-Wunused-packages]
>     The following packages were specified via -package or -package-id flags,
>     but were not needed for compilation:
>       - hedgehog-1.0.4
> Configuring library for plutus-ledger-0.1.0.0..
> Preprocessing library for plutus-ledger-0.1.0.0..
> Building library for plutus-ledger-0.1.0.0..
> Configuring library for plutus-contract-0.1.0.0..
> Preprocessing library for plutus-contract-0.1.0.0..
> Building library for plutus-contract-0.1.0.0..
> Configuring library for plutus-sandbox-0.1.0.0..
> Preprocessing library for plutus-sandbox-0.1.0.0..
[INFO] Using interface files cache dir: ghcide
[INFO] Making new HscEnv[plutus-sandbox-0.1.0.0-inplace]
[INFO] Consulting the cradle for "app/Main.hs"
Output from setting up the cradle Cradle {cradleRootDir = "/Users/finley/dev/research/plutus/sandbox", cradleOptsProg = CradleAction: Cabal}
> Warning: The package list for 'hackage.haskell.org' is 16 days old.
> Run 'cabal update' to get the latest list of available packages.
> Resolving dependencies...
> Build profile: -w ghc-8.10.2 -O1
> In order, the following will be built (use -v for more details):
>  - cardano-crypto-1.1.0 (lib) (configuration changed)
>  - iots-export-0.1.0.0 (lib) (configuration changed)
>  - prettyprinter-configurable-0.1.0.0 (lib:prettyprinter-configurable) (configuration changed)
>  - plutus-core-0.1.0.0 (lib) (configuration changed)
>  - plutus-tx-0.1.0.0 (lib) (configuration changed)
>  - plutus-tx-plugin-0.1.0.0 (lib) (configuration changed)
>  - plutus-ledger-api-0.1.0.0 (lib) (configuration changed)
>  - plutus-ledger-0.1.0.0 (lib) (configuration changed)
>  - plutus-contract-0.1.0.0 (lib) (configuration changed)
>  - plutus-sandbox-0.1.0.0 (lib) (configuration changed)
>  - plutus-sandbox-0.1.0.0 (exe:plutus-sandbox-exe) (configuration changed)
> Configuring library for iots-export-0.1.0.0..
> Configuring library for cardano-crypto-1.1.0..
> Preprocessing library for iots-export-0.1.0.0..
> Preprocessing library for cardano-crypto-1.1.0..
> Building library for iots-export-0.1.0.0..
> Building library for cardano-crypto-1.1.0..
> Configuring prettyprinter-configurable-0.1.0.0...
> Preprocessing library for prettyprinter-configurable-0.1.0.0..
> Building library for prettyprinter-configurable-0.1.0.0..
> Configuring library for plutus-core-0.1.0.0..
> Preprocessing library for plutus-core-0.1.0.0..
> Building library for plutus-core-0.1.0.0..
> Configuring library for plutus-tx-0.1.0.0..
> Preprocessing library for plutus-tx-0.1.0.0..
> Building library for plutus-tx-0.1.0.0..
> Configuring library for plutus-tx-plugin-0.1.0.0..
> Configuring library for plutus-ledger-api-0.1.0.0..
> Preprocessing library for plutus-tx-plugin-0.1.0.0..
> Preprocessing library for plutus-ledger-api-0.1.0.0..
> Building library for plutus-tx-plugin-0.1.0.0..
> Building library for plutus-ledger-api-0.1.0.0..
> [10 of 16] Compiling Language.PlutusTx.Compiler.Names ( src/Language/PlutusTx/Compiler/Names.hs, /Users/finley/dev/research/plutus/sandbox/dist-newstyle/build/x86_64-osx/ghc-8.10.2/plutus-tx-plugin-0.1.0.0/build/Language/PlutusTx/Compiler/Names.o, /Users/finley/dev/research/plutus/sandbox/dist-newstyle/build/x86_64-osx/ghc-8.10.2/plutus-tx-plugin-0.1.0.0/build/Language/PlutusTx/Compiler/Names.dyn_o ) [missing old dependency]
> 
> <no location info>: warning: [-Wunused-packages]
>     The following packages were specified via -package or -package-id flags,
>     but were not needed for compilation:
>       - hedgehog-1.0.4
> Configuring library for plutus-ledger-0.1.0.0..
> Preprocessing library for plutus-ledger-0.1.0.0..
> Building library for plutus-ledger-0.1.0.0..
> Configuring library for plutus-contract-0.1.0.0..
> Preprocessing library for plutus-contract-0.1.0.0..
> Building library for plutus-contract-0.1.0.0..
> Configuring library for plutus-sandbox-0.1.0.0..
> Preprocessing library for plutus-sandbox-0.1.0.0..
> Building library for plutus-sandbox-0.1.0.0..
> [1 of 2] Compiling Contracts.UseCases.Vesting ( src/Contracts/UseCases/Vesting.hs, /Users/finley/dev/research/plutus/sandbox/dist-newstyle/build/x86_64-osx/ghc-8.10.2/plutus-sandbox-0.1.0.0/build/Contracts/UseCases/Vesting.o, /Users/finley/dev/research/plutus/sandbox/dist-newstyle/build/x86_64-osx/ghc-8.10.2/plutus-sandbox-0.1.0.0/build/Contracts/UseCases/Vesting.dyn_o )
> 
> src/Contracts/UseCases/Vesting.hs:20:1: warning: [-Wunused-imports]
>     The import of ‘Control.Lens’ is redundant
>       except perhaps to import instances from ‘Control.Lens’
>     To import instances alone, use: import Control.Lens()
>    |
> 20 | import           Control.Lens
>    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 
> src/Contracts/UseCases/Vesting.hs:21:1: warning: [-Wunused-imports]
>     The import of ‘Control.Monad’ is redundant
>       except perhaps to import instances from ‘Control.Monad’
>     To import instances alone, use: import Control.Monad()
>    |
> 21 | import           Control.Monad                     (void, when)
>    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 
> src/Contracts/UseCases/Vesting.hs:22:1: warning: [-Wunused-imports]
>     The import of ‘Data.Aeson’ is redundant
>       except perhaps to import instances from ‘Data.Aeson’
>     To import instances alone, use: import Data.Aeson()
>    |
> 22 | import           Data.Aeson                        (FromJSON, ToJSON)
>    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 
> src/Contracts/UseCases/Vesting.hs:23:1: warning: [-Wunused-imports]
>     The qualified import of ‘Data.Map’ is redundant
>       except perhaps to import instances from ‘Data.Map’
>     To import instances alone, use: import Data.Map()
>    |
> 23 | import qualified Data.Map                          as Map
>    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 
> src/Contracts/UseCases/Vesting.hs:24:1: warning: [-Wunused-imports]
>     The import of ‘Prelude’ is redundant
>       except perhaps to import instances from ‘Prelude’
>     To import instances alone, use: import Prelude()
>    |
> 24 | import           Prelude                           (Semigroup (..))
>    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 
> src/Contracts/UseCases/Vesting.hs:28:1: warning: [-Wunused-imports]
>     The qualified import of ‘Language.Plutus.Contract.Typed.Tx’ is redundant
>       except perhaps to import instances from ‘Language.Plutus.Contract.Typed.Tx’
>     To import instances alone, use: import Language.Plutus.Contract.Typed.Tx()
>    |
> 28 | import qualified Language.Plutus.Contract.Typed.Tx as Typed
>    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 
> src/Contracts/UseCases/Vesting.hs:32:1: warning: [-Wunused-imports]
>     The import of ‘Ledger.Constraints’ is redundant
>       except perhaps to import instances from ‘Ledger.Constraints’
>     To import instances alone, use: import Ledger.Constraints()
>    |
> 32 | import           Ledger.Constraints                (TxConstraints, mustBeSignedBy, mustPayToTheScript, mustValidateIn)
>    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 
> src/Contracts/UseCases/Vesting.hs:37:1: warning: [-Wunused-imports]
>     The qualified import of ‘Ledger.Tx’ is redundant
>       except perhaps to import instances from ‘Ledger.Tx’
>     To import instances alone, use: import Ledger.Tx()
>    |
> 37 | import qualified Ledger.Tx                         as Tx
>    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> [2 of 2] Compiling PlutusCore.Examples ( src/PlutusCore/Examples.hs, /Users/finley/dev/research/plutus/sandbox/dist-newstyle/build/x86_64-osx/ghc-8.10.2/plutus-sandbox-0.1.0.0/build/PlutusCore/Examples.o, /Users/finley/dev/research/plutus/sandbox/dist-newstyle/build/x86_64-osx/ghc-8.10.2/plutus-sandbox-0.1.0.0/build/PlutusCore/Examples.dyn_o )
> 
> src/PlutusCore/Examples.hs:11:1: warning: [-Wunused-imports]
>     The import of ‘Data.Text.Prettyprint.Doc’ is redundant
>       except perhaps to import instances from ‘Data.Text.Prettyprint.Doc’
>     To import instances alone, use: import Data.Text.Prettyprint.Doc()
>    |
> 11 | import Data.Text.Prettyprint.Doc
>    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> Configuring executable 'plutus-sandbox-exe' for plutus-sandbox-0.1.0.0..
> Warning: The package has an extraneous version range for a dependency on an
> internal library: plutus-sandbox -any && ==0.1.0.0, plutus-sandbox -any &&
> ==0.1.0.0. This version range includes the current package but isn't needed as
> the current package's library will always be used.
> Preprocessing executable 'plutus-sandbox-exe' for plutus-sandbox-0.1.0.0..
[INFO] Using interface files cache dir: ghcide
[INFO] Using interface files cache dir: ghcide
[INFO] Making new HscEnv[main,plutus-sandbox-0.1.0.0-inplace]
[INFO] Consulting the cradle for "test/Spec.hs"
Output from setting up the cradle Cradle {cradleRootDir = "/Users/finley/dev/research/plutus/sandbox", cradleOptsProg = CradleAction: Cabal}
> Warning: The package list for 'hackage.haskell.org' is 16 days old.
> Run 'cabal update' to get the latest list of available packages.
> Resolving dependencies...
> Build profile: -w ghc-8.10.2 -O1
> In order, the following will be built (use -v for more details):
>  - cardano-crypto-1.1.0 (lib) (configuration changed)
>  - iots-export-0.1.0.0 (lib) (configuration changed)
>  - prettyprinter-configurable-0.1.0.0 (lib:prettyprinter-configurable) (configuration changed)
>  - plutus-core-0.1.0.0 (lib) (configuration changed)
>  - plutus-tx-0.1.0.0 (lib) (configuration changed)
>  - plutus-tx-plugin-0.1.0.0 (lib) (configuration changed)
>  - plutus-ledger-api-0.1.0.0 (lib) (configuration changed)
>  - plutus-ledger-0.1.0.0 (lib) (configuration changed)
>  - plutus-contract-0.1.0.0 (lib) (configuration changed)
>  - plutus-sandbox-0.1.0.0 (lib) (configuration changed)
>  - plutus-sandbox-0.1.0.0 (test:plutus-sandbox-test) (first run)
> Configuring library for iots-export-0.1.0.0..
> Configuring library for cardano-crypto-1.1.0..
> Preprocessing library for cardano-crypto-1.1.0..
> Preprocessing library for iots-export-0.1.0.0..
> Building library for iots-export-0.1.0.0..
> Building library for cardano-crypto-1.1.0..
> Configuring prettyprinter-configurable-0.1.0.0...
> Preprocessing library for prettyprinter-configurable-0.1.0.0..
> Building library for prettyprinter-configurable-0.1.0.0..
> Configuring library for plutus-core-0.1.0.0..
> Preprocessing library for plutus-core-0.1.0.0..
> Building library for plutus-core-0.1.0.0..
> Configuring library for plutus-tx-0.1.0.0..
> Preprocessing library for plutus-tx-0.1.0.0..
> Building library for plutus-tx-0.1.0.0..
> Configuring library for plutus-tx-plugin-0.1.0.0..
> Configuring library for plutus-ledger-api-0.1.0.0..
> Preprocessing library for plutus-tx-plugin-0.1.0.0..
> Preprocessing library for plutus-ledger-api-0.1.0.0..
> Building library for plutus-tx-plugin-0.1.0.0..
> Building library for plutus-ledger-api-0.1.0.0..
> [10 of 16] Compiling Language.PlutusTx.Compiler.Names ( src/Language/PlutusTx/Compiler/Names.hs, /Users/finley/dev/research/plutus/sandbox/dist-newstyle/build/x86_64-osx/ghc-8.10.2/plutus-tx-plugin-0.1.0.0/build/Language/PlutusTx/Compiler/Names.o, /Users/finley/dev/research/plutus/sandbox/dist-newstyle/build/x86_64-osx/ghc-8.10.2/plutus-tx-plugin-0.1.0.0/build/Language/PlutusTx/Compiler/Names.dyn_o ) [missing old dependency]
> 
> <no location info>: warning: [-Wunused-packages]
>     The following packages were specified via -package or -package-id flags,
>     but were not needed for compilation:
>       - hedgehog-1.0.4
> Configuring library for plutus-ledger-0.1.0.0..
> Preprocessing library for plutus-ledger-0.1.0.0..
> Building library for plutus-ledger-0.1.0.0..
> Configuring library for plutus-contract-0.1.0.0..
> Preprocessing library for plutus-contract-0.1.0.0..
> Building library for plutus-contract-0.1.0.0..
> Configuring library for plutus-sandbox-0.1.0.0..
> Preprocessing library for plutus-sandbox-0.1.0.0..
> Building library for plutus-sandbox-0.1.0.0..
> Configuring test suite 'plutus-sandbox-test' for plutus-sandbox-0.1.0.0..
> Warning: The package has an extraneous version range for a dependency on an
> internal library: plutus-sandbox -any && ==0.1.0.0, plutus-sandbox -any &&
> ==0.1.0.0. This version range includes the current package but isn't needed as
> the current package's library will always be used.
> Preprocessing test suite 'plutus-sandbox-test' for plutus-sandbox-0.1.0.0..
[INFO] Using interface files cache dir: ghcide
[INFO] Using interface files cache dir: ghcide
[INFO] Using interface files cache dir: ghcide
[INFO] Making new HscEnv[main,main,plutus-sandbox-0.1.0.0-inplace]
File:     /Users/finley/dev/research/plutus/sandbox/src/PlutusCore/Examples.hs
Hidden:   no
Range:    11:1-11:33
Source:   typecheck
Severity: DsWarning
Message: 
  The import of ‘Data.Text.Prettyprint.Doc’ is redundant
  except perhaps to import instances from ‘Data.Text.Prettyprint.Doc’
  To import instances alone, use: import Data.Text.Prettyprint.Doc()
[1]    18390 segmentation fault   --debug

Both that project and the one I linked to in the original comment build for me with cabal v2-build, but when I load the project in VSCode, the language server crashes.

I will give a try with an earlier commit right now! Thanks again for the help with this!

@Ailrun
Copy link
Member

Ailrun commented Feb 3, 2021

When I tried cabal v2-build on your repro repository, it gives me <path>/dist-newstyle/src/plutus-e7024fb2071c376e/iots-export: getDirectoryContents:openDirStream: does not exist (No such file or directory).

(And it looks like their repo indeed deleted iots-export)

@FinleyMcIlwaine
Copy link
Collaborator Author

FinleyMcIlwaine commented Feb 3, 2021

@Ailrun Whoops, sorry about that. Had a different local copy of that git dependency. That should be fixed in the latest commit on my repo.

@FinleyMcIlwaine
Copy link
Collaborator Author

Just tried commit 6f105bd and it's doing the same.

Server logs
haskell-language-server version: 0.8.0.0 (GHC: 8.10.2) (PATH: /Users/finley/.cabal/bin/haskell-language-server-8.10.2)
Starting (haskell-language-server)LSP server...
  with arguments: LspArguments {argLSP = True, argsCwd = Nothing, argFiles = [], argsShakeProfiling = Nothing, argsTesting = False, argsExamplePlugin = False, argsDebugOn = True, argsLogFile = Nothing, argsThreads = 0, argsProjectGhcVersion = False}
  with plugins: [PluginId "brittany",PluginId "class",PluginId "eval",PluginId "floskell",PluginId "fourmolu",PluginId "ghcide",PluginId "haddockComments",PluginId "hlint",PluginId "importLens",PluginId "moduleName",PluginId "ormolu",PluginId "pragmas",PluginId "retrie",PluginId "splice",PluginId "stylish-haskell",PluginId "tactic"]
  in directory: /Users/finley/dev/research/plutus/hls-issue
If you are seeing this in a terminal, you probably should have run ghcide WITHOUT the --lsp option!
 2021-02-03 13:47:08.321402 [ThreadId 5] - 




haskell-lsp:Starting up server ...
2021-02-03 13:47:08.323173 [ThreadId 5] - ---> {"jsonrpc":"2.0","id":0,"method":"initialize","params":{"processId":71235,"clientInfo":{"name":"vscode","version":"1.52.1"},"rootPath":"/Users/finley/dev/research/plutus/hls-issue","rootUri":"file:///Users/finley/dev/research/plutus/hls-issue","capabilities":{"workspace":{"applyEdit":true,"workspaceEdit":{"documentChanges":true,"resourceOperations":["create","rename","delete"],"failureHandling":"textOnlyTransactional"},"didChangeConfiguration":{"dynamicRegistration":true},"didChangeWatchedFiles":{"dynamicRegistration":true},"symbol":{"dynamicRegistration":true,"symbolKind":{"valueSet":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26]}},"executeCommand":{"dynamicRegistration":true},"configuration":true,"workspaceFolders":true},"textDocument":{"publishDiagnostics":{"relatedInformation":true,"versionSupport":false,"tagSupport":{"valueSet":[1,2]}},"synchronization":{"dynamicRegistration":true,"willSave":true,"willSaveWaitUntil":true,"didSave":true},"completion":{"dynamicRegistration":true,"contextSupport":true,"completionItem":{"snippetSupport":true,"commitCharactersSupport":true,"documentationFormat":["markdown","plaintext"],"deprecatedSupport":true,"preselectSupport":true,"tagSupport":{"valueSet":[1]}},"completionItemKind":{"valueSet":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25]}},"hover":{"dynamicRegistration":true,"contentFormat":["markdown","plaintext"]},"signatureHelp":{"dynamicRegistration":true,"signatureInformation":{"documentationFormat":["markdown","plaintext"],"parameterInformation":{"labelOffsetSupport":true}},"contextSupport":true},"definition":{"dynamicRegistration":true,"linkSupport":true},"references":{"dynamicRegistration":true},"documentHighlight":{"dynamicRegistration":true},"documentSymbol":{"dynamicRegistration":true,"symbolKind":{"valueSet":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26]},"hierarchicalDocumentSymbolSupport":true},"codeAction":{"dynamicRegistration":true,"isPreferredSupport":true,"codeActionLiteralSupport":{"codeActionKind":{"valueSet":["","quickfix","refactor","refactor.extract","refactor.inline","refactor.rewrite","source","source.organizeImports"]}}},"codeLens":{"dynamicRegistration":true},"formatting":{"dynamicRegistration":true},"rangeFormatting":{"dynamicRegistration":true},"onTypeFormatting":{"dynamicRegistration":true},"rename":{"dynamicRegistration":true,"prepareSupport":true},"documentLink":{"dynamicRegistration":true,"tooltipSupport":true},"typeDefinition":{"dynamicRegistration":true,"linkSupport":true},"implementation":{"dynamicRegistration":true,"linkSupport":true},"colorProvider":{"dynamicRegistration":true},"foldingRange":{"dynamicRegistration":true,"rangeLimit":5000,"lineFoldingOnly":true},"declaration":{"dynamicRegistration":true,"linkSupport":true},"selectionRange":{"dynamicRegistration":true},"callHierarchy":{"dynamicRegistration":true},"semanticTokens":{"dynamicRegistration":true,"tokenTypes":["comment","keyword","number","regexp","operator","namespace","type","struct","class","interface","enum","typeParameter","function","member","macro","variable","parameter","property","label"],"tokenModifiers":["declaration","documentation","static","abstract","deprecated","async","readonly"]}},"window":{"workDoneProgress":true}},"trace":"off","workspaceFolders":[{"uri":"file:///Users/finley/dev/research/plutus/hls-issue","name":"hls-issue"}]}}
2021-02-03 13:47:08.334591 [ThreadId 5] - haskell-lsp:initializeRequestHandler: setting current dir to project root:/Users/finley/dev/research/plutus/hls-issue
Started LSP server in 0.02s
2021-02-03 13:47:08.911805 [ThreadId 45] - Registering ide configuration: IdeConfiguration {workspaceFolders = fromList [NormalizedUri (-929888042191146657) "file:///Users/finley/dev/research/plutus/hls-issue"], clientSettings = hashed Nothing}
2021-02-03 13:47:08.912011 [ThreadId 7] - <--2--{"result":{"capabilities":{"typeDefinitionProvider":true,"foldingRangeProvider":false,"textDocumentSync":{"openClose":true,"change":2,"save":{}},"workspace":{"workspaceFolders":{"supported":true,"changeNotifications":true}},"implementationProvider":true,"documentRangeFormattingProvider":true,"documentHighlightProvider":true,"executeCommandProvider":{"commands":["71271:class:addMinimalMethodPlaceholders","71271:eval:evalCommand","71271:ghcide:typesignature.add","71271:hlint:applyOne","71271:hlint:applyAll","71271:importLens:ImportLensCommand","71271:moduleName:edit","71271:retrie:retrieCommand","71271:splice:expandTHSpliceInplace","71271:tactic:tacticsAutoCommand","71271:tactic:tacticsIntrosCommand","71271:tactic:tacticsDestructCommand","71271:tactic:tacticsHomomorphismCommand","71271:tactic:tacticsDestructLambdaCaseCommand","71271:tactic:tacticsHomomorphismLambdaCaseCommand"]},"renameProvider":false,"colorProvider":false,"definitionProvider":true,"hoverProvider":true,"codeActionProvider":true,"completionProvider":{"triggerCharacters":["."],"resolveProvider":false},"codeLensProvider":{},"documentSymbolProvider":true,"documentFormattingProvider":true}},"jsonrpc":"2.0","id":0}
2021-02-03 13:47:08.92089 [ThreadId 5] - ---> {"jsonrpc":"2.0","method":"initialized","params":{}}
2021-02-03 13:47:08.921212 [ThreadId 7] - <--2--{"jsonrpc":"2.0","params":{"registrations":[{"registerOptions":{"watchers":[{"kind":5,"globPattern":"**/*.hs"},{"kind":5,"globPattern":"**/*.hs-boot"},{"kind":5,"globPattern":"**/*.lhs"},{"kind":5,"globPattern":"**/*.lhs-boot"}]},"method":"workspace/didChangeWatchedFiles","id":"globalFileWatches"}]},"method":"client/registerCapability","id":0}
2021-02-03 13:47:08.921236 [ThreadId 5] - ---> {"jsonrpc":"2.0","method":"workspace/didChangeConfiguration","params":{"settings":{"haskell":{"hlintOn":true,"maxNumberOfProblems":100,"diagnosticsOnChange":true,"liquidOn":false,"completionSnippetsOn":true,"formatOnImportOn":true,"formattingProvider":"ormolu","trace":{"server":"messages"},"logFile":"","languageServerVariant":"haskell-language-server","serverExecutablePath":"/Users/finley/.cabal/bin/haskell-language-server-8.10.2","updateBehavior":"keep-up-to-date","indentationRules":{"enabled":true}}}}}
2021-02-03 13:47:08.921497 [ThreadId 45] - Configuration changed: Object (fromList [("haskell",Object (fromList [("logFile",String ""),("updateBehavior",String "keep-up-to-date"),("hlintOn",Bool True),("formatOnImportOn",Bool True),("indentationRules",Object (fromList [("enabled",Bool True)])),("liquidOn",Bool False),("languageServerVariant",String "haskell-language-server"),("serverExecutablePath",String "/Users/finley/.cabal/bin/haskell-language-server-8.10.2"),("diagnosticsOnChange",Bool True),("completionSnippetsOn",Bool True),("maxNumberOfProblems",Number 100.0),("formattingProvider",String "ormolu"),("trace",Object (fromList [("server",String "messages")]))]))])
2021-02-03 13:47:08.921896 [ThreadId 45] - Restarting build session (aborting the previous one took 0.00s)
2021-02-03 13:47:08.922014 [ThreadId 28] - Finishing build session(exception: AsyncCancelled)
2021-02-03 13:47:08.92238 [ThreadId 5] - ---> {"jsonrpc":"2.0","method":"textDocument/didOpen","params":{"textDocument":{"uri":"file:///Users/finley/dev/research/plutus/hls-issue/src/Repro.hs","languageId":"haskell","version":1,"text":"{-# LANGUAGE DataKinds           #-}\n{-# LANGUAGE NoImplicitPrelude   #-}\n{-# LANGUAGE ScopedTypeVariables #-}\n{-# LANGUAGE TemplateHaskell     #-}\n\nmodule Repro where\n\nimport Language.PlutusTx.TH\nimport Language.PlutusTx.Code\nimport Language.PlutusTx.Prelude\nimport Language.PlutusTx.Builtins\n\nadd :: Integer -> Integer -> Integer\nadd x y = x `addInteger` y\n\naddCompiled :: CompiledCode (Integer -> Integer -> Integer)\naddCompiled = $$(compile [|| add ||])"}}}
2021-02-03 13:47:08.923292 [ThreadId 45] - Set files of interest to: [(NormalizedFilePath "/Users/finley/dev/research/plutus/hls-issue/src/Repro.hs",Modified)]
2021-02-03 13:47:08.923569 [ThreadId 45] - Restarting build session (aborting the previous one took 0.00s)
2021-02-03 13:47:08.92366 [ThreadId 63] - Finishing build session(exception: AsyncCancelled)
2021-02-03 13:47:08.924068 [ThreadId 45] - Opened text document: file:///Users/finley/dev/research/plutus/hls-issue/src/Repro.hs
2021-02-03 13:47:08.925104 [ThreadId 5] - ---> {"jsonrpc":"2.0","id":0,"result":null}
2021-02-03 13:47:08.925142 [ThreadId 125] - hlint:getIdeas:file:NormalizedFilePath "/Users/finley/dev/research/plutus/hls-issue/src/Repro.hs"
2021-02-03 13:47:08.925193 [ThreadId 5] - haskell-lsp:Got reply message:"{\"jsonrpc\":\"2.0\",\"id\":0,\"result\":null}"
2021-02-03 13:47:08.925916 [ThreadId 136] - Consulting the cradle for "src/Repro.hs"
Output from setting up the cradle Cradle {cradleRootDir = "/Users/finley/dev/research/plutus/hls-issue", cradleOptsProg = CradleAction: Cabal}
2021-02-03 13:47:08.926628 [ThreadId 7] - <--2--{"jsonrpc":"2.0","params":{"token":0},"method":"window/workDoneProgress/create","id":1}
2021-02-03 13:47:08.926699 [ThreadId 7] - <--2--{"jsonrpc":"2.0","params":{"value":{"kind":"begin","cancellable":false,"title":"Setting up hls-issue (for src/Repro.hs)"},"token":0},"method":"$/progress"}
2021-02-03 13:47:08.931817 [ThreadId 5] - ---> {"jsonrpc":"2.0","id":1,"result":null}
2021-02-03 13:47:08.931953 [ThreadId 5] - haskell-lsp:Got reply message:"{\"jsonrpc\":\"2.0\",\"id\":1,\"result\":null}"
2021-02-03 13:47:08.936701 [ThreadId 5] - ---> {"jsonrpc":"2.0","id":1,"method":"textDocument/documentSymbol","params":{"textDocument":{"uri":"file:///Users/finley/dev/research/plutus/hls-issue/src/Repro.hs"}}}
2021-02-03 13:47:08.937492 [ThreadId 5] - ---> {"jsonrpc":"2.0","id":2,"method":"textDocument/codeAction","params":{"textDocument":{"uri":"file:///Users/finley/dev/research/plutus/hls-issue/src/Repro.hs"},"range":{"start":{"line":16,"character":37},"end":{"line":16,"character":37}},"context":{"diagnostics":[]}}}
2021-02-03 13:47:09.030165 [ThreadId 7] - <--2--{"jsonrpc":"2.0","params":{"token":"28"},"method":"window/workDoneProgress/create","id":2}
2021-02-03 13:47:09.030235 [ThreadId 7] - <--2--{"jsonrpc":"2.0","params":{"value":{"kind":"begin","title":"Processing"},"token":"28"},"method":"$/progress"}
2021-02-03 13:47:09.030461 [ThreadId 5] - ---> {"jsonrpc":"2.0","id":2,"result":null}
2021-02-03 13:47:09.030568 [ThreadId 5] - haskell-lsp:Got reply message:"{\"jsonrpc\":\"2.0\",\"id\":2,\"result\":null}"
2021-02-03 13:47:09.131523 [ThreadId 7] - <--2--{"jsonrpc":"2.0","params":{"value":{"kind":"report","message":"1/2"},"token":"28"},"method":"$/progress"}
2021-02-03 13:47:09.184727 [ThreadId 5] - ---> {"jsonrpc":"2.0","id":3,"method":"textDocument/codeLens","params":{"textDocument":{"uri":"file:///Users/finley/dev/research/plutus/hls-issue/src/Repro.hs"}}}
2021-02-03 13:47:09.184856 [ThreadId 158] - Plugin.makeCodeLens (ideLogger)
2021-02-03 13:47:09.184949 [ThreadId 158] - src/Ide/Plugin/Eval/CodeLens.hs:239:15 "fp" "/Users/finley/dev/research/plutus/hls-issue/src/Repro.hs"
2021-02-03 13:47:09.185581 [ThreadId 5] - ---> {"jsonrpc":"2.0","id":4,"method":"textDocument/codeLens","params":{"textDocument":{"uri":"file:///Users/finley/dev/research/plutus/hls-issue/src/Repro.hs"}}}
2021-02-03 13:47:09.185661 [ThreadId 163] - Plugin.makeCodeLens (ideLogger)
2021-02-03 13:47:09.185733 [ThreadId 163] - src/Ide/Plugin/Eval/CodeLens.hs:239:15 "fp" "/Users/finley/dev/research/plutus/hls-issue/src/Repro.hs"
> Warning: The package list for 'hackage.haskell.org' is 16 days old.
> Run 'cabal update' to get the latest list of available packages.
> Resolving dependencies...
> Build profile: -w ghc-8.10.2 -O1
> In order, the following will be built (use -v for more details):
>  - cardano-crypto-1.1.0 (lib) (configuration changed)
>  - prettyprinter-configurable-0.1.0.0 (lib:prettyprinter-configurable) (configuration changed)
>  - plutus-core-0.1.0.0 (lib) (configuration changed)
>  - plutus-tx-0.1.0.0 (lib) (configuration changed)
>  - plutus-tx-plugin-0.1.0.0 (lib) (configuration changed)
>  - plutus-ledger-api-0.1.0.0 (lib) (configuration changed)
>  - plutus-ledger-0.1.0.0 (lib) (configuration changed)
>  - plutus-contract-0.1.0.0 (lib) (configuration changed)
>  - hls-issue-0.1.0.0 (lib) (configuration changed)
> Configuring library for cardano-crypto-1.1.0..
> Preprocessing library for cardano-crypto-1.1.0..
> Building library for cardano-crypto-1.1.0..
> Configuring prettyprinter-configurable-0.1.0.0...
> Preprocessing library for prettyprinter-configurable-0.1.0.0..
> Building library for prettyprinter-configurable-0.1.0.0..
> Configuring library for plutus-core-0.1.0.0..
> Preprocessing library for plutus-core-0.1.0.0..
> Building library for plutus-core-0.1.0.0..
> Configuring library for plutus-tx-0.1.0.0..
> Preprocessing library for plutus-tx-0.1.0.0..
> Building library for plutus-tx-0.1.0.0..
> Configuring library for plutus-tx-plugin-0.1.0.0..
> Configuring library for plutus-ledger-api-0.1.0.0..
> Preprocessing library for plutus-ledger-api-0.1.0.0..
> Building library for plutus-ledger-api-0.1.0.0..
> Preprocessing library for plutus-tx-plugin-0.1.0.0..
> Building library for plutus-tx-plugin-0.1.0.0..
> [10 of 16] Compiling Language.PlutusTx.Compiler.Names ( src/Language/PlutusTx/Compiler/Names.hs, /Users/finley/dev/research/plutus/hls-issue/dist-newstyle/build/x86_64-osx/ghc-8.10.2/plutus-tx-plugin-0.1.0.0/build/Language/PlutusTx/Compiler/Names.o, /Users/finley/dev/research/plutus/hls-issue/dist-newstyle/build/x86_64-osx/ghc-8.10.2/plutus-tx-plugin-0.1.0.0/build/Language/PlutusTx/Compiler/Names.dyn_o ) [missing old dependency]
> 
> <no location info>: warning: [-Wunused-packages]
>     The following packages were specified via -package or -package-id flags,
>     but were not needed for compilation:
>       - hedgehog-1.0.4
> Configuring library for plutus-ledger-0.1.0.0..
> Preprocessing library for plutus-ledger-0.1.0.0..
> Building library for plutus-ledger-0.1.0.0..
> Configuring library for plutus-contract-0.1.0.0..
> Preprocessing library for plutus-contract-0.1.0.0..
> Building library for plutus-contract-0.1.0.0..
> Configuring library for hls-issue-0.1.0.0..
> Preprocessing library for hls-issue-0.1.0.0..
2021-02-03 13:47:48.052674 [ThreadId 7] - <--2--{"jsonrpc":"2.0","params":{"value":{"kind":"end"},"token":0},"method":"$/progress"}
2021-02-03 13:47:48.052588 [ThreadId 136] - Session loading result: Right (ComponentOptions {componentOptions = ["-fbuilding-cabal-package","-O0","-outputdir","/Users/finley/dev/research/plutus/hls-issue/dist-newstyle/build/x86_64-osx/ghc-8.10.2/hls-issue-0.1.0.0/build","-odir","/Users/finley/dev/research/plutus/hls-issue/dist-newstyle/build/x86_64-osx/ghc-8.10.2/hls-issue-0.1.0.0/build","-hidir","/Users/finley/dev/research/plutus/hls-issue/dist-newstyle/build/x86_64-osx/ghc-8.10.2/hls-issue-0.1.0.0/build","-stubdir","/Users/finley/dev/research/plutus/hls-issue/dist-newstyle/build/x86_64-osx/ghc-8.10.2/hls-issue-0.1.0.0/build","-i","-i/Users/finley/dev/research/plutus/hls-issue/dist-newstyle/build/x86_64-osx/ghc-8.10.2/hls-issue-0.1.0.0/build","-isrc","-i/Users/finley/dev/research/plutus/hls-issue/dist-newstyle/build/x86_64-osx/ghc-8.10.2/hls-issue-0.1.0.0/build/autogen","-i/Users/finley/dev/research/plutus/hls-issue/dist-newstyle/build/x86_64-osx/ghc-8.10.2/hls-issue-0.1.0.0/build/global-autogen","-I/Users/finley/dev/research/plutus/hls-issue/dist-newstyle/build/x86_64-osx/ghc-8.10.2/hls-issue-0.1.0.0/build/autogen","-I/Users/finley/dev/research/plutus/hls-issue/dist-newstyle/build/x86_64-osx/ghc-8.10.2/hls-issue-0.1.0.0/build/global-autogen","-I/Users/finley/dev/research/plutus/hls-issue/dist-newstyle/build/x86_64-osx/ghc-8.10.2/hls-issue-0.1.0.0/build","-optP-include","-optP/Users/finley/dev/research/plutus/hls-issue/dist-newstyle/build/x86_64-osx/ghc-8.10.2/hls-issue-0.1.0.0/build/autogen/cabal_macros.h","-this-unit-id","hls-issue-0.1.0.0-inplace","-hide-all-packages","-Wmissing-home-modules","-no-user-package-db","-package-db","/Users/finley/.cabal/store/ghc-8.10.2/package.db","-package-db","/Users/finley/dev/research/plutus/hls-issue/dist-newstyle/packagedb/ghc-8.10.2","-package-db","/Users/finley/dev/research/plutus/hls-issue/dist-newstyle/build/x86_64-osx/ghc-8.10.2/hls-issue-0.1.0.0/package.conf.inplace","-package-id","base-4.14.1.0","-package-id","plutus-contract-0.1.0.0-inplace","-package-id","plutus-core-0.1.0.0-inplace","-package-id","plutus-ledger-0.1.0.0-inplace","-package-id","plutus-tx-0.1.0.0-inplace","-package-id","plutus-tx-plugin-0.1.0.0-inplace","-package-id","template-haskell-2.16.0.0","-XHaskell2010","-XExplicitForAll","-XScopedTypeVariables","-XDeriveGeneric","-XStandaloneDeriving","-XDeriveLift","-XGeneralizedNewtypeDeriving","-XDeriveFunctor","-XDeriveFoldable","-XDeriveTraversable","-XMultiParamTypeClasses","Repro","-Wall","-Wnoncanonical-monad-instances","-Wincomplete-uni-patterns","-Wincomplete-record-updates","-Wredundant-constraints","-Widentities","-fobject-code","-fno-ignore-interface-pragmas","-fno-omit-interface-pragmas","-hide-all-packages","-haddock"], componentRoot = "/Users/finley/dev/research/plutus/hls-issue", componentDependencies = ["hls-issue.cabal","cabal.project","cabal.project.local"]},"/Users/finley/.ghcup/ghc/8.10.2/lib/ghc-8.10.2")
2021-02-03 13:47:48.148101 [ThreadId 136] - Using interface files cache dir: ghcide
2021-02-03 13:47:48.148171 [ThreadId 136] - Making new HscEnv[hls-issue-0.1.0.0-inplace]
2021-02-03 13:47:48.167498 [ThreadId 136] - New Component Cache HscEnvEq: (([],Just HscEnvEq 33),fromList [("/Users/finley/dev/research/plutus/hls-issue/hie.yaml",Just 2021-02-02 23:41:37.768496455 UTC),("cabal.project",Just 2021-02-03 20:09:36.237042989 UTC),("cabal.project.local",Nothing),("hls-issue.cabal",Just 2021-02-03 20:10:37.292262737 UTC)])
2021-02-03 13:47:48.169457 [ThreadId 136] - Known files updated: fromList [(TargetModule Repro,["/Users/finley/dev/research/plutus/hls-issue/src/Repro.hs"]),(TargetFile NormalizedFilePath "/Users/finley/dev/research/plutus/hls-issue/src/Repro.hs",["/Users/finley/dev/research/plutus/hls-issue/src/Repro.hs"])]
2021-02-03 13:47:48.169678 [ThreadId 91] - Finishing build session(exception: AsyncCancelled)
2021-02-03 13:47:48.170038 [ThreadId 136] - Restarting build session (aborting the previous one took 0.00s)
2021-02-03 13:47:48.171692 [ThreadId 227] - hlint:getIdeas:file:NormalizedFilePath "/Users/finley/dev/research/plutus/hls-issue/src/Repro.hs"
2021-02-03 13:47:48.172702 [ThreadId 255] - finish: getSession (took 0.00s)
2021-02-03 13:47:48.17272 [ThreadId 256] - finish: getSession (took 0.00s)
2021-02-03 13:47:48.1733 [ThreadId 158] - src/Ide/Plugin/Eval/CodeLens.hs:239:15 "preprocessor" "0.00s"
2021-02-03 13:47:48.173306 [ThreadId 163] - src/Ide/Plugin/Eval/CodeLens.hs:239:15 "preprocessor" "0.00s"
2021-02-03 13:47:48.173376 [ThreadId 163] - src/Ide/Plugin/Eval/CodeLens.hs:239:15 "Tests" "0 tests in 0 sections 0 setups 0 lenses."
2021-02-03 13:47:48.173365 [ThreadId 158] - src/Ide/Plugin/Eval/CodeLens.hs:239:15 "Tests" "0 tests in 0 sections 0 setups 0 lenses."
2021-02-03 13:47:48.173476 [ThreadId 163] - src/Ide/Plugin/Eval/CodeLens.hs:239:15 "tests" "0.00s"
2021-02-03 13:47:48.173489 [ThreadId 158] - src/Ide/Plugin/Eval/CodeLens.hs:239:15 "tests" "0.00s"
2021-02-03 13:47:48.173517 [ThreadId 163] - src/Ide/Plugin/Eval/CodeLens.hs:239:15 "codeLens" "38.99s"
2021-02-03 13:47:48.173532 [ThreadId 158] - src/Ide/Plugin/Eval/CodeLens.hs:239:15 "codeLens" "38.99s"
2021-02-03 13:47:48.17423 [ThreadId 280] - finish: Outline (took 0.00s)
2021-02-03 13:47:48.174251 [ThreadId 279] - finish: CodeAction (took 0.00s)
2021-02-03 13:47:48.174687 [ThreadId 7] - <--2--{"result":[{"selectionRange":{"start":{"line":5,"character":7},"end":{"line":5,"character":12}},"kind":1,"children":[{"selectionRange":{"start":{"line":7,"character":0},"end":{"line":10,"character":33}},"kind":2,"children":[{"selectionRange":{"start":{"line":7,"character":0},"end":{"line":7,"character":27}},"kind":2,"name":"import Language.PlutusTx.TH","range":{"start":{"line":7,"character":0},"end":{"line":7,"character":27}}},{"selectionRange":{"start":{"line":8,"character":0},"end":{"line":8,"character":29}},"kind":2,"name":"import Language.PlutusTx.Code","range":{"start":{"line":8,"character":0},"end":{"line":8,"character":29}}},{"selectionRange":{"start":{"line":9,"character":0},"end":{"line":9,"character":32}},"kind":2,"name":"import Language.PlutusTx.Prelude","range":{"start":{"line":9,"character":0},"end":{"line":9,"character":32}}},{"selectionRange":{"start":{"line":10,"character":0},"end":{"line":10,"character":33}},"kind":2,"name":"import Language.PlutusTx.Builtins","range":{"start":{"line":10,"character":0},"end":{"line":10,"character":33}}}],"name":"imports","range":{"start":{"line":7,"character":0},"end":{"line":10,"character":33}}},{"selectionRange":{"start":{"line":13,"character":0},"end":{"line":13,"character":26}},"kind":12,"name":"add","range":{"start":{"line":13,"character":0},"end":{"line":13,"character":26}}},{"selectionRange":{"start":{"line":16,"character":0},"end":{"line":16,"character":37}},"kind":12,"name":"addCompiled","range":{"start":{"line":16,"character":0},"end":{"line":16,"character":37}}}],"name":"Repro","range":{"start":{"line":0,"character":0},"end":{"line":9223372036854775807,"character":0}}}],"jsonrpc":"2.0","id":1}
2021-02-03 13:47:48.204452 [ThreadId 7] - <--2--{"jsonrpc":"2.0","params":{"value":{"kind":"report","message":"3/5"},"token":"28"},"method":"$/progress"}
2021-02-03 13:47:48.575397 [ThreadId 313] - finish: CodeAction:PackageExports (took 0.40s)
2021-02-03 13:47:48.575598 [ThreadId 314] - finish: HaddockComments.GetParsedModule (took 0.00s)
2021-02-03 13:47:48.575813 [ThreadId 316] - finish: importLens (took 0.00s)
2021-02-03 13:47:48.575978 [ThreadId 318] - finish: addPragma (took 0.00s)
2021-02-03 13:47:48.620361 [ThreadId 7] - <--2--{"jsonrpc":"2.0","params":{"value":{"kind":"report","message":"4/5"},"token":"28"},"method":"$/progress"}
2021-02-03 13:47:49.71142 [ThreadId 328] - finish: retrie (took 1.14s)
2021-02-03 13:47:49.711431 [ThreadId 325] - finish: codeLens (took 1.54s)
2021-02-03 13:47:49.711605 [ThreadId 326] - finish: codeLens (took 1.54s)
2021-02-03 13:47:49.711997 [ThreadId 337] - finish: splice.codeAction.GitHieAst (took 0.00s)
2021-02-03 13:47:49.712206 [ThreadId 344] - finish:  (took 0.00s)
2021-02-03 13:47:49.712231 [ThreadId 343] - finish:  (took 0.00s)
2021-02-03 13:47:49.712332 [ThreadId 345] - finish: tactic (took 0.00s)
2021-02-03 13:47:49.712583 [ThreadId 347] - finish: ModuleName.ghcSession (took 0.00s)
2021-02-03 13:47:49.712636 [ThreadId 349] - finish: ModuleName.ghcSession (took 0.00s)
2021-02-03 13:47:49.712752 [ThreadId 355] - finish: tactic (took 0.00s)
2021-02-03 13:47:49.71288 [ThreadId 356] - finish: tactic (took 0.00s)
2021-02-03 13:47:49.713252 [ThreadId 7] - <--2--{"result":[{"command":{"command":"71271:splice:expandTHSpliceInplace","arguments":[{"spliceSpan":{"srcSpanStartLine":17,"srcSpanEndCol":38,"srcSpanEndLine":17,"srcSpanFile":"/Users/finley/dev/research/plutus/hls-issue/src/Repro.hs","srcSpanStartCol":15},"spliceContext":"Expr","uri":"file:///Users/finley/dev/research/plutus/hls-issue/src/Repro.hs"}],"title":"expand TemplateHaskell Splice (in-place)"},"kind":"refactor.rewrite","title":"expand TemplateHaskell Splice (in-place)"}],"jsonrpc":"2.0","id":2}
2021-02-03 13:47:49.713339 [ThreadId 359] - finish: ModuleName.GetParsedModule (took 0.00s)
2021-02-03 13:47:49.713415 [ThreadId 361] - finish: ModuleName.GetParsedModule (took 0.00s)
2021-02-03 13:47:49.713599 [ThreadId 7] - <--2--{"result":[{"command":{"command":"71271:importLens:ImportLensCommand","arguments":[{"changes":{"file:///Users/finley/dev/research/plutus/hls-issue/src/Repro.hs":[{"range":{"start":{"line":7,"character":0},"end":{"line":7,"character":27}},"newText":"import Language.PlutusTx.TH ( compile )"}]}}],"title":"import Language.PlutusTx.TH ( compile )"},"range":{"start":{"line":7,"character":0},"end":{"line":7,"character":27}}},{"command":{"command":"71271:importLens:ImportLensCommand","arguments":[{"changes":{"file:///Users/finley/dev/research/plutus/hls-issue/src/Repro.hs":[{"range":{"start":{"line":8,"character":0},"end":{"line":8,"character":29}},"newText":"import Language.PlutusTx.Code ( CompiledCode )"}]}}],"title":"import Language.PlutusTx.Code ( CompiledCode )"},"range":{"start":{"line":8,"character":0},"end":{"line":8,"character":29}}},{"command":{"command":"71271:importLens:ImportLensCommand","arguments":[{"changes":{"file:///Users/finley/dev/research/plutus/hls-issue/src/Repro.hs":[{"range":{"start":{"line":9,"character":0},"end":{"line":9,"character":32}},"newText":"import Language.PlutusTx.Prelude ( Integer )"}]}}],"title":"import Language.PlutusTx.Prelude ( Integer )"},"range":{"start":{"line":9,"character":0},"end":{"line":9,"character":32}}},{"command":{"command":"71271:importLens:ImportLensCommand","arguments":[{"changes":{"file:///Users/finley/dev/research/plutus/hls-issue/src/Repro.hs":[{"range":{"start":{"line":10,"character":0},"end":{"line":10,"character":33}},"newText":"import Language.PlutusTx.Builtins ( addInteger )"}]}}],"title":"import Language.PlutusTx.Builtins ( addInteger )"},"range":{"start":{"line":10,"character":0},"end":{"line":10,"character":33}}}],"jsonrpc":"2.0","id":4}
2021-02-03 13:47:49.713887 [ThreadId 7] - <--2--{"result":[{"command":{"command":"71271:importLens:ImportLensCommand","arguments":[{"changes":{"file:///Users/finley/dev/research/plutus/hls-issue/src/Repro.hs":[{"range":{"start":{"line":7,"character":0},"end":{"line":7,"character":27}},"newText":"import Language.PlutusTx.TH ( compile )"}]}}],"title":"import Language.PlutusTx.TH ( compile )"},"range":{"start":{"line":7,"character":0},"end":{"line":7,"character":27}}},{"command":{"command":"71271:importLens:ImportLensCommand","arguments":[{"changes":{"file:///Users/finley/dev/research/plutus/hls-issue/src/Repro.hs":[{"range":{"start":{"line":8,"character":0},"end":{"line":8,"character":29}},"newText":"import Language.PlutusTx.Code ( CompiledCode )"}]}}],"title":"import Language.PlutusTx.Code ( CompiledCode )"},"range":{"start":{"line":8,"character":0},"end":{"line":8,"character":29}}},{"command":{"command":"71271:importLens:ImportLensCommand","arguments":[{"changes":{"file:///Users/finley/dev/research/plutus/hls-issue/src/Repro.hs":[{"range":{"start":{"line":9,"character":0},"end":{"line":9,"character":32}},"newText":"import Language.PlutusTx.Prelude ( Integer )"}]}}],"title":"import Language.PlutusTx.Prelude ( Integer )"},"range":{"start":{"line":9,"character":0},"end":{"line":9,"character":32}}},{"command":{"command":"71271:importLens:ImportLensCommand","arguments":[{"changes":{"file:///Users/finley/dev/research/plutus/hls-issue/src/Repro.hs":[{"range":{"start":{"line":10,"character":0},"end":{"line":10,"character":33}},"newText":"import Language.PlutusTx.Builtins ( addInteger )"}]}}],"title":"import Language.PlutusTx.Builtins ( addInteger )"},"range":{"start":{"line":10,"character":0},"end":{"line":10,"character":33}}}],"jsonrpc":"2.0","id":3}
[Info  - 1:47:50 PM] Connection to server got closed. Server will restart.
Debug logs
haskell-language-server version: 0.8.0.0 (GHC: 8.10.2) (PATH: /Users/finley/.cabal/bin/haskell-language-server-8.10.2)
(haskell-language-server)Ghcide setup tester in /Users/finley/dev/research/plutus/hls-issue.
Report bugs at https://github.com/haskell/haskell-language-server/issues

Tool versions found on the $PATH
cabal:          3.2.0.0
stack:          2.5.1
ghc:            8.10.2


Step 1/4: Finding files to test in /Users/finley/dev/research/plutus/hls-issue
Found 1 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
[INFO] Consulting the cradle for "src/Repro.hs"
Output from setting up the cradle Cradle {cradleRootDir = "/Users/finley/dev/research/plutus/hls-issue", cradleOptsProg = CradleAction: Cabal}
> Warning: The package list for 'hackage.haskell.org' is 16 days old.
> Run 'cabal update' to get the latest list of available packages.
> Resolving dependencies...
> Build profile: -w ghc-8.10.2 -O1
> In order, the following will be built (use -v for more details):
>  - cardano-crypto-1.1.0 (lib) (configuration changed)
>  - prettyprinter-configurable-0.1.0.0 (lib:prettyprinter-configurable) (configuration changed)
>  - plutus-core-0.1.0.0 (lib) (configuration changed)
>  - plutus-tx-0.1.0.0 (lib) (configuration changed)
>  - plutus-tx-plugin-0.1.0.0 (lib) (configuration changed)
>  - plutus-ledger-api-0.1.0.0 (lib) (configuration changed)
>  - plutus-ledger-0.1.0.0 (lib) (configuration changed)
>  - plutus-contract-0.1.0.0 (lib) (configuration changed)
>  - hls-issue-0.1.0.0 (lib) (configuration changed)
> Configuring library for cardano-crypto-1.1.0..
> Preprocessing library for cardano-crypto-1.1.0..
> Building library for cardano-crypto-1.1.0..
> Configuring prettyprinter-configurable-0.1.0.0...
> Preprocessing library for prettyprinter-configurable-0.1.0.0..
> Building library for prettyprinter-configurable-0.1.0.0..
> Configuring library for plutus-core-0.1.0.0..
> Preprocessing library for plutus-core-0.1.0.0..
> Building library for plutus-core-0.1.0.0..
> Configuring library for plutus-tx-0.1.0.0..
> Preprocessing library for plutus-tx-0.1.0.0..
> Building library for plutus-tx-0.1.0.0..
> Configuring library for plutus-ledger-api-0.1.0.0..
> Configuring library for plutus-tx-plugin-0.1.0.0..
> Preprocessing library for plutus-tx-plugin-0.1.0.0..
> Preprocessing library for plutus-ledger-api-0.1.0.0..
> Building library for plutus-tx-plugin-0.1.0.0..
> Building library for plutus-ledger-api-0.1.0.0..
> [10 of 16] Compiling Language.PlutusTx.Compiler.Names ( src/Language/PlutusTx/Compiler/Names.hs, /Users/finley/dev/research/plutus/hls-issue/dist-newstyle/build/x86_64-osx/ghc-8.10.2/plutus-tx-plugin-0.1.0.0/build/Language/PlutusTx/Compiler/Names.o, /Users/finley/dev/research/plutus/hls-issue/dist-newstyle/build/x86_64-osx/ghc-8.10.2/plutus-tx-plugin-0.1.0.0/build/Language/PlutusTx/Compiler/Names.dyn_o ) [missing old dependency]
> 
> <no location info>: warning: [-Wunused-packages]
>     The following packages were specified via -package or -package-id flags,
>     but were not needed for compilation:
>       - hedgehog-1.0.4
> Configuring library for plutus-ledger-0.1.0.0..
> Preprocessing library for plutus-ledger-0.1.0.0..
> Building library for plutus-ledger-0.1.0.0..
> Configuring library for plutus-contract-0.1.0.0..
> Preprocessing library for plutus-contract-0.1.0.0..
> Building library for plutus-contract-0.1.0.0..
> Configuring library for hls-issue-0.1.0.0..
> Preprocessing library for hls-issue-0.1.0.0..
[INFO] Using interface files cache dir: ghcide
[INFO] Making new HscEnv[hls-issue-0.1.0.0-inplace]

Completed (1 file worked, 0 files failed)
[INFO] finish: User TypeCheck (took 1.27s)

I'll try going back farther. This is a pretty recent issue, I used HLS on these projects with no issues for a long time before this.

@FinleyMcIlwaine
Copy link
Collaborator Author

I've determined that this problem started happening in release 0.6.0 of HLS. Releases up to that version are working for me. The release notes for 0.6.0 do mention an update to ghcide. I haven't yet dug much further to figure out exactly which changes introduced this issue, happy to try some things out if anyone has ideas!

@Ailrun
Copy link
Member

Ailrun commented Feb 3, 2021

OK, I'm not able to reproduce it on Emacs with the latest commit of HLS. Could you check other editors than VSCode?

@wz1000
Copy link
Collaborator

wz1000 commented Feb 3, 2021

The problem is likely to have been introduced by ghcide commits 5676fcc or d46b155

Are you using Nix?

I don't think editor choice could be responsible for this issue.

@FinleyMcIlwaine
Copy link
Collaborator Author

@wz1000 I'm on macOS 11.2. Trying out neovim right now, will report back.

@Ailrun
Copy link
Member

Ailrun commented Feb 3, 2021

@wz1000 If it hasn't ever fixed, then I think it's either editor-specific or OS-specific. At least I cannot reproduce it with Emacs in Manjaro

@wz1000
Copy link
Collaborator

wz1000 commented Feb 3, 2021

Can it be reproduced from the command line using haskell-language-server file.hs?

@FinleyMcIlwaine
Copy link
Collaborator Author

@wz1000 Just tried that on this file and got a segfault with hls 0.9.0. Output below.

Output
haskell-language-server version: 0.9.0.0 (GHC: 8.10.2) (PATH: /Users/finley/Library/Application Support/Code/User/globalStorage/haskell.haskell/haskell-language-server-0.9.0-darwin-8.10.2) (GIT hash: 46d2a3dc7ef49ba57b2706022af1801149ab3f2b)
(haskell-language-server)Ghcide setup tester in /Users/finley/dev/research/plutus/sandbox.
Report bugs at https://github.com/haskell/haskell-language-server/issues

Tool versions found on the $PATH
cabal:          3.2.0.0
stack:          2.5.1
ghc:            8.10.2


Step 1/4: Finding files to test in /Users/finley/dev/research/plutus/sandbox
Found 1 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
[INFO] Consulting the cradle for "src/Contracts/UseCases/Vesting.hs"
Output from setting up the cradle Cradle {cradleRootDir = "/Users/finley/dev/research/plutus/sandbox", cradleOptsProg = CradleAction: Cabal}
> Warning: The package list for 'hackage.haskell.org' is 16 days old.
> Run 'cabal update' to get the latest list of available packages.
> Resolving dependencies...
> Build profile: -w ghc-8.10.2 -O1
> In order, the following will be built (use -v for more details):
>  - cardano-crypto-1.1.0 (lib) (configuration changed)
>  - iots-export-0.1.0.0 (lib) (configuration changed)
>  - prettyprinter-configurable-0.1.0.0 (lib:prettyprinter-configurable) (configuration changed)
>  - plutus-core-0.1.0.0 (lib) (configuration changed)
>  - plutus-tx-0.1.0.0 (lib) (configuration changed)
>  - plutus-tx-plugin-0.1.0.0 (lib) (configuration changed)
>  - plutus-ledger-api-0.1.0.0 (lib) (configuration changed)
>  - plutus-ledger-0.1.0.0 (lib) (configuration changed)
>  - plutus-contract-0.1.0.0 (lib) (configuration changed)
>  - plutus-sandbox-0.1.0.0 (lib) (configuration changed)
> Configuring library for iots-export-0.1.0.0..
> Configuring library for cardano-crypto-1.1.0..
> Preprocessing library for iots-export-0.1.0.0..
> Preprocessing library for cardano-crypto-1.1.0..
> Building library for iots-export-0.1.0.0..
> Building library for cardano-crypto-1.1.0..
> Configuring prettyprinter-configurable-0.1.0.0...
> Preprocessing library for prettyprinter-configurable-0.1.0.0..
> Building library for prettyprinter-configurable-0.1.0.0..
> Configuring library for plutus-core-0.1.0.0..
> Preprocessing library for plutus-core-0.1.0.0..
> Building library for plutus-core-0.1.0.0..
> Configuring library for plutus-tx-0.1.0.0..
> Preprocessing library for plutus-tx-0.1.0.0..
> Building library for plutus-tx-0.1.0.0..
> Configuring library for plutus-tx-plugin-0.1.0.0..
> Configuring library for plutus-ledger-api-0.1.0.0..
> Preprocessing library for plutus-ledger-api-0.1.0.0..
> Building library for plutus-ledger-api-0.1.0.0..
> Preprocessing library for plutus-tx-plugin-0.1.0.0..
> Building library for plutus-tx-plugin-0.1.0.0..
> [10 of 16] Compiling Language.PlutusTx.Compiler.Names ( src/Language/PlutusTx/Compiler/Names.hs, /Users/finley/dev/research/plutus/sandbox/dist-newstyle/build/x86_64-osx/ghc-8.10.2/plutus-tx-plugin-0.1.0.0/build/Language/PlutusTx/Compiler/Names.o, /Users/finley/dev/research/plutus/sandbox/dist-newstyle/build/x86_64-osx/ghc-8.10.2/plutus-tx-plugin-0.1.0.0/build/Language/PlutusTx/Compiler/Names.dyn_o ) [missing old dependency]
> 
> <no location info>: warning: [-Wunused-packages]
>     The following packages were specified via -package or -package-id flags,
>     but were not needed for compilation:
>       - hedgehog-1.0.4
> Configuring library for plutus-ledger-0.1.0.0..
> Preprocessing library for plutus-ledger-0.1.0.0..
> Building library for plutus-ledger-0.1.0.0..
> Configuring library for plutus-contract-0.1.0.0..
> Preprocessing library for plutus-contract-0.1.0.0..
> Building library for plutus-contract-0.1.0.0..
> Configuring library for plutus-sandbox-0.1.0.0..
> Preprocessing library for plutus-sandbox-0.1.0.0..
[INFO] Using interface files cache dir: ghcide
[INFO] Making new HscEnv[plutus-sandbox-0.1.0.0-inplace]
[1]    84315 segmentation fault   --debug ./src/Contracts/UseCases/Vesting.hs

@FinleyMcIlwaine
Copy link
Collaborator Author

FinleyMcIlwaine commented Feb 3, 2021

@Ailrun I'm no good at retrieving output from the language server in vim, but it entered another crash loop and then failed.

@Ailrun
Copy link
Member

Ailrun commented Feb 3, 2021

It does not crash for the command too. Maybe MacOS specific?

@FinleyMcIlwaine
Copy link
Collaborator Author

Could be! Tried some different versions in vim and again it starts crashing sometime between 0.5.1 and 0.6.0.

@brightly-salty
Copy link

I also have this issue on macOS for VSCodium when I have Template Haskell in my project (from the lens or optics libraries).

@anmolitor
Copy link

anmolitor commented Apr 17, 2021

Having the same issue on Ubuntu WSL. When I comment out the template haskell code, hls runs normally.
Output of hls with debug flag:

/home/andreasewering/.ghcup/bin/haskell-language-server-8.10.2 --debug
haskell-language-server version: 0.7.0.0 (GHC: 8.10.2) (PATH: /home/andreasewering/.ghcup/bin/haskell-language-server-8.10.2~0.7.0) (GIT hash: 6a692de3308c06d8eb7bdf0f7b8a35b6e9a92610)
(haskell-language-server)Ghcide setup tester in /home/andreasewering/haskell/backend.
Report bugs at https://github.com/haskell/haskell-language-server/issues

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


Step 1/4: Finding files to test in /home/andreasewering/haskell/backend
Found 5 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
[INFO] Consulting the cradle for "src/Repo/Db.hs"
Output from setting up the cradle Cradle {cradleRootDir = "/home/andreasewering/haskell/backend", cradleOptsProg = CradleAction: Stack}
> Using main module: 1. Package `backend' component backend:exe:app-exe with main-is file: /home/andreasewering/haskell/backend/app/Main.hs
> The following GHC options are incompatible with GHCi and have not been passed to it: -threaded
> Configuring GHCi with the following packages: backend
> /home/andreasewering/haskell/backend/.stack-work/install/x86_64-linux-tinfo6/7d99961756684272749c08360ea0bf41178f526716e5cc0f692917766cc200bd/8.10.2/pkgdb:/home/andreasewering/.stack/snapshots/x86_64-linux-tinfo6/7d99961756684272749c08360ea0bf41178f526716e5cc0f692917766cc200bd/8.10.2/pkgdb:/home/andreasewering/.stack/programs/x86_64-linux/ghc-tinfo6-8.10.2/lib/ghc-8.10.2/package.conf.d
[INFO] Using interface files cache dir: ghcide
[INFO] Making new HscEnv[main]
[INFO] Consulting the cradle for "Setup.hs"
Output from setting up the cradle Cradle {cradleRootDir = "/home/andreasewering/haskell/backend", cradleOptsProg = CradleAction: Stack}
COMMON symbol, size 96 name batch_point_buffer allocated at 0x44a94000
Segmentation fault

@anmolitor
Copy link

I tried this with GHC 8.8.4, 8.10.2 and 8.10.4. The output for the other 2 versions was almost identical, just the second to last line was missing.

@brightly-salty
Copy link

I'm not familiar with HLS internals but I would love to help fix this issue if a lack of volunteers is the problem because it is a daily annoyance to have to choose between Template Haskell and a nice IDE experience.

@Ailrun
Copy link
Member

Ailrun commented Apr 17, 2021

@andreasewering It's a segfault problem, so probably unrelated to this; maybe to do with #800?

@jneira
Copy link
Member

jneira commented Apr 19, 2021

Comment from #1342 tham might be useful:

FWIW, I just relaunched VSCode to pick up 1.0.0 and immediately after the automatic update, the project seemed to be working fine. However, as soon as I relaunched VSCode I was back to the same behaviour. So, there's perhaps some difference in what happens during/post update vs the full reset when starting up normally.

@jneira
Copy link
Member

jneira commented Apr 19, 2021

I'm not familiar with HLS internals but I would love to help fix this issue if a lack of volunteers is the problem because it is a daily annoyance to have to choose between Template Haskell and a nice IDE experience.

@brightly-salty that would be really awesome; sadly i have not the required knowledge of hls+ghc to tacke this neither. Maybe an issue in the ghc issue tracker could help 🤔

@FrankC01
Copy link

FrankC01 commented Jul 1, 2021

Having this problem as well, where it reports crashing 5 times in 3 minutes.

Big Sur (11.04)
nix (2.3.13)
haskell-language-server (1.1.0.0)
ghcide (1.0.0.0)
ghc (8.10.4.20210212)
vscode (1.54)
Haskell extension (1.4.0)
Haskell Syntax Highlighting (3.4.0)
haskell-linter (0.0.6)

@GustavoMatheus
Copy link

I was having the error The Haskell <project_name> server crashed 5 times in the last 3 minutes. The server will not be restarted on my VSCode. After deleting the file hie.yaml from my project's folder the haskell-language-server started to work again. I hope this helps.

@re-xyr
Copy link

re-xyr commented Aug 22, 2021

I encountered the very same problem with optics library. Weirdly, lens worked well.

@konnik
Copy link

konnik commented Nov 18, 2021

I get the same problem with HLS crashes when opening this project in VSCode:
https://github.com/eckyputrady/haskell-scotty-realworld-example-app

I'm running the vscode extension with default settings. The project i being built using stack (and the built application runs just fine). Operating system is Linux Mint 19.1 Cinnamon.

Would love to help doing som diagnostics but pretty new to the whole Haskell ecosystem so I will need some direction.

@jneira
Copy link
Member

jneira commented Nov 18, 2021

@konnik and the rest of reporters i wonder if the workaround of using a hls version dinamically linked could help here too, see

#1431 (comment)

@jneira
Copy link
Member

jneira commented Jan 31, 2022

I am gonna close this issue as all compiler crashes seems to have the same root cause:

If any of you think the issue should not be included generically feel free to reopen it (with a brief explanation if possible)
Thanks all!

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

No branches or pull requests