Glasgow Haskell Compiler description
A state-of-the-art, open source, compiler and interactive environment for the Haskell language
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.
- 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.