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