[phobos] UnbufferedFile, or, abstracting the File ranges

Steve Schveighoffer schveiguy at yahoo.com
Mon May 10 05:02:50 PDT 2010


Re: byLine and byChunk, I don't think these are a good idea on unbuffered files.

For example, your current implementation will be extremely slow.  Reading one char at a time is OK on a buffered file, because most times its just a simple fetch of a char from a buffer.  But your implementation reads a single character at a time from the actual file on disk, a very slow operation.

I think unbuffered files are good for when you want to handle the buffering yourself, or when you want to pass them to child processes.

-Steve





________________________________
From: Lars Tandle Kyllingstad <lars at kyllingen.net>
To: Phobos mailing list <phobos at puremagic.com>
Sent: Mon, May 10, 2010 7:40:15 AM
Subject: [phobos] UnbufferedFile, or, abstracting the File ranges

In the process of designing std.process it has become obvious, as
pointed out by Steve, that Phobos needs facilities for unbuffered I/O.
To that end, I've started writing an UnbufferedFile type, the current
status of which can be seen here:

        Code: http://github.com/kyllingstad/ltk/blob/master/ltk/stdio.d
        Docs: http://kyllingen.net/code/ltk/doc/stdio.html

(Disclaimer: This is very much a work-in-progress, there's lots of stuff
that needs to be added yet, and I'd be surprised if there wasn't lots of
room for improvement, performance-wise.)


Now, while writing this it has kind of annoyed me that I have to write
new implementations of the byLine and byChunk ranges.  I've personally
found them incredibly useful, so I want them in UnbufferedFile, but the
ones in std.stdio are tailored for File.

I therefore suggest we try to abstract these ranges, so they can operate
on general types that define a set of primitives such as read(), readc()
and readln().

Are there problems with this?  Any comments?

-Lars

_______________________________________________
phobos mailing list
phobos at puremagic.com
http://lists.puremagic.com/mailman/listinfo/phobos



      
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.puremagic.com/pipermail/phobos/attachments/20100510/30877048/attachment.html>


More information about the phobos mailing list