|
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!
Jeff
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk