ghci and ghc -threaded broken with pipes & forking

John Goerzen jgoerzen at
Wed Dec 10 12:12:28 EST 2008

Brian B wrote:
> Hi Bulat,
> My contribution to the survey: I've used forkProcess to daemonize
> a ghc program inside the haskell fuse bindings:
> If removing the non-threaded RTS would break forkProcess entirely,
> these bindings would have to do something different. The issue: users
> of the FUSE C api will get daemonized using daemon(2); it'd be
> nice if GHC fuse programs could behave similarly.

I also use forkProcess extensively: in HSH, for instance, which is used
by hpodder, twidge, and a host of other tools.  Removing the ability to
use forkProcess removes the ability to write a Unix shell in Haskell, or
to do anything shell-like, or anything even mildly advanced involving
piping, file descriptors, and the like.  I would see it as a significant

The System.Process calls, last I checked (in 6.8.x) were both too buggy
to use for complex tasks, and too inadequate for some (though the
adequacy has been improving.)

-- John

More information about the Glasgow-haskell-users mailing list