Roger Leigh writes: > MSYS does not depend on cygwin, BTW. It's entirely standalone. MSYS is a *fork* (version) of Cygwin. As the mingw FAQ says, "The POSIX layer used by MSYS is a fork of the 1.3.3 version of Cygwin". (But maybe that was what you meant.) > They both have to implement fork() using Windows calls though, > which can never be efficient. (Just rambling here:) I wonder, could the typical fork() immeditaly followed by exec() (in the child process) be somehow detected by Cygwin/MSYS, avoiding the need for emulating the full fork() semantics in this typical case? Hmm, the fork() implementation would probably have to peek at the executable code following the fork() call, see if it branches on the return value from fork(), check if the return-value-was-zero branch then immediately calls some of the exec() functions, and in that case bypass some slow stuff? Nah, doesn't sound easy. --tml