TXR is a new data munging language. 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.
|Tags||text analysis text formatting Text Processing parsing pattern matching Lisp Interpreters unix tool functional language pipes template processor Template engine|
|Implementation||C Flex Bison|
Release Notes: An important change in quasiquote syntax that breaks backward compatibility (albeit trivially). A new assert directive in the pattern language. Functions for environment manipulation are exposed. New functions for simplifying the opening of multiple files as one big stream. A base ten log function. print-line can be called with no arguments. Fixes broken support for dynamic field widths and precisions in the format function. Fixes a few minor bugs in the main command line processing and elsewhere.
Release Notes: Ad-hoc code expansions have been turned into formal macros. Quasiquoting has been made hygienic. A new macro operator "gun" joins the arsenal of lazy-list generation methods. A generic copy function to duplicate any kind of sequence. A regression in handling of floating-point constants; incorrect handling of lexical variable shadowing by lexically scoped symbol macros; special variable rebinding not working for built-in globals; Lisp-1 style evaluation not seeing overridden specials; and missing garbage collector hooks in concatenated stream objects have been fixed.
Release Notes: There are big improvements in TXR Lisp: adds dynamically scoped variables, lexically scoped macros (macrolet operator), and global and lexical symbol macros (defsymacro and symacrolet) with all the proper scoping and macro evironment access. Various new functions are introduced. Bugfixes were made in numerous areas: quasiquotes, the open-tail function, the debugger, the bignum square root function, missing s-ifsock, source code location tracking, and code transformation.
Release Notes: TXR now transparently handles null characters in text streams. Unhandled exceptions in C library routines now give the nearest source location in TXR code. TXR Lisp now has macros, with a defmacro operator that supports nested lambda lists. Destructuring operators called tree-bind and tree-case are introduced. Hashes are now deeply compared under the equal function, by their content and other attributes, rather than treated as pointers. New ways to access hash tables were provided. Hash union and diff can specify join functions to merge the data. There were also other new features plus quite a few significant bugfixes.
Release Notes: New functions for lazy generation of repeating and non-repeating permutations and combinations. A bugfix in quasistrings.