"hSetBuffering stdin NoBuffering" messes up terminal

Simon Marlow simonmar at microsoft.com
Tue Oct 21 17:39:27 EDT 2003

> > If I understand recent changes correctly, this is a 
> deliberate decision.  The 
> > idea is that if you wanted to write a program like 'stty' 
> in Haskell, you'd 
> > be very disappointed if the terminal settings got switched 
> back the moment 
> > your Haskell program terminated.
> It's deliberate, but (AFAIK) not for those reasons. The idea is so
> that "simple, stupid programs" do what the programmer expects (and
> saving the list from lots of "my program doesn't get any input until
> the user hits Return" questions).
> If you were writing "stty" in Haskell, you would presumably use the
> PosixTTY functions directly.

GHC 6.2 will have slightly better behaviour in this regard.  If the
terminal settings are changed as a result of hSetBuffering, then they
will be restored on exit.  This still allows stty-type programs to be
written, as long as you don't also call hSetBuffering on the same


More information about the Haskell-Cafe mailing list