deprecating std.stream, std.cstream, std.socketstream

Lars T. Kyllingstad public at kyllingen.net
Tue May 15 08:25:26 PDT 2012


On Tuesday, 15 May 2012 at 15:22:03 UTC, Lars T. Kyllingstad 
wrote:
> On Tuesday, 15 May 2012 at 02:56:20 UTC, Walter Bright wrote:
>> On 5/14/2012 8:02 AM, Steven Schveighoffer wrote:
>>> I keep trying to avoid talking about this, because I'm 
>>> writing a replacement
>>> library for std.stream, and I don't want to step on any toes 
>>> while it's still
>>> not accepted.
>>>
>>> But I have to say, ranges are *not* a good interface for 
>>> generic data providers.
>>> They are *very* good for structured data providers.
>>>
>>> In other words, a stream of bytes, not a good range (who 
>>> wants to get one byte
>>> at a time?). A stream of UTF text broken into lines, a very 
>>> good range.
>>>
>>> [...]
>>
>> I'll say in advance without seeing your design that it'll be a 
>> tough sell if it is not range based.
>>
>> I've been doing some range based work on the side. I'm 
>> convinced there is enormous potential there, despite numerous 
>> shortcomings with them I ran across in Phobos. Those 
>> shortcomings can be fixed, they are not fatal.
>>
>> [...]
>
> I have to say, I'm with Steve on this one.  While I do believe
> ranges will have a very important role to play in D's future I/O
> paradigm, I also think there needs to be a layer beneath the
> ranges that more directly maps to OS primitives.  And as D is a
> systems programming language, that layer needs to be publicly
> available.  (Note that this is how std.stdio works now, more or
> less.)

Also, I wouldn't mind std.*stream getting deprecated.  
Personally, I've never used those modules -- not even once.  As a 
first step their documentation could be removed from dlang.org, 
so new users aren't tempted to start using them.  No 
functionality is better than poor functionality, IMO.

-Lars



More information about the Digitalmars-d mailing list