ats2-postiats-0.0.3:


Date: September 29, 2013

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.