It doesn't add any new streams or other classes besides a test case. 
AbstractBinaryStream was already there.

It just adds #sync to the FileSysteam API and legacy file streams, 
recategorizes many stream methods to make them more consistent, fixes #flush to 
fail when the primitive does (the correct behavior-read the comment!), and adds 
tests for WriteStream and LimitedWriteStream.

The #sync addition on Unix uses ffsync(), while #flush uses fflush(). Why is 
#sync needed if we have #flush? From `man fflush`:

>       Note  that fflush() flushes only the user-space buffers provided by the
>       C library.  To ensure that the data is physically stored  on  disk  the
>       kernel  buffers  must  be  flushed  too,  for  example, with sync(2) or
>       fsync(2).

(but on Windows they're implemented identically)

> Sent: Saturday, September 03, 2016 at 3:34 PM
> From: stepharo <[email protected]>
> To: "Pharo Development List" <[email protected]>
> Subject: [Pharo-dev] could we discuss 19006
>
> Hi guys
> 
> The change 19006 is adding a lot of streams AbstractBinaryStream and I 
> do not really get the vision.
> 
> Note that I'm not against. I just want to understand.
> 
> Do we add these and remove some old ones?
> 
> What is sync?
> 
> Ideally I would like to throw away all the streams and use xtreams instead.
> 
> So thanks for your time explaining us the idea.
> 
> 
> Stef
> 
> 
> 
> 
> 

Reply via email to