ANNOUNCE: GHC version 6.12.1

Ian Lynagh igloo at
Mon Dec 14 08:36:14 EST 2009

    The (Interactive) Glasgow Haskell Compiler -- version 6.12.1

The GHC Team is pleased to announce a new major release of GHC. There
have been a number of significant changes since the last major release,

* Considerably improved support for parallel execution. GHC 6.10 would
  execute parallel Haskell programs, but performance was often not very
  good. Simon Marlow has done lots of performance tuning in 6.12,
  removing many of the accidental (and largely invisible) gotchas that
  made parallel programs run slowly.

* As part of this parallel-performance tuning, Satnam Singh and Simon
  Marlow have developed ThreadScope, a GUI that lets you see what is
  going on inside your parallel program. It's a huge step forward from
  "It takes 4 seconds with 1 processor, and 3 seconds with 8 processors;
  now what?". ThreadScope will be released separately from GHC, but at
  more or less the same time as GHC 6.12.

* Dynamic linking is now supported on Linux, and support for other
  platforms will follow. Thanks for this most recently go to the
  Industrial Haskell Group who pushed it into a fully-working state;
  dynamic linking is the culmination of the work of several people over
  recent years. One effect of dynamic linking is that binaries shrink
  dramatically, because the run-time system and libraries are shared.
  Perhaps more importantly, it is possible to make dynamic plugins from
  Haskell code that can be used from other applications.

* The I/O libraries are now Unicode-aware, so your Haskell programs
  should now handle text files containing non-ascii characters, without
  special effort.

* The package system has been made more robust, by associating each
  installed package with a unique identifier based on its exposed ABI.
  Now, cases where the user re-installs a package without recompiling
  packages that depend on it will be detected, and the packages with
  broken dependencies will be disabled. Previously, this would lead to
  obscure compilation errors, or worse, segfaulting programs.

  This change involved a lot of internal restructuring, but it paves the
  way for future improvements to the way packages are handled. For
  instance, in the future we expect to track profiled packages
  independently of non-profiled ones, and we hope to make it possible to
  upgrade a package in an ABI-compatible way, without recompiling the
  packages that depend on it. This latter facility will be especially
  important as we move towards using more shared libraries.

* There are a variety of small language changes, including
  * Some improvements to data types: record punning, declaring
    constructors with class constraints, GADT syntax for type families
  * You can omit the "$" in a top-level Template Haskell splice, which
    makes the TH call look more like an ordinary top-level declaration
    with a new keyword.
  * We're are deprecating mdo for recursive do-notation, in favour of
    the more expressive rec statement.
  * We've concluded that the implementation of impredicative polymorphism
    is unsustainably complicated, so we are re-trenching. It'll be
    deprecated in 6.12 (but will still work), and will be either removed
    or replaced with something simpler in 6.14.

The full release notes are here:

How to get it

The easy way is to go to the web page, which should be self-explanatory:

We supply binary builds in the native package format for many
platforms, and the source distribution is available from the same

Packages will appear as they are built - if the package for your
system isn't available yet, please try again later.


Haskell is a standard lazy functional programming language; the
current language version is Haskell 98, agreed in December 1998 and
revised December 2002.

GHC is a state-of-the-art programming suite for Haskell.  Included is
an optimising compiler generating good code for a variety of
platforms, together with an interactive system for convenient, quick
development.  The distribution includes space and time profiling
facilities, a large collection of libraries, and support for various
language extensions, including concurrency, exceptions, and foreign
language interfaces (C, whatever).  GHC is distributed under a
BSD-style open source license.

A wide variety of Haskell related resources (tutorials, libraries,
specifications, documentation, compilers, interpreters, references,
contact information, links to research groups) are available from the
Haskell home page (see below).

On-line GHC-related resources

Relevant URLs on the World-Wide Web:

GHC home page    
GHC developers' home page
Haskell home page

Supported Platforms

The list of platforms we support, and the people responsible for them,
is here:

Ports to other platforms are possible with varying degrees of
difficulty.  The Building Guide describes how to go about porting to a
new platform:


We welcome new contributors.  Instructions on accessing our source
code repository, and getting started with hacking on GHC, are
available from the GHC's developer's site run by Trac:

Mailing lists

We run mailing lists for GHC users and bug reports; to subscribe, use
the web interfaces at

There are several other haskell and ghc-related mailing lists on; for the full list, see

Some GHC developers hang out on #haskell on IRC, too:

Please report bugs using our bug tracking system.  Instructions on
reporting bugs can be found here:

More information about the Glasgow-haskell-users mailing list