[project @ 1996-01-08 20:28:12 by partain]
[ghc-hetmet.git] / ghc / docs / release_notes / 0-05-notes.lit
1 \begin{description}
2 %-------------------------------------------------------------------
3 \item[1.1 syntax:]
4 Does \Haskell{} version~1.1 syntax.  The code for the parser
5 (\tr{parsers/hsp/}) has been tidied up quite a bit [nice job, Kevin].
6
7 %-------------------------------------------------------------------
8 \item[Expressions and patterns:]
9 All forms of expressions and patterns work, including overloaded
10 patterns and @n+k@ patterns.
11
12 %-------------------------------------------------------------------
13 \item[A big part of the standard prelude is operational:]
14 These parts (in \tr{lib/prelude}) have been compiled with the new
15 compiler, and programs compiled with the new compiler can be linked to
16 it.
17
18 With the exceptions of (a)~hooking in the standard Haskell I/O system
19 (see next item) and (b)~special pleading for constant-time-access
20 arrays (or other magical features), all Prelude stuff is either done
21 or easily do-able.
22
23 %-------------------------------------------------------------------
24 \item[Simple resolution of ambiguous overloading of numeric types:]
25 (As per Haskell report, section~4.3.4).  @default@ declarations do
26 {\em NOT} work; however, the ``default default''
27 (@default (Int, Double)@) is wired in.  This should clear up nearly
28 all annoying ``ambiguous dictionary'' errors.
29
30 %-------------------------------------------------------------------
31 \item[Better non-standard I/O:]
32 We have implemented the bare bones of the I/O described in
33 \tr{docs/io-design/}.  It's not standard \Haskell{} I/O
34 (we haven't yet implemented the impedance-matcher discussed in the
35 doc), and it's not the same as what was there in 0.02.  However, you
36 can now write a simple reads-stdin/writes-stdout program:
37
38 \begin{verbatim}
39 #include "GhcPrelude.h"
40
41 main = readString `thenIO` ( \ s ->
42        writeString (my_String_to_String_manglification s) )
43 \end{verbatim}
44
45 The implementation of @error@ (via @sysError@) is also as described in
46 the I/O document.
47
48 %-------------------------------------------------------------------
49 \item[Faster compiler:]
50 The compiler is faster than version~0.02---we promise---but the
51 significant tuning work is not yet done.  We will do it after The
52 Mangler (renamer) is in.
53
54 %-------------------------------------------------------------------
55 \item[Run compiled code on a Sun4:]
56 If you compile your program to C (\tr{.hc} files), with, e.g.:
57
58 \begin{verbatim}
59 % glhc -C Foo.hs
60 \end{verbatim}
61
62 then you compile the output on a Sun4 with:
63
64 \begin{verbatim}
65 % glhc -c Foo.hc
66 \end{verbatim}
67
68 and, if you have the right things to link to, you can link with:
69
70 \begin{verbatim}
71 % glhc -o foo Foo.o
72 \end{verbatim}
73
74 The ``right things to link to'' include: the runtime system (
75 \tr{cd runtimes/standard; make} on a sun4), and the standard libraries
76 (\tr{cd lib; make all} on a sun4).
77
78 We have not yet tried to make this work for Every Known Unix Box In
79 The Universe.  (But we plan to, with your help :-)
80
81 %-------------------------------------------------------------------
82 \item[Upheaval during FPCA:]
83 As advertised with 0.02: Files moved around, modules and data types
84 were renamed, and a generally Much Cleaner World now exists.  We have
85 no plans to do more of the same (at least for the compiler proper).
86 \end{description}