forked from githwxi/ATS-Postiats
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathVERSION.txt
282 lines (188 loc) · 8.74 KB
/
VERSION.txt
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
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
0.0.6
<pre>
This is the sixth release of ATS2, the successor of the ATS
programming language. The compiler for ATS2 is given the name
ATS/Positats, ATS2/Postiats or simply Postiats.
The official website for ATS is:
http://www.ats-lang.org
ATS-Postiats is hosted at github:
https://github.com/githwxi/ATS-Postiats
Major releases of ATS2 are available at:
https://sourceforge.net/projects/ats2-lang/
Major releases of external packages for ATS2 are available at:
https://sourceforge.net/projects/ats2-lang-contrib/
Here is a list of major additions and changes since the last release:
1. Symbol for overloading no longer require to be declared first.
2. Adding libats-hwxi/cstream for supporting a simple style of lexing
3. Adding a direct API for Simple DirectMedia Layer 2.0 (SDL2).
4. Both static/extern function names are now stamped at the end.
5. Fixing a bug in pattern matching: left-values should be dereferenced!
6. Polymorphic data constructors no longer require explicit type arguments
(for compilation purpose)
7. Handling of template parameters is greatly improved.
</pre>
######
0.0.5
<pre>
This is the fifth release of ATS2, the successor of the ATS
programming language. The compiler for ATS2 is given the name
ATS/Positats, ATS2/Postiats or simply Postiats.
The official website for ATS is:
http://www.ats-lang.org
ATS-Postiats is hosted at github:
https://github.com/githwxi/ATS-Postiats
Major releases of ATS2 are available at:
https://sourceforge.net/projects/ats2-lang/
Major releases of external packages for ATS2 are available at:
https://sourceforge.net/projects/ats2-lang-contrib/
Here is a list of major additions and changes since the last release:
1. Fixing a glitch in initializing flat boxed-singleton records
(see doc/BUGS/bug-2013-11-29)
2. Adding support for jsonizing level-2 syntax trees; this is planned
for support tasks like meta-programming, constraint-exporting, etc.
3. Adding support for exporting constraints gathered during typechecking
(command-line flag for this feature: --constraint-export)
4. Fixing bug-2013-12-04 (erroneous compilation of pattern matching)
5. Adding a direct API for the json-c package
6. Adding a direct API for the jansson package
7. Adding a minimal API for the pcre package
8. Adding support for 'static' dynamic constant declarations:
static fun foo (...): res // this one is equivalent to the next one
extern fun foo (...): res = "sta#" // it is equivalent to the above one
9. Improving support for exporting ATS-types to C
10. Requiring that each declared toplevel function be envless; closures
need to be declared as values.
11. Supporting the flag -CSignore for patscc to ignore constraint-solving.
Please only use it with proper justification!
</pre>
######
0.0.4
<pre>
This is the fourth release of ATS2, the successor of the ATS
programming language. The compiler for ATS2 is given the name
ATS/Positats, ATS2/Postiats or simply Postiats.
The official website for ATS is:
http://www.ats-lang.org
ATS-Postiats is hosted at github:
https://github.com/githwxi/ATS-Postiats
Major releases of ATS2 are available at:
https://sourceforge.net/projects/ats2-lang/
Major releases of external packages for ATS2 are available at:
https://sourceforge.net/projects/ats2-lang-contrib/
Here is a list of major additions and changes since the last release:
1. Fixing a glitch in handling ATS_DYNLOADFLAG (bug-2013-10-11)
2. Adding -D_ATS_EXCEPTION_NONE support for eliminating the code in the
run-time of ATS2 that are exception-related.
3. Fixing a glitch in proof-assignment compilation (reported by MD)
4. Allowing overloading declarations to permeates OPENED namespace.
5. Fixing a glitch in handling overloading (bug-2013-10-30 reported by WB)
6. Fixing a glitch in handling flat arrays (bug-2013-10-30-2 reported by WB)
7. Fixing a glitch in handling arrays in structs (bug-2013-11-01 reported by WB)
8. Fixing a glitch in handling implementation of values (bug-2013-11-06 reported by HX)
9. All the occurances of LGPL-2.1 in ATS2/Postiats have been changed to GPL-3.
LGPL-2.1 still occurs in certain packages contained in ats2-lang-contrib
10. Supporting that ATS-types be exported for use in C (extern typedef ...)
11. Supporting generation of ats-lang-tags via the command-line flag --taggen
</pre>
######
0.0.3
<pre>
This is the third release of ATS2, the successor of the ATS
programming language. The compiler for ATS2 is given the name
ATS/Positats, ATS2/Postiats or simply Postiats.
The official website for ATS is:
http://www.ats-lang.org
ATS-Postiats is hosted at github:
https://github.com/githwxi/ATS-Postiats
Major releases of ATS2 are available at:
https://sourceforge.net/projects/ats2-lang/
Major releases of external packages for ATS2 are available at:
https://sourceforge.net/projects/ats2-lang-contrib/
Here is a list of major additions and changes since the last release:
1. Support for stack-allocated array-variables:
var A = @[int][10]() // A: array(int?, 10) // uninitialized
var A = @[int][10](0) // A: array(int, 10) // initialized with 0's
var A = @[int](0, 1, 2, 3, 4, 5, 6, 7, 8, 9) // A: array(int, 10)
2. Support for ptr-style of stack-allocated variables:
var !p_x: int = 0
var !p_x: int with pf_x = @[int](1, 2, 3, 4, 5)
3. Support for fixed-point expressions:
val fact = fix f (x: int): int => if x > 0 then x * f (x-1) else 1
4. Support for lazy-evaluation: $delay
See ${PATSHOME}/doc/EXAMPLE/INTRO/sieve_lazy.dats
5. Support for linear lazy-evaluation: $ldelay
See ${PATSHOME}/doc/EXAMPLE/INTRO/sieve_llazy.dats
6. Fixing a serious bug in closure compilation: the environment of a
deeply embedded function could be miscomputed, causing the C target
code generated from ATS source to contain errors.
</pre>
######
0.0.2
<pre>
Date: September 19, 2013
This is the second release of ATS2, the successor of the ATS
programming language. The compiler for ATS2 is given the name
ATS/Positats, ATS2/Postiats or simply Postiats.
The official website for ATS is:
http://www.ats-lang.org
ATS-Postiats is hosted at github:
https://github.com/githwxi/ATS-Postiats
Major releases of ATS2 are available at:
https://sourceforge.net/projects/ats2-lang/
Major releases of external packages for ATS2 are available at:
https://sourceforge.net/projects/ats2-lang-contrib/
Here is a list of major additions and changes since the last release:
1. Support for classdec.
This feature is primarily for building APIs in ATS for external
packages written in the OOP-style.
2. Support for ATS-package relocation.
This feature is primarily for renaming and relocating external ATS
packages (mostly library APIs). It is supposed to work together with
atspkgreloc, a tool that does the actual package relocation. The tool
is yet to be implemented.
3. Support for dot-notation overloading:
//
symintr .x .y
extern fun point_get_x (p: point): int
extern fun point_get_y (p: point): int
overload .x with point_get_x
overload .y with point_get_y
//
These declarations enable the following:
[p.x] translates into [point_get_x(p)]
[p.y] translates into [point_get_y(p)]
4. Fixing a very serious bug in pattern-matching compilation
5. Relocating contributed packages from ats2-lang to ats2-lang-contrib
6. Improving atslib: adding code, fixing bugs, improving documentation, etc.
</pre>
######
0.0.1
<pre>
September 2, 2013
This is the first release of ATS2, the successor of the ATS
programming language. The compiler for ATS2 is given the name
ATS/Positats, ATS2/Postiats or simply Postiats.
The official website for ATS is:
http://www.ats-lang.org
ATS-Postiats is hosted at github:
https://github.com/githwxi/ATS-Postiats
Major releases of ATS2 are available at:
https://sourceforge.net/projects/ats2-lang/
The actual implementation of ATS2 started in the March of 2011, and
it took about two and one-half years to reach this stage. As of now,
the code base for the compiler of ATS2 consists of 140,000+ lines of
code (LOC), which are nearly all written in ATS.
When compared to ATS1, the single most important new feature is the
template system of ATS2. This is a feature that could potentially change
the way a programmer writes his or her code. One can certainly feel that
this is a very powerful feature (a bit like feeling that OOP is a very
powerful feature). However, how this feature should be properly and
effectively used in practice needs a lot more investigation.
Another thing about ATS2 is that it is a lot leaner than ATS. One can make
good use of ATS2 without any need for compiled library (libatslib.a). Also,
GC support in ATS1 is now removed; if needed, third-party GC (e.g.,
Bohem-GC) can be readily employed.
I will gradually list differences between ATS and ATS2, helping people
make the transition from ATS1 to ATS2.
</pre>
###### end of [VERSION.txt] ######