ATS2-0.2.3 released

Hi,

I am glad to announce the release of ATS2-0.2.3.

This is the 26th release of ATS2, the successor of the
ATS (currently referred to as ATS1) 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:

Major releases of ATS2 are available at:

Major releases of external packages for ATS2 are available at:

A google-group for discussing ATS and related issues is at:

https://groups.google.com/forum/?fromgroups#!forum/ats-lang-users

The following packages are included in this release:

ATS2-Postiats-0.2.3.tgz # requiring libgmp
ATS2-Postiats-0.2.3-intmin.tgz # require no libgmp
ATS2-Postiats-contrib-0.2.3.tgz # contributed packages
ATS2-Postiats-include-0.2.3.tgz # CATS-files w/ BSD-like license

I have included ATS2-Postiats-contrib (instead of releasing it
separately) as it is truly by now an indispensible part of ATS2.

After installing ATS-Postiats-include, one can compile the C code
generated from ATS source without installing the ATS compiler. So
a convenient way to distribute software written in ATS is to simply
release the C code generated from the ATS source.

See below for some major additions and changes since the last release
(ATS2-0.2.2).

Cheers,

–Hongwei Xi

Computer Science Department
Boston University
111 Cummington Street
Boston, MA 02215

Email: hw…@cs.bu.edu
Url: http://www.cs.bu.edu/~hwxi
Tel: +1 617 358 2511 (office)
Fax: +1 617 353 6457 (department)

beg of CHANGE-ats2
  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 nf(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)
end of CHANGE-ats2

Monitor Your Dynamic Infrastructure at Any Scale With Datadog!
Get real-time metrics from all of your servers, apps and tools
in one place.
SourceForge users - Click here to start your Free Trial of Datadog now!
http://pubads.g.doubleclick.net/gampad/clk?id=241902991&iu=/4140
ats-lang-users mailing list
ats-lan...@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ats-lang-users