[ANN] Haskell Language Server 1.8.0.0 released

Just in time for the Haskell Symposium, HLS 1.8.0.0 has been released. The prebuilt binaries in this release support the following GHC versions:

  • 8.6.5
  • 8.8.4
  • 8.10.7
  • 9.0.2
  • 9.2.3
  • 9.2.4
  • 9.4.1
  • 9.4.2

These binaries can be installed using GHCup or version 2.0.0 and above of the VSCode extension or downloaded directly from here. Older versions of the VSCode extension will not attempt to download this version.

Changelog

  • Binaries for GHC 9.2.3 and GHC 9.2.4
  • Initial support for GHC 9.4 with binaries for GHC 9.4.1 and GHC 9.4.2
  • Startup time and performance improvements on projects using Template Haskell by serializing intermediate core (#2813)
  • Memory usage improvements due to using a packed representation for filepaths (#3067, @kokobd)
  • Improvements for hls-class-plugin (#2920, @July541)
  • The new hls-gadt-plugin (#2899, @July541)
  • Moving code actions from ghcide to the new hls-refactor-plugin (#3091, @wz1000)
  • Many more improvements and bug fixes thanks to our contributors!
32 Likes

Should there be an aarch64-linux binary? Maybe that’s too niche still?

3 Likes

I fails to start on Ubuntu Focal (20.0.4). Essentially, it looks for glibc-2.32, but Ubuntu Focal uses glibc-2.31. Manual update of glibc is needed as apt version is 2.31. I don’t trust myself updating such a library. Is there any chance a version compatible with glibc-2.31 is able?

1 Like

Try the debian 10 binaries: https://downloads.haskell.org/hls/haskell-language-server-1.8.0.0/haskell-language-server-1.8.0.0-x86_64-linux-deb10.tar.xz

Umm, I’ve been investigating. GHCup downloads fedora33 binaries. Shouldn’t it point to debian ones as Ubuntu is based on debian? (Honest question, distro jungle is a headache to me).

Also, do you know how to tell ghcup to download a different binary?

The aarch64-deb10 job timed out this time so I elected to proceed with the release without them. I’ve restarted the job now and will upload binaries if it completes successfully. There are aarch64-deb10 binaries available for HLS 1.7.0.0 though: https://downloads.haskell.org/hls/haskell-language-server-1.7.0.0/haskell-language-server-1.7.0.0-aarch64-linux-deb10.tar.xz

2 Likes

Shouldn’t it point to debian ones as Ubuntu is based on debian? (Honest question, distro jungle is a headache to me).

I’m not sure, it would be a good issue to open on the ghcup tracker. Keep in mind that alternate binaries will not work if it doesn’t match your GHC bindist, for example if your GHC bindist is fedora33 and you try to install the deb10 HLS bindist.

Also, do you know how to tell ghcup to download a different binary?

I think ghcup install hls -u <URL> 1.8.0.0 should do the trick.

1 Like

Interestingly, up to ghcup-metada ghc-8.10.7 uses fedora27 and hls-1.8.0 uses fedora33, but hls-1.7.0 uses fedora27, that would explain why hls-1.7 works but upgrading doesn’t… I don’t know what this really means actually :sweat_smile:

I think, I am not updating hls until I have better information. @hasufell sorry for spaming, but could you light the way?.

Hooray! Have been looking forward to this for a while! Thanks to everyone involved :slight_smile:

1 Like

Indeed. This did the trick for me

ghcup install hls -u https://downloads.haskell.org/~hls/haskell-language-server-1.8.0.0/haskell-language-server-1.8.0.0-x86_64-linux-deb10.tar.xz 1.8.0.0

And now I hls works.

Bump to what others have said in here, it seems ghcup is attempting to install incorrect binaries.

On windows I am getting this error upon running ghcup install hls 1.8.0.0:

[ Info  ] Unpacking: haskell-language-server-1.8.0.0-x86_64-windows.zip to C:\ghcup\tmp\ghcup-b829821325f0b3ce
[ Error ] Both installation and setting the tool failed. Install error was: Tar directory does not exist: haskell-language-server-1.8.0.0

It seems that there are two ways to get around this issue. Either download the correct binaries manually like Lsmor did here (not sure how this would work for windows):

Or stop the vscode force like agustmina did here (`hls-1.8.0.0` is broken on Ubuntu 20.04 due to missing GLIBC_2.34 · Issue #3160 · haskell/haskell-language-server · GitHub) by adding this to vscode’s settings.json:

"haskell.toolchain": {
      "hls" : "1.7.0.0"
    }
1 Like

The problem is that GHC stopped providing fedora27 bindists. So, some GHC versions on fedora use 27 glibc, some 33.

The only way to truly fix this is to add another build recipe to the release configuration that builds in an ubuntu docker container (both pre 19 and post 20).

Using Debian bindists may only work by accident, not by design. Same goes for Fedora. They just happened to coincide and we were lazy.

4 Likes

I believe this line,

dlSubdir: haskell-language-server-1.8.0.0

in ghcup-0.0.7.yaml is causing the install for windows to break with the following error:

[ Info  ] Unpacking: haskell-language-server-1.8.0.0-x86_64-windows.zip to C:\ghcup\tmp\ghcup-62cc8f558d600943
[ Error ] Both installation and setting the tool failed. Install error was: Tar directory does not exist: haskell-language-server-1.8.0.0
[ ...   ] Set error was: The version 1.8.0.0 of the tool hls is not installed.
1 Like

Already fixed: Fix windows HLS 1.8 · haskell/ghcup-metadata@c5d3930 · GitHub

5 Likes

Binaries here: https://downloads.haskell.org/~hls/haskell-language-server-1.8.0.0/haskell-language-server-1.8.0.0-aarch64-linux-deb10.tar.xz

2 Likes
1 Like

Ubuntu has been fixed: Fix ubuntu HLS 1.8.0.0 · haskell/ghcup-metadata@cea8655 · GitHub

Bindists are unofficial: Index of /ghcup/unofficial-bindists/haskell-language-server/1.8.0.0/

CI run: Bindist installation · haskell/ghcup-metadata@70f6aa4 · GitHub


To fix your existing installation run this:

ghcup rm hls 1.8.0.0
ghcup install hls 1.8.0.0
5 Likes

Just to let you know, I confirm it works on my machine

2 Likes

Thank you! This fixes HLS 1.8 on my Ubuntu 20.04.5 LTS installation too.