On Mon, Nov 7, 2016 at 7:15 AM, Peter Bortas bortas@gmail.com wrote:
Chris: What you have seem generally useful, but it lies in a namespace that will get a bit busy if we implement all the special cases as we think of them. I have similar function not checked in that would confuse users if we both committed. No in the least because I find exceptions useless for most smaller scripts unless I just plan on not catching anything. Which means my scripts are full of very similar code but where the functions return 0 on failure, not throwing, but dumping the failure pretty-printed to the console. Something I've also been planning to Process for a while, but not come up with a set of functions that doesn't make it confusing for users to choose among all the stuff.
Since this is of interest, I've rebased the branch onto current 8.1, so we have a clean starting point for discussion.
As I see it there are a few things that should happen in regards to external process spawning:
- Can we come up with an almost as easy to use API as Process.run
that plays better with memory and latency?
My first thought along those lines is to have something that returns a pipe or buffer for stdout. Maybe a specially-enhanced one that also deals with the return value?
Ideally, it should have a single return value that can be used directly for the most obvious usage, which is receiving stdout. Receiving stderr and/or the return value would ideally be possible, but if that isn't possible, I don't mind a convenience function that you have to set aside when you want more control.
More of a brainstorm or stream-of-consciousness than an actual theory, but that's my thinking.
ChrisA