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).
- A host of new language features: closed type families, pattern synonyms, roles, typed holes, and a basic solver for type-level natural numbers. There's also a completely upgraded version of Template Haskell, now with both typed and untyped flavours.
- 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.