
AMDG Review part 1, documentation: * Introduction: eg. should be e.g. * create_child: since the argument is the path to the file, why don't you take a boost::path, instead of a string? * It seems like redirecting a stream to a file should be supported. Maybe it can be done with inherit, but it isn't immediately obvious and I'd rather not deal with handle::native_type at all. * There are pistream and postream. What about piostream for completeness. * Why do you have to pass a native handle to pipe's constructor. Can't it be overloaded to take a handle? * "On POSIX systems you must use the macros defined in sys/wait.h to interpret exit codes." This forces me to use #ifdefs in my code. Isn't there a way to abstract this better? At least you could wrap the macros and have a trivial implementation for windows (WIFEXITED -> true) * context::setup: The reference specifies boost::function< void()>, but this is obviously only true for posix. It should describe the two different behaviors. * std::string context::work_dir; boost::path? * boost::iostreams has a file_descriptor class that is very similar to handle. * What is the behavior of find_executable_in_path W.R.T. extensions. On windows, does it use PATHEXT? I'd like to see this spelled out explicitly. * What about file associations/#!xxx for create_child? i.e. can I run create_child("script.pl") or do I need to use shell? I can live with it either way, but the reference needs to specify it. In Christ, Steven Watanabe