On 15 April 2005 02:39, Ian Lynagh wrote:> If I run this program:> > --------------------------------------------------> import System.Cmd (system)> import Foreign.C.String (castCharToCChar)> import Foreign.Marshal.Array (newArray)> import System.IO (hSetBinaryMode, hPutBuf, stdout,hSetBuffering,> BufferMode(..))> > main = do hSetBinaryMode stdout True> hSetBuffering stdout LineBuffering> p <- newArray (map castCharToCChar "foo\n")> hPutBuf stdout p 4> system "sleep 5"> putStr "bar\n"> --------------------------------------------------> > compiled by GHC then it waits 5 seconds and thenprints foo and bar> together.> > With hugs, foo is printed and then 5 seconds laterbar is printed, as> I would expect.True, the implementation doesn't respect LineBuffering(though it doesrespect the other buffering modes, I believe). That'sa bug.