Project Release Information
This release adds a syntax change in the block directive, new regex gadgets in TXR Lisp, hash table literals, quasiquotation with unquote and splicing which works into vectors and hash literals, URL encoding and decoding filters, output string streams which accept and decode UTF8 bytes, a minor memory leak fix, and a minor fix in the lexical syntax.
In this release there are important fixes, memory use optimizations, and only minor feature enhancements.
This is a bugfix release.
TXR programs can now be split into modules. Embedded TXR Lisp can now call back into the pattern language. Exception handling is now exposed in TXR Lisp. Optional arguments are supported in TXR Lisp functions. The braced variable substitution syntax in output has been extended to do arbitrary expressions, and its indexing notation is now generic over vectors and strings. More generic sequence functions have been added to the library, including a generic sort. There's a new del operator for deleting sequence elements/ranges and hash elements denoted by the bracket syntax.
"Freeform" scanning (treating an arbitrarily sized remainder of the input as one big string) is now possible in constant memory. Bugs in hex and octal character constants, the format function, and printing of string objects were fixed.
TXR is a new data munging language to replace the likes of awk and Perl. TXR's special pattern language provides template-based matching of entire documents or large sections of documents. It also contains a language for functional and imperative programming. It is written in C and takes the form of a utility that is portable to Unix-like platforms and Windows.