|
Boost : |
Subject: Re: [boost] Boost.Process 0.5 released
From: Alexander Lamaison (awl03_at_[hidden])
Date: 2012-08-19 04:24:08
"Boris Schaeling" <boris_at_[hidden]> writes:
> Boost.Process 0.5 has been released! Documentation and library can be
> found at: <http://www.highscore.de/boost/process0.5/>
I'm already a Boost.Process user and am very glad to see it's not been
forgotten. Without having had a chance to try out the new code, I've
got a few comments from reading the docs. They're similar to what
others have already said.
Macros. Boost Libraries rarely have macros but when they do, it's
almost never for platform specific behaviour. The whole point is that
that gets hidden in the implementation. At first glance it seems to me
that all the uses of macros show in the documentation (including the
ASIO one) could be 'taken inside'.
Non-RAII. IMHO, modern C++ code should not expect the caller to manage
the cleanup themselves. If `discard` should only be called once the
(shared) child process is no longer needed then either don't share the
child process between instances (i.e. they become non-copyable) or
manage the `child` instances' resources in a shared manner e.g. a
shared_ptr that does whatever cleanup `discard` previously did in its
destructor.
Environment. The child inherits the environment on one platform be
default but not the other. This sounds like a big gotcha. The docs say
"on Windows environment variables are inherited by default". Quite so.
But there must be a way to stop them being inherited. So why not do
that by default on Windows and only let the true Windows default
behaviour happen when the inherit_env initialiser is passed? Or vice
versa with a suppress_env initialiser?
Nevertheless, I'm please to see the improvements you've been making to
the library. Keep up the good work.
Alex
-- Swish - Easy SFTP for Windows Explorer (http://www.swish-sftp.org)
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk