Spawn is a small library exposing only one functionality: spawning sub-process.
It has three main goals:
1. provide missing features of Unix.create_process such as providing a
2. provide better errors when a system call fails in the
sub-process. For instance if a command is not found, you get a proper
3. improve performances by using vfork when available. It is often
claimed that nowadays fork is as fast as vfork, however in practice
fork takes time proportional to the process memory while vfork is
constant time. In application using a lot of memory, vfork can be
thousands of times faster than fork.