######

0.4.0

This is the 51st 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 testing code:
   doc/EXAMPLE/ATSLF,
   doc/EXAMPLE/INTRO, doc/EXAMPLE/TESTATS
   Kudos to Artyom Shalkhakov!
2. Introducing various keywords (e.g., atstflt, atsvtflt), which are
   used in the implementation of ATS3(ATS/Xanadu)
  
Please note that there are two variants of the package released: The
"gmp" variant depends on the GMP library while the "int" variant does
not. From this release on, ATS2-Postiats-0.4.0.tgz is just the same as
ATS2-Postiats-int-0.4.0.tgz. This choice is made due to the fact that
most users (especially new users) can readily get by without the extra
dependency on GMP.

######

0.3.13

------------------------------------------------
ATS2-Postiats-gmp-0.3.13.tgz:
MD5: caf1515a077472b5cd56b92c996aec91
SHA1: 969fcaf9e2c11ca3b89d5b21aaff70f7b126a960
--
ATS2-Postiats-int-0.3.13.tgz:
MD5: d67be4927beb144ad13bc9506c946859
SHA1: 442d51167cd82da0d7107dbbd16cc5b97d73b4b4
------------------------------------------------

This is the 50th 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 issue of escaping '$' in PHP string literals (atscc2php)
   Kudos to M88!
2. Fixing very minor issues in libats/qlist and libats/linmap
3. Enforcing that no d2var can be leaked/exported from a namespace

Please note that starting in this release, there are two variants of the package
released: the "gmp" variant depends on the GMP library. The "int" variant does
not depend on the GMP library. In this release ATS2-Postiats-0.3.13.tgz is just
the same as ATS2-Postiats-gmp-0.3.13.tgz. This is subject to change in future
releases, as most users (especially new users) can get by without the extra
dependency on GMP.

######

0.3.12

------------------------------------------------
ATS2-Postiats-0.3.12.tgz:
MD5: 6328cac96b0b0a19ecf13480662a7f42
SHA1: da6e20815351c6a59635ca61da9474c68fc06b34
------------------------------------------------

This is the 49th 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 parsing for hexidecimal floating point numbers
2. Fixing issues with some atsccomp transpilers and their libs
3. Tidying-up code for resolving fixity (xpushup and xreduce)
4. Atscc2js supports native records now (Kudos to AS-2018-08-18):
   See the function [emit_SELfltrec] for some detail.
5. Various minor fixes of all sorts (e.g., on the prelude library)

######

0.3.11

------------------------------------------------
ATS2-0.3.11.tgz:
MD5: 847b592ce92655fe72f68000104e12b4
SHA1: c4df38d0ae759be4294c8a9d90f8bad7800dac50
------------------------------------------------

This is the 48th 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-enabling the support for -IATS
2. Rewording LICENSE: the ATS libraries are now covered under LGPLv3
   In particular, any C code generated by ATS/Postiats is NOT by default
   considered to be covered by the GPL/LGPL license of any kind.
3. Renaming some keywords:
   atstbox for atstype
   atstflat for atst0ype
   atsvtbox for atsvtype
   atsvtflat for atsvt0ype
   absimpl for assume and atsreimpl for reassume

######

0.3.10

------------------------------------------------
ATS2-0.3.10.tgz:
MD5: cd20db33a0a3d4e38674260309884502
SHA1: e8ca2974d56c5f844eee15d650db56a1d3631c01
------------------------------------------------

This is the 47th 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 atscntrb-sdstring and atscntrb-hx-cstream
2. Changing "atscntrb" to "atscntrb-hx" in the names of almost all of
   the npm-based ATS packages contributed by myself (Hongwei). This is
   a pervasive change due the wide use of these packages.
3. Adding libats/ML/SATS/argvec.sats and libats/ML/SATS/argvec.dats
4. Adding share/SCRIPT/buildRelease.sh to automate build/release ATS

Acknowledgment:

Thanks to Lance Galletti and Wei Jiang for helping test this release.

######

0.3.9

------------------------------------------------
ATS2-0.3.9.tgz:
MD5: 89896a2ea58b07c2c409cd4297891aa1
SHA1: e350b7872cbac5ab1c3a539c7e35d176e39eb378
------------------------------------------------

This is the 46th 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 libatscc/libatscc2js regarding matrixref and matrix0
2. Improving doc/BOOK/ATS2FUNCRASH by tidying-up and fixing errors
3. Adding some examples in ATS-Tutoriats demonstrating ATS+ReactJS
   and ATS+React-Native
4. Adding basic programming support for parallelized stream-mapfold:
   ${PATSHOME}/libats/BUCS320/StreamPar (stream-processing)
   ${PATSHOME}/libats/BUCS520/StreamPar (linear-stream-processing)
