[phobos] Removing std.stdio.File.popen()
Lars Tandle Kyllingstad
lars at kyllingen.net
Mon Aug 16 23:59:56 PDT 2010
Basically because you want to know what you're piping to another
process. Say you read a file up to some point, and want to pass the
rest of it through a pipe. That won't work if you use File, because you
don't know what has already been buffered, and what's left in the
stream.
I was originally using File, but after Steve pointed out the problem
above we decided to add an UnbufferedFile type. Hopefully, it will find
other uses as well -- perhaps, at some point, we can even build a new
buffered File on top of it.
The current API for UnbufferedFile is here, if anyone is wondering:
http://www.kyllingen.net/code/ltk/doc/stdio.html
-Lars
On Mon, 2010-08-16 at 12:20 -0500, Andrei Alexandrescu wrote:
> I also like ltk process quite a bit. One q - why the need for a special
> type UnbufferedFile?
>
> Andrei
>
> David Simcha wrote:
> > This looks terrific. I've always found the old std.process to be way
> > underpowered, especially on Windows. Does your statement about
> > cross-platformness imply that Windows will eventually be supported, too?
> >
> > On Mon, Aug 16, 2010 at 9:20 AM, Lars Tandle Kyllingstad
> > <lars at kyllingen.net <mailto:lars at kyllingen.net>> wrote:
> >
> > On Mon, 2010-08-16 at 09:04 -0400, Adam Ruppe wrote:
> > > I actually use it (which is why I duplicated your bug), but am OK
> > with
> > > removing it, since it is easy enough to get at anyway. For a while, I
> > > did a separate extern(C) for pclose anyway!
> > >
> > > However, I don't think something being POSIX only is a good reason to
> > > remove something. D should take advantages of whatever platform it is
> > > on. Portability is good when you can have it, but it shouldn't be a
> > > function killer alone.
> >
> > Two comments:
> >
> > 1. I disagree with you. :) I think that Phobos' user-visible interface
> > should be completely platform agnostic. Code that depends only on
> > Phobos should compile and run on any platform.
> >
> > 2. Steve and I have been working on a new version of std.process, which
> > will at some point, hopefully, obviate the need for popen(). See
> > pipeProcess() here:
> >
> > http://www.kyllingen.net/code/ltk/doc/process.html
> >
> > The POSIX implementation is more or less complete, but its inclusion in
> > Phobos is currently being blocked by bug 3979. Also, Steve has run into
> > some very tricky issues with pipes on Windows, fundamentally caused by
> > D's dependence on the DMC runtime. I don't know how (or if) that is
> > working out.
> >
> > -Lars
> >
> > _______________________________________________
> > phobos mailing list
> > phobos at puremagic.com <mailto:phobos at puremagic.com>
> > http://lists.puremagic.com/mailman/listinfo/phobos
> >
> >
> >
> > ------------------------------------------------------------------------
> >
> > _______________________________________________
> > phobos mailing list
> > phobos at puremagic.com
> > http://lists.puremagic.com/mailman/listinfo/phobos
> _______________________________________________
> phobos mailing list
> phobos at puremagic.com
> http://lists.puremagic.com/mailman/listinfo/phobos
More information about the phobos
mailing list