blob: 64b9d81ff1c009581d7c93d92478eb40052f0a3f (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
|
<!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">
<h1>The Glasgow Haskell Compiler (GHC) Commentary [v0.17]</h1>
<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>
<strong>Sigbjorn Finne</strong><br>
<strong>Simon Marlow</strong><br>
<strong>Simon Peyton Jones</strong><br>
<strong>Julian Seward</strong><br>
<strong>Reuben Thomas</strong><br>
<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
<i>Haskell Implementers Workshop</i> in January 2001, it was decided to
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
the document.
<p>
<strong>The document is still far from being complete - help it
grow!</strong>
<h2>Before the Show Begins</h2>
<p>
<ul>
<li><a href="feedback.html">Feedback</a>
<li><a href="others.html">Other Sources of Wisdom</a>
</ul>
<h2>Genesis</h2>
<p>
<ul>
<li><a href="genesis/genesis.html">Outline of the Genesis</a>
<li><a href="genesis/makefiles.html">Mindboggling Makefiles</a>
<li><a href="genesis/modules.html">GHC's Marvellous Module Structure</a>
</ul>
<h2>The Beast Dissected</h2>
<p>
<ul>
<li><a href="the-beast/coding-style.html">Coding style used in
the compiler</a>
<li><a href="the-beast/driver.html">The Glorious Driver</a>
<li><a href="the-beast/prelude.html">Primitives and the Prelude</a>
<li><a href="the-beast/syntax.html">Just Syntax</a>
<li><a href="the-beast/basicTypes.html">The Basics</a>
<li><a href="the-beast/modules.html">Modules, ModuleNames and
Packages</a>
<li><a href="the-beast/names.html">The truth about names: Names and OccNames</a>
<li><a href="the-beast/vars.html">The Real Story about Variables, Ids,
TyVars, and the like</a>
<li><a href="the-beast/data-types.html">Data types and constructors</a>
<li><a href="the-beast/renamer.html">The Glorious Renamer</a>
<li><a href="the-beast/types.html">Hybrid Types</a>
<li><a href="the-beast/typecheck.html">Checking Types</a>
<li><a href="the-beast/desugar.html">Sugar Free: From Haskell To Core</a>
<li><a href="the-beast/simplifier.html">The Mighty Simplifier</a>
<li><a href="the-beast/mangler.html">The Evil Mangler</a>
<li><a href="the-beast/alien.html">Alien Functions</a>
<li><a href="the-beast/stg.html">You Got Control: The STG-language</a>
<li><a href="the-beast/ncg.html">The Native Code Generator</a>
<li><a href="the-beast/ghci.html">GHCi</a>
<li><a href="the-beast/fexport.html">Implementation of
<code>foreign export</code></a>
<li><a href="the-beast/main.html">Compiling and running the Main module</code></a>
</ul>
<h2>RTS & Libraries</h2>
<p>
<ul>
<li><a href="http://ghc.haskell.org/trac/ghc/wiki/Commentary/Rts/Conventions">Coding Style Guidelines</a>
<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>
<li><a href="rts-libs/foreignptr.html">On why we have <tt>ForeignPtr</tt></a>
<li><a href="rts-libs/non-blocking.html">Non-blocking I/O for Win32</a>
<li><a href="rts-libs/multi-thread.html">Supporting multi-threaded interoperation</a>
</ul>
<h2>Extensions, or Making a Complicated System More Complicated</h2>
<p>
<ul>
<li><a href="exts/th.html">Template Haskell</a>
<li><a href="exts/ndp.html">Parallel Arrays</a>
</ul>
<h2>The Source</h2>
<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.
<p><small>
<!-- hhmts start -->
Last modified: Thu May 12 19:03:42 EST 2005
<!-- hhmts end -->
</small>
</body>
</html>
|