File: feature-table.html

package info (click to toggle)
hat 2.05%2Brerolled-1
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k
  • size: 9,292 kB
  • ctags: 1,077
  • sloc: haskell: 74,306; ansic: 9,588; sh: 1,628; makefile: 596
file content (169 lines) | stat: -rw-r--r-- 4,141 bytes parent folder | download | duplicates (2)
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
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
160
161
162
163
164
165
166
167
168
169
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head><title>Hat feature summary</title></head>
<body bgcolor=white text=black>

<center><h1>How complete is Hat?</h1></center>

<p>
<center>
<em>Key:</em><br>
<b>-</b> = no support<br>
<b>+</b> = partial support<br>
<b>*</b> = full support<br>
</center>

<p>
"Partial" support of a language feature means that you <em>will</em>
be able to trace programs using this feature, but that the traces
may not be in convenient source-level terms.  Partial support of a
library or type-system feature means that some programs <em>may</em>
trace OK, but others might not.

<p>
<table cellspacing=20 width=100% border=1><tr width=100%><td width=50% valign=top>

<table cellspacing=0 border=0>
<tr>
<th>feature</th><th>Hat (2.04)</th>
</tr><tr>

<td colspan=2><hr></td>
</tr><tr>
<th colspan=2>Language constructs</th>
</tr><tr>
<td>modules</td><td align=center>*</td>
</tr><tr>
<td>lambda abstractions</td><td align=center>*</td>
</tr><tr>
<td>pattern matches</td><td align=center>*</td>
</tr><tr>
<td>guards</td><td align=center>*</td>
</tr><tr>
<td>if-then-else</td><td align=center>*</td>
</tr><tr>
<td>case expr of</td><td align=center>*</td>
</tr><tr>
<td>list comprehensions</td><td align=center>+</td>
</tr><tr>
<td>monadic do</td><td align=center>+</td>
</tr><tr>
<td>infix operators</td><td align=center>*</td>
</tr><tr>
<td>numeric literals</td><td align=center>*</td>
</tr><tr>
<td>numeric sequences</td><td align=center>+</td>
</tr><tr>
<td>n+k patterns</td><td align=center>*</td>
</tr><tr>

<th colspan=2>Basic types</th>
</tr><tr>
<td>Bool</td><td align=center>*</td>
</tr><tr>
<td>Char</td><td align=center>*</td>
</tr><tr>
<td>List</td><td align=center>*</td>
</tr><tr>
<td>Tuples</td><td align=center>*</td>
</tr><tr>
<td>Int</td><td align=center>*</td>
</tr><tr>
<td>Integer</td><td align=center>*</td>
</tr><tr>
<td>Float</td><td align=center>*</td>
</tr><tr>
<td>Double</td><td align=center>*</td>
</tr><tr>
<td>Rational</td><td align=center>*</td>
</tr><tr>

<th colspan=2>User types</th>
</tr><tr>
<td>data types</td><td align=center>*</td>
</tr><tr>
<td>type synonyms</td><td align=center>*</td>
</tr><tr>
<td>newtypes</td><td align=center>*</td>
</tr><tr>
<td>named fields</td><td align=center>*</td>
</tr><tr>
<td>type classes</td><td align=center>*</td>
</tr><tr>
<td>derived instances</td><td align=center>*</td>
</tr><tr>
<td>strict types</td><td align=center>*</td>

</tr>
</table>

</td><td width=50% valign=top>

<table cellspacing=0 border=0>
<tr>
<th>feature</th><th>Hat (2.04)</th>
</tr><tr>

<td colspan=2><hr></td>
</tr><tr>
<th colspan=2>Input/output</th>
</tr><tr>
<td>single I/O streams</td><td align=center>*</td>
</tr><tr>
<td>file handling</td><td align=center>+</td>
</tr><tr>

<th colspan=2>Libraries</th>
</tr><tr>
<td>Haskell'98 Prelude</td><td align=center>*</td>
</tr><tr>
<td>Haskell'98 Libraries</td><td align=center>*</td>
</tr><tr>
<td>base hierarchical libraries</td><td align=center>+</td>
</tr><tr>
<td>other hierarchical libraries</td><td align=center>-</td>
</tr><tr>

<th colspan=2>Platform Portability</th>
</tr><tr>
<td>machine and O/S</td><td align=center>*</td>
</tr><tr>
<td>nhc98</td><td align=center>*</td>
</tr><tr>
<td>ghc</td><td align=center>*</td>
</tr><tr>
<td>hugs</td><td align=center>-</td>
</tr><tr>
<td>hbc</td><td align=center>-</td>
</tr><tr>
<td>helium</td><td align=center>-</td>
</tr><tr>

<th colspan=2>Non-Haskell'98 Extensions</th>
</tr><tr>
<td>primitive FFI</td><td align=center>+</td>
</tr><tr>
<td>hierarchical library namespace</td><td align=center>*</td>
</tr><tr>
<td>unsafePerformIO etc</td><td align=center>*</td>
</tr><tr>
<td>multi-parameter TCs</td><td align=center>*</td>
</tr><tr>
<td>functional dependencies</td><td align=center>*</td>
</tr><tr>
<td>existential types</td><td align=center>+</td>
</tr><tr>
<td>implicit parameters</td><td align=center>-</td>
</tr><tr>
<td>imprecise exceptions</td><td align=center>+</td>
</tr><tr>
<td>concurrency</td><td align=center>-</td>
</tr><tr>
<td>parallelism</td><td align=center>-</td>

</tr>
</table>

</td></tr></table>

</body></html>