Glasgow Haskell Compiler

Software Screenshot:
Glasgow Haskell Compiler
Software Details:
Version: 7.8.4
Upload Date: 1 Mar 15
Developer: Simon Marlow
Distribution Type: Freeware
Downloads: 41

Rating: 2.0/5 (Total Votes: 1)

It currently supports the entire Haskell 98 language and a wide variety of language extensions.

Features:

  • 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 is new in this release:

  • By default, GHC has a new warning enabled, -fwarn-typed-holes, which causes the compiler to respond with the types of unbound variables it encounters in the source code.
  • It is now possible to declare a 'closed' type family when using the TypeFamilies extension.
  • GHC now supports overloading list literals using the new OverloadedLists extension.
  • GHC now supports pattern synonyms, enabled by the -XPatternSynonyms extension.

What is new in version 7.6.2:

  • 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.

What is new in version 7.6.1:

  • Polymorphic kinds and data promotion are now fully implemented and supported features: Section 7.8, "Kind polymorphism".
  • Windows 64bit is now a supported platform.
  • It is now possible to defer type errors until runtime using the -fdefer-type-errors flag: Section 7.13, "Deferring type errors to runtime".
  • The RTS now supports changing the number of capabilities at runtime with Control.Concurrent.setNumCapabilities: Section 4.15.2, "RTS options for SMP parallelism".

What is new in version 7.4.2:

  • hp2ps can now handle backslashes in identifiers correctly.
  • Fixed bug in the default implementation of popCount in Data.Bits.
  • A potential race condition in Control.Concurrent.Chan has been fixed.
  • An MVar bug which could cause deadlocks has been fixed.
  • When using -fwarn-unsafe, GHC now reports unsafe language extensions.
  • The non-threaded RTS now avoids wakeups when the system is idle.
  • A bug causing a crash with a very small initial stack size has been fixed.

What is new in version 7.4.1:

  • There is a new feature Safe Haskell (-XSafe, -XTrustworthy, -XUnsafe): Section 7.23, "Safe Haskell". The design has changed since 7.2.
  • There is a new feature kind polymorphism (-XPolyKinds): Section 7.8.1, "Kind polymorphism". A side-effect of this is that, when the extension is not enabled, in certain circumstances kinds are now defaulted to * rather than being inferred.
  • There is a new feature constraint kinds (-XConstraintKinds): Section 7.10, "The Constraint kind".
  • It is now possible to give any sort of declaration at the ghci prompt: Section 2.4.4, "Type, class and other declarations".
  • The profiling and hpc implementations have been merged and overhauled. Visible changes include renaming of profiling flags and the cost-centre stacks have a new semantics, which should in most cases result in more useful and intuitive profiles. The +RTS -xc flag now also gives a stack trace.
  • It is now possible to write compiler plugins: Section 9.3, "Compiler Plugins".
  • DPH support has been significantly improved.
  • There is now preliminary support for registerised compilation on the ARM platform, using LLVM.

What is new in version 7.0.4:

  • A floating point regression in 7.0.3 affecting x86 has been fixed.
  • The GHCi linker now handles partially stripped object files. This fixes loading the ghc package in ghci when it's been stripped, which is often the case in Linux distribution packages.
  • A bug which caused bad results from getCPUTime, getClockTime and getCurrentTime has been fixed.
  • A runtime system bug with large heaps has been fixed.
  • A runtime system bug when heap profiling has been fixed.
  • A runtime system bug when heap profiling has been fixed.
  • A runtime system bug, which caused incorrect results and segfaults when using FFI callbacks, has been fixed.
  • A runtime system bug, which occasionally caused parallel programs to <<loop>> when using -feager-blackholing, has been fixed.
  • Incorrect directory permissions when installing have been fixed.
  • Some improvements have been made to the new Cabal testsuite support.
  • Cabal is now 1.10.2.0 (was 1.10.1.0).

What is new in version 7.0.2:

  • Compiler:
  • The old [$foo| ... |] syntax works again, but is deprecated.
  • There have been significant improvments to the new type checker.
  • GHCi:
  • Loading .a libraries is now possible on all platforms. A .o library will still be used by preference if both exist. GHCi will no longer warn about missing .o libraries.
  • We now close .ghci files after reading them, which on Windows machines allows them to be altered while GHCi is running.
  • It is now possible to :unset the ghci variables (args, prog, prompt, editor and stop).
  • Runtime system:
  • DTrace is now supported on Solaris, in addition to OS X.
  • Build system:
  • OS X builds on 10.6 now work on both 10.5 and 10.6.
  • Windows installations now include the libstdc++ DLL.
  • Haddock:
  • GHC now comes with haddock 2.9.0.
  • GHC now includes hoogle databases for the libraries.

What is new in version 7.0.1:

  • On POSIX platforms, there is a new I/O manager based on epoll/kqueue/poll, which allows multithreaded I/O code to scale to a much larger number (100k+) of threads.
  • GHC now includes an LLVM code generator. For certain code, particularly arithmetic heavy code, using the LLVM code generator can bring some nice performance improvements.
  • The type checker has been overhauled, which means it is now able to correctly handle interactions between the type system extensions.
  • The inliner has been overhauled, which should in general give better performance while reducing unnecessary code-size explosion.
  • Large parts of the runtime system have been overhauled, in particular the machinery related to blocking and wakeup of threads and exception throwing (throwTo). Several instances of pathological performance have been fixed, especially where large numbers of threads are involved.
  • Due to changes in the runtime system, if you are using Control.Parallel.Strategies from the parallel package, please upgrade to at least version 2 (preferably version 3). The implementation of Strategies in parallel-1.x will lose parallelism with GHC 7.0.1.

Similar Software

pagen.js
pagen.js

13 May 15

Amber
Amber

28 Feb 15

Mxx_ru
Mxx_ru

13 May 15

CHICKEN
CHICKEN

6 Jun 15

Other Software of Developer Simon Marlow

Comments to Glasgow Haskell Compiler

Comments not found
Add Comment
Turn on images!