Release notes for libmawk 0.10.0 This version features MAJOR API CHANGES, partly for making the API more uniform and partly because of the new features: - virtual array support: an array can be implemented to have side effects in for of C callback functions upon lookup, set, delete, etc. - ENVIRON[] is a virtual array that copies environ[] runtime, upon the first access; process' environ[] is not modified, each awk instance can maintain its own ENVIRON[] - exec() calls (system() or pipes using getline) will pass the current state of ENVIRON[] - multi-stage uninit and modified stages of init; this gives the application more control: it can register new "builtin" functions and arrays before BEGIN {} and can collect results after END {} The new C API doesn't allow direct modification of data behind cell pointers (the old getvar()-then-modify-the-cell-pointer) but implements wrappers for changing the values of variables. This is required for variables with side effects (such as the new virtual arrays). While working on the above changes, it became necessary to improve the -W dump feature and to add a few more instructions to the VM. The test applicaiton that was already too big has been split into a set of example applications. The intent was to make examples simpler, demonstrating one feature at a time, for a less steep learning curve.