We now have an interpreter sufficiently functional to create basic sample code. Less than half of the spec has been implemented at this point; the mathematical constructs in particular have been under debate, so as long as the spec is not frozen we don't have a problem with this. Note however that what is here now is considered frozen (with the exception of dump/Hotlh and disp/cha', the latter of which will have to be enhanced to support formatted output at some point); this is likely to change only due to bugs or linguistic issues and not functional arguments.
This release is to be considered pre-alpha -- basically a technology release for people who want to start writing sample code. It is nowhere close to feature-complete, and important tools such as the Klingon<->English translator programs and a reasonably friendly front end are missing. The documentation is minimal, there is very little sample code, and the whole thing is very Linux-centric at this point. If you are afraid to tread in hostile territory like this, you might want to hold off on playing with var'aq for a while.
Some sample code -- specifically, English and Klingon code to print out the entire text of a song called "99 Bottles of Bloodwine" -- has been added to the archive.
I have also added the first of the three translation programs, ve2vk. It is rather buggy at the moment, but it does the job of straight keyword translation.
The interpreter is available with both Klingon and English keywords; however, keep in mind that maintenance is done mostly on the English version and the translator program is not ready for prime time. This will be fixed eventually.
The following keywords are currently supported:
All relational operators except null?/pagh'a' and negative?/taH'a' have been implemented.
disp/cha' has been implemented; the rest of the var'aq I/O model has yet to be specified.
List support does not exist yet.
String support is very basic at this point; you can print one out and assign a name to one, but that's about it.
The specification is still in progress, though what is there now is unlikely to change barring further linguistic debate. String and I/O operators remain largely undefined; we won't even get into level 1 or 2 definitions. Special thanks go out to the members of the varaq-dev mailing list at egroups.com for their help in defining the language; more in the next release notes.