index.html 4.72 KB
Newer Older
chak's avatar
chak committed
1
2
3
4
5
6
7
8
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
  <head>
    <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
    <title>The GHC Commentary - The Beast Explained</title>
  </head>

  <body BGCOLOR="FFFFFF">
chak's avatar
chak committed
9
    <h1>The Glasgow Haskell Compiler (GHC) Commentary [v0.14]</h1>
chak's avatar
chak committed
10
11
12
13
14
15
16
    <p>
      <!-- Contributors: Whoever makes substantial additions or changes to the
      document, please add your name and keep the order alphabetic.  Moreover,
      please bump the version number for any substantial modification that you
      check into CVS.
      -->
      <strong>Manuel M. T. Chakravarty</strong><br>
chak's avatar
chak committed
17
      <strong>Sigbjorn Finne</strong><br>
chak's avatar
chak committed
18
      <strong>Simon Marlow</strong><br>
chak's avatar
chak committed
19
      <strong>Simon Peyton Jones</strong><br>
chak's avatar
chak committed
20
      <strong>Julian Seward</strong><br>
chak's avatar
chak committed
21
      <strong>Reuben Thomas</strong><br>
chak's avatar
chak committed
22
23
24
25
26
      &nbsp;<br>
    <p>
      This document started as a collection of notes describing what <a
      href="mailto:chak@cse.unsw.edu.au">I</a> learnt when poking around in
      the <a href="http://haskell.org/ghc/">GHC</a> sources.  During the
chak's avatar
chak committed
27
      <i>Haskell Implementers Workshop</i> in January 2001, it was decided to
chak's avatar
chak committed
28
29
30
31
      put the commentary into 
      <a href="http://cvs.haskell.org/cgi-bin/cvsweb.cgi/fptools/">GHC's CVS
	repository</a>
      to allow the whole developer community to add their wizardly insight to
chak's avatar
chak committed
32
      the document.
chak's avatar
chak committed
33
    <p>
chak's avatar
chak committed
34
35
      <strong>The document is still far from being complete - help it
      grow!</strong> 
chak's avatar
chak committed
36
37

    <h2>Before the Show Begins</h2>
chak's avatar
chak committed
38
    <p>
chak's avatar
chak committed
39
40
41
42
43
44
    <ul>
      <li><a href="feedback.html">Feedback</a>
      <li><a href="others.html">Other Sources of Wisdom</a>
    </ul>

    <h2>Genesis</h2>
chak's avatar
chak committed
45
    <p>
chak's avatar
chak committed
46
47
48
    <ul>
      <li><a href="genesis/genesis.html">Outline of the Genesis</a>
      <li><a href="genesis/makefiles.html">Mindboggling Makefiles</a>
49
      <li><a href="genesis/modules.html">GHC's Marvellous Module Structure</a>
chak's avatar
chak committed
50
51
52
    </ul>

    <h2>The Beast Dissected</h2>
chak's avatar
chak committed
53
    <p>
chak's avatar
chak committed
54
    <ul>
55
56
      <li><a href="the-beast/coding-style.html">Coding style used in
      the compiler</a>
chak's avatar
chak committed
57
      <li><a href="the-beast/driver.html">The Glorious Driver</a>
chak's avatar
chak committed
58
      <li><a href="the-beast/prelude.html">Primitives and the Prelude</a>
chak's avatar
chak committed
59
      <li><a href="the-beast/syntax.html">Just Syntax</a>
chak's avatar
chak committed
60
      <li><a href="the-beast/basicTypes.html">The Basics</a>
chak's avatar
chak committed
61
62
      <li><a href="the-beast/modules.html">Modules, ModuleNames and
	  Packages</a> 
63
      <li><a href="the-beast/names.html">The truth about names: Names and OccNames</a> 
chak's avatar
chak committed
64
65
      <li><a href="the-beast/vars.html">The Real Story about Variables, Ids,
	  TyVars, and the like</a> 
66
      <li><a href="the-beast/data-types.html">Data types and constructors</a> 
67
      <li><a href="the-beast/renamer.html">The Glorious Renamer</a>
chak's avatar
chak committed
68
      <li><a href="the-beast/typecheck.html">Checking Types</a>
chak's avatar
chak committed
69
      <li><a href="the-beast/desugar.html">Sugar Free: From Haskell To Core</a>
chak's avatar
chak committed
70
71
      <li><a href="the-beast/simplifier.html">The Mighty Simplifier</a>
      <li><a href="the-beast/mangler.html">The Evil Mangler</a>
chak's avatar
chak committed
72
      <li><a href="the-beast/alien.html">Alien Functions</a>
73
      <li><a href="the-beast/ncg.html">The Native Code Generator</a>
74
      <li><a href="the-beast/ghci.html">GHCi</a>
75
76
      <li><a href="the-beast/fexport.html">Implementation of
                                           <code>foreign export</code></a>
77
      <li><a href="the-beast/main.html">Compiling and running the Main module</code></a>
chak's avatar
chak committed
78
79
80
    </ul>

    <h2>RTS &amp; Libraries</h2>
chak's avatar
chak committed
81
    <p>
chak's avatar
chak committed
82
    <ul>
83
      <li><a href="rts-libs/coding-style.html">Coding Style Guidelines</a>
chak's avatar
chak committed
84
85
86
87
      <li><a href="rts-libs/stgc.html">Spineless Tagless C</a>
      <li><a href="rts-libs/primitives.html">Primitives</a>
      <li><a href="rts-libs/prelfound.html">Prelude Foundations</a>
      <li><a href="rts-libs/prelude.html">Cunning Prelude Code</a>
sof's avatar
sof committed
88
      <li><a href="rts-libs/foreignptr.html">On why we have <tt>ForeignPtr</tt></a> 
89
      <li><a href="rts-libs/non-blocking.html">Non-blocking I/O for Win32</a>
sof's avatar
sof committed
90
      <li><a href="rts-libs/multi-thread.html">Supporting multi-threaded interoperation</a>
chak's avatar
chak committed
91
    </ul>
chak's avatar
chak committed
92
93
94
95

    <h2>Extensions, or Making a Complicated System More Complicated</h2>
    <p>
    <ul>
chak's avatar
chak committed
96
      <li><a href="exts/th.html">Template Haskell</a>
chak's avatar
chak committed
97
98
99
100
      <li><a href="exts/ndp.html">Parallel Arrays</a>
    </ul>

    <h2>The Source</h2>
chak's avatar
chak committed
101
102
103
104
105
106
107
108
109
110
111
    <p>
      The online master copy of the Commentary is at
    <blockquote>
      <a href="http://www.cse.unsw.edu.au/~chak/haskell/ghc/comm/">http://www.cse.unsw.edu.au/~chak/haskell/ghc/comm/</a>
    </blockquote>
    <p>
      This online version is updated 
      <a
	 href="http://cvs.haskell.org/cgi-bin/cvsweb.cgi/fptools/ghc/docs/comm/">from 
	CVS</a>
      daily.
chak's avatar
chak committed
112
113
114

    <p><small>
<!-- hhmts start -->
chak's avatar
chak committed
115
Last modified: Sat Sep 13 01:15:05 BST 2003
chak's avatar
chak committed
116
117
118
119
<!-- hhmts end -->
    </small>
  </body>
</html>