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] ######