Release of std.io v0.3.0
schveiguy at gmail.com
Fri Jul 31 13:31:26 UTC 2020
On 7/31/20 5:20 AM, WebFreak001 wrote:
> On Sunday, 26 July 2020 at 17:09:07 UTC, Steven Schveighoffer wrote:
>> I have released a minor improvement to std.io , which adds support
>> for opening the standard handles (stdin, stdout, stderr) .
>> In order to make this work, I also had to add a feature to IOs that
>> allows you to temporarily use a file descriptor/handle .
>> As of now, it hasn't updated on code.dlang.org, but it should be soon.
>> With this, I'm going to focus next on making an iopipe/io layer that
>> can replace write[f]ln and friends.
>>  https://code.dlang.org/packages/io
>>  https://martinnowak.github.io/io/std/io/driver.html
>>  https://martinnowak.github.io/io/std/io/file/File.this.html
> very cool, will this replace std.stdio? Will there be an API similar to
> the old one for upgrading?
I should clarify that when I say "replace" I mean become a viable choice
to replace usage in user code. I don't think Phobos will move away from
its current design.
The hope is that it's written well enough that it could be the basis for
low-level i/o in D 3rd party projects. For example, I'd love to see
projects like vibe.d and hunt fit together on the same i/o subsystem.
Then you can pick whichever library you want, or use multiple libraries,
and they all work together with the same i/o framework.
std.stdio is a one-stop-shop for one specific i/o implementation (C's
FILE * i/o). I don't know if there's a way to replace it. I have thought
of it in the past, and the issues are hairy.
> I know on Windows low level Console output is very different from File
> output, is a console API in scope for std.io or would that rather be a
> new module? It could also handle code page setup and console mode and
> stuff there.
Doing console programming might fit in this library, but there is
nothing there yet. If you have ideas, please start a github issue on it.
I still need to add pipes, and unix sockets.
More information about the Digitalmars-d-announce