haskell-ide-engine icon indicating copy to clipboard operation
haskell-ide-engine copied to clipboard

.hsc files with C headers unsupported? or broken?

Open complyue opened this issue 4 years ago • 4 comments

$ git https://github.com/haskell/network.git
$ code network

Then from VSCode open Network/Socket/Posix/CmsgHdr.hsc

Got a problem reported:

{
	"resource": "/qw/ews/network/Network/Socket/Posix/CmsgHdr.hsc",
	"owner": "Haskell HIE (network)",
	"severity": 8,
	"message": "target ‘/qw/ews/network/Network/Socket/Posix/CmsgHdr.hsc’ is not a module name or a source file\n",
	"source": "bios",
	"startLineNumber": 1,
	"startColumn": 1,
	"endLineNumber": 2,
	"endColumn": 1
}

Shown in OUTPUT panel - Haskell HIE (network):

[client] run command = "hie-wrapper --lsp"
[client] debug command = "hie-wrapper --lsp"
2020-05-06 23:35:33.063356 [ThreadId 4] - run entered for hie-wrapper(hie-wrapper) Version 1.4 x86_64 ghc-8.6.5
2020-05-06 23:35:33.064089 [ThreadId 4] - Current directory:/qw/ews/network
2020-05-06 23:35:33.064143 [ThreadId 4] - Operating system:darwin
2020-05-06 23:35:33.064191 [ThreadId 4] - args:["--lsp"]
2020-05-06 23:35:33.065923 [ThreadId 4] - Cabal-Helper decided to use: ProjLocStackYaml {plStackYaml = "/qw/ews/network/stack.yaml"}
2020-05-06 23:35:33.065993 [ThreadId 4] - Module "/qw/ews/network/File.hs" is loaded by Cradle: Cradle {cradleRootDir = "/qw/ews/network", cradleOptsProg = CradleAction: Other Stack}
2020-05-06 23:35:33.066045 [ThreadId 4] - Cradle directory:/qw/ews/network
2020-05-06 23:35:33.066218 [ThreadId 4] - Executing Stack GHC with args: --numeric-version
2020-05-06 23:35:33.496944 [ThreadId 4] - Project GHC version:8.6.5
2020-05-06 23:35:33.497036 [ThreadId 4] - hie exe candidates :["hie-8.6.5","hie-8.6","hie"]
2020-05-06 23:35:33.497825 [ThreadId 4] - found hie exe at:/Users/cyue/.cabal/bin/hie-8.6.5
2020-05-06 23:35:33.497883 [ThreadId 4] - args:["--lsp"]
2020-05-06 23:35:33.497933 [ThreadId 4] - launching ....



2020-05-06 23:35:33.515663 [ThreadId 4] - Run entered for HIE(hie-8.6.5) Version 1.4 x86_64 ghc-8.6.5
2020-05-06 23:35:33.516312 [ThreadId 4] - Operating as a LSP server on stdio
2020-05-06 23:35:33.516366 [ThreadId 4] - Current directory:/qw/ews/network
2020-05-06 23:35:33.516413 [ThreadId 4] - Operating system:darwin
2020-05-06 23:35:33.516455 [ThreadId 4] - args:["--lsp"]
2020-05-06 23:35:33.550325 [ThreadId 4] - Cabal-Helper decided to use: ProjLocStackYaml {plStackYaml = "/qw/ews/network/stack.yaml"}
2020-05-06 23:35:33.550426 [ThreadId 4] - Module "/qw/ews/network/File.hs" is loaded by Cradle: Cradle {cradleRootDir = "/qw/ews/network", cradleOptsProg = CradleAction: Other Stack}
2020-05-06 23:35:33.550648 [ThreadId 4] - Executing Stack GHC with args: --numeric-version
2020-05-06 23:35:33.916513 [ThreadId 9] - Executing Stack GHC with args: --print-libdir
Using hie version: Version 1.4 x86_64 ghc-8.6.5
2020-05-06 23:35:34.314191 [ThreadId 14] - New cradle: /qw/ews/network/Network/Socket/Posix/CmsgHdr.hsc
2020-05-06 23:35:34.316065 [ThreadId 14] - Cabal-Helper decided to use: ProjLocStackYaml {plStackYaml = "/qw/ews/network/stack.yaml"}
2020-05-06 23:35:34.316128 [ThreadId 14] - Module "/qw/ews/network/Network/Socket/Posix/CmsgHdr.hsc" is loaded by Cradle: Cradle {cradleRootDir = "/qw/ews/network", cradleOptsProg = CradleAction: Other Stack}
2020-05-06 23:35:34.316193 [ThreadId 14] - Found cradle: Cradle {cradleRootDir = "/qw/ews/network", cradleOptsProg = CradleAction: Other Stack}
Using hoogle db at: /Users/cyue/.hoogle/default-haskell-5.0.17.hoo
2020-05-06 23:35:37.599572 [ThreadId 19] - Cradle set succesfully
Warning: Can't find file "HsNet.h" in directories
	/private/var/folders/mz/mgxdtrgj3v1372vjd7tt6l_00000gn/T/haskell-lsp20481
	.
  Asked for by: /private/var/folders/mz/mgxdtrgj3v1372vjd7tt6l_00000gn/T/haskell-lsp20481/CmsgHdr.hsc-00000-3132707331887361086.hs  at line 3 col 1
