-
Notifications
You must be signed in to change notification settings - Fork 63
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
Name of executable (why -wrapper?) #101
Comments
If you install hls the expected way, via downloading the executables using ghcup, you actually end up with a set of binaries, one per GHC version, and one called The wrapper exe works out which GHC version is used for the file/project being opened, and then execs the appropriate GHC-specific haskell-language-server version. |
Indeed. In other words.
Without the Oversimplification: wrapper :: GhcVer -> IO Hls
wrapper ghcVer = (\v -> interfaceWith v $ runFor v $ compileTo v $ implementHlsFor v) ghcVer If you want - they essentially recreate the static environment for themself (as Nix project envs do), and consistent single entry point for us. The downside - is that we need to load and store several HLS backends, just like in Nix downside.:
If The upside - they have the same frontend executable entry point and the perfect HLS-for-GHC pairings so HLS works for everybody. And they have lightweight wrapper that supports everybody, without the need for anyone to force into learn/maintain Nix, have coupling/maintenance of revs and coupling on Nixpkgs version resolutions and so on. Their simple solution so far works for everybody. Otherwise, they would've needed support the Cartesian product of Haskell envs possible. And with the Haskell env ecosystem fragmentation and nuances... they need a wrapper simplification to abstract from it. The existence and reliance on the wrapping of HLS is a Haskell env ecosystem fragmentation question and HLS upstream implementation simplification, it is not Emacs |
I've proposed something in #169 following @michaelpj proposal |
lsp-haskell/lsp-haskell.el
Lines 162 to 166 in 5d3f481
I am trying to set up the
haskell-language-server
, and I’m wondering why the default executable name in this module is calledhaskell-language-server-wrapper
instead of justhaskell-language-server
. As far as I can see the latter is how hls expects users to call the binary.The text was updated successfully, but these errors were encountered: