GHC 9.2.1-alpha1 now available

The GHC developers are very happy to announce the availability of the first alpha release in the 9.2.1 series. Binary distributions, source distributions, and documentation are available from downloads.haskell.org.

GHC 9.2 will bring a number of exciting features including:

  • Many changes in the area of records, including the new RecordDotSyntax and NoFieldSelectors language extensions, as well as Support for DuplicateRecordFields with PatternSynonyms.

  • Introduction of the new GHC2021 language extension set, giving users convenient access to a larger set of language extensions which have been long considered stable.

  • Merge of ghc-exactprint into the GHC tree, providing infrastructure for source-to-source program rewriting out-of-the-box.

  • Introduction of a BoxedRep RuntimeRep, allowing for polymorphism over levity of boxed objects (#17526)

  • Implementation of the UnliftedDataTypes extension, allowing users to define types which do not admit lazy evaluation

  • The new -hi profiling mechanism which provides significantly improved insight into thunk leaks.

  • Support for the ghc-debug out-of-process heap inspection library

  • Support for profiling of pinned objects with the cost-centre profiler (#7275)

  • Introduction of Haddock documentation support in TemplateHaskell (#5467)

In addition, the final 9.2.1 release will bring a new native code generator for ARM, providing fast, first-class for Haskell on Apple ARM hardware, although this functionality is not yet present in this alpha.

As always, do give this a try and open a ticket if you see anything amiss.

Happy testing!

26 Likes

Awesome! Lots of cool stuff in there.

Can you comment on the state of this unsafePerformIO issue?

Is it addressed in 9.2.1-alpha1? Is there an expected release date for 9.0.2 with the backported fix?

[Edit]: answers are “yes” and “shortly”

The same question was asked in the r/haskell thread: https://www.reddit.com/r/haskell/comments/mhzf9l/announce_ghc_921alpha1_now_available/gt2kz85/

1 Like

I’m curious why this is not called 9.1.x. Do odd-numbered releases exist at all?

First off: fantastic!!

Second, I’m having two problems installing on Mac OS with M1 chip (I’m a noob).

PROBLEM1 (permissions)

➜ ghc-9.2.0.20210331 make install
/Applications/Xcode.app/Contents/Developer/usr/bin/make --no-print-directory -f ghc.mk install BINDIST=YES NO_INCLUDE_DEPS=YES
Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/4.2.1
/usr/bin/install -c -m 755 -d “/usr/local/bin”
install: chmod 755 /usr/local/bin: Operation not permitted
“rm” -f “/usr/local/bin/hp2ps”
rm: /usr/local/bin/hp2ps: Permission denied
make[1]: *** [install_utils/hp2ps_dist-install_wrapper] Error 1
make: *** [install] Error 2

ATTEMPTED SOLUTION: use sudo, even though this is not recommended (???)

PROBLEM 2. I use sudo, but then get this annoying Apple message:

“ghc-cabal cannot be opened because the developer cannot be verified …”

My only options are “Cancel”, “Move to trash” (Ugh!)

I can’t find a more authoritative source, but GHC releases are always even numbers: 9.2, 9.0, 8.10, 8.8, and so on.

1 Like

And answered, nice. Answers are “yes” and “shortly”.

Odd numbers are used for development versions (i.e. 9.1… refers to a development version later than the 9.0.1 release branch and earlier than the 9.2.1 branch). This was discussed recently on ghc-devs: https://mail.haskell.org/pipermail/ghc-devs/2021-March/019575.html

1 Like

I think I was insufficiently clear. I know that GHC stable releases are always even-numbered. I’m just wondering why instead of an alpha release being called 9.2.1-alpha1 it not be called 9.1.x. Anyway, this is a just a minor curiosity of no real importance.

It is indeed addressed in 9.2.1-alpha1. A 9.0.2 release with the same fix should be out soon; I just need to sort out a regression in text first.

1 Like

It sounds like this is due to the fact that the binary distribution is not notarized. Try running xattrs -cd on the extracted binary distribution directory before attempting to install.