| About GHC |
|
|
| About Haskell |
|
|
| Links |
|
|
|
Compiler Documentation
These documents relate to the latest version of GHC.
For earlier versions click the relevant version on the downloads page.
Online Documentation
- The User's Guide:
The User's Guide has all you need to know about using GHC:
command line options, language extensions, GHCi, etc.
- Hierarchical Libraries:
Documentation for the hierarchical libraries that come with GHC.
- (Old) Haskell Libraries:
Previous versions of GHC (before version 5.04) came with a suite
of libraries known as hslibs, aka the Hugs-GHC libraries.
As we are in the process of moving towards using hierarchical
libraries for everything, many of these libraries have moved over to
the new packages in the hierarchical libraries above. We still
provide the old hslibs libraries for backwards compatibility
and also for those libraries which have yet to move into the
hierarchy. For libraries which have moved, the documentation
contains a pointer to the location in the new libraries.
NOTE: These libraries are scheduled for removal in GHC 6.6.
- FAQ
- Cabal:
An infrastructure for building and distributing Haskell
software.
- GHC
Building Guide: Information on how to build GHC from sources, access the CVS
repository, and port GHC to a new platform.
-
Edison (part of hslibs/data)
-
DocBook cheat sheet
-
CVS cheat sheet
-
GHC
commentary: Information on the internals of GHC.
Dowloadable/Printable Documentation
Other Docs / Papers
Here we've collected together lots of documentation and papers that generally describe
stuff we've implemented in the compiler. This is the "how it works"
section - for "how to use it" see the compiler documentation above.
All docs are gzipped A4 Postscript unless otherwise specified.
- The Concurrent
Haskell Foreign Function Interface. This document
is a draft Haskell addendum that describes GHC's approach to
concurrency and its interaction with the FFI and OS threads.
- An External Representation for the GHC Core Language.
This document describes the syntax of GHC Core (.hcr) files, which can
be used to feed GHC intermediate code to other (non-GHC) back-end processors.
- Haskell Execution Platform
design document. This document describes the design for an
integrated compiler/interpreter API for executing Haskell programs,
which forms the heart of the combined Hugs/GHC system.
- Run-time System
document. This document (is supposed to) describe the
new run-time system in GHC 4.xx. Be warned that the
implementation and this document are evolving in parallel, so they
might not be quite in sync.
- The
Spineless Tagless G-Machine. This paper describes the
execution model used by GHC. It is most relevant to GHC up
to version 3.xx---in version 4 we made some changes which are
described in the
RTS document.
-
The UsageSP analysis (ghc/compiler/usageSP/) is described in Keith
Wansbrough and Simon Peyton Jones, Once
Upon a Polymorphic Type, Technical Report TR-1998-19, Department
of Computing Science, University of Glasgow, 1998. Conference version
Once
Upon a Polymorphic Type, in The Twenty-sixth ACM SIGPLAN-SIGACT
Symposium on Principles of Programming Languages, January 20-22, 1999,
San Antonio, Texas.
- GHC's typechecker implementation is described in the paper
Type classes in Haskell, CV Hall,
K Hammond, SL Peyton Jones, and PL Wadler, European Symposium On
Programming, LNCS 788, Springer Verlag, pp. 241-256, April 1994.
- The New GHC/Hugs Runtime System---a summary of the RTS document.
- Asynchronous
Exceptions in Haskell
- Lightweight
Extensible Records for Haskell
- Derivable
Type Classes
- Pattern
Guards and Transformational Patterns
- Secrets
of the GHC inliner
- Non-stop
Haskell the workings of the incremental garbage collector introduced
in GHC 4.
- Concurrent Haskell
- Imprecise
Exceptions, Co-Inductively
- A semantics for imprecise exceptions
- Imperative Functional Programming
- Lazy Functional State Threads
- Unboxed Values as First-Class Citizens
- Time and Space Profiling for non-stict,
higher-order functional programs
- The Glasgow Haskell Compiler - a Technical
Overview - from 1992, not entirely relevant any more.
- Adding an Optimisation Pass to the Glasgow Haskell
Compiler (Olaf Chitil). Somewhat out of date.
|