0.2.6

This is the 29th 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. A minor fix to make the long form of macrodef work
2. Adding an article in EFFECTIVATS on parsing combinators of CPS-style
3. Allowing recursive evaluation of a file path: pkgsrcname_eval
4: Adding a section on linear C-strings in INT2PROGINATS
5: Adding an ATS2TUTORIAL-chapter on stack-allocated closure-functions
6: Adding support for #pragma(location, ...) (referred to as locpragma)
7. Adding an article in EFFECTIVATS on imperative vs. functional vs. linear functional

######

0.2.5

This is the 28th 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. With libatscc2js(JS), Atscc2js can now run entirely inside the
   browser.
2. Patsopt(JS) and Atscc2js(JS) have been combined to allow one to
   try ATS entirely in one's browser (running only client-side JS).
3. Treating the following form as a value: let ... in aValue end
   (where aValue is assumed to be a value).
4. WebWorker-based support for session types in libatscc2js/Worker/channel
5. Fixing the handling of decarg of a function template declaration
6. Fixing a bug in effect-tracking of assignment: assigning a proof term
   should not genereate any effect. Please see: d2exp_trup_assgn:D2LVALvar_mut
7. Adding libats/ML/gvalue
8. Adding libats/ML/dynarray
9. Adding an ATS2TUTORIAL-chapter on boxed tuples and records.
10. Adding an article in EFFECTIVATS on encoding propositional logic
11. Removing the once planned support for flattened references (ref@)

######

0.2.4

This is the 27th 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 bug due to abstract types being given the 'empty' name.
2. Adding libats/theGetters
3. Fixing a bug in ATS-extsolve (involving the s2rtdatmap generation)
4. Fixing a minor parsing bug in CATS-parsemit
5. Adding libatsopt, the library version of patsopt; see utils/libatsopt
6. Adding some ifdef-guards:
   ATS_EXTERN_DEF__ for guarding the definition of ATSextern()
   ATS_STATIC_DEF__ for guarding the definition of ATSstatic()
   ATS_INLINE_DEF__ for guarding the definition of ATSinline()
7. Adding some examples to illustrate a way of using ATS+Emscripten
8. Supporting evaluated expressions (of the form %(...)) in statics
9. Generally improving libatscc2js and libatscc2erl
10. With libatsopt(JS), Patsopt can now run entirely inside the browser.
11. Adding char2int1 and fixing add_bool_bool and mul_bool_bool

######

0.2.3

This is the 26th 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. Enforcing that the definition of each declared function be
   lam-abstract. For instanct, the following code results in an
   error during compilation:
   fun fact = fix f(n:int): int => if n > 0 then n*f(n-1) else 1
   Of course, one can always have:
   val fact = fix f(n:int): int => if n > 0 then n*f(n-1) else 1
(*
//
// HX-2015-09-15: This is re-implemented:
//
2. Supporting the use of locally defined templates:
   local fun foo(): int = 0 in fun{} foo2() = foo() + 1 end
   local fun{} foo(): int = 0 in fun{} foo2() = foo() + 1 end
*)
3. Changing some names:
   _ATS_CCOMP_HEADER_NONE -> _ATS_CCOMP_HEADER_NONE_
   _ATS_CCOMP_PRELUDE_NONE -> _ATS_CCOMP_PRELUDE_NONE_
   _ATS_CCOMP_PRELUDE_USER -> _ATS_CCOMP_PRELUDE_USER_
   _ATS_CCOMP_PRELUDE_USER2 -> _ATS_CCOMP_PRELUDE_USER2_
   _ATS_CCOMP_RUNTIME_NONE -> _ATS_CCOMP_RUNTIME_NONE_
   _ATS_CCOMP_EXCEPTION_NONE -> _ATS_CCOMP_EXCEPTION_NONE_
   _ATS_CCOMP_RUNTIME_TRYWITH_NONE -> _ATS_CCOMP_RUNTIME_TRYWITH_NONE_
4. Moving libatsynmark to utils/libatsynmark
5. Fixing an issue that causes crash due to compiling atstyvar_type.
   See hitype_tyvar_test in [pats_ccomp_hitype] for more information.
6. Changing the keyword 'require' to '#require' (for atspkgreloc)
7. Adding into ATSPRE string/string_forall and string/string_iforall
8. Reorganizing:
   moving the fprint-functions in prelude into prelude/fprintf.cats
9. Fixing a bug in CATS-parsemit (that affects parsing #if(0) ... #endif)

######

0.2.2

This is the 25th 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 explicitly boxed types: boxed and boxed_vt
2. Adding backup links to INT2PROGINATS, ATS2TUTORIAL, and EFFECTIVATS.
3. Fixing a bug in typechecking loop invariants (see bug-2015-08-04).
4. Adding [g0int_npow] and [g0float_npow] and overloading ** with them.
   For instance: (x+y)**3 expands to x**3 + 3*x**2*y + 3*x*y**2 + y**3
5. Adding the_s2rtdatmap to the jsonization of generated constraints
   (for listing the inductively defined sorts used in the constraints)
6. Supporting tail-call optimization for static function templates
7. Supporting #codegen2 for datcon, datcontag, and fprint
8. Supporting the use of $d2ctype for taking the type of a dynamic constant

######

0.2.1

This is the 24th 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 $solver_asssert and $solver_verify
2. Fixing [s2exp_hnfize_app] in [pats_staexp2_util2.dats]
3. Adding testing code: doc/EXAMPLE/ATSLIB/libats_gflist.dats
4. Adding various matrix-functions to libatscc/matrixref
5. Adding prelude/grandom (for generating lists and arrays randomly)
6. Atscc2erl (from ATS to Erlang) is functioning!
7. Libatscc2erl is created to work with Atscc2erl
8. Supporting --tlcalopt-disable + fnx (important for atscc2erl)

######

0.2.0

This is the 23rd 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. Re-structuring CATS-parsemit
2. Creating ATS-Postiats-frozen for storing inactive projects
3. Porting Atscc2js based on the newly re-structured CATS-parsemit
4. Porting Atscc2php based on the newly re-structured CATS-parsemit
5. Porting Atscc2py based on the newly re-structured CATS-parsemit
6. Porting Atscc2pl based on the newly re-structured CATS-parsemit
7. Handling of HIPintrep is now supported
8. Porting ATSLIB/libats/funmap_rbtree to ATS2 from ATS1
9. Modifying jsonization of constraints to support ATS-extsolve
10. ATS-extsolve-z3 (Z3-based ATS-extsolve) can now be put into use
11. Performing occurs-checking before HYPObind(s2v, s2e) can be formed

######

0.1.13

This is the 22nd 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 bug that associates static constants with
   incorrect filenames
2. Starting to put markers around error/warning messages
3. Fixing a bug causing mishandling of valimp in included code
4. Fixing a bug causing incorrect erasure of proof patterns

######

0.1.12

This is the 21st 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 bug involving the sequentiality of pattern matching.
   Please see doc/BUGS/bug-2015-04-15.dats for more on this one.
2. Improving s2exp_syneq2 by adding a couple of missing cases:
   S2Edatcontyp and S2Edatconptr
3. Adding patterns of the form: $tup(...) and $rec(...)
4. Renaming the option -CSignore as --constraint-ignore:
   patscc --constaint-ignore
5. Supporting the option to disable tail-call optimization:
   patscc --tlcalopt-disable
   patsopt --tlcalopt-disable
6. Supporting s2rt_float and static floating-points
7. Supporting s2rt_string and static string constants
8. If undefined, ATS_EXTERN_PREFIX is assumed to have the value:
   "__ATS_EXTERN_PREFIX__".
9. no exporting of r(), w() and rw() from prelude/basics_dyn.sats
10. Fixing bug-2015-05-13:
    Handling of staloaded template implementations was incorrect
11. Dot-symbol overloading is required to be of functional style.
    For instance,
    point.x changes to point.x()
    point.y changes to point.y()

######

0.1.11

This is the 20th 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 bug in hisexp_is_void
2. Adding D0Esing for parenthesized expressions
3. Adding ATS2TUTORIAL-chapter: Linearly typed lists
4. Adding prelude/tostring for converting values into strings
5. Adding minimal FRP support based on Bacon.js in libatscc2js
6. Replacing s2hnf_syneq with s2hnf_syneq2 in [s2hnf_equal_solve_err]
7. Fixing a bug in patcomplst_subtest: auxlst2: PTCMPreclparen:
   https://groups.google.com/forum/#!topic/ats-lang-users/sI9as4GIOVY
   https://github.com/githwxi/ATS-Postiats/blob/master/doc/BUGS/bug-2015-04-21.dats

######

0.1.10

This is the 19th 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. Minorly improving ATSPRE and ATSLIB/libats
2. Adding libats/tmpeval to support numeric arguments for templates
3. Improving ATSPRE/gnumber and ATSPRE/gorder slightly
4. Renaming:
   gequal_val -> gequal_val_val; gequal_ref -> gequal_ref_ref
   gcompare_val -> gcompare_val_val; gcompare_ref -> gcompare_ref_ref
5. Adding s2exp_syneq2:
   this version (in constrast to s2exp_syneq) handles bound variables
6. Supporting template implementations parameterized with existentially
   quantified types. For instance,
   extern
   fun{a:t@ype} myprint(a): void
   implement(a) myprint<List(int)> = ...
7. Adding some convenience wrappers:
   libats/ML/HATS/myfunset.hats
   libats/ML/HATS/myfunmap.hats
   libats/ML/HATS/myhashtblref.hats
8. Fixing certain issues with overloaded dot-symbols
9. Adding INT2PROGINATS-chapter: From genericity to late-binding
10. Adding ATS2TUTORIAL-chapter: Persistent hashtables
11. Adding ATS2TUTORIAL-chapter: Functional sets and maps

######

0.1.9

This is the 18th 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. Circumventing a Clang-3.5-O2 related bug that caused the generated
   patsopt to crash immediately. For more, please visit:
   https://groups.google.com/forum/#!topic/ats-lang-users/FSgjjkUURs4
2. Fixing a bug in pats_tyerase:s2zexp_tyer:
   https://groups.google.com/forum/#!topic/ats-lang-users/SGpN2D991tA
   https://github.com/githwxi/ATS-Postiats/blob/master/doc/BUGS/bug-2015-01-25.dats
3. Improving pats_trans2_p1at:p1at_tr_arg. See:
   ATS-Postiats-test/contrib/test-hwxi/test03.dats
4. Improving the formatting of INT2PROGINATS and ATS2TUTORIAL
5. Having $showtype to also print out the sort information
6. Adding API for sdstring (simple dynamic strings) in ATS2-contrib
7. Adding $UN.prop_assert for asserting any proposition one needs
8. Adding flags -h/--help for patscc to print out usage information
9. Handling D2Coverload during the jsonization of level-2 syntax
10. Reporting a compilation error if HDEsif is encountered

######

0.1.8

This is the 17th 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.

From this version on, the compiler (patsopt) built based on
the released package of ATS2 no longer runs GC when it compiles
ATS source code. Please use ATS2-github if you want to customize
various settings of patsopt (including GC and constraint-solving).

######

0.1.7

This is the 16th 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. Improving some error-handling code.
2. Fixing bug-2015-01-07.
   One can use $tempenver to explicitly declare that a dynamic
   variable should be added to the environment of each template instance
   within the scope of $tempenver-declaration.
   A running example using this feature is available at
   https://github.com/githwxi/ATS-Postiats/blob/master/doc/BUGS/bug-2015-01-07.dats
3. Adding ATS2TUTORIAL/CHAP_RECURSION
4. Adding ATS2TUTORIAL/CHAP_DATATYPES
5. Fixing bug-2015-01-10:
   [pfobj_search_atview] is now stopped by either [lam] or [llam]
6. Fixing various issues with multi-file compliation via patsopt
7. Adding INT2PROGINATS/CHAP_ABSVTYPE/LockingAndUnlocking
8. Bootstrapping via the newly released package ATS1-0.2.12
9. Adding INT2PROGINATS/CHAP_ABSVTYPE/LinearChannelsForIPC

######

0.1.6

This is the 15th 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. Reorganizing ATSLIB/prelude
2. Improving ATS2-contrib/zeromq
3. Adding src/Makefile_CBOOTmin for minimally C-bootstrapping ATS2:
   There is no GCATS by default
   There is no dependency on libgmp
4. Code for level-2 jsonization is moved into
   pats_synent2_jsonize.sats
   pats_synent2_jsonize.dats
5. Adding various functions for traversing level-2 syntax See:
   pats_staexp2_appenv.hats
   pats_dynexp2_appenv.hats
   pats_constraint3_appenv.hats
6. Using a more compact format for representing exported constraints
7. Using a more compact format for representing JSONized level-2 syntax
8. Overhauling the build process for ATS1
9. Supporting NGC-bootstrapping (via ats-lang-anairiats-0.2.11-fin)
10. Automated testing (via Travis-CI) is substantially extended.
11. Building ATS2 on MACOSX (via ATS1-ngc) is formally documented
12. Adding support for bit vectors: libats/bitvec
13. Fixing bug-2015-01-03 (see doc/BUGS), which caused an error in
    compiling certain singular flat records.
14: Generally improving some error-handling code.

######

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

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
*)

######

0.1.3

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

######

0.1.2

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 ...

######

0.1.1

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

######

0.1.0

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/*

######

0.0.8

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

######

0.0.7

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

######

0.0.6

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.

######

0.0.5

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!

######

0.0.4

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

######

0.0.3

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.

######

0.0.2

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.

######

0.0.1

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.

###### end of [CHANGES-ats2] ######