Warning: Can't find file "sys/types.h" in directories
	/private/var/folders/mz/mgxdtrgj3v1372vjd7tt6l_00000gn/T/haskell-lsp20481
	.
  Asked for by: /private/var/folders/mz/mgxdtrgj3v1372vjd7tt6l_00000gn/T/haskell-lsp20481/CmsgHdr.hsc-00000-3132707331887361086.hs  at line 11 col 1
Warning: Can't find file "sys/socket.h" in directories
	/private/var/folders/mz/mgxdtrgj3v1372vjd7tt6l_00000gn/T/haskell-lsp20481
	.
  Asked for by: /private/var/folders/mz/mgxdtrgj3v1372vjd7tt6l_00000gn/T/haskell-lsp20481/CmsgHdr.hsc-00000-3132707331887361086.hs  at line 12 col 1
2020-05-06 23:35:37.797409 [ThreadId 14] - New cradle: /qw/ews/network/Network/Socket/Posix/CmsgHdr.hsc
2020-05-06 23:35:37.799676 [ThreadId 14] - Cabal-Helper decided to use: ProjLocStackYaml {plStackYaml = "/qw/ews/network/stack.yaml"}
2020-05-06 23:35:37.799733 [ThreadId 14] - Module "/qw/ews/network/Network/Socket/Posix/CmsgHdr.hsc" is loaded by Cradle: Cradle {cradleRootDir = "/qw/ews/network", cradleOptsProg = CradleAction: Other Stack}
2020-05-06 23:35:37.800297 [ThreadId 14] - Found cradle: Cradle {cradleRootDir = "/qw/ews/network", cradleOptsProg = CradleAction: Other Stack}
2020-05-06 23:35:40.724014 [ThreadId 197] - Cradle set succesfully

Adding an hie.yaml with

cradle: { cabal: {component: "lib:network"} }

does not solve it, basically the same error.

complyue avatar May 06 '20 15:05 complyue

It might be possible that this is related to Include directories. Relevant changes https://github.com/mpickering/hie-bios/pull/166. It is maybe fixed in the next-release of hie-bios, can I ping you when we are integrating the new changes in HIE?

fendor avatar May 06 '20 15:05 fendor

@fendor thanks for the information, you replied so quick! :)

of course please ping me.

complyue avatar May 06 '20 15:05 complyue

Confess I forgot that I had put

    "files.associations": {
        "*.hsc": "haskell"
    }

In my VSCode's user settings.json, or opening .hsc files won't trigger HIE loading at all.

So maybe this is really unsupported?

complyue avatar May 07 '20 04:05 complyue

It is definitely not officially supported. Pretty sure there some open issue already. Still, I am interested to know what would be necessary to support this.

fendor avatar May 07 '20 08:05 fendor