On 14 Dec 2007, at 1:21 AM, Jules Bean wrote:

Evan Laforge wrote:
it seems that script may be not terminated if its output isn't read, so
better code should be

(_, h, g, _) <- runInteractiveCommand "script params"
result <- hGetLine h
hGetContents h >>= evaluate.length
hGetContents g >>= evaluate.length
Tangent here, but does anyone else think that something like
hGetContentsEagerly would be handy in System.IO?

YES!

Jules

PS we could give it a nice sensible name like hGetContents. We could renaming the existing hGetContents to hUnsafeGetContentsDontUseThisUnlessYouHaveSpentThreeMonthsLearningGHCs ExecutionSemanticsOrYouWillRegretIt

On the contrary, it's great for writing filters. OTOH, using the result of hGetContents interleaved with other IO actions feels like a reversion to the bad old days of dialogs (which it is, of course).

jcc


_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to