Boost logo

Boost :

Subject: Re: [boost] [process] Formal Review starts today, 27 October
From: Edward Diener (eldiener_at_[hidden])
Date: 2016-11-04 18:17:39


On 10/27/2016 2:26 AM, Antony Polukhin wrote:
> Dear Boost community,
>
> The formal review of Klemens David Morgenstern's Process library
> begins today, 27th October and ends on 5th November.
>
> Process is a C++11 library to manage system processes. It can be used to:
> * create child processes
> * setup streams for child processes
> * communicate with child processes through streams (synchronously or
> asynchronously)
> * wait for processes to exit (synchronously or asynchronously)
> * terminate processes
>
> Full documentation with examples and tutorial is available at
> http://klemens-morgenstern.github.io/process/index.html
> Stable source codes for review are available at
> https://github.com/klemens-morgenstern/boost-process/tree/boost_review
> Latest source codes available at
> https://github.com/klemens-morgenstern/boost-process
>
>
> We encourage your participation in this review. At a minimum, kindly state:
> - Whether you believe the library should be accepted into Boost
> * Conditions for acceptance
> - Your knowledge of the problem domain
>
> You are strongly encouraged to also provide additional information:
> - What is your evaluation of the library's:
> * Design
> * Implementation
> * Documentation
> * Tests
> * Usefulness
> - Did you attempt to use the library? If so:
> * Which compiler(s)
> * What was the experience? Any problems?
> - How much effort did you put into your evaluation of the review?
>
>
> We await your feedback!

I vote to accept the Process library.

I highly suggest that the documentation be expanded beyond the tutorial
to provide topics explaining all the major areas of the library. I don't
feel that one-liner reference comments even come close to explain all
the areas that the library covers. As an example of this I hunted in the
reference to find that the library provides low-level access in its
environment.hpp header to the process ID and the native process handle,
but even here any explanation for what else is in the header, as well as
its meaning, is almost non-existent. It always baffles me when a
developer provides useful functionality in his library but does not
bother to explain what that functionality entails. Is it laziness ? Is
it tiredness ? Is it an inability to write a few coherent sentences in
English because of lack of education or that English is not the
developer's native language ? I just don't know.

On the plus side the library provides basic useful functionality for
what a process library should provide in a cross-platform way. I
especially like the idea that the library is focused on this basic
functionality and that the syntax for using that functionality is clear
and easy to use. I also like the idea that the library relies on already
established Boost functionality in asio for accomplishing more difficult
tasks rather than trying to re-invent everything or trying to provide
more all-purpose interfaces which nobody can understand how to use.

The library is obviously very useful whenever the task of creating and
communicating with child processes needs to be done.

I tested the basic functionality with VC++14, update 3, on Windows.
Everything worked as expected.

My effort was a few hours of reading documentation to understand what
the library entailed and a few hours to test it out. I have a great deal
of knowledge involving processes on Windows and only a small amount of
knowledge involving processes on Linux.


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