Suggestion for std.process upgrade

Steven Schveighoffer schveiguy at yahoo.com
Mon Dec 12 14:43:08 PST 2011


On Mon, 12 Dec 2011 17:08:53 -0500, Bane  
<branimir.milosavljevic at gmail.com> wrote:

> I have been playing with std.process (D2) lately, and have 2 suggestions  
> and more or less tested code if somebody other than my self have use for  
> it.
>
> One is shell() function (not mentioned in the docs, curious), I see it  
> can be made more efficient on Windows. It executes shell command and  
> returns standard output as string. Current implementation do it by  
> piping stdout to temporary file on disk and reading that file back.  
> Using CreateProccess Windows API it can do same job 3 times faster and  
> remove need for temporary files and disk writes. I think that is  
> beneficial gain for some applications.
>
> Other is fork-exec implementation eg. starting a program using command  
> line and detaching it from parent, so it continues to run after parent  
> is dead. On Posix it is implemented using fork() and exec() calls, on  
> Windows using CreateProcess.

There is a completely revamped version of std.process.  It is being held  
up right now because DMD on windows depends on DMC for it's C runtime, and  
DMC has issues supporting pipes.  I have recently opened a pull request  
for Walter to merge, I'm going to ping him about it right after 2.057 is  
released.

For more info, see the docs Lars posted here:

http://kyllingen.net/code/ltk/doc/process.html

Once the DMC issue is fixed, you should see this improvement getting much  
more attention.  It's very low hanging fruit.

-Steve


More information about the Digitalmars-d mailing list