GHC 7.8 first release candidate

Austin Seipp – Monday, 03 February 2014

all ghc  

This is the first blog post by our colleague Austin. Austin is one of our GHC engineers, part of the GHC HQ team and carries the heavy burden of being GHC release manager.

Today, GHC 7.8.1 RC1 has been released after many months of work, with a huge number of new features.

There are some great highlights in the new release, including:

  • A host of I/O manager improvements, which results in significantly better scalability on multicore machines (up to 32 to 40 cores).
  • The new code generator is now live. There are some new and improved optimizations, like better support for turning self-recursive tail calls into loops. Along with that, there's some preliminary support for SIMD operations in the LLVM backend, and other optimization improvements.
  • Improvements to the compiler and build system, including a parallel ghc --make -j, and significantly better (but not yet perfect) cross compilation support. We've also merged full iOS support, so it should be possible to build an iOS compiler with the main tree.
  • Dozens of other improvements, new features, and tons of fixed bugs (OS X 10.9 support, dynamic GHCi, Applicative-Monad warnings, etc).

See the release notes for the full details.

You can download the sources or pre-built binaries for your platform.

How big has this release been? The other day I did an approximated diffstat between the 7.6 and 7.8 branches:

2784 non-merge changesets
964 files changed, 99952 insertions(+), 116187 deletions(-)

That's just in GHC itself, not including the extra repositories. We've had contributions from over 70 people this release, including 15 new committers in 2013 and 2014. As always, GHC HQ and our many other contributors have yet more stuff planned for the future (Overloaded Record Fields, Applicative Do, further integer-gmp optimizations, and more type system features).

This release includes over a year of hard work by many people, and hopefully it will turn out to be a great release (finally). But please try the RC — it's much easier for us to fix bugs before it's done!

And on that note: we're planning on doing an RC2 soon, as we know there are some current issues for people using platforms like OS X Mavericks, and packages like lens. As we've learned, there's eventually diminishing returns, so we're getting it out now in the hopes we can swat the last few things swiftly with your help.