CabalとStackでSiskuの挙動が違う問題
SiskuのCommonIndexerがおかしい。 siskuのソースコードでsisku index-lspを走らせると、textDocument/documentSymbolsがsrc/以下だけRight []を返す。
完全に謎。解析が終わる前だと空リストを返すとか?
cabalだと↑になるが、stackのLTS Haskell 20.4でやるとうまく動いた。ぎゃ〜〜〜
ghc(ライブラリ)が悪さをしてる気がするな
一応、stackageからfreezeを生成してみるか…
processかconduitが怪しい気がする
stackでだけstack testがBroken pipeで失敗する件と無関係とは思えない。
これか?
再現する最小セットを作ってみるべきかも
プロセスとパイプについてもっと詳しく調べてみる?
UNIXの本とか見てみるか
そもそも、インデクサはJavaScriptでVSCodeの資産を使って開発するのが妥当かもしれない。
パット見これだけ抜き出して使えるっぽく見える
できないのかと思ってた。そんなわけないよな。
(1) ./dist-newstyle/build/aarch64-osx/ghc-9.2.5/sisku-0.1.0.0/x/sisku/build/sisku/sisku index-lsp
うまく動く
(2) cabal exec sisku -- index-lsp
うまく動かない
(3) ./.stack-work/install/aarch64-osx/86783ce4ce82bcdef394ee5cce8b6a0b43efe3209f6e93423bcf56645dce75a0/9.2.5/bin/sisku index-lsp
うまく動くが、(1)とはちょっと挙動が違う気がする
(4) stack exec sisku -- index-lsp
うまく動く
(5) cabal run sisku -- index-lsp
うまく動く
.cabalを消してみる
もう一度ビルドし直すと、cabal exec sisku -- index-lspがBroken pipeするようになった。cabal testも。
stack testもBroken pipeする。
な〜んにも動かなくなった
そもそもhaskell-language-serverが動いてない!そりゃそうだ(.cabalを消したから)
test-serverで失敗するのも、動的リンクの関係なのかな?
macOS固有の問題?
docker上でもstack testはBroken pipeするね
code:txt
dyld52693: Library not loaded: @rpath/libHShskll-lngg-srvr-1.8.0.0-eeace93f-ghc9.2.5.dylib Referenced from: <732511BA-26E3-367C-80B3-9E9CA03DFF20> /Users/yuya/.ghcup/bin/haskell-language-server-9.2.5~1.8.0.0
Reason: tried: '/Users/yuya/.cabal/store/ghc-9.2.5/lib/libHShskll-lngg-srvr-1.8.0.0-eeace93f-ghc9.2.5.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/Users/yuya/.cabal/store/ghc-9.2.5/lib/libHShskll-lngg-srvr-1.8.0.0-eeace93f-ghc9.2.5.dylib' (no such file), '/Users/yuya/.ghcup/ghc/9.2.5/lib/ghc-9.2.5/lib/../lib/aarch64-osx-ghc-9.2.5/libHShskll-lngg-srvr-1.8.0.0-eeace93f-ghc9.2.5.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/Users/yuya/.ghcup/ghc/9.2.5/lib/ghc-9.2.5/lib/../lib/aarch64-osx-ghc-9.2.5/libHShskll-lngg-srvr-1.8.0.0-eeace93f-ghc9.2.5.dylib' (no such file), '/Users/yuya/.cabal/store/ghc-9.2.5/lib/libHShskll-lngg-srvr-1.8.0.0-eeace93f-ghc9.2.5.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/Users/yuya/.cabal/store/ghc-9.2.5/lib/libHShskll-lngg-srvr-1.8.0.0-eeace93f-ghc9.2.5.dylib' (no such file), '/Users/yuya/.ghcup/ghc/9.2.5/lib/ghc-9.2.5/lib/../lib/aarch64-osx-ghc-9.2.5/libHShskll-lngg-srvr-1.8.0.0-eeace93f-ghc9.2.5.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/Users/yuya/.ghcup/ghc/9.2.5/lib/ghc-9.2.5/lib/../lib/aarch64-osx-ghc-9.2.5/libHShskll-lngg-srvr-1.8.0.0-eeace93f-ghc9.2.5.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS@rpath/libHShskll-lngg-srvr-1.8.0.0-eeace93f-ghc9.2.5.dylib' (no such file), '/Users/yuya/.cabal/store/ghc-9.2.5/lib/libHShskll-lngg-srvr-1.8.0.0-eeace93f-ghc9.2.5.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/Users/yuya/.cabal/store/ghc-9.2.5/lib/libHShskll-lngg-srvr-1.8.0.0-eeace93f-ghc9.2.5.dylib' (no such file), '/Users/yuya/.ghcup/ghc/9.2.5/lib/ghc-9.2.5/lib/../lib/aarch64-osx-ghc-9.2.5/libHShskll-lngg-srvr-1.8.0.0-eeace93f-ghc9.2.5.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/Users/yuya/.ghcup/ghc/9.2.5/lib/ghc-9.2.5/lib/../lib/aarch64-osx-ghc-9.2.5/libHShskll-lngg-srvr-1.8.0.0-eeace93f-ghc9.2.5.dylib' (no such file), '/Users/yuya/.cabal/store/ghc-9.2.5/lib/libHShskll-lngg-srvr-1.8.0.0-eeace93f-ghc9.2.5.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/Users/yuya/.cabal/store/ghc-9.2.5/lib/libHShskll-lngg-srvr-1.8.0.0-eeace93f-ghc9.2.5.dylib' (no such file), '/Users/yuya/.ghcup/ghc/9.2.5/lib/ghc-9.2.5/lib/../lib/aarch64-osx-ghc-9.2.5/libHShskll-lngg-srvr-1.8.0.0-eeace93f-ghc9.2.5.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/Users/yuya/.ghcup/ghc/9.2.5/lib/ghc-9.2.5/lib/../lib/aarch64-osx-ghc-9.2.5/libHShskll-lngg-srvr-1.8.0.0-eeace93f-ghc9.2.5.dylib' (no such file), '/usr/local/lib/libHShskll-lngg-srvr-1.8.0.0-eeace93f-ghc9.2.5.dylib' (no such file), '/usr/lib/libHShskll-lngg-srvr-1.8.0.0-eeace93f-ghc9.2.5.dylib' (no such file, not in dyld cache)
zsh: abort haskell-language-server-wrapper