* GNU Nana - improved support for assertions and logging in C and C++. Nana provides improved support for assertion checking and logging in GNU C and C++. It provides: o Operations can be implemented directly in C or by generating debugger commands which do the checking and logging only if the application is run under the debugger. The debugger based calls require are very space efficient (0 or 1 bytes per call). o Support for assertion (invariant checking) including: + Space and time efficient (at least versus <assert.h>) For example: assert(i>=0) uses 53 bytes on a i386 vs an optimised nana call which uses 10 bytes per call. + Checking can be turned on or off at compile or run time. + The action taken when an error is detected can be modified on a global and per/call basis. o Support for logging (printf style debugging) including: + Logging can be turned on and off at compile or run time. + Logging to files, processes or circular buffers in memory with optional time stamping. o Support for the quantifiers of predicate calculus (forall, exists). o Measurement of space/time overheads for code fragments (see perf/) o A shortform/HTML code overview generator (see shortform/). [A shortform consists of the function headers together with their pre/post conditions] * Installation. Nana uses the standard GNU installation method, e.g. % gzcat nana-2.2.tar.gz | tar xvf - % cd nana-2.2 % ./configure % make % make install % make check % make check-mail [Please do this step!] % make subscribe Notes: * the make check follows the install. * make uninstall is supported. * if you want to install it in your own account use something like: ./configure --prefix=~/local and remember to add ~/local/bin to your path. * the check-mail posts off the results of the testing to nana-bug using mail. N.B. Some mails don't support the subject field, some O/S don't have a command called mail, etc, etc. If so try it by hand using something like: % make MAILER=elm check-mail * the make subscribe is used to subscribe you to the nana mailing list. * But make check failed with errors. A fail in make check normally (:-)) means that part of nana is not working correctly. As usual don't panic, have a cup of tea. The following problems are common: o The debugger based macros fail with gcc -O2 or gcc -O3 because your compiler and debugger get upset with each other at higher levels of optimisation. o Qstl.h doesn't work, have you (or your compiler writer) installed the STL library? * Information in the distribution. ./INSTALL -- a general guide to the configure ./doc/nana.texi -- texinfo source for documentation ./doc/nana.info -- system documentation (includes installation) ./doc/nana.ps -- postscript version of documentation ./man/* -- man pages (not very good) * Information on the net. <http://www.cs.ntu.edu.au/homepages/pjm/nana-home> -- nana homepage <ftp://cs.ntu.edu.au/pub/nana> -- ftp archive <mailto:nana-bug@cs.ntu.edu.au> -- bug reports <mailto:nana@it.ntu.edu.au> -- nana mailing list (new versions, suggestions, etc). Uses majordomo. To subscribe send "subscribe nana <address>" to <mailto:nana-request@it.ntu.edu.au> <http://www.cs.ntu.edu.au/hypermail/nana-archive> -- archive of mailing list. * N.B.: Nana is part of the GNU project and has been released under the aegis (a shield given by Zeus to Minerva) of GNU. See the COPYRIGHT for more details. Good Luck P.J.Maker <pjm@gnu.org>