0.0.6 <pre> 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. </pre> ###### 0.0.5 <pre> 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! </pre> ###### 0.0.4 <pre> 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 </pre> ###### 0.0.3 <pre> 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. </pre> ###### 0.0.2 <pre> 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. </pre> ###### 0.0.1 <pre> 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. </pre> ###### end of [VERSION.txt] ######