It currently supports the entire Haskell 98 language and a wide variety of language extensions.
Here are some key features of "Glasgow Haskell Compiler":
· GHC has particularly good support for concurrency and parallelism, including support for Software Transactional Memory (STM).
· GHC generates fast code, particularly for concurrent programs. Take a look at GHC's performance on The Computer Language Benchmarks Game, and some comments on Haskell by the current organiser of the shootout, Brent Fulgham.
· GHC works on several platforms including Windows and most varieties of Unix, and several different processor architectures. There are detailed instructions for porting GHC to a new platform.
· GHC has extensive optimisation capabilities, including inter-module optimisation.
· GHC compiles Haskell code either by using an intermediate C compiler (GCC), or by generating native code on some platforms. The interactive environment compiles Haskell to bytecode, and supports execution of mixed bytecode/compiled programs.
· Profiling is supported, both by time/allocation and various kinds of heap profiling.
· GHC comes with a wide range of libraries.
What's New in This Release: [ read full changelog ]
· A long-standing typechecker bug which allowed unsafeCoerce to be written has been fixed.
· A bug has been fixed that caused GHC to sometimes not realise that recompilation was necessary.
· If both -H and a -M<size> flag are given, then GHC will no longer exceed the maximum heap size.
· An off-by-one error, which could cause segfaults, in the RTS flag parsing has been fixed.
· Various bugs that could cause GHC to panic when compiling certain source files have been fixed.
· Some bugs in type checking the DataKinds and PolyKinds extensions have been fixed.
· Performance of compiled programs has been improved in some cases.