Text I/O library proposal, first draft

Ben Rudiak-Gould benrg@dark.darkweb.com
Thu, 31 Jul 2003 16:32:14 -0700 (PDT)


On Thu, 31 Jul 2003, Hal Daume wrote:

> Ben Rudiak-Gould wrote:
> >   * There's no way to implement fgetpos/fsetpos type functionality,
> >     because coders don't expose their internal state. (In fact, there
> >     would need to be a way to explicitly copy the state, since it may
> >     well include IORefs, Ptrs, etc.) Is this a serious problem?
> 
> Yes!  This is an enormously serious problem.  At least for me.
> 
> It's not a problem for writing files, but I really really really need
> this functionality when reading files.  Reason: I'm often tooling around
> in very large (1gb or greater) files which happen to be sorted on some
> sort of index and I need to do binary search in them.  To load all the
> file into Haskell or to do linear search is impossible.

Keep in mind that this design lets you create arbitrarily many
text-reading streams on top of a single open file, starting at any byte
offset in the file. The only thing you can't do is read some text from a
stream and then ask "where am I now?". Is that sufficient for what you
need to do? (I'm a little unclear on the format of the files you're
talking about.)

-- Ben