ghci and ghc -threaded broken with pipes & forking

John Goerzen jgoerzen at complete.org
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:
> http://hackage.haskell.org/cgi-bin/hackage-scripts/package/HFuse
> http://code.haskell.org/hfuse/System/Fuse.hsc
> 
> 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
regression.

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