The GHC team is very pleased to announce the availability of GHC 9.6.1-alpha1.
As usual, binaries and source distributions are available at downloads.haskell.org.
This is the first alpha release in the 9.6 series which will bring a number of
exciting features:
A new Javascript code generation backend
A new WebAssembly code generation backend,
Significant latency improvements in the non-moving garbage collector
Support for loading of multiple components in GHCi
Efficient support for delimited continuations
Improvements in error messages
Numerous improvements in compiler-residency
Note that both the Javascript and WebAssembly backends are still in a state of
infancy and are present in this release as a technology preview; we hope that
they will mature considerably before the final 9.6.1 release.
Please give this release a try and open a ticket if you see anything
amiss.
I’m not sure if this is a GHC problem or a GHCup problem, but I was unable to install GHC 9.6.1-alpha1 on ARM64. I ran ghcup install ghc 9.6.0.20230111 --set and got an error that said:
Both installation and setting the tool failed. Install error was: Tar directory does not exist: ghc-9.6.0.20230111-x86_64-unknown-linux
This is the first time we are generating the metadata automatically on normal GHC pipelines and it is a bug in this automatic generation script. Totally my fault, thanks for pointing it out. I have corrected it so that it won’t happen again. Once I am back from my holiday next week I will extend our CI testing to test installation on aarch64 as well as x86 (which would have caught this bug).
Here is the corrected metadata if you wish to try manually.
If anyone wants to try out GHC 9.6.1-alpha1 inside a Docker container, you should be able to use this image: public.ecr.aws/acilearning/haskell:9.6.0.20230111-7714b1adf6210c8a235445693a455d4ee2e34dba.
There seems to be another error in the metadata for Mac.
On AArch64:
% ghcup config add-release-channel https://gist.githubusercontent.com/mpickering/b0b86998d1fc94711294edd0127ae16f/raw/862357134ea4b4bbc4b55f34889af7b2f610e35f/metadata_test.yaml
% ghcup install ghc 9.6.0.20230111
[ Info ] downloading: https://downloads.haskell.org/~ghc/9.6.0.20230111/ghc-9.6.0.20230111-aarch64-apple-darwin.tar.xz as file $HOME/.ghcup/tmp/ghcup-8791572735447784/ghc-9.6.0.20230111-aarch64-apple-darwin.tar.xz
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 194M 100 194M 0 0 3369k 0 0:00:59 0:00:59 --:--:-- 3477k
[ Info ] verifying digest of: ghc-9.6.0.20230111-aarch64-apple-darwin.tar.xz
[ Info ] Unpacking: ghc-9.6.0.20230111-aarch64-apple-darwin.tar.xz to $HOME/.ghcup/tmp/ghcup-dfd9c7cf08f383d1
[ Error ] [GHCup-00190] Tar directory does not exist: ghc-9.6.0.20230111-aarch64-unknown-darwin
[ Error ] Also check the logs in $HOME/.ghcup/logs
On x86_64:
[ Info ] Unpacking: ghc-9.6.0.20230111-x86_64-apple-darwin.tar.xz to $HOME/.ghcup/tmp/ghcup-48d21ded3bcaf875
[ Error ] Tar directory does not exist: ghc-9.6.0.20230111-x86_64-unknown-darwin
The directory name is ghc-9.6.0.20230111-{x86_64,aarch64}-apple-darwin instead of *-unknown-*.
I’m excited about this one. The inability to get the fast ghcid-based feedback loop made me resort to weird hacks with many common stanzas (like in https://github.com/nomeata/kaleidogen/blob/master/kaleidogen.cabal) instead of just using internal libraries, so maybe that’s possible now.