Boost logo

Boost :

From: Jeff Garland (jeff_at_[hidden])
Date: 2004-10-01 09:04:15

Jonathan Turkanis's Iostreams library has been accepted into boost. Final
vote tally from reviewers was:

14 accepts
1 reject
1 abstain

There were many issues brought up and resolved during the review. I won't
even attempt to repeat all those here. There were also many interesting
suggestions about enhanced approaches. Most reviewers recommended acceptance
regardless of the resolution of these, so I leave it to Jonathan's capable
hands to deal with those.

Some issues that need to be resolved:

1) Overlap with current io and more io library
 Recommendation: Move the library to a new directory (iostreams) and
 document any overlap with other io libraries.

 Rationale: While there is overlap, iostreams is taking a somewhat new
 approach that departs a bit the approach of the I/O library. Both
 approaches have merit and rather than trying to combine them prematurely
 it would be better to have both available and see which approach is
 better in practice.

Since there was some discussion about the library name during the review, but
no conclusive conclusion I'm going to leave the directory name as an issue for
open discussion on the list.

2) Memory-Mapped Library
 At the moment the portable memory-mapped library is an implementation
 detail of Iostreams. It would be best if this library could be brought
 out of detail and made a standalone library that could be used
 independently of Iostreams. We need a volunteer to take this on (sounds
 like Jonathan will help with this).
3) zip/bzip2 library components
  The library source currently contains headers for zlib and bzip2. These
  headers should be removed from the source tree since they will complicate
  boost licensing. They should be replaced with instructions on how to
  obtain these libraries and how to configure bjam to find the headers and
  libraries. Since these libraries are already widely distributed they are
  often already installed on a platform.

4) 'piping' interface
  There was some support for adopting a 'pipe like' interface as originally
  implemented by JC van Winkel in another library, eg:
  filter_stream out(tee(std::cout) | encode | gzip | file("some file"));
  While this interface is not required for adoption, Jonathan has already
  implemented and will provide this interface.

5) Resource concept naming

  There was a long discussion of the naming of the concept Resource --
  should it be Device, etc. Final resolution of this issue needs to
  be discussed and adopted.

6) Presidential filter example
  While many of us see the humor in this, there was at least one objection to
  introducing 'political comedy' into boost. Overall, the example should be
  renamed and reformulated since in a few years no one will get the joke
  anyway. Sorry to go politically correct here, but boost needs to be
  above the fray.

I'd like to thank the reviewers for their time and many thoughtful reviews.
And finally thanks to Jonathan for an excellent library!


Boost list run by bdawes at, gregod at, cpdaniel at, john at