Hello!

     Thank you for your interest in the Invariant library. Invariant is a C++
library of classes, functions and macros for doing automated consistancy
checking  and bug detection in C++ programs.  It is mostly run-time,
but there is some compile-time checking also.

This is the first public release of the library. The version number is 0.0.
I have tested the code, but there are probably still bugs and misfeatures. 

Features include:
Assert macro with some extra bells and whistles.
Assert macro for conditions that are usually, but not always true.
Smart numbers that can only be positive, only decrease, only be nonzero, etc.
Smart(restricted) pointers that cannot be null, smart pointers that don't 
	have any array access abilities.
Numbers with units, so that feet can be added to feet but not to pounds.
"safe casting" functions that cast from one numerical type to another, while
    requiring that the source value is within the legal range of the destination type.
A function to enable or disable exceptions for illegal floating-point operations.

and much, much more!

Installation:
follows the usual sequence, i.e.,
1) tar xvzkf invariant-0.0.tgz
2) cd invariant-0.0
3) ./configure
4) make
5) make install

There is latex documentation in invariant-0.0/doc.
There are some test/example programs in invariant-0.0/test.

Availability:
The code in Invariant is copyrighted by me, Alex Solomonoff.
Invariant is free software; you can redistribute it and/or modify it under
the terms of the GNU Library General Public License, version 2, as published
by the Free Software Foundation.

A copy of the LGPL can be found in invariant-0.0/license/COPYING.LIB

share and enjoy,
Alex Solomonoff ( asolomon@bbn.com )
