Max Samukha wrote:
On Sat, 17 Jan 2009 09:19:38 -0800, Andrei Alexandrescu
<seewebsiteforem...@erdani.org> wrote:

Max Samukha wrote:
On Sat, 17 Jan 2009 16:09:43 +0200, Max Samukha
<samu...@voliacable.com.removethis> wrote:

rebuild is pretty unusable with dmd 2.023, so I've taken the liberty
to port a popen implementation to D for Windows and modify rdmd to use
that.

The handle returned by the popen st
..ill fails at the end of stream (maybe due to this issue
http://www.digitalmars.com/d/archives/c++/windows/32-bits/274.html),
so the exception is simply ignored for now.

The rdmd.d patch and popen are here
http://d-coding.com/download/rdmd.zip
That's great! Is it ok with you if I take the popen implementation and do the rdmd integration by hand? I made a couple of other changes to rdmd and I'm not sure how patch would cope with that. Also, please let me know if you allow me to change popen a bit to e.g make symbols more local and add documentation. Finally, please let me know if I can publish your implementation in Phobos and use it in other functions such as shell().

Thanks,

Andrei

Yep. But there are numerous issues with this implementation

1. The bad descriptor error.
2. pclose is not implemented accoring to the standard. There is a way
to partially fix this by storing the process ID in the descriptor.
3. 0 is passed to the mode parameter of _open_osfhandle. It should
probably be _O_BINARY if the runtime cares at all.
4. This implementaion is based on a number of existing ones so the
owners of original versions may be bad enough to claim their rights.

So it's far from being a perfect popen :)

If your implementation relies heavily on others I think there is no question that you need to ask them for permission and also credit them in your implementation (whether they ask for that or not). Until then I can't do much.

Andrei

Reply via email to