iopipe alpha 0.0.1 version

Steven Schveighoffer schveiguy at yahoo.com
Tue Oct 24 14:47:02 UTC 2017


On 10/24/17 5:32 AM, Martin Nowak wrote:
> On Monday, 23 October 2017 at 16:34:19 UTC, Steven Schveighoffer wrote:
>> On 10/21/17 6:33 AM, Martin Nowak wrote:
>>> On 10/19/2017 03:12 PM, Steven Schveighoffer wrote:
>>>> On 10/19/17 7:13 AM, Martin Nowak wrote:
>>>>> On 10/13/2017 08:39 PM, Steven Schveighoffer wrote:
>> It's solving a different problem than iopipe is solving. I plan on 
>> adding iopipe-on-range capability soon as well, since many times, all 
>> you have is a range.
> 
> You mean chunk based processing vs. infinite lookahead for parsing?
> They both provide a similar API, sth. to extend the current window and 
> sth. to release data.

Yes, definitely.

> The example input here was an input range, but it's read in page sizes 
> and could as well be a socket.

iopipe provides "infinite" lookahead, which is central to its purpose. 
The trouble with bolting that on top of ranges, as you said, is that we 
have to copy everything out of the range, which necessarily buffers 
somehow (if it's efficient i/o), so you are double buffering. iopipe's 
purpose is to get rid of this unnecessary buffering. This is why it's a 
great fit for being the *base* of a range.

In other words, if you want something to have optional lookahead and 
range support, it's better to start out with an extendable buffering 
type like an iopipe, and bolt ranges on top, vs. the other way around.

-Steve


More information about the Digitalmars-d-announce mailing list