The new std.process is ready for review

Steven Schveighoffer schveiguy at yahoo.com
Sun Feb 24 14:13:36 PST 2013


On Sun, 24 Feb 2013 16:04:43 -0500, Vladimir Panteleev  
<vladimir at thecybershadow.net> wrote:

> On Sunday, 24 February 2013 at 17:41:44 UTC, Lars T. Kyllingstad wrote:
>> Ok, a new version with non-blocking wait is up.
>
> 3. The documentation for the "gui" config item seems to be wrong: it  
> prevents the creation of a console, instead of causing it.

It means 'use gui mode' which means, don't create a console.  I don't  
consider a console window a gui.

> 4. I see that my command escaping functions have not made it through. I  
> believe the matter has been discussed before, and I thought the  
> consensus was to use them, although it's been a while. The function  
> escapeShellCommand and its callees from the current std.process have the  
> advantages that a) they come with a very thorough unit test, whereas  
> std.process2's Windows escaping code does not have tests at all, and b)  
> they are usable independently, which allows constructing scripts and  
> batch files in D programs.

I had also thought we were going to use those (that was the consensus I  
remember).  It probably was just forgotten.  Lars?

> 6. What are the reasons why this module can't be integrated with the  
> existing std.process? I've noticed it mentioned a few times but couldn't  
> actually find the reasoning, anyone can post the link?

Lars just mentioned his reasons in this thread.  Let me see...

http://forum.dlang.org/post/pnspeckullzedovpvjcx@forum.dlang.org

> 7. How do I test this with a recent version of Phobos? I'm getting the  
> following runtime exception with the "ls" example:
>
> std.stdio.StdioException at std\stdio.d(2343): Failed to pass stdin stream  
> to child process
> ----------------
> 0x0041D504 in char[][] core.sys.windows.stacktrace.StackTrace.trace()
> 0x0041D38F in core.sys.windows.stacktrace.StackTrace  
> core.sys.windows.stacktrace.StackTrace.__ctor()
> 0x004124A8 in  
> D3std8process219spawnPАЖПWindowsFNeAyaxAтPvSАД░5┌io4FileАРРАРРEАНр6ConfigZCАНЦ3Pid13prepa┘St┘amFKАР╔kАГ  
> JiJPvZv
> 0x0040F8AA in @trusted std.process2.Pid  
> std.process2.spawnProcess(immutable(char)[], const(immutable(char)[][]),  
> std.stdio.File, std.stdio.File, std.stdio.File, std.process2.Config)
> 0x0040A353 in @trusted std.process2.Pid  
> std.process2.spawnProcess(immutable(char)[], std.stdio.File,  
> std.stdio.File, std.stdio.File, std.process2.Config)
> 0x004020B9 in _Dmain
>
> Do I need a patched snn.lib or something else?

No, snn.lib included with the compilers for a few versions has been  
patched.  The exeception you would get would be different, that appears to  
be coming from std.process, even though the file name seems to be  
std.stdio.

-Steve


More information about the Digitalmars-d mailing list