README 4.67 KB
Newer Older
Simon Peyton Jones's avatar
Simon Peyton Jones committed
1

Simon Marlow's avatar
Simon Marlow committed
2
This is the Haskell 2010 report, source distribution.  
Simon Peyton Jones's avatar
Simon Peyton Jones committed
3
4
5
6
7
8
9
10
11
12
13
14

This has all files needed to generate either the postscript or the
html version of the Haskell report.  Some of these files are generated
from others - these are marked with a (*) and are included in case the
tool used to generate the file is unavailable.

To generate the postscript report you need lex, perl, latex,
makeindex, and dvips.

To generate the html report you need Hugs 1.4 (probably any Haskell
1.4 compiler will do).

15
To change the date on the report, you must change:
Simon Peyton Jones's avatar
Simon Peyton Jones committed
16
17
	* haskell.verb (line 429-ish)
	* index.html (line 8-ish)
Simon Peyton Jones's avatar
Simon    
Simon Peyton Jones committed
18
19
	* html.config (~foot item)
	
Simon Peyton Jones's avatar
Simon Peyton Jones committed
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

Source files for the report:
plain-haskell.verb  -- Top level of the report

Sections of the report:
intro.verb
lexemes.verb
exps.verb
decls.verb
modules.verb
basic.verb
io-13.verb
standard-prelude.verb
syntax-iso.verb
literate.verb
derived.verb
pragmas.verb
haskell.bib

Extra .verb files:
iso-chars.verb    -- Some bogus definitions for ISO chars.  Probably not 
                  -- needed since I removed them from the syntax. 
layout.verb       -- a section on layout repeated in the appendix
index-extra.verb  -- extra stuff to get indexed (see also's)
index-intro.verb  -- header for index

Haskell source files:

Prelude.hs
PreludeList.hs
PreludeIO.hs
PreludeText.hs

Figures:

55
56
57
58
classes.ppt       --  The original class figure (Powerpoint)
classes.eps (*)   --  Postscript version of class-fig
classes.gif (*)   --  For html version
cover.cdr         --  A nice looking cover for the report
Simon Peyton Jones's avatar
Simon Peyton Jones committed
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
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
cover.eps (*)

Html support:

html.config        -- configuration file for tex.hs.
haskell.aux (*)    -- The aux file generated by latex; used by html translator
haskell.bbl (*)    -- used by html translator.  Hand edited to add
                   -- html headers at front.
prelude-index.idx  -- Html file containing index of prelude.  #'s are
                   -- expanded by index.hs
index.html         -- Top level of the html report (hand generated)
lambda.gif         -- background for title page
title.gif          -- title graphic 

Other files:

Makefile         -- Lots of extra cruft no longer used. 
haskell.dvi (*)  -- in case you just want to run dvips
haskell.ind (*)  -- is case you don't have makeindex 
haskell.idx (*)  -- makes building easier


To build the .dvi you need to patch the makefile to call the proper
version of perl.  You will have some `non-grokked' instances in the
perl.  Remember that you have to run latex twice.  If anyone converts
the perl program to perl5 please send it to us!

Report any problems to peterson-john@cs.yale.edu


Building HTML files
~~~~~~~~~~~~~~~~~~~
Build the html by creating a `html' subdirectory, copy the .html and
.gif files to it, and run tex.hs twice (like tex - to get forward refs
right).  Run index.hs to generate the function index.  You're done.
The 'make html' does most of this.

There are three files you need to work on:

	report/html.config

Edit the title in the headers and footers. 
You can hack in whatever html you want for page headers and
footers .  You can also hack on the output directory setting (htmldir)
to direct the output wherever you want.  You'll have to fiddle
"index.hs" if you do this, though.  You can also add the line

	style = microsoftsymbols,article

This exploits the symbol font that microsoft uses in its browser.
Much nicer for some of the equations.  Probably a good idea since most
browsers handle the symbol font OK nowadays.

	report/prelude-index.idx

You will need to edit this a little bit; probably just a few renamings
and deleting stuff that lives in the libraries now.  Add a few more 
examples if you're feeling energetic.

As to the building process:

To build the html report: (using the .aux file and all the .verb files) 

cd <report directory>
runhugs tex.hs
runhugs tex.hs
runhugs index.hs

Like latex, you have to run tex.hs twice.  Unless you make massive
changes, though, you can probably just do it once.  I'm sure ghc will
compile tex.hs if you want to speed things up. 



Making figures
~~~~~~~~~~~~~~
The classes.eps files, which contains the classes hierarchy figure,
is made in Powerpoint, from classses.ppt.  To get the .eps file,
do the following:

* Open classes.ppt
* Print..
* Check the print-to-file box, and save as classes.prn
* Edit classes.prn
	Kill the .prn header and footer (before % PS-Adobe), and after %EOF
	Kill the entire setup code (from BeginSetup to EndSetup)
	Kill the showpage near the end
* Save as classes.eps
* Open with Ghostview
* Note the coords of the bottom LH and top RH corner, as reported by
  Ghostview
* Re-edit classes.eps, and put those coords in the
	%BoundingBox line

You also need to do
	Save As.. 
in Powerpoint, and save the thing as classes.gif, for the HTML version