[swift-evolution] Addition of a standardError OutputStream
David Hart
david at hartbit.com
Mon Jul 11 16:19:57 CDT 2016
It makes some sense:
- Each process has its own Input/Output/Error streams.
- Processes are piped through their streams.
- C# has `StandardError`, `StandardInput`, `StandardOutput` properties on the `Process` class.
On the other hand:
- Java has them defined on `System`
- Python is very similar to Java `sys.stdout`
> On 11 Jul 2016, at 22:10, Xiaodi Wu via swift-evolution <swift-evolution at swift.org> wrote:
>
> Sorry, I don't really see how these are related to "process". Can you explain?
> On Mon, Jul 11, 2016 at 15:08 Zach Waldowski via swift-evolution <swift-evolution at swift.org <mailto:swift-evolution at swift.org>> wrote:
> `Process` might be a good place for namespacing these. You'll also note that `print` can take an OutputStream to make this even more idiomatic. Straw man example at https://gist.github.com/zwaldowski/4ed2fd48da2af3193b0cbd3ec1883c9d <https://gist.github.com/zwaldowski/4ed2fd48da2af3193b0cbd3ec1883c9d>.
>
> Cheers!
> Zachary Waldowski
> zach at waldowski.me <mailto:zach at waldowski.me>
>
>
> On Mon, Jul 11, 2016, at 12:24 PM, Erica Sadun via swift-evolution wrote:
>> Just throwing this here. Unfortunately `Stream` is already taken (and tied to Foundation).
>>
>> public struct StdStream {
>> public struct StderrStream: OutputStream {
>> public func write(_ string: String) { fputs(string, Darwin.stderr) }
>> }
>>
>> public struct StdoutStream: OutputStream {
>> public func write(_ string: String) { fputs(string, Darwin.stdout) }
>> }
>>
>> public static var err = StderrStream()
>> public static var out = StdoutStream()
>> }
>>
>> So in use, it would look something like
>>
>> str.write(to: &StdStream.out)
>> str.write(to: &StdStream.err)
>>
>> I also considered DarwinStream (seemed too on the nose), UnixStream, Streamfd, BSDStream, etc. Didn't like any of them.
>>
>> -- E, have paintbrush will bikeshed
>>
>>
>>> On Jul 11, 2016, at 12:58 PM, Saagar Jha via swift-evolution <swift-evolution at swift.org <mailto:swift-evolution at swift.org>> wrote:
>>>
>>> Thanks, I’ll write it up.
>>>> On Jul 11, 2016, at 11:20, Dave Abrahams via swift-evolution <swift-evolution at swift.org <mailto:swift-evolution at swift.org>> wrote:
>>>>
>>>>
>>>> on Sun Jul 10 2016, Saagar Jha <swift-evolution at swift.org <mailto:swift-evolution at swift.org>> wrote:
>>>>
>>>>> What is the process for smaller issues like these? I’m guessing that
>>>>> this doesn’t need a proposal; where should it go? On bugs.swift.org <http://bugs.swift.org/>
>>>>> <http://bugs.swift.org/ <http://bugs.swift.org/>>?
>>>>
>>>> If it adds an API, it needs a proposal. Doesn't necessarily have to be
>>>> a big proposal, and the review period can be short, but we don't add
>>>> APIs without the evolution process.
>>>>
>>>> Thanks,
>>>> Dave
>>>>
>>>> --
>>>> Dave
>>>>
>>>> _______________________________________________
>>>> swift-evolution mailing list
>>>> swift-evolution at swift.org <mailto:swift-evolution at swift.org>
>>>> https://lists.swift.org/mailman/listinfo/swift-evolution <https://lists.swift.org/mailman/listinfo/swift-evolution>
>>>
>>> _______________________________________________
>>> swift-evolution mailing list
>>> swift-evolution at swift.org <mailto:swift-evolution at swift.org>
>>> https://lists.swift.org/mailman/listinfo/swift-evolution <https://lists.swift.org/mailman/listinfo/swift-evolution>
>>
>> _______________________________________________
>> swift-evolution mailing list
>> swift-evolution at swift.org <mailto:swift-evolution at swift.org>
>> https://lists.swift.org/mailman/listinfo/swift-evolution <https://lists.swift.org/mailman/listinfo/swift-evolution>
>
> _______________________________________________
> swift-evolution mailing list
> swift-evolution at swift.org <mailto:swift-evolution at swift.org>
> https://lists.swift.org/mailman/listinfo/swift-evolution <https://lists.swift.org/mailman/listinfo/swift-evolution>
> _______________________________________________
> swift-evolution mailing list
> swift-evolution at swift.org
> https://lists.swift.org/mailman/listinfo/swift-evolution
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20160711/126ef0e9/attachment.html>
More information about the swift-evolution
mailing list