Boost logo

Boost :

From: Pavel Antokolsky aka Zigmar (zigmar_at_[hidden])
Date: 2006-02-09 10:20:56


Hello,

I've played around with shmem library, and I was really impressed with
it power, design and functionality. I definitely think this library
should be accepted into boost.

> - What is your evaluation of the design?
In general - I liked it. It looks a bit complicated in some places,
but I guess this is tradeoff played for its power. I've made several
tests and found that library is easy enough to use, yet powerful
enough to do what most people need for IPC communications.

One minor thing, I didn't particularly liked about design is that
several method (for example shared_message_queue::receive) return
values into variables passed by non-const reference. I don't like this
approach - the resulting code is obscure because you can't see from
that code, that variable is modified. I think of the the following
approaches might result a better client code:
1) Return multiple values (i.e. by using std::pair, boost::tuple)
2) Modify parameters, but instead of passing by non-const reference -
pass them by pointer. When pointer passed it immediately indicates
that variable might be modified as opposite to non-const reference,
which is a rare beast nowadays. If you think of foo(someVar) via
foo(&someVar), the second hints about possibility of modifying
someVar, while first one doesn't.

> - What is your evaluation of the implementation?
I did not looked into implementation.

> - What is your evaluation of the documentation?
The documentation is good and comprehensive. I likes a large number of
small and explaining code examples.

Here, however, are the few glitches I've came by:

1) in file containers_explained.html
"boost:shmem" written several times instead of "boost::shmem"

2) in file named_shared_object.html
Document states that basic_named_shared_object::open in has 3
parameters while open in reality it has only two (no size is passed to
open)

3) Most of the pages missing includes files needed for particular
class/feature. It would be nice, if, for example,
shared_message_queue.html would mention
<boost/shmem/ipc/shared_message_queue.hpp>

> - What is your evaluation of the potential usefulness of the library?
Very useful. I've seen few libraries what tried to deal with the
shared memory, but non got even close to level of functionality the
shmem library provides.

> - Did you try to use the library? With what compiler? Did you have any
> problems?
I've tried using VC 7.1 and boost 1.33.1. I did compiled and run
without a single problem.

> - How much effort did you put into your evaluation? A glance? A quick
> reading? In-depth study?
I've read most of the documentation, and played around with library.
Wrote few small programs to test some of the features, but didn't use
in any large project.

> - Are you knowledgeable about the problem domain?
Moderate. I didn't work with IPC a lot, but deal with it from time to time.

And I would like to thank Ion Gaztañaga for developing such a good
library. Hope it will make its way to the proud family of boost
libraries :)


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk