
1. Introduction

The D_Lib library provides a set of easy-to-use but powerful and
easily configurable tools to perform a C++ programmer's daily debug
as well as diagnostics needed by a system tester/maintainer.
In fact the use of the D_Lib library gives very flexible debug
printing with both compile-time and run-time management and also
possibility to turn on/off (even run-time) some pieces of
code without any recompilation. It is tested and used for several
UNIX platforms as well as MS Windows NT/95.

Its documentation is contained in the plain test file d_lib.txt.

2. Supported platforms.

For now the D_Lib library is tested and used in the following
environments:
- Sun Solaris 2.5.1, Sun C++ 4.1
- Sun Solaris 2.5.1, Gnu C++ 2.7.2.1
- Windows NT(Intel), MSVC++ 4.2

Currently I don't have other platforms to test the last version
but in past the library was used on: SGI IRIX (Gnu C++), Win95/NT
(MSVC 4.0, 4.2, 5.0), Linux (Gnu C++), etc. So it seems to be
moreless portable (at least for various UNIXes and Win32 OSes).

3. System requirements

1) You must have C++ compiler supporting templates.
2) The library uses regular expressions that I was too lazy to
   implement by myself. So it may be built with use of well-known
   3rd-party libraries implementing this feature. So if you are
   a "commercial" user then you can buy RogueWave's Tools.h++
   library (an excellent product supporting so many platforms
   that I don't know how many :-). All the necessary information
   may be found here:
	http://www.roguewave.com/products/tools/tools.html
   If you don't want to buy anything then you can use the YACL
   (Yet-Another-C++-library) that is in public domain and may
   be obtained from:
	http://www.cs.sc.edu/~sridhar/yacl.html
   (If you want to use the YACL for D_Lib only then please note:
   it is enough to build just the "base" part of it.) BTW, this
   is also very-very good library.

4. How to build the D_Lib library

There are some ready-to-use makefiles having suffixes corresponding
to the platforms supported. If you platform is another then take
one of the makefiles (most similar to your platform). Look into
the makefile (don't be afraid - it is very simple) and make
necessary changes (mostly for directories of the 3rd-party library
used and for compile/etc. flags). Then run make (gmake/nmake/whatever
you have). You must succeed!

5. Known bugs and problems

1) There is no bugs known to me. Of course, this does not mean that
   there is no bugs at all :-).
2) There are several things that I'm going to implement in future
   (therefore they do not exist still :-):
   - built-in regular expressions handling - to avoid dependency
     on a 3rd-party libraries
   - inter-thread synchronization for non-Win32 platforms - currently
     WindowsNT/95 have such a feature only
   - inter-process synchronization when the output is redirected to
     a file (using file locking mechanism) - currently not implemented
   - a good solution for beginning of redirection to a file: for now
     the file is truncated before redirection, so if this occurs in
     several threads/processes then some first messages may be lost
   If somebody could implement any of the abovementioned things -
   I'd be very glad to get a copy.

Anyway if you find any bug/problem please send me email:
anatoly-k@usa.net. If you change the sources then also: please send
me a copy of your changes (to the same address).

6. Try to enjoy the D_Lib library!

Good luck!

Anatoly Kardash
anatoly-k@usa.net
05 October 1997

