
On Fri, 11 Feb 2011 16:39:35 +0100, Jeff Flinn
[...]I think with the right abstractions the seemingly contradictory goals can be accommodated. That's what I'm attempting to find. As stated at a previous boostcon: "... abstractions are discovered not invented..."
IMHO, previous version of process have not discovered the proper abstractions. I'm sure that the entirely different paradigms between windows and posix have contributed to the difficulties so far. It's difficult to be a master of the subject matter in both domains.
I think building upon existing boost filesystem and iostreams libraries and their abstractions that do successfully address platform differences will make the effort more successful. Additionally I think it's mandatory for a design to directly acknowledge the multi-phase constraints of the fork/exec paradigm. Also it's mandatory to break down the historical monolithic approaches into more tenable pieces.
Thanks for your comments, Jeff, Ilya and Nat! How would you (and others) feel about a Boost.Process library which only aims to replace std::system() with a more powerful function? You could configure the child process a bit (its streams, environment variables and a few more things) and that's all. This would be a less ambitious goal but obviously more easily to reach. I was under the impression that we want more? Maybe we still want more but settle realistically for this goal? Boris