Moto 0.19.0 beta 1
David Hakim <dhakim-Gkm/TONP9n1Wk0Htik3J/[email protected]> Tue, 4 Mar 2003 18:50:44 -0500
| Newsgroups | gmane.comp.lang.moto.devel,gmane.comp.lang.moto.user |
|---|---|
| Message-ID | <[email protected]> |
Well, counter to at least some of the advice I've received I'm releasing a beta of 0.19.0 now before the final syntax changes are set in stone. Specifically I do not know whether the '&' (function identification) operator will remain in moto after this beta. Those of you who will not be using Higher Order Functions in your apps don't need to worry about this point. You can download the beta from http://www.projectmoto.org/moto_0_19_0_eng_a.tar.gz . The big new feature in this release is support for Higher Order Functions in moto. Right now they are only as powerful as function pointers in C but in future releases they will become much much more powerful with the addition of inline function definition though the use of anonymous functions and partial function application. I haven't started the documentation for this feature yet but there are lots of examples in the tests directory (hof_*.moto) . Many other bug fixes have made it into this release as well. Here are the full release notes: New Features - Added First-class type support for functions - Added support for defining higher order functions - Added Vector::sort(int(Object,Object)) which takes a function to compare two objects - Added Enumeration::each(void(Object)) which takes a function to perform on each element in the enumeration - Added sub(Regex,String(Match)) which takes a function for the substitution - Added split() and join() functions - Better errors are reported for bad casts of arrays - Provided for https redirects (Shay) - Added destdir support to the main makefile facilitating the creation of RPMs (Stefano) Bugs Fixed - Fixed a bug in PosixFileIO that caused a segfault in the MidafternoonCommander example - Fixed a bug that would cause name collision in compiled code when a class had a no-arg constructor - Fixed a bug that let all reference types be explicitly castable to all other reference types without first being cast to Objects - Fixed a bug in the memory manager that would sometimes let collisions between the free list and the shared segment get by unnoticed - Fixed --with-mysql and --with-pgsql configuration on a number of different platforms (Shay) - Patched "mx/codex/db/pgsql/configure.in" file so that it figures out if OpenSSL support is needed or not and acts accordingly - Fixed compilation problems related to moto.y syntax errors on certain FreeBSD installations (thanks Jack!) Code Cleanup -Refactored the moto type system -Refactored motoi_fn -Refactored motofunction related functions out of dl.c and env.c and into motofunction.c -Removed switches on the opcount from motoX_fn and motoX_new -Cleaned up a bunch of unnecessary checks in moto.y prior to list addition -Made sure all non-terminals that return lists return ONLY lists -Dave