From: Sebastian Redl (sebastian.redl_at_[hidden])
Date: 2008-02-04 09:23:22


Hi,

I'm proud to announce preview release 2 of my I/O Chain library.

Preview 1 was announced here:
http://listarchives.boost.org/Archives/boost/2007/11/131079.php

IOChains is a component-based I/O library similar to Boost.Iostreams,
but built from scratch instead of being based on the C++ iostreams
interface. It currently supports binary I/O of primitives only, but will
be extended to cover text, too. It is built to be type-safe and fast.

The main changes since Preview 1 are:

Most importantly: The archive actually contains the code. :-)

1) Tested under Visual C++.Net 2003, i.e. VC++ 7.1.
2) Endian conversion is now supported.
3) Supports reading and writing fixed-point numbers.
4) Supports reading and writing stdin, stdout and stderr. (Not Win32,
yet.) This also demonstrates the utility of the command interface.
5) A bit-level access pseudo-component was added.
6) A rationale section was added to the documentation.
7) A few example programs were added. (Not tested in Win32, but except
for the password reader, they should work.)

The code can be found at:
http://stud3.tuwien.ac.at/~e0226430/iochain-preview-2.tar.bz2
<http://stud3.tuwien.ac.at/%7Ee0226430/iochain-preview-1.tar.bz2>

The installation is still not trivial. Boost doesn't appear very suited
to develop new libraries outside the tree, it seems.
1) Unpack the archive.
2) Make boost-build.jam point to your trunk Boost.Build, or delete the
file if you already have a boost-build.jam in place.
3) Edit Jamroot: set the constant REALBOOST at the very top to point to
your trunk Boost.
4) If you want to use the zlib component, add an entry to your
user-config.jam for zlib. On Linux, this should be as trivial as
lib zlib : : <name>z ;
On Win32, it might look like this:
lib zlib : : <file>"c:/path/to/zlib/zlib1.lib" : :
<include>"c:/path/to/zlib" ;

The documentation doesn't build due to some problems I have with
Boost.Build. A pre-built version can be found here:
http://stud3.tuwien.ac.at/~e0226430/iochain/

If you want to build the docs yourself, remove the <tag> requirement
from Jamroot.

A note about Visual C++: newer compilers than 7.1 should work, unless
they exhibit this bug:
http://groups.google.com/group/comp.lang.c++.moderated/browse_thread/thread/8559a42e1cc9710e#2305a73790c57078
If they do, you need to grep the source for BOOST_WORKAROUND and adjust
the version number. Oh, and let me know.
Older versions will most definitely not work.

Minor new features:
1) The content of an erasure can change.
2) Bug fixes.
3) Minor refactorings.
4) Best practice: all public implementation classes now have protected
destructors.

Have fun, and please tell me what you think.

Sebastian Redl