-
Notifications
You must be signed in to change notification settings - Fork 4
/
VERSION.txt
565 lines (452 loc) · 18.2 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
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
0.2.13
<pre>
ats-lang-anairiats-0.2.13:
The primary purpose of this release is to push out a version of ATS
that can be used to improve bootstrapping ATS2, the successor of ATS1.
This package is essentially the same as ats-lang-anairiats-0.2.12 except
for a few minor fixes.
Happy programming!
</pre>
######
0.2.12
<pre>
ats-lang-anairiats-0.2.12:
The primary purpose of this release is to push out a version of ATS
that can be used to improve bootstrapping ATS2, the successor of ATS.
Various Makefiles for this version have been significantly improved.
This package is essentially the same as ats-lang-anairiats-0.2.11-fin.
Happy programming!
</pre>
######
0.2.11
<pre>
ats-lang-anairiats-0.2.11-fin:
The primary purpose of this release is to push out a version of ATS
that can be used to improve bootstrapping ATS2, the successor of ATS.
Various Makefiles for this version have been significantly improved.
Happy programming!
</pre>
######
0.2.11
<pre>
ats-lang-anairiats-0.2.11:
The primary purpose of this release is to push out a version of ATS
that can be used to compile ATS2, the successor of ATS. It is planned
that the development of ATS is to be freezing gradually. In general,
only changes that help the development of ATS2 can be chosen to be added
into ATS.
For the current users of ATS, it is about the time to make a swtich to
ATS2. As always, I certainly hope that you will be able to unleash the
great potentials of the type system and template system of ATS2.
Happy programming!
</pre>
######
0.2.10
<pre>
ats-lang-anairiats-0.2.10:
The primary purpose of this release is to push out a version of ATS that
can be used to compile ATS2, the successor of ATS that is planned to be
released by the end of August, 2013.
In this version of ATS, various packages in ${ATSHOME}/contrib (e.g., glib
and GTK) are no longer compiled automatically. If needed, please use the
provided Makefiles to compile them manually.
For the current users of ATS, it is time to make a swtich to ATS2. I
certainly hope that you will be able to unleash the great potentials of the
type system and template system of ATS2. Happy programming!
</pre>
######
0.2.9
<pre>
ats-lang-anairiats-0.2.9:
1. Fixing some macros in ccomp/runtime/ats_exception.h
2. Removing the field tmpvar_root in tmpvar and related functions.
3. Adding support for using CMake to build projects written in ATS.
Kudos to Hanwen!
4. $showtype support for debugging is added (2012-11-24)
5. Adding libats/linmap_skiplist for linear maps based on skip-lists.
6. ((<exp1>, ..., <exp2>)) -> @(<exp1>, ..., <exp2>)
7. If the assigned external name of a function is empty, then its
internal name should be used in the place where its external name
is needed. For example, the following declarations are equivalent:
fun foo (x: int): void = "ext#"
fun foo (x: int): void = "ext#foo"
The following two are equivalent as well:
fun bar (x: int): void = "mac#"
fun bar (x: int): void = "mac#bar"
</pre>
######
0.2.8
<pre>
ats-lang-anairiats-0.2.8:
1. Fixing a bug involving assumed abstract types.
2. Adding list_mapopt_* functions.
3. Packaging libatsdoc into ATS-0.2.8
4. Packaging utils/atsdoc into ATS-0.2.8
5. Adding contrib/mysql
6. Adding contrib/jansson (based on previous work by Chris Double)
</pre>
######
0.2.7
<pre>
ats-lang-anairiats-0.2.7:
1. free_gc_viewt0ype_addr_view -> free_gc_t0ype_addr_view
free_gc_viewt0ype_int_addr_view -> free_gc_t0ype_int_addr_view
2. ptr_free and array_ptr_free: interface change
3. Adding funheap_binomial and linheap_binomial
4. Adding libats/SATS/bimatrix.sats. Thanks to Artyom!
5. The s2exp_syneq function (syn. eq.) now employs eta-expansion
6. !READ(string) -> string (SHARED is introduced to do the opposite)
7. Adding libats/lockptr_spin and libats/lockref_spin (spinlocks)
8. The docbook source for the ATS intro book is now included.
9. The closures in each infile object are made to be linear and they
are freed when the infile object is freed.
10. The compiler now generates code to prevent an abstract type from
being implemented (assumed) more than once.
11. && and || are now macros (long overdue!)
12. The libats/ngc/linmap_pavltree package is added. Kudos to Artyom!
13: Adding libats/funmset_listord (functional multiset implementation)
14: Fixing a bug involving tailcall optimization (argument movement)
15: Fixing a minor bug involving p2at_arg_tr.
</pre>
######
0.2.6
<pre>
ats-lang-anairiats-0.2.6:
1. Adding contrib/JNI for interfacing ATS with Java.
2. Adding the --xrefprelude flag to make cross-referencing work again.
3. The keyword [sta] can now also be written as [stacst].
4. If a name refers to several static constants, then the latest declared
non-functional one is chosen (if there is one).
5. The tutorial (doc/TUTORIAL) is no longer put into the release package.
6. Allowing #FILENAME and #LOCATION to be used as e0xp. For instance, the
following line is now legal:
#print (#FILENAME)
7. Fixing a bug related to xref that caused illegal xhtml files to be
generated (cases of A elements being embedded inside another A element).
Thanks, David!
8. Introducing ISALIGNED to handle alignment.
9. Introducing NULLABLE to handle ptr_zero and ptr_zero_tsz.
10. Adding libats/funmap_rbtree (functional maps based on red-black trees)
11. Adding contrib/gtkglext (based on gtkglext-1.0)
12. Adding contrib/atspslide for doing slide presentation and other things.
13: Adding libc/gdbm/gdbm (API for gdbm in ATS).
14: Adding libc/gdbm/ndbm (API for gdbm-ndbm in ATS).
15: Adding libats/ngc/DATS/dlist.dats. Thanks to Artyom!
16: [atslib] can now process flags for each individual file. See .libfiles.
17: pervasive changes: free_gc_v (T, ...) => free_gc_v (T?, ...)
</pre>
######
0.2.5
<pre>
ats-lang-anairiats-0.2.5:
1. Fixing a bug in handling call-by-reference. I was really surprised that
the bug had not shown up earlier.
2. input_line_vt is added in prelude/filebas for returning a linear string
3. Fixing a bug in [valprim_is_mutable]: casting was incorrectly handled.
4. atslib_feof and atslib_ferror are changed to inlined functions (instead
of macros). This is done to fix Cgwin's defining feof as a macro.
5. Some changes are made to support ATS on FreeBSD.
6. Fixing a bug involving linear closures (of the form <lin,cloptr>).
7. Adding support for if!: if! (e_cond, e_then, e_else) is for the
following expression: (if e_cond then e_then else e_else).
8. Adding libats/funset_avltree to support (functional) sets.
9. The original *_clo and *_cloptr functions are renamed as *_vclo and
*_vcloptr respectively, and the new *_clo and *_cloptr functions no
longer require a (linear) proof argument.
10. [gc_stack_get_dir] is re-written to fix a bug triggered due to a form
of over-optimization by gcc-4.6: a volatile function may get inlined.
Kudos to Matthew for helping me on this one!
11. Fixing a bug that wrongly affected the exn-effect tracking.
12. Adding contrib/GLES2 to support OpenGL/ES2 binding. Thanks to Artyom!
13. Renaming: list_vt_*_clo -> list_vt_*_vclo. Also adding various functions:
list_vt_*_cloptr and list_vt_*_vcloptr
14. Makefile_macosx is added for building ATS on MAC OS X. Thanks to Georg!
15. Renaming (in various packages): *_clo -> *_vclo and *_cloptr -> *_vcloptr
16. Adding libatsdoc.
17. Adding the [atsdoc] utility for writing documents
18. Adding atsdoc/DOCUMENT/TUTORIALATS
19. Finishing part 3 of the book on Introduction to Programming in ATS
20. Adding contrib/atswebpage for helping build webpages
21. Adding util/atsdoc/DOCUMENT/atslangweb for creating webpages for ATS
</pre>
######
0.2.4
<pre>
ats-lang-anairiats-0.2.3:
1. Adding the package contrib/testing to facilitate construction of
testing code.
2. Adding support for value templates.
3. Adding various examples in doc/EXAMPLE/PCPV to demonstrate a style
of program verification that is described as being programmer-centric.
4. Adding the package contrib/scripting to support scripting in ATS.
5. Bison is now the default tool for generate [ats_grammar_yats.c].
6. Adding some functions in prelude/list.
7. Adding some functions in prelude/lazy_vt.
8. ATS/Anairiats is kept up-to-date for bootstrapping.
9. $ATSHOME/contrib/glib/glist: overhauling many function interfaces.
10. The file ats_fixity.dats is splitted into the following two files:
ats_fixity_prec.dats and ats_fixity_fxty.dats.
11. Adding some functions for parsing various syntax trees.
12. Renaming various 'get' and 'set' functions according to some adopted
naming convention.
13. Starting to build API in $ATSHOME/contrib/linux for supporting linux
kernel programming. This is going to be a long journey!
14: Renaming: fun__main -> funenv
Renaming: fun_tsz__main -> funenv_tsz
Renaming: clo_tsz__main -> cloenv_tsz
Renaming: __main -> _funenv (for various higher-order functions)
15: matrix_v (a, m, n, l) is now defined as mtrxt (a, m, n) @ l
16: stack-allocated closures are now statically allocated (instead of
being dynamically allocated via alloca) (svn-version: 2519)
17: prelude/array and prelude/matrix have been cleaned up considerably
18: naming change: "#foo" -> "mac#foo" (for external macros)
19: using names like "sta#foo" to support external static functions
20: adding contrib/linux to support linux kernel programming (very long term)
21: adding libats/ngc/deque_arr
22: basing libats/linqueue_arr and libats/linstack_arr on libats/ngc/deque_arr
24. ATSstaticdec() and ATSglobaldec() are now employed in emitted C code
for indicating whether a function is global or static.
25. reloading a pervasive .sats file is allowed; doing so is like a no-op.
</pre>
######
0.2.3
<pre>
ats-lang-anairiats-0.2.3:
As usual, this release contains a large number of fixes. There is
also a lot effort going into documentation. In particular, the grammar
of ATS (ats_grammar.yats) is cleaned considerably.
A (partial) list of the changes since the last release are given as
follows:
1. Adding READ: READ(string) is read-only!
2. Renaming prelude/?ATS/file.?ats to prelude/?ATS/filebas.?ats
3. Adding support -DATS flags: -DATSXYZ=12345 or -DATS XYZ=12345
4. Adding support for ATS/Anairiats to output #line pragma in the C code
generated by atsopt.
5. Adding support for compiling fixed-point expressions (constructed via
fix and @fix).
6. Introducing various macros in ccomp/runtime/ats_basics.h to give more
structure to the C code generated by atsopt.
7. Introducing block expressions: { decseq_syn }
8. Supporting syndef-loaded external identifers
9. DO and WHILE are external ids: both while-loop and do-while-loop are
supported.
10. print! and println! are now supported.
11. fprint! and fprintln! are now supported.
12. tupz! is now supported.
13. $ATSHOME/utils/atsgrammar is added for documenting the grammar of ATS.
14. Implementing the $ATSHOME/libats/fundeque_fingertree package.
15. "><" (GTLT) can now be used as a dynamic identifier.
16. Syntax like [val <pat> = <SomeProof>] is now ruled out: 'val' needs to be
replaced with 'prval'.
17. Removing named types (S2Enamed), which is inadequate for its purpose
18. S2Eextype can now carry arguments
19. overhauling partial template implementation
20. ptrout -> vptrout and ptroutopt -> vptroutopt
21. ptropt_v -> optvar_v
22. [ptrself] is introduced as a named type of the name "ats_ptrself_type"
23. The '$fun' suffix is no longer in use. If a function is declared as a
'val', then the function is now treated as an ordinary value.
</pre>
######
0.2.2
<pre>
ats-lang-anairiats-0.2.2:
As usual, this release contains a large number of fixes. Also, many new
coding examples are added. Compared to the previous version, the ATS
interface for libc functions is greatly extended, and there are now many
examples involving systems programming that are available in the following
directory:
$ATSHOME/doc/EXAMPLES/AUP/.
A (partial) list of the changes since the last release are given as
follows:
1. -D_ATS_TERMINATION_CHECK is changed to -D_ATS_PROOFCHECK; fixing a
related bug in [d3explst_funarg_tr].
2. Fixing a bug involving type-checking variadic functions
3. Fixing a bug involving solving top-level constraints
4. $ATSHOME/libc/SATS/complex.sats and $ATSHOME/libc/DATS/complex.dats
are compiled and then added to libats.a
5. Adding support for #undef
6. Thoroughly testing the support for ATS running on Cygwin
7. Implementing libats/vector (dynamically resizable vectors)
8. $ATSHOME may now contain the space character (' ').
9. Fixing a bug involving mishandling of proofs during proof erasure
(ats_trans4)
10. Fixing a bug involving mishandling negative long integers
11. Adding rarray (reversed array) implementation
12. Adding libc/pwd, which correspond to pwd.h
13. Adding libc/grp, which correspond to grp.h
14. Adding libc/termios, which corresponds to termios.h
15. Adding libc/curses, which corresponds to curses.h
16. Adding libc/utime, which corresponds to utime.h
17. Adding libc/sys/statvfs, which corresponds to sys/statvfs.h
18. Adding libc/ctype, which corresponds to ctype
19. Adding libc/DATS/stdio.dats
20. Modifying the types for malloc_ngc and free_ngc
21. Clearing up libc/pthread and libc/pthread_uplock
22. Implementing lib/pthread_upbarr
23. Incorporating [parcomb] into $ATSHOME/contrib
24. Adding libc/sys/resource, which corresponds to sys/resource.h
25. Adding [assertloc] macdef
26: Adding libc/sys/socket_in and libc/sys/socket_un
27: Adding libc/netdb
28. Adding libc/sys/sockaddr and libc/sys/sockopt
29: Adding prelude/unsafe!!!
30: Adding libats/ptrarr (* for arrays ending with a null ptr *)
</pre>
######
0.2.1
<pre>
ats-lang-anairiats-0.2.1:
As usual, this release contains many bug fixes. Also, many
new coding examples are added.
1. The support for 'atsopt --depgen' is revamped.
2. The support for boolean patterns is made available.
3. Most string-generating functions now return linear strings
(strptr). This is a change that can have pervasive impact.
4. Some support for GMP/MPQ and GMP/MPF functions are added. See
libc/SATS/gmp.sat for details.
5. Overhauling the ATS building system.
The following packages are available in ATS/libats:
fmatrix.sats
freelst.sats
funralist_nested.sats
genarrays.sats
hashtable_chain.sats
hashtable_linprb.sats
intinf.sats
iterint.sats
linbitvec.sats (newly added)
linmap_avltree.sats
linqueue_arr.sats
linqueue_lst.sats
linstack_arr.sats
parworkshop.sats
regexp.sats
The following libraries are available in ATS/contrib:
glib
cairo
pango
X11
GTK
GL (OpenGL, GLU and GLUT)
SDL
cURL (only a few functions are available)
Clutter (this one is mostly for experiment)
cblas (joint work with Shivkumar Chandrasekaran)
clapack (joint work with Shivkumar Chandrasekaran)
</pre>
ATS-0.2.1 bootstrapping times:
machine: [email protected]
model name: Intel(R) Xeon(R) CPU X5570 @ 2.93GHz
ats-geizella: 106.902u 21.036s 3:18.53 64.4% 0+0k 42568+441192io 0pf+0w
ats-anairiats: 109.940u 29.698s 3:39.33 63.6% 0+0k 57656+568048io 0pf+0w
######
0.2.0
<pre>
ats-lang-anairiats-0.2.0:
This is a milestone release. The original plan for OOP support in ATS has
been scratched completely, resulting in about 1500 lines of code being
removed. Instead, some support is added to interface ATS with external code
written in OOP-style.
The following libraries are now available for use:
contrib/glib
contrib/cairo
contrib/pango
contrib/X11
contrib/GTK
contrib/GL (OpenGL, GLU and GLUT)
contrib/SDL
Much more effort is needed to expand the APIs for these libraries. So far,
only the API for cairo is close to completion.
</pre>
######
0.1.9
<pre>
ats-lang-aniriats-0.1.9:
As usual, this release contains many bug fixes. The most notable
addition is a package named 'parworkshop' in $ATSHOME/libats, which
provides some rudimentary support for multicore programming (SMP).
Please see $ATSHOME/doc/EXAMPLE/MULTICORE for some examples.
(*
// this feature is retracted as it is difficult to support
1. overloaded symbols in a macro definition is re-loaded when the macro
definition is expanded. This change can greatly facilitate the use of
macros defined in $ATSHOME/prelude/macrodef.sats
2. macro expansion is now handled by [d1exp_tr] in [ats_trans2_dyn1.dats]
(instead of being done by [d2exp_tr] in [ats_trans3_dyn2.dats])
*)
3. The semantics for symbol overloading is greatly simplified.
4. Adding libc/sched based on /usr/include/sched.x
5. Adding libats/parworkshop to support multicore programming.
6. The examples in doc/EXAMPLE/MULTICORE are modified to run again.
7. Adding support for lliunt and ullint.
......
</pre>
######
0.1.8
<pre>
ats-lang-aniriats-0.1.8:
As usual, this release contains many bug fixes.
Also, the following external package is added into ATS for supporting
programming with Xlib:
$ATSHOME/contrib/X11
Moreover, the following external packages in ATS have been significantly
extended:
$ATSHOME/contrib/GL
$ATSHOME/contrib/cairo
$ATSHOME/contrib/SDL
</pre>
######
0.1.7
<pre>
ats-lang-aniriats-0.1.7:
As usual, this release contains a large number of bug fixes. Also,
the following external packages have been made available for doing
graphics in ATS:
$ATSHOME/contrib/GL
$ATSHOME/contrib/cairo
$ATSHOME/contrib/SDL
</pre>
######
0.1.6
<pre>
ats-lang-aniriats-0.1.6:
As usual, this release contains a large number of bug fixes. Some of the
significant changes are listed as follows:
1. Support for OOP is under development. So far, typechecking is done.
2. Type error message reporting is made more informative. This is ongoing.
3. Adding $ATSHOME/ccomp/lib64 for storing libfiles for 64-bit machines.
4. The Makefile in $ATSHOME is re-designed by Likai Liu. It now allows
ATS to be installed in a selected directory. Just issue the following
command before calling 'make':
./configure --prefix=<DESTDIR>
where <DESTDIR> is the directory for final installation. After 'make'
is done, please call 'make install'.
</pre>
######
0.1.6-unstable
0.1.5
0.1.5-unstable
0.1.4
0.1.4-unstable
0.1.3
0.1.3-unstable
0.1.2
0.1.2-unstable
0.1.1
0.1.1-unstable
0.1.0
0.1.0-unstable
0.0.2
0.0.2-unstable
0.0.1
beta
alpha
###### version number usage #####
x.y.z -> x.y.z' : (z' = z + 1)
mostly bug fixes; full backward compatibilities are expected.
x.y.z -> x.y'.0 : (y' = y + 1)
mostly minor changes; backward compatibilities are expected in general.
x.y.z -> x'.0.0 : (x' = x + 1)
a major change; some backward incompatibilities may appear.
###### end of [VERSION.txt] ######