5. Adding basic programming support for recursive directory-traversal:
   ${PATSHOME}/npm-utils/contrib/libats-hwxi/find_cli
6. Moving most higher-order functions from ATSPRE to ATSLIB/ML/atspre.
   This is a pervasive change, triggering a lot of (minor) fixes!
7. Rewriting several stream_vt functions to make them tail-recursive.
8. Moving ATSPRE/fcontainer and ATSPRE/giterator into libats/ATS2
9. Finishing EFFECTIVATS/SteamPar on streamization and stream-processing
   in parallel.
10. Starting the ATS-CodeBook project (at http://github.com/ats-lang):
    Hello, HX-intinf, ReadFromSTDIN, ReadFromSTDIN2, ReadFromSTDIN3, and
    WordFrqncyCount

######

0.3.8

This is the 45th 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 libatscc/ML/option0
2. Adding libatscc/ML/matrix0
3. Minorly improving libatscc/ML/list0 and libatscc/ML/array0
4. Fixing missing cases in eval1_p2at (pats_dmacro2_eval1.dats)
5. Fixing and improving libats/funarray
6. Adding calls to the_dynconlst_add to ensure that every exception
   constructor is declared in the generated C code.
7. Initiating building the "compiled" library libats/ML/COMPILE
8. Fixing a glitch in compiling polymorphic functions that call
   function templates (auxmat_env in [pats_ccomp_template.dats])
   A simple use case is found in doc/EXAMPLE/TESTATS/tempboxed.dats
9. Adding support for calling variadic functions in a type-safe way.
   There is no attempt to add support for type-safe implementation of
   variadic functions yet.
10. Supporting the user of the flag --gc for myatscc.
    
######

0.3.7

This is the 44th 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. Extending prelude/stream_vt with more functions
2. Improving ${PATSHOME}/contrib/libatscc2php/ATS2-0.3.2
3. Supporting the following style of function interface declaration:
   extern
   fun swap_boxed{a,b:type}(xy: (a, b)): (b, a)
   (
   Note that (a, b) needs to be replaced with @(a, b) at this point
   )
4. Adding stream-processing functions in prelude and libats/ML
5. Hosting for ats-lang.org moved from OPENSHIFT2 to OPENSHIFT3
6. In progress:
   A Functional Crash into ATS: ${PATSHOME}/doc/BOOK/ATS2FUNCRASH
7. Atscc2r34 (for transpiling ATS into R) is functioning and it is
   expected to be improved gradually.
8. Improving ATSLIB/libats/ML: more list0-combinators; printing stuff
  
######

0.3.6

This is the 43rd 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 'reassume': the bug is serious but the fix
   is very minor.
2. Improving utils/atexting by merging atexting_all with atexting_mylib
   Many clients of atexting (e.g., atsccomp-compilers) have been updated
   with respect to the changes maded to atexting.
3. Adding support for compiling a static file followed by a dynamic file
   into a single file consisting of the generated code:
   patsopt -o foo_all.c -s foo.sats -d foo.dats; patscc -o foo foo_all.c
   This support can be useful for distributing C code generated from ATS
   source. For instance, a file of C code generated as such can serve as
   a script of some sort.
4. Adding support for -dd/--dynamics, which compiles a list of given files
   in a combined manner. For instance, the following command-line:
//
   patsopt -dd foo.dats bar1.dats bar2.dats bar3.dats
//
   essentially compiles a program of the following structure:
//
   local (*nothing*) in #include "foo.dats" end
   local #include "bar1.dats" in (*nothing*) end
   local #include "bar2.dats" in (*nothing*) end
   local #include "bar3.dats" in (*nothing*) end
//
   This style of compilation can be used for the purpose of producing a
   single target containing all of the output generated from compiling a
   list of ATS source files.
5. Disabling tail-call optimization temporarily when try-expression (in
   trywith-expression) is compiled
6. Mandating that an else-clause be present in any ifcase-expression:
   ifcase
   | test1 => ...
   | test2 => ...
   | _(*else*) => ... // this is the else-clause here

######

0.3.5

This is the 42nd 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 atscc2js that prevented certain compound patterns
   from being handled correctly. Should this be done to other atsccomp
   compilers?
2. Fixing a bug causing linear tuples to be leaked after their use.
   Please see bug-2017-04-16.
3. Fixing a bug in compiling a fix-function defined inside a template.
   Please see bug-2017-04-17.
4. Disallowing non-variable linear patterns used as function arguments
   (due to potential memory leaks):
   For instance,
   fun foo($tup(x, y)): ... = ...
   needs to be written as
   fun foo(xy): ... = let $tup(x, y) = xy in ... end
5. Adding myatscc-support (in utils/myatscc)
   for allowing compilation commands being embedded inside source code.
   For instance, the following comment can be included to support using
   ATS as a scripting language:
   (*
   ##myatsccdef=\
   patsopt --constraint-ignore --dynamic $1 | \
   tcc -run -DATS_MEMALLOC_LIBC -I${PATSHOME} -I${PATSHOME}/ccomp/runtime - $arglst(2)
   *)
6. Adding ats1-libatsopt (npm-package)
7. Adding contrib/atscntrb-hx-getargs for building command-line support
8. Adding ATS-Postiats/npm-util/libats-hwxi/OpenSCAD:
   Supporting meta-programming for OpenSCAD, that is, writing programs in
   ATS for generating OpenSCAD code (that can create models for 3D-printing)
  
######

0.3.4

This is the 41st 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 issue of patsopt_version not available in libatslib.a
2. Fixing made to prevent an existential type variable (s2Var) from
   becoming its own upper bound or lower bound.
3. Adding both of CATS-atscc2pl and libatscc2pl to the release
   Adding both of CATS-atscc2scm and libatscc2scm to the release
   Adding both of CATS-atscc2clj and libatscc2clj to the release
4. Improving s2hnf_syneq_env for handling S2Elam.
5. Fixing s2exp_lamlst: arguments should not be reversed!
6. Fixing impenv_update: s2e.sort <= s2v.sort is needed for s2e to match s2v

######

0.3.3
  
This is the 40th 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 $tempenver in template implementation:
   This is a crucial addition in support of programming in ATS that
   may potentially be (very) deeply template-based!!!
(*
2: Re-arranging (and duplicating) files containing code of template
   implementation may cause the need for $tempenver to change. It is
   not yet understood what the reason is behind all of this behavior.
*)
3. Fixing a glitch involving tail-call optimization; please see the
   function hidexp_seq_simplify for details.
4. Supporting [reassume]: An assumed abstract type can be reassumed
   so as to make its (original) implementation available in the scope
   of the reassume-declaration.

######

0.3.2
  
This is the 39th 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. Allowing overloads declared in staloadnm to be merged automatically
2. Initiating libatscc being moved from PATSCONTRIB to PATSHOME/contrib
   In particular, moving of Bacon.js and Worker in libatscc/libatscc2js
   is finished.
(*
//
HX-2017-02-01: Reverted!
// File search in ATS is intentionally different from done in C
//
3. Using pushb (push-from-the-back) to push a path permanently:
   fun the_pathlst_ppushb(x: path): void // see [pats_filename]
   fun the_IATS_dirlst_ppushb (dir: string): void // see [pats_global]
*)
4. Adding support for handling abstract types of unspecified size
5. Adding code into libats/BUCS320/. to support package-based programming
6. Introducing the compilation flag _ATS_CCOMP_ASSUME_CHECK_NONE_ to skip
   over checks that are otherwise required of assuming (i.e., implementing)
   abstract types
7. Moving a lot of code around due to packaging and re-packaging; mostly
   moving from PATSCONTRIB to PATSHOME/npm-utils
8. Adding support for 'where <declist> end' (besides 'where { <declist> }')
9. Fixing a minor glitch involving typechecking ifcase-expressions
10. Removing duplicates of overloaded dynamic constants and variables;
    please see the changes in [pats_trans3_appsym.dats]

######

0.3.1

This is the 38th 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 ${PATSHOME}/atscntrb/* into ${PATSHOME}/contrib/.
2. Adding ${PATSHOME}/npm-utils; gradually retiring ${PATSCONTRIB}/.
3. Supporting package-based programming:
   PATSHOMELOCS, mydepies.?ats, mylibies.?ats, etc
   Please see GraphSearch-npm in the Effective ATS series
4. There is still a lot of moving around; the dust should soon settle...
  
######

0.3.0

This is the 37th 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 compilation issue involving extvar
2. pkgreloc -> atsreloc; util/atspkgreloc -> util/atsreloc
3. Adding doc/EXAMPLE/RosettaCode as an example of [atsreloc] that makes
   it conventient to download external library code for use in a project.
4. Adding support for PATSHOMERELOCS. Please see:
   https://groups.google.com/forum/#!topic/ats-lang-users/03LCSLaBmxU
5. Adding script for automatically building ccomp/atslib/lib/libatsopt.a
   in future releases
6. Reorganizing (by moving packages from ATS2-contrib to ATS2/contrib):
   ats2cpp,
   ATS-extsolve,
   ATS-extsolve-z3,
   ATS-extsolve-smt2,
   CATS-parsemit,
   CATS-atscc2js,
   CATS-atscc2pl,
   CATS-atscc2py3,
   CATS-atscc2php,
   CATS-atscc2scm,
   CATS-atscc2clj,
   CATS-atscc2erl,
   ...
   Basically, there is a lot of moving around...
      
######

0.2.13

This is the 36th 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 a parsing-combinator package for libats.
2. Adding a parsing-combinator package for libatscc.
3. ATS2-contrib/ats2cpp is significantly improved and ready for real
   use. For instance, it is used in a project involving OpenCV.
4. Adding libats/BUCS320/GraphSearch for teaching graph-based search.
5. Adding libatscc/BUCS320/GraphSearch for:
   atscc2js, atscc2py3, atscc2php, atscc2clj, atscc2scm, and atscc2pl
6. Re-fixing bug-2016-06-26 // see pats_trans3_util.dats for comment
  
######

0.2.12

This is the 35th 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. Significantly expanding libatscc
2. Improving typechecking involving $delay and $ldelay
3. Changing symbolic to "%&+-./:=@~`^|*!?<>#" (that is, '$' is dropped)
4. Supporting both string_make_stream and string_make_stream_vt
5. Improving support for combinators in stream_vt, ML/list0 and ML/string
6. Introducing $tyrep(...) for outputing terms representing types in the
   generated code (so that C++ templates can be used in ATS2 code directly)

######

0.2.11

This is the 34th 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: libc -> libats/libc (pervasive changes!!!)
2. FILEref-values are no longer closed automatically when embedded in
   stream_vt (but FILEptr-values are still closed at the end)
3. Fixing bug-2016-10-08, which was reported by Hanwen. Thanks!
4. Significantly expanding libatscc
5. Adding support for stream_vt in the following compilers:
   atscc2js, atscc2py3, atscc2scm, atscc2clj, atscc2php, atscc2pl

######

0.2.10

This is the 33rd 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 pats2xhtml
2. Adding support for patsopt-tc, patsopt-cc and patsopt-ccjs
3. Improving s2zexp_make_s2exp (in src/pats_staexp2_szexp.dats)
4. Reorganizing prelude/integer into
   integer_long, integer_size, and integer_short
   (Note that there are also integer_ptr and integer_fixed)
5. Adding support for codegen2_absrec (for generating record interface)
  
######

0.2.9

This is the 32nd 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 streamize-functions
2. Including the patsopt version into the C code generated by patsopt
3. Greatly improving support for programming with combinators in general
4. Support in atscc2erl and atscc2scm for handling tail-call optimized code
5. Atscc2clj/libatscc2clj starts to be functioning (but it is still a long way to go!)
6. Initiating testing for ATSLIB (see ATS2-Postiats-test/core/ATSLIB for more)

######

0.2.8

This is the 31st 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 ifcase-expressions. Please see
   https://github.com/githwxi/ATS-Postiats/blob/master/doc/EXAMPLE/TESTATS/ifcase.dats
2. Atscc2py/libatscc2py changes to atscc2py3/libatscc2py3
3. Atscc2scm/libatscc2scm starts to be functional (but it is still a long way to go!)
4. Adding support for jsonizing S2Ewithtype (wths2explst); some fixing for d2cst decl
5. Improving patsolve_z3 to handle constraints on real numbers
6. Improving libatscc in general; adding support for pygame in libatscc2py3
7. Adding ATS-extsolve-smt2 based on the pilot work by Will Blair and Hanwen Wu; the
   command patsolve_smt2 turns ATS constraints in json format into those in smt-lib2
   format, which can then be solved with z3, cvc4, etc. In particular, constraints on
   reals can be handled in this way.
8. Fixing a bug involving tuple/record compilation (see: doc/BUGS/bug-2016-06-26.dats)
9. Circumventing a bug involving templates initiated with fnx (see: bug-2014-11-14.dats)
10. Adding tupbox(...) and fprint_tupbox(...) for boxed tuples of length 1, 2, 3, and 4

######

0.2.7

This is the 30th 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 some basic functions into libats/ML/stdlib
2. Atexting is functioning; it has been used to syntax-hilite ATS code
   in docbook.
3. Refactoring libatsynmark to make it directly dependent on libatsopt
4. Automatically building libatsopt and libatsynmark when testing (travis-ci)
5. Automatically building INT2PROGINATS and ATS2TUTORIAL (thanks to Kiwamu Okabe)
6. Fixing bug-2016-05-13 (reported by paul7)
   See BUGs/bug-2016-05-13.dats (it involves empty list of matching d2explst)

######

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

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 ATS1. One can
make good use of ATS2 without any need for compiled library (libatslib.a).
Also, GC support in ATS2 becomes optional; if needed, third-party GC (e.g.,
Bohem-GC) can be readily employed.

I will gradually list differences between ATS1 and ATS2, helping people
make the transition from ATS1 to ATS2.

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