I am proud (and frankly exhausted :-) to announce the newest
release of the CIDLib Class Libraries for C++. CIDLib is
a fully object oriented C++ development framework for
Windows NT 4.0 and Visual C++ 5.0.


Available Functionality in Version 0.510
----------------------------------------

This release provides these broad categories of
functionality:

 * Core data types: Strings, memory buffers (heap,
     system, and shared), areas (floating point and
     integral coordinate), points, sizes, colors,
     etc...

 * Collections: Bags, sorted bags, deques, queues,
     stacks, linked lists, hash maps, hash sets,
     object arrays, and fundamental arrays.

 * File System Support: Directory iteration, general
     file system maintenance, find buffers, path strings,
     binary files, text files, volume info, etc...

 * Streams: File, string, and memory streams for text
     and binary operations, powerful text stream parser,
     etc... Extensible data sink/source framework so
     you can roll your own streams very easily. Console
     text stream derivative that supports command line
     recall and editing. Support for ASCII and UNICode
     text formats.

 * Advanced RTTI: Polymorphic streaming, dynamic object
     creation, runtime type information, type repository,
     and meta classes.

 * Encryption frameworks, new in this version!

 * Exceptions and Logging: Extensive and extensible
     support for error and message logging and exception
     management, runtime error and system exception stack
     trace dumps.

 * Locale and Internationization Support: CIDLib provides
     locale classes and its own, totally C++ enabled,
     message file system that supports multiple languages
     and uses namespace based const values for error and
     message ids (instead of cave tools that use #define
     ids.)

 * Process Control: Powerful thread classes, thread
     priority janitors, mutexes, semaphores, events,
     critical sections, process registry, extensible
     metrics system, janitors for mutexes, critical
     sections, and semaphores.

 * Mathematical: 4x4 homogenous matrices, 2D and 3D
     vectors, value maps, ranges.

 * Ray Tracing: An object oriented, extensible ray
     tracer with scene description language, and full
     multiprocessor support, for parallel rendering.
     Comes with a suite of objects and textures that
     cover a lot of ground, and you can easily roll
     your own and integrate them seamlessly.

 * Fractals: An object oriented, extensible fractal
     generation engine, with full multiprocessor
     support. Supports pluggable rendering engines
     and fractal types. Comes with single and multi
     threaded rendering engines and Julia, Mandelbrot,
     and Lyapunov fractal types.

 * Raw Access. Namespace encapsulated access to
     APIs that manipulate raw strings and memory
     buffers, raw bit field manipulation, and one
     for basic mathematical operations. These are
     not often needed by the outside world but are
     pulically available.

 * General Purpose Methods. Typesafe, template or inline
     methods for many common operations, min/max,
     pointer manipulation, array sizing, enumeration
     magic, etc...

 * Documentation: Class and member documentation is on
     line and available via my home page. Offline docs
     are in MS Word 6.0 format. The online docs fully
     cover all of the released classes, though they are
     a spotty on coverage of exceptions thrown right
     now. Offline docs are progress but there is a
     substantial amount of informaton available.

 * Full Source Code. The full source code is included
     so you can modify the system for your own needs
     if desired and debug fully, or just study it to
     learn how a large scale C++ framework can be
     designed and implemented.


A Little History and Legal Mumbo Jumbo
--------------------------------------

CIDLib has been in the works for six years. It was
previously targeted towards OS/2 and the IBM Visual
Age development environment. About 18 months ago it
was ported to NT and Visual C++, and drastically updated
in the process. This is the second release on NT and
probably the last beta release (yes its still in beta
after six years because its not a commercial product
so there is no rush.) Its not your usual beta product
having been in development for so long. It is quite
mature by this point.

CIDLib is a freeware product at this time and you can
freely use it for personal, experimental, or in house
development, however it is a beta product still. It
cannot be redistributed in any modified form at this
time. You can, of course, pass along the unmodified
Zip file to anyone you feel would be interested in
evaluating this product. None of the source code can
be extracted and used in another product, as it is
my intellectual property.

The eventual GA product will likely be a shareware
product, though it will remain free for anyone who
just wants to play with it at home for personal use.
It will have a very reasonable licensing agreement
for commercial or shareware use.


Downloading and Evaluating
--------------------------

Download instructions are on my home page:

    http://ng.netgate.net/~droddey/

as are links to the online class and member documentation,
other information about how to contact me, some links to
some technical articles of mine, discussion of known beta
issues in this release, etc...

There are a good number of demo programs that come with the
product, which you can run and/or debug through to see the
system in action. There are never enough, or the right kind
of, demos I know. I will do more for the next release but
the ones that are there are quite illustrative, as are the
utility programs (most of which are written in CIDLib also
and are quite real world.)

The main home page has a "Quick Start" link if you want to
just download it, get it set up, and play with it before you
bother reading the docs to any degree of depth.

Since the full source code is provided, you just build the
system yourself. This drastically reduces the download time
since only source, docs, and build infrastructure stuff is
in the distribution. This release is about 2.5MB, quite
reasonable for this kind of system.

So please feel free to drop by and check out the home
page and download the product. I'd really like to get some
feedback from some knowledgeable developers on the usability
of the system overall. You can contact me at:

    droddey@ng.netgate.net

Thanks in advance.
