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.