std.Stream.InputStream convenience functions

bitwise via Digitalmars-d digitalmars-d at puremagic.com
Tue Sep 8 15:17:00 PDT 2015


On Tuesday, 8 September 2015 at 17:16:45 UTC, Jonathan M Davis 
wrote:
> On Saturday, 5 September 2015 at 19:59:03 UTC, bitwise wrote:
>> [...]
> I would have to study the problem to give a good answer. It's 
> been too long since I looked at the issue for me to remember 
> the finer details at this point. IIRC, a big part of the 
> problem had something to do with the fact that you essentially 
> want a range of bytes, but the underlying C APIs really give 
> something more like a range of a range of bytes, because you 
> read the data into a buffer rather than reading it a byte at a 
> time (which gets even further complicated by the fact that you 
> generally want to reuse that buffer and not allocate extra 
> memory if you can avoid it). On some level at least, that's the 
> problem that byLine and byChunk in std.stdio run into. I really 
> don't remember the details of what needed to be done 
> differently for solid stream support though.
>
> But all of the stuff relating to getting objects out of a byte 
> stream can almost certainly be done by building it on top of a 
> range of bytes rather than having any of that talk to the disk 
> or generally care where the data comes from, and I very much 
> doubt that std.stream does anything like that. So, at minimum, 
> what std.stream does would have to be shifted so that all of 
> the transformations are done on top of ranges of ubyte rather 
> than talking to the disk or network stack or whatever. But I'd 
> have to go digging through the code to even know what 
> std.stream does right now, and I don't have the time right now 
> to figure out how it should work. It's been discussed before, 
> and it was decided that what's there was not what we wanted, 
> though how far off it is, I really don't know other than the 
> fact that it's not range-based. Any stream solution should be 
> consuming and producing ranges and should be agnostic to 
> wherever the data comes from unless it has a _really_ good 
> reason not to be.
>
> Steven Schveighoffer has been working off and on on a 
> replacement for std.stdio which supports streams and cleans up 
> some of the uglier things with std.stdio.File, so we may get 
> something out of that at some point, but he has yet to get far 
> enough with it to actually present it for review and possible 
> inclusion in Phobos. However, I haven't heard of any other work 
> being done on streams, and it seems like everyone's simply 
> making do without, for better or worse.
>
> - Jonathan M Davis

Ok, I guess I'll try rummaging through the archives and see if I 
can find the rest of the story... Or maybe just ask Steven where 
he's at if this becomes important.

2.070 seems quite a ways away though. I'm not sure if DMD is on a 
steady release schedule, but I imagine there is quite a lot of 
work to do in terms of optimization and refactoring before even 
2.069 comes out.

Anyways, Thanks for the info,

     Bit


More information about the Digitalmars-d mailing list