Proposal: overhaul System.Process

Frederik Eaton frederik at
Sun May 25 19:27:32 EDT 2008


I think it's great to improve System.Process, and the new interface looks
good... I just wanted to say that I found it quite easy to write my own
wrappers around those functions, which implement an interface that I find
easier to use, several years ago. The hardest part was not so much writing
the new interface, but updating it whenever the standard interface changed
and broke my code. So I'd like to cast my vote for backwards compatibility.
The standard libraries will never be perfect, but constantly deprecating and
removing functionality can really impair their usefulness for large
projects. I don't mean to be negative but I wanted to voice that concern.

Best wishes,


Simon Marlow-7 wrote:
> 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 
> fixed).
> Haddock for the proposed new System.Process:
> Ticket:
> 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
>       package).
>     - move the tests from the GHC testsuite into the package itself,
>       and add a couple more
>     - bump the version to 2.0
> _______________________________________________
> Libraries mailing list
> Libraries at

View this message in context:
Sent from the Haskell - Libraries mailing list archive at

More information about the Libraries mailing list