If you would like to receive an email when new versions of Kaya are available and for other major events, then subscribe to the kaya-announce mailing list.
13 April 2009: Kaya 0.4.4 and 0.5.2 released
Kaya 0.4.4 and 0.5.2 are now available for download.
0.4.4 is entirely compatible with previous 0.4 versions, and includes important bug fixes:
- Fix bug with constructor applications with ambiguous names (thanks to Matthew Bell)
- Fix various bugs in standard library functions found by 0.5 test suite
- Allow compilation with GHC 6.10
0.5.2 includes the above bug fixes and several additional changes.
- Fix bug with compilation of functions with type signatures only differing by return types (changes Pickle format)
- Fix large inefficiency in String concatenation
- Fix inefficiency in some Regex operations
- Added
%testdirective so that unit tests can be run automatically after compilation. - Added unit tests to some standard library modules
- Added RPC.k and distrib.ks for making distributed/parallel applications
- Added Tainted input support (mainly for CGI programs)
- Added
%nodocdirective to suppress documentation generation - Added
-dynamiccompiler flag and Plugins module - Fixed regression in Regex::split (does not affect 0.4 branch)
2 August 2008: Kaya 0.4.3 and 0.5.1 released
Kaya 0.4.3 and 0.5.1 are now available for download.
0.4.3 is entirely compatible with previous 0.4 versions, and includes several important bug fixes:
- ./configure now checks for Haskell MTL package (thanks to Mate Nagy)
- Fix bug with prepared statements in MySQL (thanks to Mate Nagy)
- Fix bug with delimiters at the end of Regex::split inputs (thanks to Szabolcs Nagy)
- Fix bug with handling of multi-line non-file data in file uploads (thanks to Mate Nagy)
- Fix memory management issue causing rare and difficult to reproduce crashes when closures were used.
0.5.1 includes all the above bug fixes, and the following additional bug fixes and features.
- Pickle can now pickle closures. marshal data not automatically invalidated by changes to the function table.
- Webapp and CGI now have a webshutdown function.
- Fixed bug with compareTime function returning -1*the correct answer. This also fixes a bug where RSS entries were displayed in the wrong order. (This bug is not present in 0.4)
- General optimisations to run-time system and string handling.
- Minor optimisations in MySQL and Regex modules
Note that the fix to the MySQL prepared statements bug in 0.5.1 is different to the fix in 0.4.3 - read the upgrade page for more information.
9 June 2008: Kaya 0.4.2 released
Kaya 0.4.2 is now available for download. A packaging error in the 0.4.1 release caused problems with installation for most users. 0.4.2 fixes this problem, which does not affect 0.5.0.
26 May 2008: Kaya 0.4.1 and 0.5.0 released
Kaya 0.4.1 and 0.5.0 are now available for download.
0.4.1 is entirely compatible with 0.4.0, and contains several important bug fixes.
- Fixed static linking and some build issues on non-PC architectures
- Fixed header injection security bug in CGI framework (note: the webapp framework was not affected by this bug).
- Fixed bug with temp files for REPL persisting longer than necessary on POSIX
- Fixed bug with constant propagation in exception handling
0.5.0 is the first release in the unstable branch, and as well as the bug fixes above includes a few new features
- RSS generation module
- Uncaptcha module for easier webspam filtering
- Interface change to DB module to protect against accidental data corruption
- Minor improvements to HTML and XML generation
15 March 2008: Kaya 0.4.0 released
Version 0.4.0 of Kaya has been released. This release contains several enhancements and bugfixes, as well as forming the start of the first stable branch of Kaya, so all users are recommended to upgrade.
- No need for types when defining global constants (in most cases)
- Added experimental Ajax functions to CGI module
- Generic for loop iteration via 'traverse' function.
- Removed deprecated functions, data types, exceptions and syntax
- Changed data types in Kayurses. Note that this change is unfortunately not backward-compatible, but is necessary to avoid conflicts with Curses. See the upgrade notes.
- Lambda functions can now modify variables in the containing scope
- Optimisations to ADT speed
- Renamed
xml2manandrekeytokayadoc2manandkaya-rekeyrespectively, to avoid potential conflicts with other applications (thanks to Jochen Schmitt for bringing this to our attention) - Gnutls is now no longer even slightly optional.
- Fixed serious bug with infix == and != operators
- Fixed ServerLoop module (thanks to Boris Jakubith for the report and fix)
- Fixed Curses(W) documentation generation and a few other minor documentation errors and bugs.
- Fixed some more 64-bit bugs (thanks to Boris Jakubith and Stu Teasdale for their patches and help with this)
- Fix some dependency errors and problems with [dist]clean in Makefiles (thanks to Stu Teasdale for help in tracking these down)
- Fix serious bug in hash function that was breaking Dicts (and other things)
- Fixed bug introduced in mkTime in 0.2.7
- A few other minor improvements and bugfixes.
We will be discussing the future development of Kaya on the kaya-devel mailing list soon, so please subscribe and contribute if you have any opinions on this.
29 September 2007: Kaya 0.2.7 released
Version 0.2.7 of Kaya has been released. This release contains several significant enhancements and bugfixes, so all users are recommended to upgrade.
- Full pattern matching in case expressions
- 'let' bindings with pattern matching as lvalues
- Read/execute/print loop, invoked with
kayacommand. - Prepared statement support in DB module (and all three supported databases)
- Significant changes to Curses module to fit interface conventions
- Can now use external files for the application secret key
- Verification of server certificates with TLS is now possible
- Full API documentation except for a couple of 'contrib' modules
- Numerous bug fixes for 64-bit systems (webapps now work properly there!) and for compiling with GCC 4.2
- Fix for regression introduced (but not spotted) in 0.2.5 regarding for loop counters
- Various other minor additions and bug fixes
Unless major bugs are discovered, the next release of Kaya will be 0.3.0. This version will remove all the deprecated functions and syntax in 0.2.7, so the use of -deprfail while developing is recommended to discover use of these in your programs.
23 June 2007: Kaya 0.2.6 released
Version 0.2.6 of Kaya has been released. This release contains numerous improvements and bug fixes, so all users are recommended to upgrade.
- File is no longer a primitive type. This change will require some code to be rewritten.
- List comprehensions
- Added raw string literals (
r"foo\\\bar"orR"foo\\bar") and raw character literals (r'\'orR'\') - Call stack and value stack can no longer be overflowed.
- No more separate PDCurses module. Windows users can now just import Curses which is now compatible with both ncurses and pdcurses.
- XML parser is now considerably faster.
- Assignment to an array index, type member or global variable is now much faster
- Added Multicore module, implementing threaded map and zipWith and threaded application, as well as syntactic sugar for evaluating function arguments concurrently: fun#(arg1,...argn) to run 'fun' with code computing arg1-argn executed concurrently.
- Cookie header generators for client and server in HTTP and WebCommon modules.
- Better array implementation (clearer, and no need for createArray) - shift/unshift operations are now much faster
- Some String optimisations
- Optimisations to various parts of the run-time system (5-20% improvement on real applications, more in special cases)
- kayac now deals with a ulimit restricting the number of concurrent open files sensibly
- Data type change in SDL module
- Binary-safe networking functions
- Unix Sockets module (on posix systems only)
- SCGI interface functions.
- Much more API documentation
- Update rand function to not be completely hopeless
- Fix bugs with -static option
- Various other minor additions and bug fixes
20 April 2007: Kaya 0.2.5 released
Version 0.2.5 of Kaya has been released. This release contains numerous improvements and bug fixes, so all users are recommended to upgrade.
- Deprecated functions can now be located and avoided using the
-deprfailoption. - Copy propagation optimisation, eliminating redundant temporary numeric values.
- Basic (cross module) inlining optimisation and improved constant reduction and if/else reduction where values are statically known.
- Fixed some bugs with function overloading
- More stdlib API docs
xml2mancorrectly handles the filename parameter (thanks to Boris Jakubith for the patch)- readFromString has a
TagSoupparsing mode for making some sort of guess at the meaning of poor-quality HTML. - Basic templating facility for HTML documents
- libpcre now no longer needs to support UTF-8 to use Kaya (although functionality is significantly reduced in this case)
- External function declarations for those rare cases a circular dependency is necessary.
- Foreign function interface optimisations
- webappName function to replace progName when used in webapps and CGI (thanks to Philip Cullen for reporting this)
- Introduced limited support for parts of the SDL input/output library
- Fix bug that prevented compiling with GCC 4.3 (thanks to Martin Michlmayr for finding this and providing the fix)
- Fix bug with statements such as "
return Char(f+200);" where the new value was not placed on the heap properly. - Bug with array assignment fixed.
- Various other minor improvements and bug fixes
Thanks to everyone who has reported bugs, suggested features, or contributed patches for this release.
30 January 2007: Kaya 0.2.4 released
Version 0.2.4 of Kaya has been released. This release contains numerous improvements and a new Exception syntax, and also fixes several important bugs, some of which have security implications. Users are encouraged to upgrade as soon as possible.
- kayac much faster
- Set module added to stdlib, containing Set and HashSet data structures.
- KayaDoc module added to stdlib, to process
-xmldocsoutput - New website.
- Much more documentation for the standard prelude and some stdlib modules
- The Uploaded data type for files uploaded to webapps/CGI is now declared
'abstract'to prevent accidental modification of the contents. - File uploads are no longer enabled in webapps/CGI by default.
- New exception syntax available, old style exceptions now declared by
'%Exception', and are now deprecated. - Fixes a bug where default arguments to functions could reference other function arguments.
- Fixes a bug with using replace and Global on a string containing multi-byte UTF-8 characters
- Fixes some bugs related to reading very long strings from files.
4 December 2006: Kaya 0.2.3 released
Version 0.2.3 of Kaya has been released to fix a bug in the typechecker.
- Serious typechecking bug fixed (wrongly generalising polymorphic local variables, leading to programs typechecking when they shouldn't.)
- Various other minor improvements and fixes.
26 November 2006: Kaya 0.2.2 released
Version 0.2.2 of Kaya has been released.
- Added Reflect, a reflection/reification library to allow generic programming over arbitrary data structures.
- Added Pickle, a library for converting objects to strings which may be saved to e.g. disks or databases.
- UTF-8 reader fixed.
15 November 2006: Kaya 0.2.1 released
Version 0.2.1 of Kaya has been released. There are few user-visible changes from 0.2.0, but several invisible improvements have been made. User-visible changes include:
program,webappandwebprogare no longer reserved words. Instead, an arbitrary identifier can be used, provided that there is an appropriate .ks file in the module path.- File upload support in web programs.
- webapp and webprog renamed to cgi and webapp respectively; standard library modules renamed to CGI and Webapp
- Global variables can be initialised at the point of declaration.
- Moved GL/Glut libraries into main distribution
- Kayac compiling time considerably improved
- Better, more informative, error messages
- Bug fixes and small library updates