Proposal: overhaul System.Process

Simon Marlow marlowsd at
Tue Apr 22 18:19:36 EDT 2008

I've made some improvements to System.Process that I'd like to get 
feedback on.  Everything so far is backwards compatible in the sense 
that I've only added to the API - everything that was there before is 
still available, with the same semantics (except where bugs have been 

Haddock for the proposed new System.Process:


Discussion period: 4 weeks (20 May)

Summary of changes:

Tue Apr 22 15:02:16 PDT 2008  Simon Marlow <simonmarhaskell at>
   * Overhall System.Process

    - fix #1780: pipes created by runInteractiveProcess are set
      close-on-exec by default

    - add a new, more general, form of process creation: createProcess
      Each of stdin, stdout and stderr may individually be taken
      from existing Handles or attached to new pipes.  Also it
      has a nicer API.

    - add readProcess from Don Stewart's newpopen package.  This
      function behaves like C's popen().

    - Move System.Cmd.{system,rawSystem} into System.Process.  Later
      we can depecate System.Cmd.

    - Don't use O_NONBLOCK for pipes, as it can confuse the process
      attached to the pipe (requires a fix to GHC.Handle in the base

    - move the tests from the GHC testsuite into the package itself,
      and add a couple more

    - bump the version to 2.0

More information about the Libraries mailing list