Implementations of ATS


  • ATS/Proto is the first implementation of ATS. In this implementation, the standard boxed data representation is used to support parametric polymorphism. As of now, ATS/Proto is no longer actively maintained and its main purpose is to serve as an example for future reference.

  • ATS/Geizella is a previously released implementation of ATS (written in Objective Caml and C). In this implementation, the native unboxed data representation (as is in C) is adopted, and this makes ATS/Geizella particularly well suited for direct interaction with C. As for parametric polymorphism, it is supported in ATS/Geizella through the use of templates. ATS/Geizella is now largely out of active use as ATS/Anairiats, a compiler for ATS that is almost entirely written in ATS, has been bootstrapped successfully (with the help of ATS/Geizella).

  • ATS/Anairiats is the currently released implementation of ATS. ATS/Anairiats is written in ATS itself, consisting of more than 90,000 lines of source code. When compared to ATS/Geizella, ATS/Anairiats is significantly more efficient, and in general it issues more informative messages for identifying program errors.

    Bootstrapping via gcc  In order to bootstrap ATS/Anairiats, one needs to first check out the following svn directory and name it as some local directory, say, "FOO":

    svn co https://ats-lang.svn.sourceforge.net/svnroot/ats-lang/trunk FOO
    Then please go into the directory "FOO" and execute the command 'aclocal' and then the command 'autoconf' and then do 'make all'.

    Bootstrapping via ocaml  It is also possible to use the ATS/Geizella compiler (written in Objective Caml) for bootstrapping ATS/Anairiats. This can be done by checking out the following svn directory and name it as the local directory "FOO/bootstrap0":

    svn co https://ats-lang.svn.sourceforge.net/svnroot/ats-lang/bootstrap/tags/geizella-x.x.x \
      FOO/bootstrap0
    Note that "x.x.x" should be replaced with the latest version number available for bootstrapping, which currently is "0.1.3". It also works (most of the time) if one checks out the code for bootstrapping as follows:
    svn co https://ats-lang.svn.sourceforge.net/svnroot/ats-lang/bootstrap/geizella \
      FOO/bootstrap0
    After this is done, please go into the directory "FOO" and execute the command 'aclocal' and then the command 'autoconf' and then do 'make all'.


  • This page is maintained by Hongwei Xi. As always, your comments are welcome.


    SourceForge.net Logo