ghci and ghc -threaded broken with pipes & forking
John Goerzen
jgoerzen at complete.org
Thu Dec 11 10:52:16 EST 2008
Simon Marlow wrote:
> John Goerzen wrote:
>> 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.
>
> Have you tried those apps with the threaded RTS? I'd be interested to
> know whether they work as expected.
I have, and it didn't work well. But it's been awhile, and I can't tell
you anymore what version of GHC or what exactly the problem was. I was
most certainly 6.8 or older. Once 6.10 hits Debian, I could test again
there. But see below...
> I'm not suggesting we remove the non-threaded RTS, however perhaps
> there's an argument for making -threaded the default. After all, that's
> what you get with GHCi by default right now.
That's probably an OK solution.
I would also add: does the threaded RTS support all platforms? For
instance, GHC runs on my Alpha and on AIX, unregisterised. ghci doesn't
run there, but GHC does. If you drop the non-threaded RTS, does that
mean that GHC doesn't work there at all?
>> 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.)
>
> If there's bugginess we need to get it fixed - please report those bugs!
Already done:
http://hackage.haskell.org/trac/ghc/ticket/1780
(still open since Nov 2007)
There was also a thread here regarding problems with the threaded RTS:
http://www.mail-archive.com/glasgow-haskell-users@haskell.org/msg11573.html
Not sure if that has been fixed, or was an error on my part, but see
your reply at:
http://www.mail-archive.com/glasgow-haskell-users@haskell.org/msg11585.html
I admit I haven't had the chance to reread that whole thread, so my
apologies if this is a red herring.
-- John
More information about the Glasgow-haskell-users
mailing list