Open
Description
Your environment
- Host machine
- Debian 12
- Emacs 28.2 (installed via nix package manager)
- eglot
- VM
- Debian 12
- stack 2.13.1
- Haskell project with GHC 9.4.8
- HLS 2.5.0.0 installed via ghcup
What's wrong?
I'm working in Emacs running on the host over SSH (via emacs tramp-mode), editing files on the VM. When I try to start eglot, the Eglot buffer shows:
[stderr] 2023-12-16T14:14:07.984860Z | Debug | executing command: stack exec ghc -- --print-libdir
[internal] Sat Dec 16 16:14:08 2023:
(:message "Connection state changed" :change "exited abnormally with code 127\n")
----------b---y---e---b---y---e----------
[stderr] /usr/bin/haskell-language-server-9.4.8: error while loading shared libraries: libHSinteger-gmp-1.1-ghc9.4.8.so: cannot open shared object file: No such file or directory
However when I execute HLS from the cli in the VM it runs normally and just waits for JSON input.
This might be a problem in Tramp, but I'd very much appreciate any hints, what HLS is doing when it fails and where to find the code in HLS that fails.
When I lookup ldd ldd haskell-language-server-9.4.8
it says: "not a dynamic executable". So there must be some code somewhere in HLS that tries to dynamically load shared libraries and for some reason does not get the path right when called by Tramp.
Metadata
Metadata
Assignees
Labels
Type
Projects
Milestone
Relationships
Development
No branches or pull requests
Activity
thkoch2001 commentedon Dec 16, 2023
I now built HLS from git with
resolver: lts-21.23
andstack install
and eglot just worked.michaelpj commentedon Dec 18, 2023
Is there some template haskell code in the project? We need to build and load the TH dependencies in order to evaluate splices, so maybe that's where it's coming from?