Haskell Language Server 2.13.0.0

The HLS Team is proud to announce the 2.13.0.0 release of the Haskell Language Server!

Binaries for this release are available at
Index of /~hls/haskell-language-server-2.13.0.0/.

If you are using the vanilla channel these binaries can be installed using GHCup using the vanilla metadata channel. WARNING: Only use this if you also installed GHC via the vanilla channel.

ghcup --url-source=https://raw.githubusercontent.com/haskell/ghcup-metadata/master/ghcup-vanilla-0.0.9.yaml install hls 2.13.0.0

All of these tarballs have associated GPG signatures. The signature should be from Hannes Siebenhandl <hannes.siebenhandl@posteo.net> (key ID 9849506453CA97E75F505D054EF829564CA34FC8).

The prebuilt binaries in this release support the following GHC versions:

  • 9.6.7
  • 9.8.4
  • 9.10.3
  • 9.12.2
  • 9.14.1

ChangeLog

Support for GHC 9.14.1 is preliminary, some plugins are not yet support but will
be in the future.
Plugins that are expected to be supported in a later release:

  • hls-hlint-plugin
  • hls-ormolu-plugin
  • hls-fourmolu-plugin
  • hls-stylish-haskell-plugin

See the plugin support table and GHC version support table for an overview of supported GHC versions and plugins.

Full Changelog is available on Github: Release 2.13.0.0 · haskell/haskell-language-server · GitHub

30 Likes

Since I’m seeing upstreams regularly promote the vanilla channel, I want to make this very clear from GHCup maintainers perspective: the vanilla channel is not recommended for most users.

It does receive only the most minimal QA from the GHCup maintainers.

Mixing vanilla with the default channel can lead to a broken experience (ABI mismatch between GHC and HLS), so the suggested “one-shot” installation method that the post above suggests is definitely not proper.

If you switch channels, you should do so with permanent configuration. The best way is to remove all of GHCup and run the installation script again, then make your choice when asked for which distribution channel to use.

3 Likes

Is there a more correct method of using GHCup to install a version of HLS that’s not yet in the default channel? I used:

ghcup install hls --url https://github.com/haskell/haskell-language-server/releases/download/2.13.0.0/haskell-language-server-2.13.0.0-aarch64-apple-darwin.tar.xz 2.13.0.0

No, because we need to ensure ABI compatibility. That doesn’t work reliably if you mix default and vanilla.

If you are using a ghcup provided GHC from the default channel, and want a HLS version that is not yet released on ghcups default channel, your only choice is to build hls from source and set things up so your self-built hls executable is used as I understand it.

1 Like

Compiling HLS from source works very well via ghcup (see ghcup compile hls --help).

I remember some dicussion where some of us were wondering if we should be distributing such binaries at all. It’s indeed not trivial. If users have an easy ad-hoc way of compiling GHC API dependent binaries of different versions… is that not enough?

This would also go for the new debugger. But I don’t know what end users think of that. I think for power users this is an ok UX. But for casual or completely new users, I’m not sure.

3 Likes

Thanks for the correction, and for GHCup!

I guess as an end-user I’m not interested in the gnarly bits like ABI compatibility. I just want to install HLS :slightly_smiling_face: I understand this is not something you can fix though.

Hence why you should stick to one channel then, otherwise the gnarly ABI compatibility will become interested in you :wink:

4 Likes

Yeah. The shiny new version is so attractive though… :upside_down_face:

Great news, you can install it from ghcup’s official channel :wink: