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 > > > > >
