forked from githwxi/ATS-Postiats
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathVERSION.txt
626 lines (417 loc) · 18.9 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
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
0.1.6
######
0.1.5
This is the 14th 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. Supporting %(...) in macro definitions
#define N 10
#define N2 %(N + 1) // it is the same as: #define N1 11
#define N2 %(N * N1) // it is the same as: #define N2 110
2. Issuing an error message if the size of a stack-allocated array
cannot be determined at compile-time.
3. Fixing bug-2014-10-29 (see doc/BUGS), which caused an error in
compiling embedded function templates.
4. Improving ats2langweb/Implements.html
5. Fixing bug-2014-11-14 (see doc/BUGS), which caused an error in
compiling mutually tail-recursive functions
6. Fixing bug-2014-11-14-2 (see doc/BUGS), which caused an error in
compiling inner functions defined inside mutually tail-recursive
functions
7. Improving the implementation of ATSLIB/prelude/list_vt_mergesort
8. Supporting compilation from ATS to Perl: atscc2pl
9. Issuing the special comment #LINCONSTATUS==i to show the kind of
an allocated constructor:
i=0 => linear data constructor
i=1 => nonlinear data constructor
i=2 => nonlinear tuple constructor
######
0.1.4
<pre>
This is the 13th 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 the initialization of stacked allocated arrays:
var A0 = @[int][4]() // A0 = ?,?,?,?
var A1 = @[int][4](1) // A1 = 1,1,1,1
var A2 = @[int][4](1,2) // A2 = 1,2,1,2
var A3 = @[int][4](1,2,3) // A3 = 1,2,3,1
var A4 = @[int][4](1,2,3,4) // A4 = 1,2,3,4
var A5 = @[int][4](1,2,3,4,5) // A5 = 1,2,3,4
2. Fixing hidexp_is_lvalue:
handling sequencing-expressions is supported
3. Support for lazy-evaluation is added to atscc2js
4. ATStmpdec_void(...) is commented out in the generated C code
5. [patscc] is given a flag '-verbose' for controlling verbosity
(*
# HX: it is dropped:
6. [patscc] now passes the flag -Wl,warn-common to [gcc] by default
*)
</pre>
######
0.1.3
<pre>
This is the 12th 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. Adding support for dot-notation overloading in assignments.
This feature is mostly for interacting ATS with other languages.
See ATS2TUTORIAL/CHAP_DOTOVERLD for a short article of explanation.
2. Adding support for functional style o dot-notation overloading.
This feature makes it very convenient for ATS to interact with OOP.
3. Generally improving level-2 jsonization (pats_dynexp2_jsonize)
4. Adding support for extvar decl. (which is different from $extval):
extval "external_name" = internal_value
5. ATS_DYNLOADFLAG is set to 1 by default only for DATS-files. So
dynloading SATS-files is no longer necessary (but it is still harmless).
6. Adding support for $extmcall(ret_type, obj, "method", arglst),
which translates into the method invocation: obj.method(arglst)
7. Adding -D_ATS_ARRAY_FIELD to safe-guard using array fields in records
</pre>
######
0.1.2
<pre>
This is the 11th 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. Adding support for complements of char patterns (P2TCcharc)
2. Adding support for a packaging value (#[...|...]) to be used as a funarg
3. Modifying the target language of ATS/Postiats to support ATS-parse-emit
4. Adding support for explicitly naming dynload-functions:
#define ATS_DYNLOADNAME ...
5. Adding support for attaching a prefix to names of static vars and funs:
#define ATS_STATIC_PREFIX ...
</pre>
######
0.1.1
<pre>
This is the tenth 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. Adding support for checking funarg-pattern exhaustiveness
2. Adding run-time support for handling funarg-pattern matching failure
3. Default namespace is assumed for staloadloc if none is given explicitly.
4. Stopping non-template constants from being implemented in the body of a
function (during type-checking)
5. Improving/fixing libats/stringbuf
6. Supporting the compilation of list-patterns:
val+ $list(x1, x2, x3) = $list_t{int}(1, 2, 3)
val () = assertloc (x1 = 1 && x2 = 2 && x3 = 3)
val+ $list(x1, x2, x3) = $list_vt{int}(1, 2, 3) // freed
val () = assertloc (x1 = 1 && x2 = 2 && x3 = 3)
7. Improving/fixing libats/deqarray and libats/dynarray
</pre>
######
0.1.0
<pre>
This is the nineth 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. Moving ATS-Postiats/contrib out to ATS-Postiats-contrib
2. Fixing a bug causing embedded template instantiation to fail;
please see doc/BUGS/bug-2014-05-05.dats for some details on this bug
3. Fixing a bug that may cause fnx-compilation in a template to fail
4. Making atspkgreloc_curl and atspkgreloc_wget available for package
relocation
5. Fixing the minor bug recorded in doc/BUGS/bug-2014-05-17.dats
6. Implementing libats/hashtbl_linprb (hashtable via linear-probing)
7. Adding some rudimentary support for multi-threaded programming:
ATS-Positiats-contrib/contrib/libats-hwxi/teaching/mythread/*
Please see ATS-Positiats-contrib/projects/MEDIUM/SHOOTOUT/ATS2/*
</pre>
######
0.0.8
<pre>
This is the eighth 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. Adding libc/signal to support Unix-like signal handling
2. Adding contrib/kernelats to support kernel programming in ATS
3. Adding contrib/libats-hwxi/array_p to support a simpler form of
static array-bounds checking
4. Fixing a bug/typo in handling stream-based lazy evaluation
5. Improving contrib/GTK significantly
6. Both CFLAGS and LDFLAGS can be defined for building ATS2:
make CFLAGS=... LDFLAGS=... -f Makefile
7. Adding support for on-line package relocation (atspkgreloc):
patsopt --pkgreloc ...
8. Adding contrib/openssl into ATS2-contrib for the first time
</pre>
######
0.0.7
<pre>
This is the seventh 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. Supporting stack-allocated closures
2. Fixing errmsg for a non-template being treated as a template
3. Changing default funclo-kind from FUNCLOptr to FUNCLOref
4. Fixing level-4 errmsg handling
5. Fixing a bug in the handling of lte_cls_cls (see: bug-2014-03-12)
6. Supporting creation of aliases for namespaces:
staload $UNSAFE // opening the namespace $UNSAFE
staload UN = $UNSAFE // forming an alias for $UNSAFE
7. Supporting creation of local namespaces // to-be-explained
8. Supporting tcc-0.9.26 for compiling C code generated from ATS source
</pre>
######
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] ######