#4046: Add System.IO.hGetBufSome
---------------------------------+------------------------------------------
    Reporter:  simonmar          |        Owner:              
        Type:  proposal          |       Status:  new         
    Priority:  normal            |    Milestone:  6.14.1      
   Component:  libraries/base    |      Version:  6.12.2      
    Keywords:                    |   Difficulty:              
          Os:  Unknown/Multiple  |     Testcase:              
Architecture:  Unknown/Multiple  |      Failure:  None/Unknown
---------------------------------+------------------------------------------
 I'd like to add the following function to `System.IO`, alongside `hGetBuf`
 and `hGetBufNonBlocking`:

 {{{
 -- | 'hGetBufSome' @hdl buf count@ reads data from the handle @hdl@
 -- into the buffer @b...@.  If there is any data available to read,
 -- then 'hGetBufSome' returns it immediately; it only blocks if there
 -- is no data to be read.
 --
 -- It returns the number of bytes actually read.  This may be zero if
 -- EOF was reached before any data was read (or if @count@ is zero).
 --
 -- 'hGetBufSome' never raises an EOF exception, instead it returns a value
 -- smaller than @co...@.
 --
 -- If the handle is a pipe or socket, and the writing end
 -- is closed, 'hGetBufSome' will behave as if EOF was reached.
 --
 -- 'hGetBufSome' ignores the prevailing 'TextEncoding' and 'NewlineMode'
 -- on the 'Handle', and reads bytes directly.
 }}}

 We need it to properly fix #4041 and #3808.  It corresponds more closely
 to the semantics of Unix `read()`, and I've found this to be the most
 useful low-level API for reading in practice.

 In the long term we'd like to provide a better binary I/O API, and we
 might even get around to doing that before 6.14.1, but if not we'll need
 this.

 Deadline: 2 weeks.

-- 
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/4046>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
_______________________________________________
Glasgow-haskell-bugs mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs

Reply via email to